]> git.mxchange.org Git - mailer.git/commitdiff
mailer project continued:
authorRoland Häder <roland@mxchange.org>
Sat, 29 Sep 2012 12:50:52 +0000 (12:50 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 29 Sep 2012 12:50:52 +0000 (12:50 +0000)
 - Some global array elements renamed (someGlobalElement -> __some_global_element)
 - Copyright notice disabled in mailid.php as it destroys the frameset
 - Function debug_report_bug() renamed to reportBug()
 - Function app_die() renamed to app_exit()
 - More wrapper functions used (e.g. getRandomTan() instead of PHP's mt_rand())
 - New AJAX-based installation introduced (it is not finished)
 - Renamed several ALL_UPER_CASE() functions to camel-case notation
 - Extension ext-currency introduced which will deprecate ext-wernis all other eCurreny-related extensions
 - Renamed various HTML and email templates to new notation
 - Some shell scripts moved to 'contrib' folder
 - JQUERY updated to latest stable version (including custom build of jqueryui)
 - License files renamed/moved
 - Many other  fixes/improvements I forgot to mention
 - Varrious typos fixed
 - Copyright updated (to 2012)
 - TODOs.txt updated

1029 files changed:
.gitattributes
.htaccess
DOCS/COPYING
DOCS/Doxyfile
DOCS/JQUERY-AUTHORS.txt [new file with mode: 0644]
DOCS/LICENSE-GPL2.txt [new file with mode: 0644]
DOCS/LICENSE.txt
DOCS/TODOs.txt
DOCS/de/LICENSE.txt
DOCS/de/README.txt
DOCS/de/SECURITY.txt
DOCS/de/TODO.txt
DOCS/de/autoreg/README.txt
DOCS/de/forced/Tabellenlayout.txt
DOCS/de/network/README.txt
DOCS/debug-lines.sh
DOCS/en/LICENSE.txt
DOCS/en/SECURITY.txt
DOCS/final-checker.sh
DOCS/lint.sh
DOCS/merge-exp.sh
DOCS/prop-set.sh
DOCS/remove-deprecated.sh
DOCS/todo-builder.sh
DOCS/tpl-validator.php
DOCS/validator.sh
admin.php
agb.php
ajax.php [new file with mode: 0644]
autoreg.php
beg.php
birthday_confirm.php
click.php
confirm.php
css.php
debug.php
doubler.php
img.php
inc/ajax-functions.php [new file with mode: 0644]
inc/ajax/.htaccess [new file with mode: 0644]
inc/ajax/ajax_admin.php [new file with mode: 0644]
inc/ajax/ajax_installer.php [new file with mode: 0644]
inc/callback-functions.php
inc/classes/cachesystem.class.php
inc/classes/resolver.class.php
inc/code-functions.php
inc/config-functions.php
inc/config-global.php
inc/config-local.php.dist
inc/daily/daily_
inc/daily/daily_100_bonus.php
inc/daily/daily_autopurge.php
inc/daily/daily_beg.php
inc/daily/daily_birthday.php
inc/daily/daily_bonus.php
inc/daily/daily_doubler.php
inc/daily/daily_earning.php [new file with mode: 0644]
inc/daily/daily_holiday.php
inc/daily/daily_profile.php
inc/daily/daily_surfbar.php
inc/daily/daily_user.php
inc/daily/daily_yoomedia.php
inc/databases.php
inc/db/lib-mysql3.php
inc/db/lib.php
inc/debug/request_
inc/expression-functions.php
inc/extensions-functions.php
inc/extensions/ext-
inc/extensions/ext-active.php
inc/extensions/ext-admins.php
inc/extensions/ext-admintheme1.php
inc/extensions/ext-admintheme_default.php
inc/extensions/ext-announcement.php
inc/extensions/ext-autopurge.php
inc/extensions/ext-autoreg.php
inc/extensions/ext-bank.php
inc/extensions/ext-beg.php
inc/extensions/ext-birthday.php
inc/extensions/ext-bitcoins.php
inc/extensions/ext-bonus.php
inc/extensions/ext-booking.php
inc/extensions/ext-cache.php
inc/extensions/ext-clickbanner.php
inc/extensions/ext-country.php
inc/extensions/ext-coupon.php
inc/extensions/ext-cprping.php
inc/extensions/ext-currency.php [new file with mode: 0644]
inc/extensions/ext-debug.php
inc/extensions/ext-demo.php
inc/extensions/ext-doubler.php
inc/extensions/ext-earning.php
inc/extensions/ext-events.php
inc/extensions/ext-forced.php
inc/extensions/ext-geoip.php
inc/extensions/ext-grade.php
inc/extensions/ext-holiday.php
inc/extensions/ext-html_mail.php
inc/extensions/ext-imprint.php
inc/extensions/ext-jackpot.php
inc/extensions/ext-lead.php
inc/extensions/ext-logs.php
inc/extensions/ext-mailid.php
inc/extensions/ext-maintenance.php
inc/extensions/ext-mediadata.php
inc/extensions/ext-menu.php
inc/extensions/ext-mods.php
inc/extensions/ext-mydata.php
inc/extensions/ext-network.php
inc/extensions/ext-newsletter.php
inc/extensions/ext-nickname.php
inc/extensions/ext-online.php
inc/extensions/ext-optimize.php
inc/extensions/ext-order.php
inc/extensions/ext-other.php
inc/extensions/ext-partner.php
inc/extensions/ext-payout.php
inc/extensions/ext-politician-stop.php
inc/extensions/ext-profile.php
inc/extensions/ext-rallye.php
inc/extensions/ext-refback.php
inc/extensions/ext-refsell.php
inc/extensions/ext-register.php
inc/extensions/ext-removeip.php
inc/extensions/ext-repair.php
inc/extensions/ext-report.php
inc/extensions/ext-rewrite.php
inc/extensions/ext-safe.php
inc/extensions/ext-seo.php
inc/extensions/ext-sponsor.php
inc/extensions/ext-sql_patches.php
inc/extensions/ext-support.php
inc/extensions/ext-surfbar.php
inc/extensions/ext-task.php
inc/extensions/ext-teams.php
inc/extensions/ext-terms.php
inc/extensions/ext-theme.php
inc/extensions/ext-timezone.php
inc/extensions/ext-top10.php
inc/extensions/ext-transfer.php
inc/extensions/ext-uberwach.php
inc/extensions/ext-update.php
inc/extensions/ext-usage.php
inc/extensions/ext-user.php
inc/extensions/ext-validator.php
inc/extensions/ext-wernis.php
inc/extensions/ext-yacy.php
inc/extensions/ext-yoomedia.php
inc/filter-functions.php
inc/filter/_filter.php
inc/filter/active_filter.php
inc/filter/admins_filter.php
inc/filter/beg_filter.php [new file with mode: 0644]
inc/filter/bonus_filter.php
inc/filter/booking_filter.php
inc/filter/cache_filter.php
inc/filter/country_filter.php [new file with mode: 0644]
inc/filter/coupon_filter.php
inc/filter/earning_filter.php
inc/filter/forced_filter.php
inc/filter/mediadata_filter.php
inc/filter/online_filter.php
inc/filter/order_filter.php
inc/filter/other_filter.php
inc/filter/politician_stop_filter.php
inc/filter/rallye_filter.php
inc/filter/register_filter.php
inc/filter/removeip_filter.php
inc/filter/surfbar_filter.php
inc/filter/theme_filter.php
inc/filter/timezone_filter.php
inc/filter/uberwach_filter.php
inc/filter/user_filter.php
inc/filters.php
inc/fix_filters.php
inc/fix_menu.php
inc/fix_refsystem.php
inc/fix_user_points.php
inc/footer.php
inc/functions.php
inc/gen_mediadata.php
inc/gen_sql_patches.php
inc/handler.php
inc/header.php
inc/hourly/hourly_
inc/http-functions.php
inc/inc-functions.php
inc/install-functions.php
inc/install-inc.php
inc/js/js-
inc/js/js-admin_ajax.php [new file with mode: 0644]
inc/js/js-cookies_disabled.php
inc/js/js-install_ajax.php [new file with mode: 0644]
inc/js/js-order_send.php
inc/js/js-surfbar_frame_top.php
inc/js/js-surfbar_member_book.php
inc/js/js-surfbar_member_edit.php
inc/js/js-surfbar_stopped.php
inc/js/js-uberwach.php
inc/language-functions.php
inc/language/_de.php
inc/language/_en.php
inc/language/active_de.php
inc/language/active_en.php
inc/language/admins_de.php
inc/language/autopurge_de.php
inc/language/bank_de.php
inc/language/beg_de.php
inc/language/birthday_de.php
inc/language/bonus_de.php
inc/language/booking_de.php
inc/language/cache_de.php
inc/language/country_de.php
inc/language/coupon_de.php
inc/language/de.php
inc/language/debug_de.php
inc/language/doubler_de.php
inc/language/earning_de.php
inc/language/en.php
inc/language/forced_de.php
inc/language/holiday_de.php
inc/language/html_mail_de.php
inc/language/imprint_de.php
inc/language/install_de.php
inc/language/logs_de.php
inc/language/mailid_de.php
inc/language/maintenance_de.php
inc/language/mediadata_de.php
inc/language/menu_de.php
inc/language/mods_de.php
inc/language/mydata_de.php
inc/language/network_de.php
inc/language/newsletter_de.php
inc/language/nickname_de.php
inc/language/online_de.php
inc/language/optimize_de.php
inc/language/order_de.php
inc/language/other_de.php
inc/language/payout_de.php
inc/language/profile_de.php
inc/language/rallye_de.php
inc/language/refback_de.php
inc/language/register_de.php
inc/language/removeip_de.php
inc/language/repair_de.php
inc/language/rewrite_de.php
inc/language/sponsor_de.php
inc/language/support_de.php
inc/language/surfbar_de.php
inc/language/task_de.php
inc/language/theme_de.php
inc/language/timezone_de.php
inc/language/top10_de.php
inc/language/transfer_de.php
inc/language/update_de.php
inc/language/usage_de.php
inc/language/user_de.php
inc/language/validator_de.php
inc/language/wernis_de.php
inc/language/yoomedia_de.php
inc/libs/_functions.php
inc/libs/active_functions.php
inc/libs/admins_functions.php
inc/libs/autopurge_functions.php
inc/libs/beg_functions.php
inc/libs/birthday_functions.php [new file with mode: 0644]
inc/libs/bonus_functions.php
inc/libs/booking_functions.php
inc/libs/cache_functions.php
inc/libs/country_functions.php
inc/libs/coupon_functions.php
inc/libs/debug_functions.php
inc/libs/doubler_functions.php
inc/libs/earning_functions.php
inc/libs/events_functions.php
inc/libs/forced_functions.php
inc/libs/holiday_functions.php
inc/libs/html_mail_functions.php
inc/libs/jackpot_functions.php
inc/libs/mailid_functions.php
inc/libs/maintenance_functions.php
inc/libs/mediadata_functions.php
inc/libs/network_functions.php
inc/libs/newsletter_functions.php
inc/libs/nickname_functions.php
inc/libs/online_functions.php
inc/libs/optimize_functions.php
inc/libs/order_functions.php
inc/libs/other_functions.php
inc/libs/payout_functions.php
inc/libs/politician_stop_functions.php
inc/libs/profile_functions.php
inc/libs/rallye_functions.php
inc/libs/refback_functions.php
inc/libs/register_functions.php
inc/libs/removeip_functions.php
inc/libs/rewrite_functions.php
inc/libs/sponsor_functions.php
inc/libs/surfbar_functions.php
inc/libs/task_functions.php
inc/libs/theme_functions.php
inc/libs/timezone_functions.php
inc/libs/transfer_functions.php
inc/libs/uberwach_functions.php
inc/libs/user_functions.php
inc/libs/wernis_functions.php
inc/libs/yoomedia_functions.php
inc/load_cache.php
inc/load_config.php
inc/loader/load-
inc/loader/load-admins.php
inc/loader/load-config.php
inc/loader/load-earning.php
inc/loader/load-extension.php
inc/loader/load-filter.php
inc/loader/load-imprint.php
inc/loader/load-modules.php
inc/loader/load-points_data.php
inc/loader/load-refdepths.php
inc/loader/load-refsystem.php
inc/loader/load-revision.php
inc/loader/load-themes.php
inc/mails/_mails.php
inc/mails/beg_mails.php
inc/mails/bonus_mails.php
inc/mails/doubler_mails.php
inc/math-functions.php
inc/module-functions.php
inc/modules/admin.php
inc/modules/admin/action-
inc/modules/admin/action-admins.php
inc/modules/admin/action-bank.php
inc/modules/admin/action-country.php
inc/modules/admin/action-coupon.php
inc/modules/admin/action-doubler.php
inc/modules/admin/action-email.php
inc/modules/admin/action-forced.php
inc/modules/admin/action-grade.php
inc/modules/admin/action-holiday.php
inc/modules/admin/action-login.php
inc/modules/admin/action-logout.php
inc/modules/admin/action-menu.php
inc/modules/admin/action-misc.php
inc/modules/admin/action-mods.php
inc/modules/admin/action-network.php
inc/modules/admin/action-newsletter.php
inc/modules/admin/action-payouts.php
inc/modules/admin/action-rallye.php
inc/modules/admin/action-repair.php
inc/modules/admin/action-setup.php
inc/modules/admin/action-sponsor.php
inc/modules/admin/action-stats.php
inc/modules/admin/action-surfbar.php
inc/modules/admin/action-task.php
inc/modules/admin/action-theme.php
inc/modules/admin/action-transfer.php
inc/modules/admin/action-user.php
inc/modules/admin/action-wernis.php
inc/modules/admin/admin-inc.php
inc/modules/admin/overview-inc.php
inc/modules/admin/what-
inc/modules/admin/what-add_bank_package.php
inc/modules/admin/what-add_guestnl_cat.php
inc/modules/admin/what-add_points.php
inc/modules/admin/what-add_rallye.php
inc/modules/admin/what-add_sponsor.php
inc/modules/admin/what-add_surfbar_url.php
inc/modules/admin/what-add_tester_user.php [new file with mode: 0644]
inc/modules/admin/what-admin_add.php
inc/modules/admin/what-adminedit.php
inc/modules/admin/what-admins_add.php
inc/modules/admin/what-admins_contct.php
inc/modules/admin/what-admins_edit.php
inc/modules/admin/what-admins_mails.php
inc/modules/admin/what-bonus.php
inc/modules/admin/what-cache_stats.php
inc/modules/admin/what-config_
inc/modules/admin/what-config_active.php
inc/modules/admin/what-config_admin.php
inc/modules/admin/what-config_autopurge.php
inc/modules/admin/what-config_beg.php
inc/modules/admin/what-config_birthday.php
inc/modules/admin/what-config_bonus.php
inc/modules/admin/what-config_cats.php
inc/modules/admin/what-config_coupon.php
inc/modules/admin/what-config_doubler.php
inc/modules/admin/what-config_extensions.php
inc/modules/admin/what-config_holiday.php
inc/modules/admin/what-config_home.php
inc/modules/admin/what-config_imprint.php
inc/modules/admin/what-config_mediadata.php
inc/modules/admin/what-config_menu.php
inc/modules/admin/what-config_mods.php
inc/modules/admin/what-config_network_api.php
inc/modules/admin/what-config_network_types.php
inc/modules/admin/what-config_newsletter.php
inc/modules/admin/what-config_nickname.php
inc/modules/admin/what-config_order.php
inc/modules/admin/what-config_other.php
inc/modules/admin/what-config_payouts.php
inc/modules/admin/what-config_points.php
inc/modules/admin/what-config_proxy.php
inc/modules/admin/what-config_rallye_prices.php
inc/modules/admin/what-config_refback.php
inc/modules/admin/what-config_refid.php
inc/modules/admin/what-config_register.php
inc/modules/admin/what-config_register2.php
inc/modules/admin/what-config_removeip.php
inc/modules/admin/what-config_rewrite.php
inc/modules/admin/what-config_secure.php
inc/modules/admin/what-config_session.php
inc/modules/admin/what-config_sponsor.php
inc/modules/admin/what-config_stats.php
inc/modules/admin/what-config_surfbar.php
inc/modules/admin/what-config_timezone.php
inc/modules/admin/what-config_title.php
inc/modules/admin/what-config_top10.php
inc/modules/admin/what-config_transfer.php
inc/modules/admin/what-config_user.php
inc/modules/admin/what-config_validator.php
inc/modules/admin/what-config_wernis.php
inc/modules/admin/what-config_yoomedia.php
inc/modules/admin/what-del_email.php
inc/modules/admin/what-del_holiday.php
inc/modules/admin/what-del_sponsor.php
inc/modules/admin/what-del_transfer.php
inc/modules/admin/what-del_user.php
inc/modules/admin/what-edit_emails.php
inc/modules/admin/what-edit_sponsor.php
inc/modules/admin/what-edit_user.php
inc/modules/admin/what-email_archiv.php
inc/modules/admin/what-email_details.php
inc/modules/admin/what-email_stats.php
inc/modules/admin/what-extensions.php
inc/modules/admin/what-guest_add.php
inc/modules/admin/what-guestedit.php
inc/modules/admin/what-holiday_list.php
inc/modules/admin/what-holiday_remove.php
inc/modules/admin/what-list_admins_acls.php
inc/modules/admin/what-list_autopurge.php
inc/modules/admin/what-list_bank_package.php
inc/modules/admin/what-list_beg.php
inc/modules/admin/what-list_bonus.php
inc/modules/admin/what-list_cats.php
inc/modules/admin/what-list_country.php
inc/modules/admin/what-list_coupon.php
inc/modules/admin/what-list_doubler.php
inc/modules/admin/what-list_email_max_rec.php
inc/modules/admin/what-list_forced_ads.php
inc/modules/admin/what-list_forced_campaigns.php
inc/modules/admin/what-list_forced_costs.php
inc/modules/admin/what-list_holiday.php
inc/modules/admin/what-list_links.php
inc/modules/admin/what-list_network_array_translation.php
inc/modules/admin/what-list_network_request_params.php
inc/modules/admin/what-list_network_types.php
inc/modules/admin/what-list_network_vcheck_params.php
inc/modules/admin/what-list_networks.php
inc/modules/admin/what-list_nickname.php
inc/modules/admin/what-list_notifications.php
inc/modules/admin/what-list_payouts.php
inc/modules/admin/what-list_point_accounts.php
inc/modules/admin/what-list_rallyes.php
inc/modules/admin/what-list_refs.php
inc/modules/admin/what-list_sponsor.php
inc/modules/admin/what-list_sponsor_pay.php
inc/modules/admin/what-list_sponsor_pays.php
inc/modules/admin/what-list_surfbar_actions.php
inc/modules/admin/what-list_surfbar_urls.php
inc/modules/admin/what-list_task.php
inc/modules/admin/what-list_transfer.php
inc/modules/admin/what-list_unconfirmed.php
inc/modules/admin/what-list_user.php
inc/modules/admin/what-list_wernis.php
inc/modules/admin/what-list_yoomedia_tm.php
inc/modules/admin/what-lock_sponsor.php
inc/modules/admin/what-lock_user.php
inc/modules/admin/what-logs.php
inc/modules/admin/what-maintenance.php
inc/modules/admin/what-mem_add.php
inc/modules/admin/what-memedit.php
inc/modules/admin/what-optimize.php
inc/modules/admin/what-overview.php
inc/modules/admin/what-payments.php
inc/modules/admin/what-query_network_apis.php
inc/modules/admin/what-refbanner.php
inc/modules/admin/what-repair_amnu.php
inc/modules/admin/what-repair_cats.php
inc/modules/admin/what-repair_gmnu.php
inc/modules/admin/what-repair_lang.php
inc/modules/admin/what-repair_mmnu.php
inc/modules/admin/what-repair_refs.php
inc/modules/admin/what-send_bonus.php
inc/modules/admin/what-send_coupon.php
inc/modules/admin/what-send_newsletter.php
inc/modules/admin/what-stats_mods.php
inc/modules/admin/what-sub_points.php
inc/modules/admin/what-surfbar_stats.php
inc/modules/admin/what-theme_edit.php
inc/modules/admin/what-theme_import.php
inc/modules/admin/what-unlock_emails.php
inc/modules/admin/what-unlock_sponsor.php
inc/modules/admin/what-unlock_surfbar_urls.php
inc/modules/admin/what-updates.php
inc/modules/admin/what-usage.php
inc/modules/admin/what-user_contct.php
inc/modules/admin/what-usr_online.php
inc/modules/admin/what-welcome.php [new file with mode: 0644]
inc/modules/chk_login.php
inc/modules/frametester.php
inc/modules/guest/action-
inc/modules/guest/action-admin.php
inc/modules/guest/action-main.php
inc/modules/guest/action-members.php
inc/modules/guest/action-online.php
inc/modules/guest/action-sponsor.php
inc/modules/guest/action-themes.php
inc/modules/guest/what-
inc/modules/guest/what-active.php
inc/modules/guest/what-admin.php
inc/modules/guest/what-agb.php
inc/modules/guest/what-beg.php
inc/modules/guest/what-confirm.php
inc/modules/guest/what-doubler.php
inc/modules/guest/what-extensions.php
inc/modules/guest/what-impressum.php
inc/modules/guest/what-infos.php
inc/modules/guest/what-login.php
inc/modules/guest/what-mediadata.php
inc/modules/guest/what-rallyes.php
inc/modules/guest/what-register.php
inc/modules/guest/what-sponsor_agb.php
inc/modules/guest/what-sponsor_infos.php
inc/modules/guest/what-sponsor_login.php
inc/modules/guest/what-sponsor_reg.php
inc/modules/guest/what-stats.php
inc/modules/guest/what-top10.php
inc/modules/guest/what-welcome.php
inc/modules/guest/what-wernis_portal.php
inc/modules/index.php
inc/modules/loader.php
inc/modules/login.php
inc/modules/member/action-
inc/modules/member/action-account.php
inc/modules/member/action-bank.php
inc/modules/member/action-coupon.php
inc/modules/member/action-earn.php
inc/modules/member/action-extras.php
inc/modules/member/action-logout.php
inc/modules/member/action-main.php
inc/modules/member/action-order.php
inc/modules/member/action-rals.php
inc/modules/member/action-stats.php
inc/modules/member/action-surfbar.php
inc/modules/member/action-themes.php
inc/modules/member/what-
inc/modules/member/what-bank_create.php
inc/modules/member/what-bank_deposit.php
inc/modules/member/what-bank_infos.php
inc/modules/member/what-bank_output.php
inc/modules/member/what-bank_withdraw.php
inc/modules/member/what-beg.php
inc/modules/member/what-beg2.php
inc/modules/member/what-bonus.php
inc/modules/member/what-book_surfbar.php
inc/modules/member/what-booking.php
inc/modules/member/what-cash_coupon.php
inc/modules/member/what-categories.php
inc/modules/member/what-doubler.php
inc/modules/member/what-earning.php
inc/modules/member/what-guest.php
inc/modules/member/what-holiday.php
inc/modules/member/what-html_mail.php
inc/modules/member/what-list_coupon.php
inc/modules/member/what-list_surfbar.php
inc/modules/member/what-logout.php
inc/modules/member/what-mydata.php
inc/modules/member/what-nickname.php
inc/modules/member/what-order.php
inc/modules/member/what-payout.php
inc/modules/member/what-points.php
inc/modules/member/what-rallyes.php
inc/modules/member/what-refback.php
inc/modules/member/what-reflinks.php
inc/modules/member/what-reflist.php
inc/modules/member/what-sponsor_list.php
inc/modules/member/what-start_surfbar.php
inc/modules/member/what-stats.php
inc/modules/member/what-stats_surfbar.php
inc/modules/member/what-support.php
inc/modules/member/what-themes.php
inc/modules/member/what-transfer.php
inc/modules/member/what-unconfirmed.php
inc/modules/member/what-welcome.php
inc/modules/member/what-wernis.php
inc/modules/order.php
inc/modules/sponsor.php
inc/modules/sponsor/account.php
inc/modules/sponsor/guest.php
inc/modules/sponsor/logout.php
inc/modules/sponsor/settings.php
inc/modules/sponsor/welcome.php
inc/monthly/monthly_
inc/monthly/monthly_beg.php
inc/monthly/monthly_bonus.php
inc/monthly/monthly_newsletter.php
inc/monthly/monthly_surfbar.php
inc/mysql-connect.php
inc/mysql-manager.php
inc/pool/pool-
inc/pool/pool-bonus.php
inc/pool/pool-user.php
inc/purge/purge-
inc/purge/purge-coupon.php
inc/purge/purge-general.php
inc/purge/purge-inact.php
inc/purge/purge-mails.php
inc/purge/purge-tasks.php
inc/purge/purge-unconfirmed.php
inc/referral-functions.php
inc/request-functions.php
inc/revision-functions.php
inc/session-functions.php
inc/session.php
inc/sql-functions.php
inc/stats-functions.php
inc/stylesheet.php
inc/template-functions.php
inc/versions.php
inc/weekly/weekly_
inc/weekly/weekly_surfbar.php
inc/wrapper-functions.php
inc/xml-functions.php
index.php
install.php
install/tables.sql
js.php
js/.js [new file with mode: 0644]
js/admin-common.js [new file with mode: 0644]
js/admin-data.js [new file with mode: 0644]
js/ajax-common.js [new file with mode: 0644]
js/ajax-loader.js [new file with mode: 0644]
js/ajax-test.js [new file with mode: 0644]
js/core-common.js [new file with mode: 0644]
js/install-common.js [new file with mode: 0644]
js/install-data.js [new file with mode: 0644]
js/jquery-ui.custom.js [new file with mode: 0644]
js/jquery.js
js/menu-common.js
lead-confirm.php
login.php
mailid.php
mailid_top.php
modules.php
network-vcheck.php
ref.php
robots.txt
show_bonus.php
sponsor_confirm.php
sponsor_ref.php
surfbar.php
templates/de/emails/admin/admin_admin_add_all_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_admin_add_all_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_admin_add_all_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_admin_add_single_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_admin_add_single_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_beg_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_beg_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_beg_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_coupon_cashed.tpl
templates/de/emails/admin/admin_coupon_code.tpl
templates/de/emails/admin/admin_coupon_purge.tpl
templates/de/emails/admin/admin_edit_forced_ads.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_edit_forced_costs.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_edit_points_data.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_extension_deactivated.tpl
templates/de/emails/admin/admin_forced_campaign_pending_active.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_mailid_okay_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_mailid_okay_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_monthly_beg_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_monthly_beg_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_monthly_beg_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_monthly_bonus_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_monthly_bonus_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_monthly_bonus_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_rallye_expired.tpl
templates/de/emails/admin/admin_rallye_expired_no.tpl
templates/de/emails/admin/admin_rallye_no_notify.tpl
templates/de/emails/admin/admin_rallye_notify.tpl
templates/de/emails/admin/admin_refback.tpl
templates/de/emails/admin/admin_refback_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_refback_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_refback_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_referral_bonus_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_referral_bonus_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_referral_bonus_referral.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_register_welcome_direct.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_report_bug.tpl
templates/de/emails/admin/admin_sponsor_edit.tpl
templates/de/emails/admin/admin_surfbar_url_rejected_pending.tpl [new file with mode: 0644]
templates/de/emails/admin/admin_transfer_points.tpl
templates/de/emails/del_sponsor.tpl
templates/de/emails/guest/guest_new_password.tpl
templates/de/emails/guest/guest_user_confirmed.tpl
templates/de/emails/guest/guest_user_confirmed_referral.tpl
templates/de/emails/header.tpl
templates/de/emails/html_header.tpl
templates/de/emails/lock_sponsor.tpl
templates/de/emails/member/member_admin_add_all_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_admin_add_all_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_admin_add_all_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_admin_add_single_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_admin_add_single_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_beg_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_beg_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_beg_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_forced_campaign_pending_active.tpl [new file with mode: 0644]
templates/de/emails/member/member_mailid_okay_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_mailid_okay_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_monthly_beg_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_monthly_beg_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_monthly_beg_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_monthly_bonus_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_monthly_bonus_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_monthly_bonus_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_rallye_expired_bronce.tpl
templates/de/emails/member/member_rallye_expired_gold.tpl
templates/de/emails/member/member_rallye_expired_other.tpl
templates/de/emails/member/member_rallye_expired_silver.tpl
templates/de/emails/member/member_rallye_notify.tpl
templates/de/emails/member/member_refback.tpl
templates/de/emails/member/member_refback_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_refback_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_refback_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_referral_bonus_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_referral_bonus_ref_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_referral_bonus_referral.tpl [new file with mode: 0644]
templates/de/emails/member/member_register_welcome_direct.tpl [new file with mode: 0644]
templates/de/emails/member/member_surfbar_url_rejected_pending.tpl [new file with mode: 0644]
templates/de/emails/member/member_transfer_recipient.tpl
templates/de/emails/member/member_transfer_sender.tpl
templates/de/emails/sponsor/sponsor_deleted.tpl [new file with mode: 0644]
templates/de/emails/sponsor/sponsor_locked.tpl [new file with mode: 0644]
templates/de/html/admin/admin_add_config_network_type.tpl
templates/de/html/admin/admin_add_config_network_type_form.tpl
templates/de/html/admin/admin_add_forced_ad.tpl
templates/de/html/admin/admin_add_forced_campaign.tpl [new file with mode: 0644]
templates/de/html/admin/admin_add_forced_costs.tpl [new file with mode: 0644]
templates/de/html/admin/admin_add_payout.tpl
templates/de/html/admin/admin_add_point_accounts.tpl [new file with mode: 0644]
templates/de/html/admin/admin_add_rallye.tpl
templates/de/html/admin/admin_add_rallye_prices.tpl
templates/de/html/admin/admin_add_refbanner.tpl
templates/de/html/admin/admin_add_surfbar_url.tpl
templates/de/html/admin/admin_add_tester_user.tpl [new file with mode: 0644]
templates/de/html/admin/admin_ajax_main.tpl [new file with mode: 0644]
templates/de/html/admin/admin_cache_stats.tpl
templates/de/html/admin/admin_config_
templates/de/html/admin/admin_config_admin.tpl
templates/de/html/admin/admin_config_autopurge.tpl
templates/de/html/admin/admin_config_birthday.tpl
templates/de/html/admin/admin_config_network_api.tpl
templates/de/html/admin/admin_config_network_types.tpl
templates/de/html/admin/admin_config_order.tpl
templates/de/html/admin/admin_config_payouts_edit.tpl
templates/de/html/admin/admin_config_rallye_del.tpl
templates/de/html/admin/admin_config_rallye_del_row.tpl
templates/de/html/admin/admin_config_rallye_edit.tpl
templates/de/html/admin/admin_config_rallye_edit_row.tpl
templates/de/html/admin/admin_config_rallye_prices.tpl
templates/de/html/admin/admin_config_rallye_prices_row.tpl
templates/de/html/admin/admin_config_refid.tpl
templates/de/html/admin/admin_config_stats.tpl
templates/de/html/admin/admin_config_surfbar.tpl
templates/de/html/admin/admin_config_title.tpl
templates/de/html/admin/admin_config_user.tpl
templates/de/html/admin/admin_contct_user_form.tpl
templates/de/html/admin/admin_delete_forced_ads.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_forced_ads_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_forced_costs.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_forced_costs_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_rallye_prices.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_rallye_prices_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_rallyes.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_rallyes_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_delete_surfbar_urls.tpl
templates/de/html/admin/admin_edit_config_network_type_form.tpl
templates/de/html/admin/admin_edit_country_row.tpl
templates/de/html/admin/admin_edit_email_max_rec.tpl
templates/de/html/admin/admin_edit_forced_ads_row.tpl
templates/de/html/admin/admin_edit_forced_campaigns.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_forced_campaigns_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_forced_costs.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_forced_costs_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_networks_row.tpl
templates/de/html/admin/admin_edit_points_data.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_points_data_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_rallye_prices.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_rallye_prices_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_rallyes.tpl
templates/de/html/admin/admin_edit_rallyes_row.tpl
templates/de/html/admin/admin_edit_surfbar_actions.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_surfbar_actions_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_edit_surfbar_urls.tpl
templates/de/html/admin/admin_export_network_array_translation.tpl
templates/de/html/admin/admin_export_network_data.tpl
templates/de/html/admin/admin_footer.tpl
templates/de/html/admin/admin_form_selection_box.tpl
templates/de/html/admin/admin_import_theme_form.tpl
templates/de/html/admin/admin_list_beg.tpl
templates/de/html/admin/admin_list_beg_form.tpl
templates/de/html/admin/admin_list_forced_campaigns.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_forced_campaigns_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_forced_costs.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_forced_costs_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_links_row.tpl
templates/de/html/admin/admin_list_networks_row.tpl
templates/de/html/admin/admin_list_notify_emails_row.tpl
templates/de/html/admin/admin_list_points_accounts.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_points_accounts_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_rallye_prices.tpl
templates/de/html/admin/admin_list_rallye_prices_row.tpl
templates/de/html/admin/admin_list_rallye_prices_simple.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_rallye_prices_simple_row.tpl [new file with mode: 0644]
templates/de/html/admin/admin_list_rallye_usr.tpl
templates/de/html/admin/admin_list_rallyes.tpl
templates/de/html/admin/admin_list_rallyes_row.tpl
templates/de/html/admin/admin_list_refs_level.tpl
templates/de/html/admin/admin_list_refs_norefs.tpl
templates/de/html/admin/admin_list_refs_row.tpl
templates/de/html/admin/admin_list_sponsor_row.tpl
templates/de/html/admin/admin_list_surfbar_actions.tpl
templates/de/html/admin/admin_list_surfbar_actions_row.tpl
templates/de/html/admin/admin_list_surfbar_urls.tpl
templates/de/html/admin/admin_list_transfer.tpl
templates/de/html/admin/admin_list_user.tpl
templates/de/html/admin/admin_lock_surfbar_urls.tpl
templates/de/html/admin/admin_login_form.tpl
templates/de/html/admin/admin_main_footer.tpl
templates/de/html/admin/admin_overview_row.tpl
templates/de/html/admin/admin_overview_task.tpl
templates/de/html/admin/admin_receive_table.tpl [new file with mode: 0644]
templates/de/html/admin/admin_repair_lang_row_404.tpl
templates/de/html/admin/admin_show_config_network_type.tpl
templates/de/html/admin/admin_undelete_surfbar_urls.tpl
templates/de/html/admin/admin_unlock_emails.tpl
templates/de/html/admin/admin_unlock_surfbar_urls.tpl
templates/de/html/admin/admin_user_details.tpl
templates/de/html/ajax_test_passed.tpl [new file with mode: 0644]
templates/de/html/app_die_message.tpl
templates/de/html/doubler/doubler_index.tpl
templates/de/html/ext/ext_bitcoins.tpl
templates/de/html/ext/ext_cache.tpl
templates/de/html/ext/ext_cprping.tpl
templates/de/html/ext/ext_currency.tpl [new file with mode: 0644]
templates/de/html/guest/guest_confirm_link.tpl
templates/de/html/guest/guest_content_footer.tpl
templates/de/html/guest/guest_list_rallye.tpl
templates/de/html/guest/guest_list_rallye_row.tpl
templates/de/html/guest/guest_login.tpl
templates/de/html/guest/guest_login_error_message.tpl [new file with mode: 0644]
templates/de/html/guest/guest_nickname_login.tpl
templates/de/html/guest/guest_receive_table.tpl
templates/de/html/guest/guest_show_rallye.tpl
templates/de/html/guest/guest_sponsor_infos.tpl
templates/de/html/guest/guest_sponsor_login.tpl
templates/de/html/guest/guest_stats_header.tpl
templates/de/html/install/install_fatal_errors.tpl
templates/de/html/install/install_footer.tpl [new file with mode: 0644]
templates/de/html/install/install_main.tpl
templates/de/html/install/install_main_ajax.tpl [new file with mode: 0644]
templates/de/html/install/install_main_plain.tpl [new file with mode: 0644]
templates/de/html/install/install_menu.tpl [new file with mode: 0644]
templates/de/html/install/install_page1.tpl
templates/de/html/install/install_page2.tpl
templates/de/html/install/install_page3.tpl
templates/de/html/install/install_page5.tpl
templates/de/html/install/install_page_base_data.tpl [new file with mode: 0644]
templates/de/html/install/install_page_database_config.tpl [new file with mode: 0644]
templates/de/html/install/install_page_init.tpl [new file with mode: 0644]
templates/de/html/install/install_page_other_config.tpl [new file with mode: 0644]
templates/de/html/install/install_page_smtp_config.tpl [new file with mode: 0644]
templates/de/html/install/install_page_welcome.tpl [new file with mode: 0644]
templates/de/html/install/install_selector.tpl [new file with mode: 0644]
templates/de/html/install/install_warning_next.tpl [new file with mode: 0644]
templates/de/html/install/install_warning_previous.tpl [new file with mode: 0644]
templates/de/html/install/install_warning_tab.tpl [new file with mode: 0644]
templates/de/html/install/install_welcome.tpl
templates/de/html/js/js_admin_ajax.tpl [new file with mode: 0644]
templates/de/html/js/js_admin_menu_onclick.tpl
templates/de/html/js/js_cookies_disabled.tpl
templates/de/html/js/js_install_ajax.tpl [new file with mode: 0644]
templates/de/html/js/js_order_send.tpl
templates/de/html/js/js_surfbar_frame_top.tpl
templates/de/html/js/js_surfbar_member_book.tpl
templates/de/html/js/js_surfbar_member_edit.tpl
templates/de/html/js/js_surfbar_stopped.tpl
templates/de/html/mailid/mailid_timer.tpl
templates/de/html/mediadata.tpl
templates/de/html/member/member_beg.tpl
templates/de/html/member/member_book_surfbar_dynamic.tpl
templates/de/html/member/member_book_surfbar_static.tpl
templates/de/html/member/member_cash_coupon.tpl
templates/de/html/member/member_cat_row.tpl
templates/de/html/member/member_cats.tpl [new file with mode: 0644]
templates/de/html/member/member_cats_footer.tpl
templates/de/html/member/member_cats_header.tpl
templates/de/html/member/member_cats_row.tpl [new file with mode: 0644]
templates/de/html/member/member_earning_popup_form_row.tpl
templates/de/html/member/member_earning_popup_row.tpl
templates/de/html/member/member_edit_refback.tpl
templates/de/html/member/member_html_mail_settings.tpl
templates/de/html/member/member_list_beg.tpl
templates/de/html/member/member_list_rallye.tpl
templates/de/html/member/member_list_rallye_row.tpl
templates/de/html/member/member_list_refback.tpl
templates/de/html/member/member_list_surfbar_table.tpl [new file with mode: 0644]
templates/de/html/member/member_mail_normal_active.tpl
templates/de/html/member/member_order-back.tpl
templates/de/html/member/member_order-html_ext.tpl
templates/de/html/member/member_order-html_intro.tpl
templates/de/html/member/member_order-zip1.tpl
templates/de/html/member/member_order-zip2.tpl
templates/de/html/member/member_order_html_ext.tpl [new file with mode: 0644]
templates/de/html/member/member_order_html_intro.tpl [new file with mode: 0644]
templates/de/html/member/member_order_page1.tpl
templates/de/html/member/member_order_page2.tpl
templates/de/html/member/member_order_thanks.tpl [new file with mode: 0644]
templates/de/html/member/member_order_zip1.tpl [new file with mode: 0644]
templates/de/html/member/member_order_zip2.tpl [new file with mode: 0644]
templates/de/html/member/member_payout_form.tpl
templates/de/html/member/member_payout_form_banner.tpl
templates/de/html/member/member_points.tpl
templates/de/html/member/member_receive_table.tpl
templates/de/html/member/member_start_surfbar_dynamic.tpl
templates/de/html/member/member_transfer_new.tpl
templates/de/html/member/member_transfer_overview.tpl
templates/de/html/member/member_transfer_row.tpl
templates/de/html/member/member_transfer_settings.tpl
templates/de/html/member/member_unconfirmed_table.tpl
templates/de/html/member/member_unconfirmed_table_nopoints.tpl
templates/de/html/member/member_welcome_header.tpl
templates/de/html/page_header.tpl
templates/de/html/redirect_url.tpl
templates/de/html/select/select_admins_option.tpl
templates/de/html/select/select_forced_ads_id_popup_box.tpl [new file with mode: 0644]
templates/de/html/select/select_forced_ads_id_popup_option.tpl [new file with mode: 0644]
templates/de/html/select/select_forced_ads_id_textlink_option.tpl [new file with mode: 0644]
templates/de/html/select/select_forced_ads_type_option.tpl
templates/de/html/select/select_forced_costs_id_box.tpl [new file with mode: 0644]
templates/de/html/select/select_forced_costs_id_option.tpl [new file with mode: 0644]
templates/de/html/select/select_forced_costs_visibility_box.tpl [new file with mode: 0644]
templates/de/html/select/select_forced_costs_visibility_option.tpl [new file with mode: 0644]
templates/de/html/select/select_network_option.tpl
templates/de/html/select/select_network_type_option.tpl
templates/de/html/select/select_network_type_title_option.tpl
templates/de/html/select/select_points_locked_mode_box.tpl [new file with mode: 0644]
templates/de/html/select/select_points_locked_mode_option.tpl [new file with mode: 0644]
templates/de/html/select/select_points_payment_method_box.tpl [new file with mode: 0644]
templates/de/html/select/select_points_payment_method_option.tpl [new file with mode: 0644]
templates/de/html/select/select_surfbar_actions_action_box.tpl [new file with mode: 0644]
templates/de/html/select/select_surfbar_actions_action_option.tpl [new file with mode: 0644]
templates/de/html/select/select_surfbar_actions_new_status_box.tpl [new file with mode: 0644]
templates/de/html/select/select_surfbar_actions_new_status_option.tpl [new file with mode: 0644]
templates/de/html/select/select_surfbar_actions_status_box.tpl [new file with mode: 0644]
templates/de/html/select/select_surfbar_actions_status_option.tpl [new file with mode: 0644]
templates/de/html/surfbar/surfbar_frame_stats.tpl
templates/de/html/surfbar/surfbar_frame_textlinks.tpl
templates/de/html/surfbar/surfbar_frame_top.tpl
templates/de/html/surfbar/surfbar_login_form.tpl
templates/xml/admin/admin_add_do_forced_ads.xml
templates/xml/admin/admin_add_do_forced_campaigns.xml [new file with mode: 0644]
templates/xml/admin/admin_add_do_forced_costs.xml [new file with mode: 0644]
templates/xml/admin/admin_delete_do_forced_ads.xml [new file with mode: 0644]
templates/xml/admin/admin_delete_do_forced_costs.xml [new file with mode: 0644]
templates/xml/admin/admin_delete_do_surfbar_urls.xml
templates/xml/admin/admin_delete_show_forced_ads.xml [new file with mode: 0644]
templates/xml/admin/admin_delete_show_forced_costs.xml [new file with mode: 0644]
templates/xml/admin/admin_delete_show_surfbar_urls.xml
templates/xml/admin/admin_edit_do_forced_ads.xml [new file with mode: 0644]
templates/xml/admin/admin_edit_do_forced_costs.xml [new file with mode: 0644]
templates/xml/admin/admin_edit_do_point_accounts.xml [new file with mode: 0644]
templates/xml/admin/admin_edit_do_surfbar_urls.xml
templates/xml/admin/admin_edit_show_forced_ads.xml
templates/xml/admin/admin_edit_show_forced_campaigns.xml [new file with mode: 0644]
templates/xml/admin/admin_edit_show_forced_costs.xml [new file with mode: 0644]
templates/xml/admin/admin_edit_show_point_accounts.xml [new file with mode: 0644]
templates/xml/admin/admin_edit_show_surfbar_actions.xml [new file with mode: 0644]
templates/xml/admin/admin_edit_show_surfbar_urls.xml
templates/xml/admin/admin_list_forced_ads.xml
templates/xml/admin/admin_list_forced_campaigns.xml
templates/xml/admin/admin_list_forced_costs.xml
templates/xml/admin/admin_list_nickname_history.xml [new file with mode: 0644]
templates/xml/admin/admin_list_point_accounts.xml [new file with mode: 0644]
templates/xml/admin/admin_list_surfbar_actions.xml
templates/xml/admin/admin_list_surfbar_urls.xml
templates/xml/admin/admin_lock_do_surfbar_urls.xml
templates/xml/admin/admin_lock_show_surfbar_urls.xml
templates/xml/admin/admin_undelete_do_surfbar_urls.xml
templates/xml/admin/admin_undelete_show_surfbar_urls.xml
templates/xml/admin_data_template.xml
templates/xml/admin_list_data_template.xml
templates/xml/template.xml
theme/business/css/ajax.css [new file with mode: 0644]
theme/business/css/general.css
theme/business/css/install.css
theme/business/theme.php
theme/default/css/ajax.css [new file with mode: 0644]
theme/default/css/general.css
theme/default/css/install.css
theme/default/theme.php
theme/desert/css/ajax.css [new file with mode: 0644]
theme/desert/css/general.css
theme/desert/css/install.css
theme/desert/css/task.css
theme/desert/theme.php
theme/org/css/.htaccess
theme/org/css/ajax.css [new file with mode: 0644]
theme/org/css/general.css
theme/org/css/install.css
theme/org/css/user.css
theme/org/theme.php
theme/schleuder/css/ajax.css [new file with mode: 0644]
theme/schleuder/css/general.css
theme/schleuder/css/install.css
theme/schleuder/theme.php
theme/ship-simu/css/general.css
theme/ship-simu/theme.php
view.php

index d29765b543117df16e37a7cd05a15b79afc92169..0600d9c829d06cb0d50763e248feba177448d62f 100644 (file)
@@ -1,6 +1,8 @@
 * text=auto !eol
 /.htaccess svneol=native#text/plain
 DOCS/INSTALL.txt svneol=native#text/plain
 * text=auto !eol
 /.htaccess svneol=native#text/plain
 DOCS/INSTALL.txt svneol=native#text/plain
+DOCS/JQUERY-AUTHORS.txt -text
+DOCS/LICENSE-GPL2.txt svneol=native#text/plain
 DOCS/LICENSE.txt svneol=native#text/plain
 DOCS/TODOs.txt svneol=native#text/plain
 DOCS/de/AUTHORS.txt svneol=native#text/plain
 DOCS/LICENSE.txt svneol=native#text/plain
 DOCS/TODOs.txt svneol=native#text/plain
 DOCS/de/AUTHORS.txt svneol=native#text/plain
@@ -65,6 +67,7 @@ DOCS/geoip_LICENSE.txt svneol=native#text/plain
 DOCS/tpl-validator.php svneol=native#text/plain
 /admin.php svneol=native#text/plain
 /agb.php svneol=native#text/plain
 DOCS/tpl-validator.php svneol=native#text/plain
 /admin.php svneol=native#text/plain
 /agb.php svneol=native#text/plain
+/ajax.php svneol=native#text/plain
 /autoreg.php svneol=native#text/plain
 /beg.php svneol=native#text/plain
 /birthday_confirm.php svneol=native#text/plain
 /autoreg.php svneol=native#text/plain
 /beg.php svneol=native#text/plain
 /birthday_confirm.php svneol=native#text/plain
@@ -79,6 +82,10 @@ img/politician-stop/politiker-stopp_150x24.png -text svneol=unset#image/png
 img/uberwach/uberwach-button-gruen.gif -text svneol=unset#image/gif
 img/uberwach/uberwach-kamera-gruen.gif -text svneol=unset#image/gif
 inc/.htaccess svneol=native#text/plain
 img/uberwach/uberwach-button-gruen.gif -text svneol=unset#image/gif
 img/uberwach/uberwach-kamera-gruen.gif -text svneol=unset#image/gif
 inc/.htaccess svneol=native#text/plain
+inc/ajax-functions.php svneol=native#text/plain
+inc/ajax/.htaccess svneol=native#text/plain
+inc/ajax/ajax_admin.php svneol=native#text/plain
+inc/ajax/ajax_installer.php svneol=native#text/plain
 inc/autopurge/.htaccess svneol=native#text/plain
 inc/autopurge/purge- svneol=native#text/plain
 inc/autopurge/purge-general.php svneol=native#text/plain
 inc/autopurge/.htaccess svneol=native#text/plain
 inc/autopurge/purge- svneol=native#text/plain
 inc/autopurge/purge-general.php svneol=native#text/plain
@@ -107,6 +114,7 @@ inc/daily/daily_beg.php svneol=native#text/plain
 inc/daily/daily_birthday.php svneol=native#text/plain
 inc/daily/daily_bonus.php svneol=native#text/plain
 inc/daily/daily_doubler.php svneol=native#text/plain
 inc/daily/daily_birthday.php svneol=native#text/plain
 inc/daily/daily_bonus.php svneol=native#text/plain
 inc/daily/daily_doubler.php svneol=native#text/plain
+inc/daily/daily_earning.php svneol=native#text/plain
 inc/daily/daily_engine.php svneol=native#text/plain
 inc/daily/daily_holiday.php svneol=native#text/plain
 inc/daily/daily_profile.php svneol=native#text/plain
 inc/daily/daily_engine.php svneol=native#text/plain
 inc/daily/daily_holiday.php svneol=native#text/plain
 inc/daily/daily_profile.php svneol=native#text/plain
@@ -144,6 +152,7 @@ inc/extensions/ext-clickbanner.php svneol=native#text/plain
 inc/extensions/ext-country.php svneol=native#text/plain
 inc/extensions/ext-coupon.php svneol=native#text/plain
 inc/extensions/ext-cprping.php svneol=native#text/plain
 inc/extensions/ext-country.php svneol=native#text/plain
 inc/extensions/ext-coupon.php svneol=native#text/plain
 inc/extensions/ext-cprping.php svneol=native#text/plain
+inc/extensions/ext-currency.php svneol=native#text/plain
 inc/extensions/ext-debug.php svneol=native#text/plain
 inc/extensions/ext-demo.php svneol=native#text/plain
 inc/extensions/ext-doubler.php svneol=native#text/plain
 inc/extensions/ext-debug.php svneol=native#text/plain
 inc/extensions/ext-demo.php svneol=native#text/plain
 inc/extensions/ext-doubler.php svneol=native#text/plain
@@ -212,9 +221,11 @@ inc/filter/.htaccess svneol=native#text/plain
 inc/filter/_filter.php svneol=native#text/plain
 inc/filter/active_filter.php svneol=native#text/plain
 inc/filter/admins_filter.php svneol=native#text/plain
 inc/filter/_filter.php svneol=native#text/plain
 inc/filter/active_filter.php svneol=native#text/plain
 inc/filter/admins_filter.php svneol=native#text/plain
+inc/filter/beg_filter.php svneol=native#text/plain
 inc/filter/bonus_filter.php svneol=native#text/plain
 inc/filter/booking_filter.php svneol=native#text/plain
 inc/filter/cache_filter.php svneol=native#text/plain
 inc/filter/bonus_filter.php svneol=native#text/plain
 inc/filter/booking_filter.php svneol=native#text/plain
 inc/filter/cache_filter.php svneol=native#text/plain
+inc/filter/country_filter.php svneol=native#text/plain
 inc/filter/coupon_filter.php svneol=native#text/plain
 inc/filter/earning_filter.php svneol=native#text/plain
 inc/filter/forced_filter.php svneol=native#text/plain
 inc/filter/coupon_filter.php svneol=native#text/plain
 inc/filter/earning_filter.php svneol=native#text/plain
 inc/filter/forced_filter.php svneol=native#text/plain
@@ -252,7 +263,9 @@ inc/install-functions.php svneol=native#text/plain
 inc/install-inc.php svneol=native#text/plain
 inc/js/.htaccess svneol=native#text/plain
 inc/js/js- svneol=native#text/plain
 inc/install-inc.php svneol=native#text/plain
 inc/js/.htaccess svneol=native#text/plain
 inc/js/js- svneol=native#text/plain
+inc/js/js-admin_ajax.php svneol=native#text/plain
 inc/js/js-cookies_disabled.php svneol=native#text/plain
 inc/js/js-cookies_disabled.php svneol=native#text/plain
+inc/js/js-install_ajax.php svneol=native#text/plain
 inc/js/js-jquery.php svneol=native#text/plain
 inc/js/js-order_send.php svneol=native#text/plain
 inc/js/js-surfbar_frame_top.php svneol=native#text/plain
 inc/js/js-jquery.php svneol=native#text/plain
 inc/js/js-order_send.php svneol=native#text/plain
 inc/js/js-surfbar_frame_top.php svneol=native#text/plain
@@ -330,6 +343,7 @@ inc/libs/active_functions.php svneol=native#text/plain
 inc/libs/admins_functions.php svneol=native#text/plain
 inc/libs/autopurge_functions.php svneol=native#text/plain
 inc/libs/beg_functions.php svneol=native#text/plain
 inc/libs/admins_functions.php svneol=native#text/plain
 inc/libs/autopurge_functions.php svneol=native#text/plain
 inc/libs/beg_functions.php svneol=native#text/plain
+inc/libs/birthday_functions.php svneol=native#text/plain
 inc/libs/bonus_functions.php svneol=native#text/plain
 inc/libs/booking_functions.php svneol=native#text/plain
 inc/libs/cache_functions.php svneol=native#text/plain
 inc/libs/bonus_functions.php svneol=native#text/plain
 inc/libs/booking_functions.php svneol=native#text/plain
 inc/libs/cache_functions.php svneol=native#text/plain
@@ -452,6 +466,7 @@ inc/modules/admin/what-add_points.php svneol=native#text/plain
 inc/modules/admin/what-add_rallye.php svneol=native#text/plain
 inc/modules/admin/what-add_sponsor.php svneol=native#text/plain
 inc/modules/admin/what-add_surfbar_url.php svneol=native#text/plain
 inc/modules/admin/what-add_rallye.php svneol=native#text/plain
 inc/modules/admin/what-add_sponsor.php svneol=native#text/plain
 inc/modules/admin/what-add_surfbar_url.php svneol=native#text/plain
+inc/modules/admin/what-add_tester_user.php svneol=native#text/plain
 inc/modules/admin/what-admin_add.php svneol=native#text/plain
 inc/modules/admin/what-adminedit.php svneol=native#text/plain
 inc/modules/admin/what-admins_add.php svneol=native#text/plain
 inc/modules/admin/what-admin_add.php svneol=native#text/plain
 inc/modules/admin/what-adminedit.php svneol=native#text/plain
 inc/modules/admin/what-admins_add.php svneol=native#text/plain
@@ -600,6 +615,7 @@ inc/modules/admin/what-updates.php svneol=native#text/plain
 inc/modules/admin/what-usage.php svneol=native#text/plain
 inc/modules/admin/what-user_contct.php svneol=native#text/plain
 inc/modules/admin/what-usr_online.php svneol=native#text/plain
 inc/modules/admin/what-usage.php svneol=native#text/plain
 inc/modules/admin/what-user_contct.php svneol=native#text/plain
 inc/modules/admin/what-usr_online.php svneol=native#text/plain
+inc/modules/admin/what-welcome.php svneol=native#text/plain
 inc/modules/chk_login.php svneol=native#text/plain
 inc/modules/frametester.php svneol=native#text/plain
 inc/modules/guest/.htaccess svneol=native#text/plain
 inc/modules/chk_login.php svneol=native#text/plain
 inc/modules/frametester.php svneol=native#text/plain
 inc/modules/guest/.htaccess svneol=native#text/plain
@@ -804,6 +820,16 @@ inc/xml-functions.php svneol=native#text/plain
 /index.php svneol=native#text/plain
 /install.php svneol=native#text/plain
 /js.php svneol=native#text/plain
 /index.php svneol=native#text/plain
 /install.php svneol=native#text/plain
 /js.php svneol=native#text/plain
+js/.js svneol=native#text/javascript
+js/admin-common.js svneol=native#text/javascript
+js/admin-data.js svneol=native#text/javascript
+js/ajax-common.js svneol=native#text/javascript
+js/ajax-loader.js svneol=native#text/javascript
+js/ajax-test.js svneol=native#text/javascript
+js/core-common.js svneol=native#text/javascript
+js/install-common.js svneol=native#text/javascript
+js/install-data.js svneol=native#text/javascript
+js/jquery-ui.custom.js svneol=native#text/javascript
 js/jquery.js svneol=native#text/plain
 js/menu-common.js svneol=native#text/plain
 /lead-confirm.php svneol=native#text/plain
 js/jquery.js svneol=native#text/plain
 js/menu-common.js svneol=native#text/plain
 /lead-confirm.php svneol=native#text/plain
@@ -825,6 +851,11 @@ templates/de/emails/.htaccess svneol=native#text/plain
 templates/de/emails/add-points.tpl svneol=native#text/plain
 templates/de/emails/admin-del_links.tpl svneol=native#text/plain
 templates/de/emails/admin/.htaccess svneol=native#text/plain
 templates/de/emails/add-points.tpl svneol=native#text/plain
 templates/de/emails/admin-del_links.tpl svneol=native#text/plain
 templates/de/emails/admin/.htaccess svneol=native#text/plain
+templates/de/emails/admin/admin_admin_add_all_direct.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_admin_add_all_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_admin_add_all_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_admin_add_single_direct.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_admin_add_single_referral.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_del_mails.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_delete.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_inactive.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_del_mails.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_delete.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_inactive.tpl svneol=native#text/plain
@@ -832,6 +863,9 @@ templates/de/emails/admin/admin_autopurge_points.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_tsks.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_turbo.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_unconfirmed.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_tsks.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_turbo.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_autopurge_unconfirmed.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_beg_direct.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_beg_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_beg_referral.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_coupon.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_coupon_cashed.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_coupon_code.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_coupon.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_coupon_cashed.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_coupon_code.tpl svneol=native#text/plain
@@ -841,13 +875,25 @@ templates/de/emails/admin/admin_del_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_delete_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_earning_added.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_earning_updated.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_delete_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_earning_added.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_earning_updated.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_edit_forced_ads.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_edit_forced_costs.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_edit_points_data.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_edit_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_extension_deactivated.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_edit_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_extension_deactivated.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_forced_campaign_pending_active.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_holiday_deactivated.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_holiday_request.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_holiday_unlock.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_lock_active_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_lock_locked_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_holiday_deactivated.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_holiday_request.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_holiday_unlock.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_lock_active_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_lock_locked_surfbar_urls.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_mailid_okay_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_mailid_okay_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_monthly_beg_direct.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_monthly_beg_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_monthly_beg_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_monthly_bonus_direct.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_monthly_bonus_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_monthly_bonus_referral.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_mydata_notify.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_newsletter_reset.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_order_normal.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_mydata_notify.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_newsletter_reset.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_order_normal.tpl svneol=native#text/plain
@@ -859,7 +905,14 @@ templates/de/emails/admin/admin_rallye_no_notify.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_rallye_notify.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_rallye_purged.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_refback.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_rallye_notify.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_rallye_purged.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_refback.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_refback_direct.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_refback_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_refback_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_referral_bonus_direct.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_referral_bonus_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_referral_bonus_referral.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_register_done.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_register_done.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_register_welcome_direct.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_report_bug.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_reset_password.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_sponsor_change_data.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_report_bug.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_reset_password.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_sponsor_change_data.tpl svneol=native#text/plain
@@ -889,6 +942,7 @@ templates/de/emails/admin/admin_surfbar_url_pending_deleted.tpl svneol=native#te
 templates/de/emails/admin/admin_surfbar_url_pending_rejected.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_reg.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_rejected.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_pending_rejected.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_reg.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_rejected.tpl svneol=native#text/plain
+templates/de/emails/admin/admin_surfbar_url_rejected_pending.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_stopped_continued.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_stopped_deleted.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_stopped_pending.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_stopped_continued.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_stopped_deleted.tpl svneol=native#text/plain
 templates/de/emails/admin/admin_surfbar_url_stopped_pending.tpl svneol=native#text/plain
@@ -932,11 +986,19 @@ templates/de/emails/lock-user.tpl svneol=native#text/plain
 templates/de/emails/lock_sponsor.tpl svneol=native#text/plain
 templates/de/emails/member/.htaccess svneol=native#text/plain
 templates/de/emails/member/member_add_points.tpl svneol=native#text/plain
 templates/de/emails/lock_sponsor.tpl svneol=native#text/plain
 templates/de/emails/member/.htaccess svneol=native#text/plain
 templates/de/emails/member/member_add_points.tpl svneol=native#text/plain
+templates/de/emails/member/member_admin_add_all_direct.tpl svneol=native#text/plain
+templates/de/emails/member/member_admin_add_all_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_admin_add_all_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_admin_add_single_direct.tpl svneol=native#text/plain
+templates/de/emails/member/member_admin_add_single_referral.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_delete.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_inactive.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_points.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_unconfirmed.tpl svneol=native#text/plain
 templates/de/emails/member/member_beg.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_delete.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_inactive.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_points.tpl svneol=native#text/plain
 templates/de/emails/member/member_autopurge_unconfirmed.tpl svneol=native#text/plain
 templates/de/emails/member/member_beg.tpl svneol=native#text/plain
+templates/de/emails/member/member_beg_direct.tpl svneol=native#text/plain
+templates/de/emails/member/member_beg_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_beg_referral.tpl svneol=native#text/plain
 templates/de/emails/member/member_birthday.tpl svneol=native#text/plain
 templates/de/emails/member/member_birthday_confirm.tpl svneol=native#text/plain
 templates/de/emails/member/member_bonus.tpl svneol=native#text/plain
 templates/de/emails/member/member_birthday.tpl svneol=native#text/plain
 templates/de/emails/member/member_birthday_confirm.tpl svneol=native#text/plain
 templates/de/emails/member/member_bonus.tpl svneol=native#text/plain
@@ -951,12 +1013,21 @@ templates/de/emails/member/member_doubler.tpl svneol=native#text/plain
 templates/de/emails/member/member_earning_added.tpl svneol=native#text/plain
 templates/de/emails/member/member_earning_updated.tpl svneol=native#text/plain
 templates/de/emails/member/member_edit_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/member/member_earning_added.tpl svneol=native#text/plain
 templates/de/emails/member/member_earning_updated.tpl svneol=native#text/plain
 templates/de/emails/member/member_edit_surfbar_urls.tpl svneol=native#text/plain
+templates/de/emails/member/member_forced_campaign_pending_active.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_activated.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_removed.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_request.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_unlock.tpl svneol=native#text/plain
 templates/de/emails/member/member_lock_active_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/member/member_lock_locked_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_activated.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_removed.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_request.tpl svneol=native#text/plain
 templates/de/emails/member/member_holiday_unlock.tpl svneol=native#text/plain
 templates/de/emails/member/member_lock_active_surfbar_urls.tpl svneol=native#text/plain
 templates/de/emails/member/member_lock_locked_surfbar_urls.tpl svneol=native#text/plain
+templates/de/emails/member/member_mailid_okay_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_mailid_okay_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_monthly_beg_direct.tpl svneol=native#text/plain
+templates/de/emails/member/member_monthly_beg_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_monthly_beg_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_monthly_bonus_direct.tpl svneol=native#text/plain
+templates/de/emails/member/member_monthly_bonus_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_monthly_bonus_referral.tpl svneol=native#text/plain
 templates/de/emails/member/member_mydata_notify.tpl svneol=native#text/plain
 templates/de/emails/member/member_order_accepted.tpl svneol=native#text/plain
 templates/de/emails/member/member_order_deleted.tpl svneol=native#text/plain
 templates/de/emails/member/member_mydata_notify.tpl svneol=native#text/plain
 templates/de/emails/member/member_order_accepted.tpl svneol=native#text/plain
 templates/de/emails/member/member_order_deleted.tpl svneol=native#text/plain
@@ -974,6 +1045,13 @@ templates/de/emails/member/member_rallye_expired_other.tpl svneol=native#text/pl
 templates/de/emails/member/member_rallye_expired_silver.tpl svneol=native#text/plain
 templates/de/emails/member/member_rallye_notify.tpl svneol=native#text/plain
 templates/de/emails/member/member_refback.tpl svneol=native#text/plain
 templates/de/emails/member/member_rallye_expired_silver.tpl svneol=native#text/plain
 templates/de/emails/member/member_rallye_notify.tpl svneol=native#text/plain
 templates/de/emails/member/member_refback.tpl svneol=native#text/plain
+templates/de/emails/member/member_refback_direct.tpl svneol=native#text/plain
+templates/de/emails/member/member_refback_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_refback_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_referral_bonus_direct.tpl svneol=native#text/plain
+templates/de/emails/member/member_referral_bonus_ref_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_referral_bonus_referral.tpl svneol=native#text/plain
+templates/de/emails/member/member_register_welcome_direct.tpl svneol=native#text/plain
 templates/de/emails/member/member_stats_bonus.tpl svneol=native#text/plain
 templates/de/emails/member/member_sub_points.tpl svneol=native#text/plain
 templates/de/emails/member/member_support-ordr.tpl svneol=native#text/plain
 templates/de/emails/member/member_stats_bonus.tpl svneol=native#text/plain
 templates/de/emails/member/member_sub_points.tpl svneol=native#text/plain
 templates/de/emails/member/member_support-ordr.tpl svneol=native#text/plain
@@ -997,6 +1075,7 @@ templates/de/emails/member/member_surfbar_url_pending_deleted.tpl svneol=native#
 templates/de/emails/member/member_surfbar_url_pending_rejected.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_reg.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_rejected.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_pending_rejected.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_reg.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_rejected.tpl svneol=native#text/plain
+templates/de/emails/member/member_surfbar_url_rejected_pending.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_stopped_continued.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_stopped_deleted.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_stopped_pending.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_stopped_continued.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_stopped_deleted.tpl svneol=native#text/plain
 templates/de/emails/member/member_surfbar_url_stopped_pending.tpl svneol=native#text/plain
@@ -1030,7 +1109,9 @@ templates/de/emails/sponsor/sponsor_add_points.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_change_data.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_change_email.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_confirm.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_change_data.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_change_email.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_confirm.tpl svneol=native#text/plain
+templates/de/emails/sponsor/sponsor_deleted.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_email.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_email.tpl svneol=native#text/plain
+templates/de/emails/sponsor/sponsor_locked.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_lost.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_pending.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_ref_notify.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_lost.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_pending.tpl svneol=native#text/plain
 templates/de/emails/sponsor/sponsor_ref_notify.tpl svneol=native#text/plain
@@ -1051,6 +1132,8 @@ templates/de/html/admin/admin_add_config_network_type.tpl svneol=native#text/pla
 templates/de/html/admin/admin_add_config_network_type_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_country.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_forced_ad.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_config_network_type_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_country.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_forced_ad.tpl svneol=native#text/plain
+templates/de/html/admin/admin_add_forced_campaign.tpl svneol=native#text/plain
+templates/de/html/admin/admin_add_forced_costs.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_guest_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_max.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_member_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_guest_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_max.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_member_menu.tpl svneol=native#text/plain
@@ -1063,6 +1146,7 @@ templates/de/html/admin/admin_add_network_type.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_network_vcheck_param.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_payment.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_payout.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_network_vcheck_param.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_payment.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_payout.tpl svneol=native#text/plain
+templates/de/html/admin/admin_add_point_accounts.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_points.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_points_all.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_rallye.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_points.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_points_all.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_rallye.tpl svneol=native#text/plain
@@ -1073,6 +1157,7 @@ templates/de/html/admin/admin_add_sponsor.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_sponsor_already.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_sponsor_paytype.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_surfbar_url.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_sponsor_already.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_sponsor_paytype.tpl svneol=native#text/plain
 templates/de/html/admin/admin_add_surfbar_url.tpl svneol=native#text/plain
+templates/de/html/admin/admin_add_tester_user.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_contct_default.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_contct_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_contct_select.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_contct_default.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_contct_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_contct_select.tpl svneol=native#text/plain
@@ -1081,6 +1166,7 @@ templates/de/html/admin/admin_admins_mails_edit_form.tpl svneol=native#text/plai
 templates/de/html/admin/admin_admins_mails_edit_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_mails_list.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_mails_list_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_mails_edit_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_mails_list.tpl svneol=native#text/plain
 templates/de/html/admin/admin_admins_mails_list_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_ajax_main.tpl svneol=native#text/plain
 templates/de/html/admin/admin_cache_stats.tpl svneol=native#text/plain
 templates/de/html/admin/admin_config_ svneol=native#text/plain
 templates/de/html/admin/admin_config_active.tpl svneol=native#text/plain
 templates/de/html/admin/admin_cache_stats.tpl svneol=native#text/plain
 templates/de/html/admin/admin_config_ svneol=native#text/plain
 templates/de/html/admin/admin_config_active.tpl svneol=native#text/plain
@@ -1180,6 +1266,10 @@ templates/de/html/admin/admin_delete_email_max_rec.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_email_max_rec_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_email_normal.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_email_notify.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_email_max_rec_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_email_normal.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_email_notify.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_forced_ads.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_forced_ads_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_forced_costs.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_forced_costs_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_guest_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_guest_menu_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_member_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_guest_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_guest_menu_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_member_menu.tpl svneol=native#text/plain
@@ -1196,6 +1286,10 @@ templates/de/html/admin/admin_delete_payments.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_payments_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_payouts.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_payouts_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_payments_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_payouts.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_payouts_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_rallye_prices.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_rallye_prices_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_rallyes.tpl svneol=native#text/plain
+templates/de/html/admin/admin_delete_rallyes_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_reflevel.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_reflevel_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_sponsor.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_reflevel.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_reflevel_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_delete_sponsor.tpl svneol=native#text/plain
@@ -1224,6 +1318,10 @@ templates/de/html/admin/admin_edit_email_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_email_select.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_forced_ads.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_forced_ads_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_email_select.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_forced_ads.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_forced_ads_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_forced_campaigns.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_forced_campaigns_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_forced_costs.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_forced_costs_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_guest_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_guest_menu_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_guest_menu_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_guest_menu.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_guest_menu_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_guest_menu_row.tpl svneol=native#text/plain
@@ -1243,6 +1341,10 @@ templates/de/html/admin/admin_edit_payments.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_payments_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_payouts.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_payouts_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_payments_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_payouts.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_payouts_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_points_data.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_points_data_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_rallye_prices.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_rallye_prices_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_rallyes.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_rallyes_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_refbanner.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_rallyes.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_rallyes_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_refbanner.tpl svneol=native#text/plain
@@ -1252,6 +1354,8 @@ templates/de/html/admin/admin_edit_reflevel_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_sponsor_add_points.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_sponsor_edit.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_sponsor_sub_points.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_sponsor_add_points.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_sponsor_edit.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_sponsor_sub_points.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_surfbar_actions.tpl svneol=native#text/plain
+templates/de/html/admin/admin_edit_surfbar_actions_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_surfbar_urls.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_surfbar_urls_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_theme.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_surfbar_urls.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_surfbar_urls_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_edit_theme.tpl svneol=native#text/plain
@@ -1329,6 +1433,10 @@ templates/de/html/admin/admin_list_emails.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_emails_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_forced_ads.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_forced_ads_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_emails_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_forced_ads.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_forced_ads_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_forced_campaigns.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_forced_campaigns_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_forced_costs.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_forced_costs_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_holiday.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_holiday_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_home.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_holiday.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_holiday_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_home.tpl svneol=native#text/plain
@@ -1371,10 +1479,14 @@ templates/de/html/admin/admin_list_payouts.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_payouts_banner.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_payouts_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_payouts_txt.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_payouts_banner.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_payouts_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_payouts_txt.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_points_accounts.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_points_accounts_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_primera_main.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_primera_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_prices.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_prices_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_primera_main.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_primera_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_prices.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_prices_row.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_rallye_prices_simple.tpl svneol=native#text/plain
+templates/de/html/admin/admin_list_rallye_prices_simple_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_usr.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_usr_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallyes.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_usr.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallye_usr_row.tpl svneol=native#text/plain
 templates/de/html/admin/admin_list_rallyes.tpl svneol=native#text/plain
@@ -1481,6 +1593,7 @@ templates/de/html/admin/admin_payout_add_new.tpl svneol=native#text/plain
 templates/de/html/admin/admin_payout_failed_transfer.tpl svneol=native#text/plain
 templates/de/html/admin/admin_payout_overview_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_payout_reject_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_payout_failed_transfer.tpl svneol=native#text/plain
 templates/de/html/admin/admin_payout_overview_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_payout_reject_form.tpl svneol=native#text/plain
+templates/de/html/admin/admin_receive_table.tpl svneol=native#text/plain
 templates/de/html/admin/admin_reg_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_repair_lang.tpl svneol=native#text/plain
 templates/de/html/admin/admin_repair_lang_row_404.tpl svneol=native#text/plain
 templates/de/html/admin/admin_reg_form.tpl svneol=native#text/plain
 templates/de/html/admin/admin_repair_lang.tpl svneol=native#text/plain
 templates/de/html/admin/admin_repair_lang_row_404.tpl svneol=native#text/plain
@@ -1526,6 +1639,7 @@ templates/de/html/admin/admin_welcome.tpl svneol=native#text/plain
 templates/de/html/admin/admin_welcome_admins.tpl svneol=native#text/plain
 templates/de/html/admin/admin_yoomedia_error.tpl svneol=native#text/plain
 templates/de/html/agb.tpl svneol=native#text/plain
 templates/de/html/admin/admin_welcome_admins.tpl svneol=native#text/plain
 templates/de/html/admin/admin_yoomedia_error.tpl svneol=native#text/plain
 templates/de/html/agb.tpl svneol=native#text/plain
+templates/de/html/ajax_test_passed.tpl svneol=native#text/plain
 templates/de/html/app_die_message.tpl svneol=native#text/plain
 templates/de/html/beg/.htaccess svneol=native#text/plain
 templates/de/html/beg/beg_banner.tpl svneol=native#text/plain
 templates/de/html/app_die_message.tpl svneol=native#text/plain
 templates/de/html/beg/.htaccess svneol=native#text/plain
 templates/de/html/beg/beg_banner.tpl svneol=native#text/plain
@@ -1570,6 +1684,7 @@ templates/de/html/ext/ext_clickbanner.tpl svneol=native#text/plain
 templates/de/html/ext/ext_country.tpl svneol=native#text/plain
 templates/de/html/ext/ext_coupon.tpl svneol=native#text/plain
 templates/de/html/ext/ext_cprping.tpl svneol=native#text/plain
 templates/de/html/ext/ext_country.tpl svneol=native#text/plain
 templates/de/html/ext/ext_coupon.tpl svneol=native#text/plain
 templates/de/html/ext/ext_cprping.tpl svneol=native#text/plain
+templates/de/html/ext/ext_currency.tpl svneol=native#text/plain
 templates/de/html/ext/ext_debug.tpl svneol=native#text/plain
 templates/de/html/ext/ext_demo.tpl svneol=native#text/plain
 templates/de/html/ext/ext_doubler.tpl svneol=native#text/plain
 templates/de/html/ext/ext_debug.tpl svneol=native#text/plain
 templates/de/html/ext/ext_demo.tpl svneol=native#text/plain
 templates/de/html/ext/ext_doubler.tpl svneol=native#text/plain
@@ -1661,6 +1776,7 @@ templates/de/html/guest/guest_list_active_row_none.tpl svneol=native#text/plain
 templates/de/html/guest/guest_list_rallye.tpl svneol=native#text/plain
 templates/de/html/guest/guest_list_rallye_row.tpl svneol=native#text/plain
 templates/de/html/guest/guest_login.tpl svneol=native#text/plain
 templates/de/html/guest/guest_list_rallye.tpl svneol=native#text/plain
 templates/de/html/guest/guest_list_rallye_row.tpl svneol=native#text/plain
 templates/de/html/guest/guest_login.tpl svneol=native#text/plain
+templates/de/html/guest/guest_login_error_message.tpl svneol=native#text/plain
 templates/de/html/guest/guest_menu_bottom.tpl svneol=native#text/plain
 templates/de/html/guest/guest_menu_content.tpl svneol=native#text/plain
 templates/de/html/guest/guest_menu_row.tpl svneol=native#text/plain
 templates/de/html/guest/guest_menu_bottom.tpl svneol=native#text/plain
 templates/de/html/guest/guest_menu_content.tpl svneol=native#text/plain
 templates/de/html/guest/guest_menu_row.tpl svneol=native#text/plain
@@ -1708,15 +1824,31 @@ templates/de/html/install/install_fatal_errors.tpl svneol=native#text/plain
 templates/de/html/install/install_fatal_row.tpl svneol=native#text/plain
 templates/de/html/install/install_fatal_table.tpl svneol=native#text/plain
 templates/de/html/install/install_finished.tpl svneol=native#text/plain
 templates/de/html/install/install_fatal_row.tpl svneol=native#text/plain
 templates/de/html/install/install_fatal_table.tpl svneol=native#text/plain
 templates/de/html/install/install_finished.tpl svneol=native#text/plain
+templates/de/html/install/install_footer.tpl svneol=native#text/plain
 templates/de/html/install/install_main.tpl svneol=native#text/plain
 templates/de/html/install/install_main.tpl svneol=native#text/plain
+templates/de/html/install/install_main_ajax.tpl svneol=native#text/plain
+templates/de/html/install/install_main_plain.tpl svneol=native#text/plain
+templates/de/html/install/install_menu.tpl svneol=native#text/plain
 templates/de/html/install/install_page1.tpl svneol=native#text/plain
 templates/de/html/install/install_page2.tpl svneol=native#text/plain
 templates/de/html/install/install_page3.tpl svneol=native#text/plain
 templates/de/html/install/install_page5.tpl svneol=native#text/plain
 templates/de/html/install/install_page1.tpl svneol=native#text/plain
 templates/de/html/install/install_page2.tpl svneol=native#text/plain
 templates/de/html/install/install_page3.tpl svneol=native#text/plain
 templates/de/html/install/install_page5.tpl svneol=native#text/plain
+templates/de/html/install/install_page_base_data.tpl svneol=native#text/plain
+templates/de/html/install/install_page_database_config.tpl svneol=native#text/plain
+templates/de/html/install/install_page_init.tpl svneol=native#text/plain
+templates/de/html/install/install_page_other_config.tpl svneol=native#text/plain
+templates/de/html/install/install_page_smtp_config.tpl svneol=native#text/plain
+templates/de/html/install/install_page_welcome.tpl svneol=native#text/plain
+templates/de/html/install/install_selector.tpl svneol=native#text/plain
+templates/de/html/install/install_warning_next.tpl svneol=native#text/plain
+templates/de/html/install/install_warning_previous.tpl svneol=native#text/plain
+templates/de/html/install/install_warning_tab.tpl svneol=native#text/plain
 templates/de/html/install/install_welcome.tpl svneol=native#text/plain
 templates/de/html/js/.htaccess svneol=native#text/plain
 templates/de/html/install/install_welcome.tpl svneol=native#text/plain
 templates/de/html/js/.htaccess svneol=native#text/plain
+templates/de/html/js/js_admin_ajax.tpl svneol=native#text/plain
 templates/de/html/js/js_admin_menu_onclick.tpl svneol=native#text/plain
 templates/de/html/js/js_cookies_disabled.tpl svneol=native#text/plain
 templates/de/html/js/js_admin_menu_onclick.tpl svneol=native#text/plain
 templates/de/html/js/js_cookies_disabled.tpl svneol=native#text/plain
+templates/de/html/js/js_install_ajax.tpl svneol=native#text/plain
 templates/de/html/js/js_jquery.tpl svneol=native#text/plain
 templates/de/html/js/js_order_send.tpl svneol=native#text/plain
 templates/de/html/js/js_surfbar_frame_top.tpl svneol=native#text/plain
 templates/de/html/js/js_jquery.tpl svneol=native#text/plain
 templates/de/html/js/js_order_send.tpl svneol=native#text/plain
 templates/de/html/js/js_surfbar_frame_top.tpl svneol=native#text/plain
@@ -1758,8 +1890,10 @@ templates/de/html/member/member_book_surfbar_dynamic.tpl svneol=native#text/plai
 templates/de/html/member/member_book_surfbar_static.tpl svneol=native#text/plain
 templates/de/html/member/member_cash_coupon.tpl svneol=native#text/plain
 templates/de/html/member/member_cat_row.tpl svneol=native#text/plain
 templates/de/html/member/member_book_surfbar_static.tpl svneol=native#text/plain
 templates/de/html/member/member_cash_coupon.tpl svneol=native#text/plain
 templates/de/html/member/member_cat_row.tpl svneol=native#text/plain
+templates/de/html/member/member_cats.tpl svneol=native#text/plain
 templates/de/html/member/member_cats_footer.tpl svneol=native#text/plain
 templates/de/html/member/member_cats_header.tpl svneol=native#text/plain
 templates/de/html/member/member_cats_footer.tpl svneol=native#text/plain
 templates/de/html/member/member_cats_header.tpl svneol=native#text/plain
+templates/de/html/member/member_cats_row.tpl svneol=native#text/plain
 templates/de/html/member/member_content_right.tpl svneol=native#text/plain
 templates/de/html/member/member_doubler.tpl svneol=native#text/plain
 templates/de/html/member/member_doubler_list.tpl svneol=native#text/plain
 templates/de/html/member/member_content_right.tpl svneol=native#text/plain
 templates/de/html/member/member_doubler.tpl svneol=native#text/plain
 templates/de/html/member/member_doubler_list.tpl svneol=native#text/plain
@@ -1797,6 +1931,7 @@ templates/de/html/member/member_list_reflinks_row.tpl svneol=native#text/plain
 templates/de/html/member/member_list_surfbar.tpl svneol=native#text/plain
 templates/de/html/member/member_list_surfbar_form.tpl svneol=native#text/plain
 templates/de/html/member/member_list_surfbar_row.tpl svneol=native#text/plain
 templates/de/html/member/member_list_surfbar.tpl svneol=native#text/plain
 templates/de/html/member/member_list_surfbar_form.tpl svneol=native#text/plain
 templates/de/html/member/member_list_surfbar_row.tpl svneol=native#text/plain
+templates/de/html/member/member_list_surfbar_table.tpl svneol=native#text/plain
 templates/de/html/member/member_login_js.tpl svneol=native#text/plain
 templates/de/html/member/member_mail_bonus_deleted.tpl svneol=native#text/plain
 templates/de/html/member/member_mail_bonus_new.tpl svneol=native#text/plain
 templates/de/html/member/member_login_js.tpl svneol=native#text/plain
 templates/de/html/member/member_mail_bonus_deleted.tpl svneol=native#text/plain
 templates/de/html/member/member_mail_bonus_new.tpl svneol=native#text/plain
@@ -1824,10 +1959,15 @@ templates/de/html/member/member_order-zip1.tpl svneol=native#text/plain
 templates/de/html/member/member_order-zip2.tpl svneol=native#text/plain
 templates/de/html/member/member_order_back.tpl svneol=native#text/plain
 templates/de/html/member/member_order_frametester.tpl svneol=native#text/plain
 templates/de/html/member/member_order-zip2.tpl svneol=native#text/plain
 templates/de/html/member/member_order_back.tpl svneol=native#text/plain
 templates/de/html/member/member_order_frametester.tpl svneol=native#text/plain
+templates/de/html/member/member_order_html_ext.tpl svneol=native#text/plain
+templates/de/html/member/member_order_html_intro.tpl svneol=native#text/plain
 templates/de/html/member/member_order_page1.tpl svneol=native#text/plain
 templates/de/html/member/member_order_page2.tpl svneol=native#text/plain
 templates/de/html/member/member_order_points.tpl svneol=native#text/plain
 templates/de/html/member/member_order_send.tpl svneol=native#text/plain
 templates/de/html/member/member_order_page1.tpl svneol=native#text/plain
 templates/de/html/member/member_order_page2.tpl svneol=native#text/plain
 templates/de/html/member/member_order_points.tpl svneol=native#text/plain
 templates/de/html/member/member_order_send.tpl svneol=native#text/plain
+templates/de/html/member/member_order_thanks.tpl svneol=native#text/plain
+templates/de/html/member/member_order_zip1.tpl svneol=native#text/plain
+templates/de/html/member/member_order_zip2.tpl svneol=native#text/plain
 templates/de/html/member/member_payout.tpl svneol=native#text/plain
 templates/de/html/member/member_payout_form.tpl svneol=native#text/plain
 templates/de/html/member/member_payout_form_banner.tpl svneol=native#text/plain
 templates/de/html/member/member_payout.tpl svneol=native#text/plain
 templates/de/html/member/member_payout_form.tpl svneol=native#text/plain
 templates/de/html/member/member_payout_form_banner.tpl svneol=native#text/plain
@@ -1942,14 +2082,31 @@ templates/de/html/runtime_fatal_table.tpl svneol=native#text/plain
 templates/de/html/select/.htaccess svneol=native#text/plain
 templates/de/html/select/select_admins_box.tpl svneol=native#text/plain
 templates/de/html/select/select_admins_option.tpl svneol=native#text/plain
 templates/de/html/select/.htaccess svneol=native#text/plain
 templates/de/html/select/select_admins_box.tpl svneol=native#text/plain
 templates/de/html/select/select_admins_option.tpl svneol=native#text/plain
+templates/de/html/select/select_forced_ads_id_popup_box.tpl svneol=native#text/plain
+templates/de/html/select/select_forced_ads_id_popup_option.tpl svneol=native#text/plain
+templates/de/html/select/select_forced_ads_id_textlink_option.tpl svneol=native#text/plain
 templates/de/html/select/select_forced_ads_type_box.tpl svneol=native#text/plain
 templates/de/html/select/select_forced_ads_type_option.tpl svneol=native#text/plain
 templates/de/html/select/select_forced_ads_type_box.tpl svneol=native#text/plain
 templates/de/html/select/select_forced_ads_type_option.tpl svneol=native#text/plain
+templates/de/html/select/select_forced_costs_id_box.tpl svneol=native#text/plain
+templates/de/html/select/select_forced_costs_id_option.tpl svneol=native#text/plain
+templates/de/html/select/select_forced_costs_visibility_box.tpl svneol=native#text/plain
+templates/de/html/select/select_forced_costs_visibility_option.tpl svneol=native#text/plain
 templates/de/html/select/select_network_box.tpl svneol=native#text/plain
 templates/de/html/select/select_network_option.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_box.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_option.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_title_box.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_title_option.tpl svneol=native#text/plain
 templates/de/html/select/select_network_box.tpl svneol=native#text/plain
 templates/de/html/select/select_network_option.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_box.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_option.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_title_box.tpl svneol=native#text/plain
 templates/de/html/select/select_network_type_title_option.tpl svneol=native#text/plain
+templates/de/html/select/select_points_locked_mode_box.tpl svneol=native#text/plain
+templates/de/html/select/select_points_locked_mode_option.tpl svneol=native#text/plain
+templates/de/html/select/select_points_payment_method_box.tpl svneol=native#text/plain
+templates/de/html/select/select_points_payment_method_option.tpl svneol=native#text/plain
+templates/de/html/select/select_surfbar_actions_action_box.tpl svneol=native#text/plain
+templates/de/html/select/select_surfbar_actions_action_option.tpl svneol=native#text/plain
+templates/de/html/select/select_surfbar_actions_new_status_box.tpl svneol=native#text/plain
+templates/de/html/select/select_surfbar_actions_new_status_option.tpl svneol=native#text/plain
+templates/de/html/select/select_surfbar_actions_status_box.tpl svneol=native#text/plain
+templates/de/html/select/select_surfbar_actions_status_option.tpl svneol=native#text/plain
 templates/de/html/show_bonus.tpl svneol=native#text/plain
 templates/de/html/show_bonus_footer.tpl svneol=native#text/plain
 templates/de/html/show_bonus_header.tpl svneol=native#text/plain
 templates/de/html/show_bonus.tpl svneol=native#text/plain
 templates/de/html/show_bonus_footer.tpl svneol=native#text/plain
 templates/de/html/show_bonus_header.tpl svneol=native#text/plain
@@ -2027,6 +2184,7 @@ theme/org/images/menus/bottom.jpg -text svneol=unset#image/jpeg
 theme/org/images/menus/row.jpg -text svneol=unset#image/jpeg
 theme/org/images/menus/title.jpg -text svneol=unset#image/jpeg
 theme/org/theme.php svneol=native#text/plain
 theme/org/images/menus/row.jpg -text svneol=unset#image/jpeg
 theme/org/images/menus/title.jpg -text svneol=unset#image/jpeg
 theme/org/theme.php svneol=native#text/plain
+theme/schleuder/css/ajax.css -text
 theme/schleuder/images/code_bg.jpg -text svneol=unset#image/jpeg
 theme/schleuder/images/code_bg.png -text svneol=unset#image/png
 theme/schleuder/images/help/bullet.png -text svneol=unset#image/png
 theme/schleuder/images/code_bg.jpg -text svneol=unset#image/jpeg
 theme/schleuder/images/code_bg.png -text svneol=unset#image/png
 theme/schleuder/images/help/bullet.png -text svneol=unset#image/png
index 1fd2bc7691b81367c497aea34bd59dcd31df4e7e..5449e0a0f9ad3a92def32f93ac57c424bfc49448 100644 (file)
--- a/.htaccess
+++ b/.htaccess
@@ -8,5 +8,7 @@ DirectoryIndex index.php
        RewriteRule ^cms/(.*)$                                modules.php?module=$1                 [L]
        # @TODO When ext-imprint is finished RewriteRule ^cms/index/wht/impressum$                 modules.php?module=index&what=imprint [L]
        # @TODO When ext-imprint is finished RewriteRule ^modules.php?module=index&what=impressum$ modules.php?module=index&what=imprint [L]
        RewriteRule ^cms/(.*)$                                modules.php?module=$1                 [L]
        # @TODO When ext-imprint is finished RewriteRule ^cms/index/wht/impressum$                 modules.php?module=index&what=imprint [L]
        # @TODO When ext-imprint is finished RewriteRule ^modules.php?module=index&what=impressum$ modules.php?module=index&what=imprint [L]
+       # @TODO When ext-terms is finished RewriteRule ^cms/index/wht/agb$                 modules.php?module=index&what=terms [L]
+       # @TODO When ext-terms is finished RewriteRule ^modules.php?module=index&what=agb$ modules.php?module=index&what=terms [L]
        # @TODO When ext-terms is finished RewriteRule ^agb.php$ modules.php?module=index&what=terms [L]
 </IfModule>
        # @TODO When ext-terms is finished RewriteRule ^agb.php$ modules.php?module=index&what=terms [L]
 </IfModule>
index 1e91da54d7bc46f5b261c831e2f3713029dbe35b..90ff66e9e1f4523b82f655e5899cecbeb067fce2 100644 (file)
@@ -2,7 +2,7 @@
 Mailer-Project
 -------------------------------
 Copyright (c) 2003 - 2009 by Roland Haeder
 Mailer-Project
 -------------------------------
 Copyright (c) 2003 - 2009 by Roland Haeder
-Copyright (c) 2009 - 2011 by Mailer Developer Team
+Copyright (c) 2009 - 2012 by Mailer Developer Team
 For more information visit: http://mxchange.org
 
 This program is free software; you can redistribute it and/or modify
 For more information visit: http://mxchange.org
 
 This program is free software; you can redistribute it and/or modify
@@ -21,10 +21,10 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
 MA  02110-1301  USA
 
 This applies to all files from root directory except files in DOCS,
 MA  02110-1301  USA
 
 This applies to all files from root directory except files in DOCS,
-img, install and templates directories; js/jquery.js and all
-Cascading Style Sheet files if not otherwise explicitly noted.
+img, install and templates directories; js/jquery.js, js/jquery-ui.custom.js
+and all Cascading Style Sheet files if not otherwise explicitly noted.
 
 
-The GNU General Public License can be found at DOCS/LICENSE.txt
+The GNU General Public License Version 2 can be found at DOCS/LICENSE-GPL2.txt.
 
 -------------------------------
 js/jquery.js
 
 -------------------------------
 js/jquery.js
@@ -42,5 +42,15 @@ Copyright 2011, The Dojo Foundation
 Released under the MIT, BSD, and GPL Licenses.
 
 Date: Thu Jun 30 14:16:56 2011 -0400
 Released under the MIT, BSD, and GPL Licenses.
 
 Date: Thu Jun 30 14:16:56 2011 -0400
+-------------------------------
+js/jquery-ui.custom.js
+-------------------------------
+jQuery UI 1.8.16
+
+Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+Dual licensed under the MIT or GPL Version 2 licenses.
+http://jquery.org/license
+
+http://docs.jquery.com/UI
 
 [EOF]
 
 [EOF]
index e553c8b9e6a131fb51ef32418c6c83a3e42404ff..d6a875b5875a54d0e7ebd85d8c9c5d2cc8cae4a1 100644 (file)
@@ -25,7 +25,7 @@ DOXYFILE_ENCODING      = UTF-8
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
 # by quotes) that should identify the project.
 
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded
 # by quotes) that should identify the project.
 
-PROJECT_NAME           = MXChangeMail-Exchange
+PROJECT_NAME           = Mailer-Project
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number.
 # This could be handy for archiving the generated documentation or
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number.
 # This could be handy for archiving the generated documentation or
@@ -47,7 +47,7 @@ OUTPUT_DIRECTORY       = /home/quix0r/MyProjects/mailer/branches/0.2.1-FINAL/DOC
 # source files, where putting all generated files in the same directory would
 # otherwise cause performance problems for the file system.
 
 # source files, where putting all generated files in the same directory would
 # otherwise cause performance problems for the file system.
 
-CREATE_SUBDIRS         = NO
+CREATE_SUBDIRS         = YES
 
 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
 # documentation generated by doxygen is written. Doxygen will use this
 
 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
 # documentation generated by doxygen is written. Doxygen will use this
diff --git a/DOCS/JQUERY-AUTHORS.txt b/DOCS/JQUERY-AUTHORS.txt
new file mode 100644 (file)
index 0000000..b216865
--- /dev/null
@@ -0,0 +1,30 @@
+jQuery UI Authors (http://jqueryui.com/about)
+
+This software consists of voluntary contributions made by many
+individuals. For exact contribution history, see the revision history
+and logs, available at http://github.com/jquery/jquery-ui
+
+Brandon Aaron
+Paul Bakaus (paulbakaus.com)
+David Bolter
+Rich Caloggero
+Chi Cheng (cloudream@gmail.com)
+Colin Clark (http://colin.atrc.utoronto.ca/)
+Michelle D'Souza
+Aaron Eisenberger (aaronchi@gmail.com)
+Ariel Flesler
+Bohdan Ganicky
+Scott González
+Marc Grabanski (m@marcgrabanski.com)
+Klaus Hartl (stilbuero.de)
+Scott Jehl
+Cody Lindley
+Eduardo Lundgren (eduardolundgren@gmail.com)
+Todd Parker
+John Resig
+Patty Toland
+Ca-Phun Ung (yelotofu.com)
+Keith Wood (kbwood@virginbroadband.com.au)
+Maggie Costello Wachs
+Richard D. Worth (rdworth.org)
+Jörn Zaefferer (bassistance.de)
diff --git a/DOCS/LICENSE-GPL2.txt b/DOCS/LICENSE-GPL2.txt
new file mode 100644 (file)
index 0000000..d511905
--- /dev/null
@@ -0,0 +1,339 @@
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
index d511905c1647a1e311e8b20d5930a37a9c2531cd..84d1ed3b8c770f702d44f3f65fc969cf97cfed41 100644 (file)
@@ -1,339 +1 @@
-                   GNU GENERAL PUBLIC LICENSE
-                      Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                           Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Lesser General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                   GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-                           NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-                    END OF TERMS AND CONDITIONS
-
-           How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License along
-    with this program; if not, write to the Free Software Foundation, Inc.,
-    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.
+@DEPRECATED
index 8d5ec0983d8ed0f8a3020b91bde37780659bdd2d..dc73f009438eb02d75a7127df68c2470063a1282 100644 (file)
@@ -1,12 +1,15 @@
-### WARNING: THIS FILE IS AUTO-GENERATED BY ./DOCS/todo-builder.sh (uid=/user=quix0r) ###
+### WARNING: THIS FILE IS AUTO-GENERATED BY ../../contrib/todo-builder.sh (uid=/user=quix0r) ###
 ### DO NOT EDIT THIS FILE. ###
 ./autoreg.php:58:// @TODO Add processing of request here
 ./beg.php:175:                 // @TODO Opps, what is missing here???
 ./inc/classes/cachesystem.class.php:510:       // @TODO Add support for more types which break in last else-block
 ### DO NOT EDIT THIS FILE. ###
 ./autoreg.php:58:// @TODO Add processing of request here
 ./beg.php:175:                 // @TODO Opps, what is missing here???
 ./inc/classes/cachesystem.class.php:510:       // @TODO Add support for more types which break in last else-block
-./inc/config-functions.php:138:        // @TODO Make this all better... :-/
+./inc/config-functions.php:137:        // @TODO Make this all better... :-/
+./inc/config-functions.php:313:                                        // @TODO Call setConfigEntry() somehow
+./inc/config-functions.php:341:                // @TODO Call setConfigEntry() somehow
 ./inc/daily/daily_beg.php:52:// @TODO This should be converted in a daily beg rallye
 ./inc/daily/daily_beg.php:52:// @TODO This should be converted in a daily beg rallye
-./inc/daily/daily_birthday.php:96:                     // @TODO 4 is hard-coded here, should we move it out in config?
-./inc/expression-functions.php:166:// @TODO FILTER_COMPILE_CONFIG does not handle call-back functions so we handle it here again
+./inc/daily/daily_birthday.php:99:                     // @TODO 4 is hard-coded here, should we move it out in config?
+./inc/email-functions.php:109: * @TODO Rewrite this to an extension 'smtp'
+./inc/expression-functions.php:170:// @TODO FILTER_COMPILE_CONFIG does not handle call-back functions so we handle it here again
 ./inc/expression-functions.php:46:     // @TODO is escapeQuotes() enougth for strings with single/double quotes?
 ./inc/extensions/ext-html_mail.php:136:                // @TODO Move these arrays into config
 ./inc/extensions/ext-menu.php:52:              // @TODO Convert menu-Id to one coding-standard. admin(edit|_add) => admin_menu_(edit|add), mem(edit|_add) => (edit|add)_(admin|guest|member)_menu
 ./inc/expression-functions.php:46:     // @TODO is escapeQuotes() enougth for strings with single/double quotes?
 ./inc/extensions/ext-html_mail.php:136:                // @TODO Move these arrays into config
 ./inc/extensions/ext-menu.php:52:              // @TODO Convert menu-Id to one coding-standard. admin(edit|_add) => admin_menu_(edit|add), mem(edit|_add) => (edit|add)_(admin|guest|member)_menu
 ./inc/extensions/ext-network.php:42: * @TODO Yoo!Media: What is LayerAd compared to Layer click?            *
 ./inc/extensions/ext-network.php:99:           // @TODO network_type_handler is an internal name and needs documentation
 ./inc/extensions/ext-newsletter.php:218:               // @TODO Move these into configuration
 ./inc/extensions/ext-network.php:42: * @TODO Yoo!Media: What is LayerAd compared to Layer click?            *
 ./inc/extensions/ext-network.php:99:           // @TODO network_type_handler is an internal name and needs documentation
 ./inc/extensions/ext-newsletter.php:218:               // @TODO Move these into configuration
-./inc/extensions/ext-order.php:358:            // @TODO This should be moved out to inc/daily/
-./inc/extensions/ext-rallye.php:341:           // @TODO Move this code into a hook
+./inc/extensions/ext-order.php:389:            // @TODO This should be moved out to inc/daily/
+./inc/extensions/ext-rallye.php:345:           // @TODO Move this code into a hook
 ./inc/extensions/ext-rallye.php:94:            // @TODO Fix config_rallye_prices to list_rallye_prices
 ./inc/extensions/ext-yoomedia.php:121:         // @TODO Can this be moved into a database table?
 ./inc/extensions/ext-yoomedia.php:54:// @TODO Only deprecated when 'ext-network' is ready! setExtensionDeprecated('Y');
 ./inc/extensions/ext-rallye.php:94:            // @TODO Fix config_rallye_prices to list_rallye_prices
 ./inc/extensions/ext-yoomedia.php:121:         // @TODO Can this be moved into a database table?
 ./inc/extensions/ext-yoomedia.php:54:// @TODO Only deprecated when 'ext-network' is ready! setExtensionDeprecated('Y');
-./inc/extensions-functions.php:1944:// @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable'
-./inc/extensions-functions.php:423:// @TODO Change from ext_id to ext_name (not just even the variable! ;-) )
-./inc/extensions-functions.php:560:            // @TODO Extension is loaded, what next?
+./inc/extensions-functions.php:1991:// @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable'
+./inc/extensions-functions.php:420:    // @TODO This redirect is still needed to register sql_patches! Please try to avoid it
+./inc/extensions-functions.php:436:// @TODO Change from ext_id to ext_name (not just even the variable! ;-) )
+./inc/extensions-functions.php:576:            // @TODO Extension is loaded, what next?
 ./inc/filter/bonus_filter.php:56:              // @TODO This query isn't right, it will only update if the user was for a longer time away!
 ./inc/filter/bonus_filter.php:56:              // @TODO This query isn't right, it will only update if the user was for a longer time away!
-./inc/filter/cache_filter.php:92:              // @TODO This should be rewritten not to load the cache file for just checking if it is there for save removal.
+./inc/filter/cache_filter.php:94:              // @TODO This should be rewritten not to load the cache file for just checking if it is there for save removal.
 ./inc/filter/forced_filter.php:73:             // @TODO This part is unfinished
 ./inc/filter/forced_filter.php:73:             // @TODO This part is unfinished
-./inc/functions.php:1197:                      // @TODO Move this SQL code into a function, let's say 'getTimestampFromPoolId($id) ?
-./inc/functions.php:1285:                      // @TODO Are these convertions still required?
-./inc/functions.php:1305:// @TODO Rewrite this function to use readFromFile() and writeToFile()
-./inc/functions.php:156:// @TODO Rewrite this to an extension 'smtp'
-./inc/functions.php:1926:      // @TODO Find a way to cache this
-./inc/functions.php:2027:      // @TODO This is still very static, rewrite it somehow
-./inc/functions.php:2222:      // @TODO Rename column data_type to e.g. mail_status
+./inc/functions.php:1082:                      // @TODO Move this SQL code into a function, let's say 'getTimestampFromPoolId($id) ?
+./inc/functions.php:1168:                      // @TODO Are these convertions still required?
+./inc/functions.php:1189:// @TODO Rewrite this function to use readFromFile() and writeToFile()
+./inc/functions.php:1810:      // @TODO Find a way to cache this
+./inc/functions.php:1915:      // @TODO This is still very static, rewrite it somehow
+./inc/functions.php:2119:      // @TODO Rename column data_type to e.g. mail_status
 ./inc/gen_sql_patches.php:95:// @TODO Rewrite this to a filter
 ./inc/gen_sql_patches.php:95:// @TODO Rewrite this to a filter
-./inc/install-functions.php:57:        // @TODO DEACTIVATED: changeDataInLocalConfigurationFile('OUTPUT-MODE', "setConfigEntry('OUTPUT_MODE', '", "');", postRequestElement('omode'), 0);
-./inc/language/de.php:1077:    // @TODO Rewrite these two constants
-./inc/language/de.php:1093:    // @TODO Rewrite these three constants
-./inc/language/de.php:758:// @TODO Are these constants longer used?
+./inc/header.php:66:// @TODO Find a way to not use direct module comparison
+./inc/install-functions.php:91:        // @TODO DEACTIVATED: changeDataInLocalConfigurationFile('OUTPUT-MODE', "setConfigEntry('OUTPUT_MODE', '", "');", postRequestElement('omode'), 0);
+./inc/language/de.php:1103:    // @TODO Rewrite these two constants
+./inc/language/de.php:1119:    // @TODO Rewrite these three constants
+./inc/language/de.php:749:// @TODO Are these constants longer used?
 ./inc/language-functions.php:255:      // @TODO These are all valid languages, again hard-coded
 ./inc/language-functions.php:44:// @TODO Rewrite all language constants to this function.
 ./inc/language-functions.php:255:      // @TODO These are all valid languages, again hard-coded
 ./inc/language-functions.php:44:// @TODO Rewrite all language constants to this function.
+./inc/language/install_de.php:137:     // @TODO Move this to e.g. ext-smtp
 ./inc/language/newsletter_de.php:13: * @TODO This language file is completely out-dated, please do no       *
 ./inc/language/newsletter_de.php:13: * @TODO This language file is completely out-dated, please do no       *
+./inc/language/order_de.php:70:        // @TODO Find better text
 ./inc/language/rallye_de.php:13: * @TODO Naming convention not applied for language strings             *
 ./inc/language/refback_de.php:51:      // @TODO Rewrite these constants to one
 ./inc/language/rallye_de.php:13: * @TODO Naming convention not applied for language strings             *
 ./inc/language/refback_de.php:51:      // @TODO Rewrite these constants to one
-./inc/language/sponsor_de.php:117:// @TODO Rewrite these four constants to one and use sprintf()
-./inc/libs/admins_functions.php:495:           // @TODO This can be, somehow, rewritten
+./inc/libs/admins_functions.php:521:           // @TODO This can be, somehow, rewritten
 ./inc/libs/bonus_functions.php:194:            // @TODO Move this HTML to a template
 ./inc/libs/doubler_functions.php:44:// @TODO Lame description
 ./inc/libs/doubler_functions.php:93:                   // @TODO Can't this be moved into EL?
 ./inc/libs/bonus_functions.php:194:            // @TODO Move this HTML to a template
 ./inc/libs/doubler_functions.php:44:// @TODO Lame description
 ./inc/libs/doubler_functions.php:93:                   // @TODO Can't this be moved into EL?
+./inc/libs/forced_functions.php:457:// @TODO Can't we use our new expression language instead of this ugly code?
 ./inc/libs/mailid_functions.php:47:            // @TODO Rewrite this to a dynamic include or so
 ./inc/libs/network_functions.php:978:  // @TODO Implement this function
 ./inc/libs/mailid_functions.php:47:            // @TODO Rewrite this to a dynamic include or so
 ./inc/libs/network_functions.php:978:  // @TODO Implement this function
-./inc/libs/rallye_functions.php:705:// @TODO This function does not load min_users, min_prices, please encapsulate loading rallye data with e.g. getRallyeDataFromId()
-./inc/libs/rallye_functions.php:770:   $EXPIRE = 3; // @TODO The hard-coded value...
-./inc/libs/rallye_functions.php:856:// @TODO Please document this function
-./inc/libs/rallye_functions.php:912:           // Load count @TODO Can't we rewrite this to our API?
-./inc/libs/register_functions.php:282: // @TODO Rewrite these all to a single filter
-./inc/libs/sponsor_functions.php:159:                                  // @TODO Rewrite this to API function
-./inc/libs/sponsor_functions.php:432:                  // @TODO Rewrite this to API function
-./inc/libs/surfbar_functions.php:1639:         // @TODO This can be somehow rewritten
-./inc/libs/surfbar_functions.php:746:// @TODO Can't we use our new expression language instead of this ugly code?
-./inc/libs/task_functions.php:247:             // @TODO These can be rewritten to filter
+./inc/libs/order_functions.php:46:     // @TODO Move this array into a filter
+./inc/libs/rallye_functions.php:769:// @TODO This function does not load min_users, min_prices, please encapsulate loading rallye data with e.g. getRallyeDataFromId()
+./inc/libs/rallye_functions.php:836:   $EXPIRE = 3; // @TODO The hard-coded value...
+./inc/libs/rallye_functions.php:925:// @TODO Please document this function
+./inc/libs/rallye_functions.php:981:           // Load count @TODO Can't we rewrite this to our API?
+./inc/libs/sponsor_functions.php:163:                                  // @TODO Rewrite this to API function
+./inc/libs/sponsor_functions.php:436:                  // @TODO Rewrite this to API function
+./inc/libs/surfbar_functions.php:1672:         // @TODO This can be somehow rewritten
+./inc/libs/surfbar_functions.php:776:// @TODO Can't we use our new expression language instead of this ugly code?
+./inc/libs/task_functions.php:253:             // @TODO These can be rewritten to filter
 ./inc/libs/task_functions.php:51:// @TODO Move all extension-dependent queries into filters
 ./inc/libs/theme_functions.php:93:     // @TODO Can't this be rewritten to an API function?
 ./inc/libs/task_functions.php:51:// @TODO Move all extension-dependent queries into filters
 ./inc/libs/theme_functions.php:93:     // @TODO Can't this be rewritten to an API function?
-./inc/libs/user_functions.php:227:// @TODO Double-check configuration entry here
-./inc/libs/user_functions.php:318:                     // @TODO Make this filter working: $ADDON = runFilterChain('post_login_update', $content);
-./inc/libs/user_functions.php:347:                     // @TODO Make this filter working: $url = runFilterChain('do_login', array('content' => $content, 'addon' => $ADDON));
+./inc/libs/user_functions.php:325:                     // @TODO Make this filter working: $ADDON = runFilterChain('post_login_update', $content);
+./inc/libs/user_functions.php:354:                     // @TODO Make this filter working: $url = runFilterChain('do_login', array('content' => $content, 'addon' => $ADDON));
 ./inc/libs/yoomedia_functions.php:108: $response = YOOMEDIA_QUERY_API('out_textmail.php', true); // @TODO Ask Yoo!Media for test script
 ./inc/load_config.php:75:      // @TODO Rewrite them to avoid this else block
 ./inc/loader/load-extension.php:13: * @TODO Rewrite this whole file                                        *
 ./inc/mails/doubler_mails.php:53:// @TODO Can this be rewritten to a filter?
 ./inc/libs/yoomedia_functions.php:108: $response = YOOMEDIA_QUERY_API('out_textmail.php', true); // @TODO Ask Yoo!Media for test script
 ./inc/load_config.php:75:      // @TODO Rewrite them to avoid this else block
 ./inc/loader/load-extension.php:13: * @TODO Rewrite this whole file                                        *
 ./inc/mails/doubler_mails.php:53:// @TODO Can this be rewritten to a filter?
-./inc/module-functions.php:267:                        // @TODO Nothing helped???
-./inc/module-functions.php:308:                        // @TODO Rewrite this to a filter
-./inc/modules/admin/admin-inc.php:1442:                                // @TODO If we can rewrite the EL sub-system to support more than one parameter, this call_user_func_array() can be avoided
-./inc/modules/admin/admin-inc.php:171:         // @TODO This and the next getCurrentAdminId() call might be moved into the templates?
-./inc/modules/admin/admin-inc.php:242:         // @TODO This can be rewritten into a filter
-./inc/modules/admin/admin-inc.php:506:// @TODO Try to rewrite this to adminAddMenuSelectionBox()
-./inc/modules/admin/overview-inc.php:162:                              // @TODO Rewrite this to a filter
-./inc/modules/admin/overview-inc.php:275:                              // @TODO Rewrite this to something with include files and/or filter
-./inc/modules/admin/overview-inc.php:309:                                              // @TODO This may also be rewritten to include files
-./inc/modules/admin/overview-inc.php:311:                                                      default: // @TODO Unknown support mode
-./inc/modules/admin/overview-inc.php:426:                      // @TODO Try to move this in includes
+./inc/module-functions.php:273:                        // @TODO Nothing helped???
+./inc/module-functions.php:314:                        // @TODO Rewrite this to a filter
+./inc/modules/admin/admin-inc.php:1521:                                // @TODO If we can rewrite the EL sub-system to support more than one parameter, this call_user_func_array() can be avoided
+./inc/modules/admin/admin-inc.php:160:         // @TODO This and the next getCurrentAdminId() call might be moved into the templates?
+./inc/modules/admin/admin-inc.php:233:         // @TODO This can be rewritten into a filter
+./inc/modules/admin/admin-inc.php:509:// @TODO Try to rewrite this to adminAddMenuSelectionBox()
+./inc/modules/admin/overview-inc.php:168:                              // @TODO Rewrite this to a filter
+./inc/modules/admin/overview-inc.php:281:                              // @TODO Rewrite this to something with include files and/or filter
+./inc/modules/admin/overview-inc.php:315:                                              // @TODO This may also be rewritten to include files
+./inc/modules/admin/overview-inc.php:317:                                                      default: // @TODO Unknown support mode
+./inc/modules/admin/overview-inc.php:432:                      // @TODO Try to move this in includes
 ./inc/modules/admin/overview-inc.php:43:// @TODO This function does also check for uncompleted tasks
 ./inc/modules/admin/what-add_guestnl_cat.php:47:       // @TODO Check if category does already exist
 ./inc/modules/admin/overview-inc.php:43:// @TODO This function does also check for uncompleted tasks
 ./inc/modules/admin/what-add_guestnl_cat.php:47:       // @TODO Check if category does already exist
-./inc/modules/admin/what-add_surfbar_url.php:55:       // @TODO Find all convertSelectionsToEpocheTime() calls and rewrite postRequestElement() calls to $postData
-./inc/modules/admin/what-admin_add.php:118:                            // @TODO This can be somehow rewritten to a function
-./inc/modules/admin/what-admin_add.php:59:             // @TODO Cant this be rewritten?
-./inc/modules/admin/what-admin_add.php:75:             // @TODO This can be somehow rewritten to a function
+./inc/modules/admin/what-admin_add.php:120:                            // @TODO This can be somehow rewritten to a function
+./inc/modules/admin/what-admin_add.php:61:             // @TODO Cant this be rewritten?
+./inc/modules/admin/what-admin_add.php:77:             // @TODO This can be somehow rewritten to a function
 ./inc/modules/admin/what-adminedit.php:56:     // @TODO Kill all constants in this file
 ./inc/modules/admin/what-admins_mails.php:58:                          // @TODO Can this be rewritten to an API function?
 ./inc/modules/admin/what-bonus.php:46:// @TODO Unused at the moment
 ./inc/modules/admin/what-config_mods.php:55:                   // @TODO This can be moved into mysql-function.php, see checkModulePermissions() function
 ./inc/modules/admin/what-config_points.php:110:                        // @TODO Rewrite this to a filter
 ./inc/modules/admin/what-adminedit.php:56:     // @TODO Kill all constants in this file
 ./inc/modules/admin/what-admins_mails.php:58:                          // @TODO Can this be rewritten to an API function?
 ./inc/modules/admin/what-bonus.php:46:// @TODO Unused at the moment
 ./inc/modules/admin/what-config_mods.php:55:                   // @TODO This can be moved into mysql-function.php, see checkModulePermissions() function
 ./inc/modules/admin/what-config_points.php:110:                        // @TODO Rewrite this to a filter
-./inc/modules/admin/what-config_rallye_prices.php:195:                 // @TODO Rewrite these two constants
-./inc/modules/admin/what-config_rallye_prices.php:227:                 // @TODO rename: start->start_time, end->end_time
+./inc/modules/admin/what-config_points.php:133:                                // @TODO Rewrite these two lines for new user_points columns (e.g. locked_order_points) with a filter
+./inc/modules/admin/what-config_rallye_prices.php:222:                 // @TODO Rewrite these two constants
 ./inc/modules/admin/what-config_register.php:75:       // @TODO Move this HTML code into a template
 ./inc/modules/admin/what-del_email.php:61:             // @TODO Unused: cat_id, payment_id
 ./inc/modules/admin/what-edit_user.php:18: * @TODO Add support for ext-country                                    *
 ./inc/modules/admin/what-email_stats.php:46:// @TODO Unused at the moment
 ./inc/modules/admin/what-config_register.php:75:       // @TODO Move this HTML code into a template
 ./inc/modules/admin/what-del_email.php:61:             // @TODO Unused: cat_id, payment_id
 ./inc/modules/admin/what-edit_user.php:18: * @TODO Add support for ext-country                                    *
 ./inc/modules/admin/what-email_stats.php:46:// @TODO Unused at the moment
-./inc/modules/admin/what-extensions.php:371:                                           // @TODO Rewrite this to a filter
+./inc/modules/admin/what-extensions.php:362:                                           // @TODO Rewrite this to a filter
 ./inc/modules/admin/what-guest_add.php:129:                            // @TODO This can be somehow rewritten to a function
 ./inc/modules/admin/what-guest_add.php:67:             // @TODO Cant this be rewritten?
 ./inc/modules/admin/what-guest_add.php:80:             // @TODO This can be somehow rewritten to a function
 ./inc/modules/admin/what-guest_add.php:129:                            // @TODO This can be somehow rewritten to a function
 ./inc/modules/admin/what-guest_add.php:67:             // @TODO Cant this be rewritten?
 ./inc/modules/admin/what-guest_add.php:80:             // @TODO This can be somehow rewritten to a function
 ./inc/modules/admin/what-list_admins_acls.php:101:     // @TODO Rewrite this to a filter
 ./inc/modules/admin/what-list_admins_acls.php:129:     // @TODO Rewrite this to filter 'run_sqls'
 ./inc/modules/admin/what-list_autopurge.php:47:// @TODO Rewrite those lines to filter
 ./inc/modules/admin/what-list_admins_acls.php:101:     // @TODO Rewrite this to a filter
 ./inc/modules/admin/what-list_admins_acls.php:129:     // @TODO Rewrite this to filter 'run_sqls'
 ./inc/modules/admin/what-list_autopurge.php:47:// @TODO Rewrite those lines to filter
-./inc/modules/admin/what-list_bonus.php:136:           // @TODO Can't this be moved into our expression language?
+./inc/modules/admin/what-list_bonus.php:137:           // @TODO Can't this be moved into our expression language?
 ./inc/modules/admin/what-list_cats.php:54:             // @TODO No longer needed? define('__CATEGORIES_BASE'   , '<a href="{%url=modules.php?module=admin&amp;userid=');
 ./inc/modules/admin/what-list_cats.php:68:                             // @TODO Rewrite this to countSum.....() function
 ./inc/modules/admin/what-list_cats.php:54:             // @TODO No longer needed? define('__CATEGORIES_BASE'   , '<a href="{%url=modules.php?module=admin&amp;userid=');
 ./inc/modules/admin/what-list_cats.php:68:                             // @TODO Rewrite this to countSum.....() function
-./inc/modules/admin/what-list_links.php:55:            // @TODO Try to rewrite this to a filter
-./inc/modules/admin/what-list_links.php:85:                            // @TODO Find a way to rewrite this. See some lines above for different queries
-./inc/modules/admin/what-list_links.php:93:                                    // @TODO Rewrite this to includes/filter
-./inc/modules/admin/what-list_refs.php:100:                                                    // @TODO Try to rewrite some to EL
+./inc/modules/admin/what-list_links.php:96:                                    // @TODO Rewrite this to includes/filter
+./inc/modules/admin/what-list_refs.php:101:                                                    // @TODO Try to rewrite some to EL
 ./inc/modules/admin/what-list_unconfirmed.php:107:     // @TODO "Please do not call me directly." Should be rewritten to a nice selection depending on ext-bonus
 ./inc/modules/admin/what-list_unconfirmed.php:84:      // @TODO This constant might be unused? define('__LIST_UNCON_TITLE', '{--ADMIN_LIST_UNCONFIRMED_BONUS_LINKS--}');
 ./inc/modules/admin/what-list_unconfirmed.php:107:     // @TODO "Please do not call me directly." Should be rewritten to a nice selection depending on ext-bonus
 ./inc/modules/admin/what-list_unconfirmed.php:84:      // @TODO This constant might be unused? define('__LIST_UNCON_TITLE', '{--ADMIN_LIST_UNCONFIRMED_BONUS_LINKS--}');
-./inc/modules/admin/what-list_user.php:247:            // @TODO Rewrite this into a filter
-./inc/modules/admin/what-list_user.php:290:                    // @TODO Rewrite this into a filter
+./inc/modules/admin/what-list_user.php:290:            // @TODO Rewrite this into a filter
+./inc/modules/admin/what-list_user.php:355:                    // @TODO Rewrite this into a filter
 ./inc/modules/admin/what-logs.php:64:                  // @TODO Fix content-type here
 ./inc/modules/admin/what-logs.php:70:                  // @TODO Fix content-type here
 ./inc/modules/admin/what-mem_add.php:124:                              // @TODO This can be somehow rewritten to a function
 ./inc/modules/admin/what-logs.php:64:                  // @TODO Fix content-type here
 ./inc/modules/admin/what-logs.php:70:                  // @TODO Fix content-type here
 ./inc/modules/admin/what-mem_add.php:124:                              // @TODO This can be somehow rewritten to a function
 ./inc/modules/admin/what-unlock_emails.php:84:                                 // @TODO Rewrite these if-blocks to a filter
 ./inc/modules/admin/what-usage.php:89: // @TODO This code is double, see loadTemplate() and loadEmailTemplate() in functions.php
 ./inc/modules/admin/what-usr_online.php:49:    // @TODO Add a filter for sponsor
 ./inc/modules/admin/what-unlock_emails.php:84:                                 // @TODO Rewrite these if-blocks to a filter
 ./inc/modules/admin/what-usage.php:89: // @TODO This code is double, see loadTemplate() and loadEmailTemplate() in functions.php
 ./inc/modules/admin/what-usr_online.php:49:    // @TODO Add a filter for sponsor
+./inc/modules/frametester.php:95:      // @TODO Rewrite this somehow
 ./inc/modules/guest/what-beg.php:51:// @TODO No more needed? define('__BEG_USERID_TIMEOUT', createFancyTime(getBegUseridTimeout()));
 ./inc/modules/guest/what-beg.php:51:// @TODO No more needed? define('__BEG_USERID_TIMEOUT', createFancyTime(getBegUseridTimeout()));
-./inc/modules/guest/what-login.php:125:        // @TODO Move this HTML code into a template
-./inc/modules/guest/what-mediadata.php:182:// @TODO Rewrite all these if-blocks to filters
+./inc/modules/guest/what-login.php:134:        // @TODO Move this HTML code into a template
+./inc/modules/guest/what-mediadata.php:186:// @TODO Rewrite all these if-blocks to filters
 ./inc/modules/guest/what-mediadata.php:67:     // @TODO Find a better formular than this one
 ./inc/modules/guest/what-mediadata.php:67:     // @TODO Find a better formular than this one
-./inc/modules/guest/what-rallyes.php:89:       // @TODO Reactivate this: $content['admin'] = '<a href="{%url=modules.php?module=index&amp;what=impressum&amp;id=' . $adminId . '%}">' . $login . '</a>';
+./inc/modules/guest/what-rallyes.php:99:       // @TODO Reactivate this: $content['admin'] = '<a href="{%url=modules.php?module=index&amp;what=impressum&amp;id=' . $content['admin_id'] . '%}">' . $content['login'] . '</a>';
 ./inc/modules/guest/what-sponsor_reg.php:289:                  // @TODO Maybe a default referral id?
 ./inc/modules/guest/what-sponsor_reg.php:289:                  // @TODO Maybe a default referral id?
-./inc/modules/guest/what-stats.php:108:                // @TODO This can be somehow rewritten
+./inc/modules/guest/what-stats.php:110:                // @TODO This can be somehow rewritten
 ./inc/modules/guest/what-stats.php:82:// @TODO This can be rewritten in a dynamic include
 ./inc/modules/member/what-beg.php:54:// @TODO Can't this be moved into EL?
 ./inc/modules/member/what-beg.php:63:// @TODO No more needed? define('__BEG_USERID_TIMEOUT', createFancyTime(getBegUseridTimeout()));
 ./inc/modules/guest/what-stats.php:82:// @TODO This can be rewritten in a dynamic include
 ./inc/modules/member/what-beg.php:54:// @TODO Can't this be moved into EL?
 ./inc/modules/member/what-beg.php:63:// @TODO No more needed? define('__BEG_USERID_TIMEOUT', createFancyTime(getBegUseridTimeout()));
-./inc/modules/member/what-categories.php:131:          // @TODO Rewrite this to use $OUT .= ...
 ./inc/modules/member/what-logout.php:17: * @TODO Rewrite the code to a filter                                   *
 ./inc/modules/member/what-logout.php:17: * @TODO Rewrite the code to a filter                                   *
-./inc/modules/member/what-order.php:485:                       // @TODO Rewrite this to a filter
-./inc/modules/member/what-order.php:82:                // @TODO Rewrite this to SQL_FETCHARRAY()
+./inc/modules/member/what-order.php:482:                       // @TODO Rewrite this to a filter
+./inc/modules/member/what-order.php:84:                // @TODO Rewrite this to SQL_FETCHARRAY()
 ./inc/modules/member/what-payout.php:194:                                      // @TODO Rewrite this to a filter
 ./inc/modules/member/what-payout.php:194:                                      // @TODO Rewrite this to a filter
-./inc/modules/member/what-points.php:55:// @TODO Should we rewrite this to a filter?
-./inc/modules/member/what-rallyes.php:89:      // @TODO Reactivate this: $content['admin'] = '<a href="{%url=modules.php?module=index&amp;what=impressum&amp;id=' . $content['admin_id'] . '%}">' . $content['login'] . '</a>';
+./inc/modules/member/what-points.php:61:// @TODO Should we rewrite this to a filter?
+./inc/modules/member/what-rallyes.php:99:      // @TODO Reactivate this: $content['admin'] = '<a href="{%url=modules.php?module=index&amp;what=impressum&amp;id=' . $content['admin_id'] . '%}">' . $content['login'] . '</a>';
 ./inc/modules/member/what-reflinks.php:52:// @TODO Move this into a filter
 ./inc/modules/member/what-transfer.php:128:                            // @TODO Rewrite this to a filter
 ./inc/modules/member/what-unconfirmed.php:162: // @TODO Try to rewrite this to $content = SQL_FETCHARRAY()
 ./inc/modules/member/what-unconfirmed.php:227:                         // @TODO This 'userid' cannot be saved because of encapsulated EL code
 ./inc/modules/order.php:78:            // @TODO Unused: 2,4
 ./inc/modules/member/what-reflinks.php:52:// @TODO Move this into a filter
 ./inc/modules/member/what-transfer.php:128:                            // @TODO Rewrite this to a filter
 ./inc/modules/member/what-unconfirmed.php:162: // @TODO Try to rewrite this to $content = SQL_FETCHARRAY()
 ./inc/modules/member/what-unconfirmed.php:227:                         // @TODO This 'userid' cannot be saved because of encapsulated EL code
 ./inc/modules/order.php:78:            // @TODO Unused: 2,4
-./inc/mysql-manager.php:1410:          // @TODO Rewrite these lines to a filter
-./inc/mysql-manager.php:1434:  // @TODO Rewrite this to a filter
-./inc/mysql-manager.php:1693:                  // @TODO Rewrite this to a filter
-./inc/mysql-manager.php:1739:// @TODO Fix inconsistency between last_module and getWhat()
-./inc/mysql-manager.php:387:   // @TODO Try to rewrite this to one or more functions
+./inc/mysql-manager.php:1433:          // @TODO Rewrite these lines to a filter
+./inc/mysql-manager.php:1457:  // @TODO Rewrite this to a filter
+./inc/mysql-manager.php:1713:                  // @TODO Rewrite this to a filter
+./inc/mysql-manager.php:390:   // @TODO Try to rewrite this to one or more functions
 ./inc/mysql-manager.php:44:// @TODO Can we cache this?
 ./inc/purge/purge-inact.php:55:        // @TODO Rewrite these if() blocks to a filter
 ./inc/mysql-manager.php:44:// @TODO Can we cache this?
 ./inc/purge/purge-inact.php:55:        // @TODO Rewrite these if() blocks to a filter
-./inc/revision-functions.php:169:// @TODO This function does also set and get in 'cache_array'
-./inc/template-functions.php:1105:                     // @TODO Deprecate this thing
-./inc/template-functions.php:1116:                     // @TODO Deprecate this thing
-./inc/template-functions.php:1206:     // @TODO This can be easily moved out after the merge from EL branch to this is complete
-./inc/template-functions.php:1242:             // @TODO Add a little more infos here
-./inc/template-functions.php:1571:// @TODO Lame description for this function
-./inc/template-functions.php:1593:                     // @TODO Move this in a filter
-./inc/template-functions.php:193:       * @TODO On some pages this is buggy
-./inc/template-functions.php:281:      // @TODO Remove these sanity checks if all is fine
-./inc/template-functions.php:611:// @TODO $simple/$constants are deprecated
-./inc/wrapper-functions.php:485:// @TODO Do some more sanity check here
-./inc/xml-functions.php:189:   // @TODO Handle characters
-./mailid.php:139:                                      // @TODO Rewrite this to a filter
-./mailid.php:96:               // @TODO Rewrite this to a filter
-./mailid_top.php:105:          // @TODO Rewrite this to a filter
-./mailid_top.php:142:                                  // @TODO Rewrite this to a filter
-./mailid_top.php:189:                                                  // @TODO Rewrite this to a filter
+./inc/revision-functions.php:168:// @TODO This function does also set and get in 'cache_array'
+./inc/template-functions.php:1107:                     // @TODO Deprecate this thing
+./inc/template-functions.php:1118:                     // @TODO Deprecate this thing
+./inc/template-functions.php:1225:     // @TODO This can be easily moved out after the merge from EL branch to this is complete
+./inc/template-functions.php:1274:             // @TODO Add a little more infos here
+./inc/template-functions.php:1642:// @TODO Lame description for this function
+./inc/template-functions.php:1664:                     // @TODO Move this in a filter
+./inc/template-functions.php:197:       * @TODO On some pages this is buggy
+./inc/template-functions.php:285:      // @TODO Remove these sanity checks if all is fine
+./inc/template-functions.php:598:// @TODO $simple/$constants are deprecated
+./inc/template-functions.php:696:                      // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates
+./inc/wrapper-functions.php:2916:      // @TODO Find a way to not use direct module comparison
+./inc/wrapper-functions.php:494:// @TODO Do some more sanity check here
+./inc/xml-functions.php:208:   // @TODO Handle characters
+./mailid.php:102:              // @TODO Rewrite this to a filter
+./mailid.php:145:                                      // @TODO Rewrite this to a filter
+./mailid_top.php:108:          // @TODO Rewrite this to a filter
+./mailid_top.php:145:                                  // @TODO Rewrite this to a filter
 ./mailid_top.php:18: * @TODO Merge this script with mailid.php                              *
 ./mailid_top.php:18: * @TODO Merge this script with mailid.php                              *
-./mailid_top.php:196:                                                                  // @TODO Rewrite this to a filter
-./mailid_top.php:231:                                                                  // @TODO Rewrite these blocks to filter
+./mailid_top.php:192:                                                  // @TODO Rewrite this to a filter
+./mailid_top.php:199:                                                                  // @TODO Rewrite this to a filter
+./mailid_top.php:234:                                                                  // @TODO Rewrite these blocks to filter
 ./view.php:71:         // @TODO No banner found, output some default banner
 ./templates/de/html/admin/admin_add_country.tpl:23:                    <!-- @TODO Rewrite this selection box to our generic functions //-->
 ./templates/de/html/admin/admin_config_other.tpl:79:                   <!-- @TODO Rewrite this selection to one of our functions //-->
 ./templates/de/html/admin/admin_config_rewrite.tpl:4:  <!-- @TODO No title here? //-->
 ./templates/de/html/admin/admin_edit_admin_menu.tpl:4:<!-- @TODO Shouldn't we add a title here? //-->
 ./view.php:71:         // @TODO No banner found, output some default banner
 ./templates/de/html/admin/admin_add_country.tpl:23:                    <!-- @TODO Rewrite this selection box to our generic functions //-->
 ./templates/de/html/admin/admin_config_other.tpl:79:                   <!-- @TODO Rewrite this selection to one of our functions //-->
 ./templates/de/html/admin/admin_config_rewrite.tpl:4:  <!-- @TODO No title here? //-->
 ./templates/de/html/admin/admin_edit_admin_menu.tpl:4:<!-- @TODO Shouldn't we add a title here? //-->
-./templates/de/html/admin/admin_list_refs_level.tpl:20:                <!-- @TODO Nothing to say here? //-->
+./templates/de/html/admin/admin_list_refs_level.tpl:21:                <!-- @TODO Nothing to say here? //-->
 ./templates/de/html/admin/admin_list_unconfirmed_list.tpl:3:<!-- @TODO Shouldn't we add a title here? //-->
 ./templates/de/html/admin/admin_login_form.tpl:34:     @TODO Doesn't work with sessions
 ./templates/de/html/admin/admin_login_form.tpl:37:             @TODO Try to move the select box to our generic functions
 ./templates/de/html/admin/admin_list_unconfirmed_list.tpl:3:<!-- @TODO Shouldn't we add a title here? //-->
 ./templates/de/html/admin/admin_login_form.tpl:34:     @TODO Doesn't work with sessions
 ./templates/de/html/admin/admin_login_form.tpl:37:             @TODO Try to move the select box to our generic functions
 ./templates/de/html/guest/guest_login.tpl:21:  @TODO Deactivated feature, try to implement it or remove it.
 ./templates/de/html/guest/guest_nickname_login.tpl:21: @TODO Deactivated feature, try to find a solution for this or remove it.
 ./templates/de/html/guest/guest_stats_member.tpl:21:   @TODO We have to fix these counters.
 ./templates/de/html/guest/guest_login.tpl:21:  @TODO Deactivated feature, try to implement it or remove it.
 ./templates/de/html/guest/guest_nickname_login.tpl:21: @TODO Deactivated feature, try to find a solution for this or remove it.
 ./templates/de/html/guest/guest_stats_member.tpl:21:   @TODO We have to fix these counters.
-./templates/de/html/member/member_unconfirmed_table_nopoints.tpl:11:           <!-- @TODO Nothing to say here? //-->
+./templates/de/html/member/member_unconfirmed_table_nopoints.tpl:12:           <!-- @TODO Nothing to say here? //-->
 ./templates/de/html/surfbar/surfbar_frameset.tpl:4:    // @TODO This redirect kills our own frameset
 ./templates/de/html/surfbar/surfbar_frame_textlinks.tpl:5:             <!-- @TODO These are static lines and should be replaced by a filter (see ext-network/ext-sponsor) //-->
 ./.htaccess:10:        # @TODO When ext-imprint is finished RewriteRule ^modules.php?module=index&what=impressum$ modules.php?module=index&what=imprint [L]
 ./templates/de/html/surfbar/surfbar_frameset.tpl:4:    // @TODO This redirect kills our own frameset
 ./templates/de/html/surfbar/surfbar_frame_textlinks.tpl:5:             <!-- @TODO These are static lines and should be replaced by a filter (see ext-network/ext-sponsor) //-->
 ./.htaccess:10:        # @TODO When ext-imprint is finished RewriteRule ^modules.php?module=index&what=impressum$ modules.php?module=index&what=imprint [L]
-./.htaccess:11:        # @TODO When ext-terms is finished RewriteRule ^agb.php$ modules.php?module=index&what=terms [L]
+./.htaccess:11:        # @TODO When ext-terms is finished RewriteRule ^cms/index/wht/agb$                 modules.php?module=index&what=terms [L]
+./.htaccess:12:        # @TODO When ext-terms is finished RewriteRule ^modules.php?module=index&what=agb$ modules.php?module=index&what=terms [L]
+./.htaccess:13:        # @TODO When ext-terms is finished RewriteRule ^agb.php$ modules.php?module=index&what=terms [L]
 ./.htaccess:9: # @TODO When ext-imprint is finished RewriteRule ^cms/index/wht/impressum$                 modules.php?module=index&what=imprint [L]
 ### ### DEPRECATION FOLLOWS: ### ###
 ./inc/autopurge/purge-general.php:2:// @DEPRECATED
 ./.htaccess:9: # @TODO When ext-imprint is finished RewriteRule ^cms/index/wht/impressum$                 modules.php?module=index&what=imprint [L]
 ### ### DEPRECATION FOLLOWS: ### ###
 ./inc/autopurge/purge-general.php:2:// @DEPRECATED
 ./inc/autopurge/purge-tsks.php:2:// @DEPRECATED
 ./inc/autopurge/purge-unconfirmed.php:2:// @DEPRECATED
 ./inc/daily/daily_engine.php:2:// @DEPRECATED
 ./inc/autopurge/purge-tsks.php:2:// @DEPRECATED
 ./inc/autopurge/purge-unconfirmed.php:2:// @DEPRECATED
 ./inc/daily/daily_engine.php:2:// @DEPRECATED
+./inc/extensions/ext-funcoins.php:2:// @DEPRECATED
 ./inc/extensions/ext-iso3166.php:2:// @DEPRECATED
 ./inc/extensions/ext-iso3166.php:2:// @DEPRECATED
+./inc/extensions/ext-primera.php:2:// @DEPRECATED
 ./inc/gen_refback.php:2:// @DEPRECATED
 ./inc/js/js-jquery.php:2:// @DEPRECATED
 ./inc/gen_refback.php:2:// @DEPRECATED
 ./inc/js/js-jquery.php:2:// @DEPRECATED
+./inc/language/funcoins_de.php:2:// @DEPRECATED
+./inc/language/primera_de.php:2:// @DEPRECATED
+./inc/libs/funcoins_functions.php:2:// @DEPRECATED
+./inc/libs/primera_functions.php:2:// @DEPRECATED
 ./inc/loader/load_cache-admin.php:2:// @DEPRECATED
 ./inc/loader/load_cache-config.php:2:// @DEPRECATED
 ./inc/loader/load_cache-extension.php:2:// @DEPRECATED
 ./inc/loader/load_cache-admin.php:2:// @DEPRECATED
 ./inc/loader/load_cache-config.php:2:// @DEPRECATED
 ./inc/loader/load_cache-extension.php:2:// @DEPRECATED
 ./inc/loader/load_cache-revision.php:2:// @DEPRECATED
 ./inc/loader/load_cache-them.php:2:// @DEPRECATED
 ./inc/loader/load-extensions.php:2:// @DEPRECATED
 ./inc/loader/load_cache-revision.php:2:// @DEPRECATED
 ./inc/loader/load_cache-them.php:2:// @DEPRECATED
 ./inc/loader/load-extensions.php:2:// @DEPRECATED
-./inc/modules/admin/admin-inc.php:507:// @DEPRECATED
+./inc/modules/admin/action-funcoins.php:2:// @DEPRECATED
+./inc/modules/admin/action-primera.php:2:// @DEPRECATED
+./inc/modules/admin/admin-inc.php:510:// @DEPRECATED
 ./inc/modules/admin/what-chk_regs.php:2:// @DEPRECATED
 ./inc/modules/admin/what-config_admins.php:2:// @DEPRECATED
 ./inc/modules/admin/what-config_email.php:2:// @DEPRECATED
 ./inc/modules/admin/what-chk_regs.php:2:// @DEPRECATED
 ./inc/modules/admin/what-config_admins.php:2:// @DEPRECATED
 ./inc/modules/admin/what-config_email.php:2:// @DEPRECATED
+./inc/modules/admin/what-config_funcoins.php:2:// @DEPRECATED
 ./inc/modules/admin/what-config_networks.php:2:// @DEPRECATED
 ./inc/modules/admin/what-config_networks.php:2:// @DEPRECATED
+./inc/modules/admin/what-config_primera.php:2:// @DEPRECATED
 ./inc/modules/admin/what-list_network_api_translation.php:2:// @DEPRECATED
 ./inc/modules/admin/what-list_network_params.php:2:// @DEPRECATED
 ./inc/modules/admin/what-list_network_api_translation.php:2:// @DEPRECATED
 ./inc/modules/admin/what-list_network_params.php:2:// @DEPRECATED
+./inc/modules/admin/what-list_primera.php:2:// @DEPRECATED
+./inc/modules/admin/what-overview.php:2:// @DEPRECATED
 ./inc/modules/guest/action-actions.php:2:// @DEPRECATED
 ./inc/modules/guest/action-dummy.php:2:// @DEPRECATED
 ./inc/modules/guest/action-interna.php:2:// @DEPRECATED
 ./inc/modules/guest/action-actions.php:2:// @DEPRECATED
 ./inc/modules/guest/action-dummy.php:2:// @DEPRECATED
 ./inc/modules/guest/action-interna.php:2:// @DEPRECATED
 ./inc/modules/guest/what-svn.php:2:// @DEPRECATED
 ./inc/modules/guest/what-why_reg.php:2:// @DEPRECATED
 ./inc/modules/member/what-earnings.php:2:// @DEPRECATED
 ./inc/modules/guest/what-svn.php:2:// @DEPRECATED
 ./inc/modules/guest/what-why_reg.php:2:// @DEPRECATED
 ./inc/modules/member/what-earnings.php:2:// @DEPRECATED
+./inc/modules/member/what-primera.php:2:// @DEPRECATED
 ./inc/modules/member/what-surfbar_book.php:2:// @DEPRECATED
 ./inc/modules/member/what-surfbar_start.php:2:// @DEPRECATED
 ./inc/modules/member/what-surfbar_stats.php:2:// @DEPRECATED
 ./inc/modules/member/what-surfbar_book.php:2:// @DEPRECATED
 ./inc/modules/member/what-surfbar_start.php:2:// @DEPRECATED
 ./inc/modules/member/what-surfbar_stats.php:2:// @DEPRECATED
 ./inc/reset/reset_profile.php:2:// @DEPRECATED
 ./inc/reset/reset_surfbar.php:2:// @DEPRECATED
 ./inc/reset/reset_yoomedia.php:2:// @DEPRECATED
 ./inc/reset/reset_profile.php:2:// @DEPRECATED
 ./inc/reset/reset_surfbar.php:2:// @DEPRECATED
 ./inc/reset/reset_yoomedia.php:2:// @DEPRECATED
-./inc/template-functions.php:464:      // @DEPRECATED Loading the user data by given userid is deprecated because it is not related to template loading
 ./network-check.php:2:// @DEPRECATED
 ./templates/de/emails/add-points.tpl:1:@DEPRECATED
 ./templates/de/emails/admin/admin_coupon.tpl:1:@DEPRECATED
 ./network-check.php:2:// @DEPRECATED
 ./templates/de/emails/add-points.tpl:1:@DEPRECATED
 ./templates/de/emails/admin/admin_coupon.tpl:1:@DEPRECATED
 ./templates/de/emails/bonus-mail.tpl:1:@DEPRECATED
 ./templates/de/emails/confirm-member.tpl:1:@DEPRECATED
 ./templates/de/emails/confirm-referral.tpl:1:@DEPRECATED
 ./templates/de/emails/bonus-mail.tpl:1:@DEPRECATED
 ./templates/de/emails/confirm-member.tpl:1:@DEPRECATED
 ./templates/de/emails/confirm-referral.tpl:1:@DEPRECATED
+./templates/de/emails/del_sponsor.tpl:1:@DEPRECATED
 ./templates/de/emails/del-user.tpl:1:@DEPRECATED
 ./templates/de/emails/done-admin.tpl:1:@DEPRECATED
 ./templates/de/emails/done-member.tpl:1:@DEPRECATED
 ./templates/de/emails/guest/guest_user_confirmed_referal.tpl:1:@DEPRECATED
 ./templates/de/emails/del-user.tpl:1:@DEPRECATED
 ./templates/de/emails/done-admin.tpl:1:@DEPRECATED
 ./templates/de/emails/done-member.tpl:1:@DEPRECATED
 ./templates/de/emails/guest/guest_user_confirmed_referal.tpl:1:@DEPRECATED
+./templates/de/emails/lock_sponsor.tpl:1:@DEPRECATED
 ./templates/de/emails/lock-user.tpl:1:@DEPRECATED
 ./templates/de/emails/member/member_coupon.tpl:1:@DEPRECATED
 ./templates/de/emails/member/member_del_surfbar_urls.tpl:1:@DEPRECATED
 ./templates/de/emails/lock-user.tpl:1:@DEPRECATED
 ./templates/de/emails/member/member_coupon.tpl:1:@DEPRECATED
 ./templates/de/emails/member/member_del_surfbar_urls.tpl:1:@DEPRECATED
 ./templates/de/html/admin/admin_config_email_edit.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_email_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_email.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_email_edit.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_email_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_email.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_funcoins.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_home_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_home_settings.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_network.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_home_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_home_settings.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_network.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_payouts_del_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_payouts_del.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_payouts_edit_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_payouts_del_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_payouts_del.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_config_payouts_edit_row.tpl:1:<!-- @DEPRECATED //-->
-./templates/de/html/admin/admin_config_payouts_edit.tpl:1:<!--@DEPRECATED //-->
+./templates/de/html/admin/admin_config_payouts_edit.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_primera.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_rallye_del_row.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_rallye_del.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_rallye_edit_row.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_rallye_edit.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_rallye_prices_row.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_config_rallye_prices.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_delete_network_params_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_delete_network_params.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_del_surfbar_urls_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_delete_network_params_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_delete_network_params.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_del_surfbar_urls_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_network_config.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_network_params_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_network_params.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_network_config.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_network_params_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_network_params.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_list_primera_main.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/admin/admin_list_primera_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_refs2.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_user_sort_form.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_main_header.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_refs2.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_list_user_sort_form.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/admin/admin_main_header.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/donate_bottom.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/donate.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/downloads.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/donate_bottom.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/donate.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/downloads.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/ext/ext_ebesucher.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/ext/ext_funcoins.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/ext/ext_iso3166.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/faqs.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/fatal_footer.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/ext/ext_iso3166.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/faqs.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/fatal_footer.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/guest/guest_rallye_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/guest/guest_rallye_show.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/guest/guest_rallye.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/guest/guest_rallye_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/guest/guest_rallye_show.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/guest/guest_rallye.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/install/install_main.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/jobs.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/jobs.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/js/js_admin_menu_onclick.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/js/js_jquery.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/link_us.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/listed.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/login_failtures.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/js/js_jquery.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/link_us.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/listed.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/login_failtures.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_cat_row.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_cats_footer.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_cats_header.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_list_referal_level.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_list_referal_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_list_referal.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_list_referal_level.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_list_referal_row.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_list_referal.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_order-back.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_order-html_ext.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_order-html_intro.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_order-zip1.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_order-zip2.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_primera_mode_list_row.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_primera_mode_list.tpl:1:<!-- @DEPRECATED //-->
+./templates/de/html/member/member_primera_mode_pay.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_refback_edit.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_refback_list_level.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_refback_list_row_deleted.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_refback_edit.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_refback_list_level.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/member/member_refback_list_row_deleted.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/requirements.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/rettet_das_internet.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/roadmap.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/requirements.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/rettet_das_internet.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/roadmap.tpl:1:<!-- @DEPRECATED //-->
-./templates/de/html/send_bonus_footer.tpl:1:<!-- @DEPRECATED //-->
-./templates/de/html/send_bonus_header.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/stats.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/svn.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/why_reg.tpl:1:<!-- @DEPRECATED //-->
 ./templates/xml/admin/admin_del_do_surfbar_urls.xml:1:<!-- @DEPRECATED //-->
 ./templates/xml/admin/admin_del_show_surfbar_urls.xml:1:<!-- @DEPRECATED //-->
 ### ### template-warnings.log follows: ### ###
 ./templates/de/html/stats.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/svn.tpl:1:<!-- @DEPRECATED //-->
 ./templates/de/html/why_reg.tpl:1:<!-- @DEPRECATED //-->
 ./templates/xml/admin/admin_del_do_surfbar_urls.xml:1:<!-- @DEPRECATED //-->
 ./templates/xml/admin/admin_del_show_surfbar_urls.xml:1:<!-- @DEPRECATED //-->
 ### ### template-warnings.log follows: ### ###
-Warning: Not parsing JavaScript templates/de/html/js/js_order_send.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_cookies_disabled.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_uberwach.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_surfbar_frame_top.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_jquery.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_surfbar_member_book.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_surfbar_stopped.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_surfbar_member_edit.tpl.
-Warning: Not parsing JavaScript templates/de/html/js/js_admin_menu_onclick.tpl.
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/page_footer.tpl, line: 1 in /media
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/menu/menu_what_end.tpl, line: 1 in 
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/menu/menu_what_end.tpl, line: 2 in 
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/admin/admin_main_footer.tpl, line: 1 in 
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/admin/admin_main_footer.tpl, line: 2 in 
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/admin/admin_main_footer.tpl, line: 8 in 
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/admin/admin_main_footer.tpl, line: 9 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/guest/guest_footer.tpl, line: 6 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/guest/guest_menu_content.tpl, line: 2 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/guest/guest_content_footer.tpl, line: 1 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/guest/guest_content_footer.tpl, line: 5 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/guest/guest_footer.tpl, line: 6 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/guest/guest_menu_content.tpl, line: 2 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/guest/guest_content_footer.tpl, line: 1 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/guest/guest_content_footer.tpl, line: 5 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): ID form already defined in templates/de/html/member/member_cash_coupon.tpl, line: 21 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/member/member_cats_footer.tpl, line: 7 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : form in templates/de/html/member/member_cats_footer.tpl, line: 8 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/member/member_cats_footer.tpl, line: 9 in 
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/member/member_footer.tpl, line: 6 in 
+PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/member/member_reflink.tpl, line: 29 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/member/member_content_right.tpl, line: 1 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/member/member_content_right.tpl, line: 5 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/member/member_content_right.tpl, line: 1 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/member/member_content_right.tpl, line: 5 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: form and div in templates/de/html/member/member_book_surfbar_dynamic.tpl, line: 47 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/member/member_reflink.tpl, line: 29 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_list_beg.tpl, line: 24 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/member/member_welcome_footer.tpl, line: 1 in 
 PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/member/member_welcome_footer.tpl, line: 1 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/member/member_footer.tpl, line: 6 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 9 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 13 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 19 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 25 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 31 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 37 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 43 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : strong in templates/de/html/member/member_mail_normal_active.tpl, line: 49 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: div and u in templates/de/html/ext/ext_cprping.tpl, line: 18 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: div and u in templates/de/html/ext/ext_cprping.tpl, line: 18 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/page_footer.tpl, line: 1 in /home
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/menu/menu_what_end.tpl, line: 1 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/menu/menu_what_end.tpl, line: 2 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: td and strong in templates/de/html/admin/admin_list_beg.tpl, line: 6 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: td and strong in templates/de/html/admin/admin_list_beg.tpl, line: 6 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: form and div in templates/de/html/admin/admin_add_config_network_type.tpl, line: 17 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): htmlParseEntityRef: expecting ';' in templates/de/html/admin/admin_add_payout.tpl, line: 99 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: form and div in templates/de/html/admin/admin_add_config_network_type_form.tpl, line: 39 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: form and div in templates/de/html/admin/admin_show_config_network_type.tpl, line: 34 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Opening and ending tag mismatch: form and div in templates/de/html/admin/admin_edit_config_network_type_form.tpl, line: 40 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): htmlParseEntityRef: expecting ';' in templates/de/html/admin/admin_add_refbanner.tpl, line: 2 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : td in templates/de/html/admin/admin_main_footer.tpl, line: 1 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : tr in templates/de/html/admin/admin_main_footer.tpl, line: 2 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : table in templates/de/html/admin/admin_main_footer.tpl, line: 8 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : div in templates/de/html/admin/admin_main_footer.tpl, line: 9 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): Unexpected end tag : form in templates/de/html/admin/admin_config_network_types.tpl, line: 22 in 
-PHP Warning:  DOMDocument::loadHTMLFile(): htmlParseEntityRef: expecting ';' in templates/de/html/admin/admin_edit_email_max_rec.tpl, line: 2 in 
index 719ba8e409a6e0e81940896978475215cc48844f..0f0d031e20256c11745987476339a2a4308a5ae2 100644 (file)
@@ -8,7 +8,7 @@ Sie bitte unter folgendem Link nach:
 
 http://www.gnu.de/gpl-ger.html
 
 
 http://www.gnu.de/gpl-ger.html
 
-Die gueltige Lizenz zu dieser Software finden Sie in der Datei DOCS/LICENSE.txt.
+Die gueltige Lizenz zu dieser Software finden Sie in der Datei DOCS/LICENSE-GPL2.txt.
 
 Eine Online-Kopie koennen Sie unter folgender URL abrufen:
 
 
 Eine Online-Kopie koennen Sie unter folgender URL abrufen:
 
index ea8c8a57d9f2b76d178e4eb1dbb2f81f3b683de0..27c343d73b333f21d4cd824944db2f7a5c0c3991 100644 (file)
@@ -106,7 +106,7 @@ Die Installation ist recht einfach gehalten:
   muessen derzeit die deutsche Sprache dann so aufrufen:
   http://www.ihr-server.de/install.php?mx_lang=de
 
   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:
+- Lassen Sie folgende Einstellungen beim Installieren auf Standard:
   + Ausgabe-Modus auf 'render'
   + Frameset abschalten (Table-Set aktivieren).
 
   + Ausgabe-Modus auf 'render'
   + Frameset abschalten (Table-Set aktivieren).
 
@@ -238,7 +238,7 @@ automatisch generiert.
 
 Die Erweiterungen admintheme1 und admintheme_default sind Sondererweiterungen:
 
 
 Die Erweiterungen admintheme1 und admintheme_default sind Sondererweiterungen:
 
-- admintheme_default: Standartmenue (Auslieferung) setzen
+- admintheme_default: Standardmenue (Auslieferung) setzen
 - admintheme1: EMail-Statistik und Online-Statistik werden in das Menue
   Statistiken verschoben
 
 - admintheme1: EMail-Statistik und Online-Statistik werden in das Menue
   Statistiken verschoben
 
@@ -248,7 +248,7 @@ Funktion haben.
 
 Zurueck zur Konfiguration des Mailtausches!
 
 
 Zurueck zur Konfiguration des Mailtausches!
 
-Als naechstes sollten Sie schauen, ob Sie mit den Standartbeschriftungen aller
+Als naechstes sollten Sie schauen, ob Sie mit den Standardbeschriftungen aller
 Menues zufrieden sind (was auch meistens so ist... ;-) ). Dann richten Sie unter
 "Einstellungen" die Untermenuepunkte von oben nach unten durcharbeiten:
 
 Menues zufrieden sind (was auch meistens so ist... ;-) ). Dann richten Sie unter
 "Einstellungen" die Untermenuepunkte von oben nach unten durcharbeiten:
 
@@ -357,7 +357,7 @@ 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
 geschieht vollkommen automatisch!
 
 Melden Sie sich als naechstes selber an. Die vom System Ihnen zugeteilte Ref-ID
-tragen Sie unter "Einstellungen -> Standart Ref-ID" als Referral-ID ein.
+tragen Sie unter "Einstellungen -> Standard Ref-ID" als Referral-ID ein.
 
 Sobald Sie dies getan haben, und jemand Ihren Mailtausch ohne Ref-Link aufruft,
 wird automatisch Ihre Ref-ID im Anmeldeformular eingesetzt. Folglich erhalten Sie
 
 Sobald Sie dies getan haben, und jemand Ihren Mailtausch ohne Ref-Link aufruft,
 wird automatisch Ihre Ref-ID im Anmeldeformular eingesetzt. Folglich erhalten Sie
@@ -493,7 +493,7 @@ FEHLER:
 LOESUNG: (LigHTTPd)
   Bitte hier nachsehen: http://forum.mxchange.org/topic-477.html Letztendlich
   muss die Einstellung 'net.core.somaxconn' auf z.B. 1024 erhoeht werden,
 LOESUNG: (LigHTTPd)
   Bitte hier nachsehen: http://forum.mxchange.org/topic-477.html Letztendlich
   muss die Einstellung 'net.core.somaxconn' auf z.B. 1024 erhoeht werden,
-  Standartwert ist 128 unter Debian, was bei hoher Last viel zu niedrig ist.
+  Standardwert ist 128 unter Debian, was bei hoher Last viel zu niedrig ist.
 
 FEHLER:
   Ihr Hoster leitet alle nicht eingerichteten Subdomains auf Ihre Hauptseite
 
 FEHLER:
   Ihr Hoster leitet alle nicht eingerichteten Subdomains auf Ihre Hauptseite
@@ -504,7 +504,7 @@ OESUNG:
   die URL Ihrer Webseite ein:
 
 // Fix URL - start
   die URL Ihrer Webseite ein:
 
 // Fix URL - start
-setConfigEntry('URL', 'http://www.your-domain.invalid');
+setConfigEntry('URL', 'http://www.your-domain.example');
 // Fix URL - end
 
   (*KEIN* Slash am Ende!)
 // Fix URL - end
 
   (*KEIN* Slash am Ende!)
@@ -533,6 +533,10 @@ Auch sollten Sie meinen Bug-Tracker aufsuchen und dort Fehlermeldungen posten:
 
 http://bugs.mxchange.org
 
 
 http://bugs.mxchange.org
 
+Das Wiki liefert viele wichtige Informationen:
+
+http://wiki.mxchange.org
+
 Alle wichtigen Kontaktdaten finden Sie im Impressum:
 
 http://mxchange.org/cms/index/wht/impressum
 Alle wichtigen Kontaktdaten finden Sie im Impressum:
 
 http://mxchange.org/cms/index/wht/impressum
@@ -557,6 +561,6 @@ mitgeschickt bzw. ist in der Repository unter [1] einsehbar.
 12. Aufloesung von Nummern:
 ---------------------------
 
 12. Aufloesung von Nummern:
 ---------------------------
 
-[1]: http://mxchange.org/repos/mailer/branches/0.2.1-FINAL/DOCS/LICENSE.txt
+[1]: http://mxchange.org/repos/mailer/branches/0.2.1-FINAL/DOCS/LICENSE-GPL2.txt
 
 [EOF]
 
 [EOF]
index 58dd21ae958992174e7df6e5bc184b13250a55e0..507e45c13b237c3e2cd74255724d39166096cdbb 100644 (file)
@@ -95,7 +95,7 @@ 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.
 
 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-
+Beide Barrieren koennen Sie im Admin-Bereich veraendern, die Standard-
 Einstellungen sind mit einigen Webmastern abgeklaert und sollte sicher genug
 sein.
 
 Einstellungen sind mit einigen Webmastern abgeklaert und sollte sicher genug
 sein.
 
index b180a729e9630c938a705a31860f290cff1b1880..8196f9108278a080fcca3d34a5b4a76660a85ea6 100644 (file)
@@ -12,7 +12,7 @@
 --- OFFEN: ---
 - Den gesamten HTML-Code auf XHTML portieren und mit http://validator.w3.org validieren
 - Alle JavaScripte aus den HTML-Templates umlagern und per js.php?tag=xxx
 --- OFFEN: ---
 - Den gesamten HTML-Code auf XHTML portieren und mit http://validator.w3.org validieren
 - Alle JavaScripte aus den HTML-Templates umlagern und per js.php?tag=xxx
-  aufrufen
+  aufrufen (bzw. nach js/ auslagern wenn keine Template-Variablen vorhanden sind)
 - Die Datenbankspalten ext_has_css nach ext_css und id nach ext_id umbenennen (Tabelle extensions)
 - Dokumentation erweitern
 - Englische Uebersetzung komplettieren
 - Die Datenbankspalten ext_has_css nach ext_css und id nach ext_id umbenennen (Tabelle extensions)
 - Dokumentation erweitern
 - Englische Uebersetzung komplettieren
index cd4c9eecac11360600dc5ed577e84a59d9fd8013..b41c59b1c25f1a036796d9ebe0fd06fdb9f6fea9 100644 (file)
@@ -6,7 +6,7 @@ die eigentlichen Daten werden mit BASE-64 und URL-Encoding uebergeben.
 
 Aufruf von autoreg.php:
 
 
 Aufruf von autoreg.php:
 
-http://ihr-server.domain.invalid/autoreg.php?request=url_encode(base64_encode(gzcompress(ENCRYPT|REQUEST-DATA|AUTH-KEY)))
+http://ihr-server.domain.example/autoreg.php?request=url_encode(base64_encode(gzcompress(ENCRYPT|REQUEST-DATA|AUTH-KEY)))
 
 Dabei gilt:
 --------------------------------------------------------------------------------
 
 Dabei gilt:
 --------------------------------------------------------------------------------
index 6f7a8153ff1deb78bc552d50e40be106f3fb6640..9ac788964f927d3e95c683dd04bce63cfce4a1dd 100644 (file)
@@ -1,45 +1,11 @@
-Forced-Banner/-Textlink (Ads):
-- Id-Nummer
-- Banner-URL
-- Klick-URL
-- Hoehe
-- Breite
-- Alternativer Text
-- Framebrecher Y/N
-- Zaehler Anzahl Klicks
-- Zaehler Anzahl Views
-- Reloadzeit/-sperre
-- Mindestauffenthalt
+-------------------------------------------------------------------------------
+                    Hinweis wegen Saeuberung dieser Datei
+-------------------------------------------------------------------------------
 
 
-Forced-Kampagnen:
-- Id-Nummer
-- Banner-Id
-- Buchungszeitmarke
-- Status (ACTIVE,PENDING,EXPIRED,LOCKED)
-- Sperrgrund
-- Sperrzeitmarke
-- Ablaufzeitmarke
-- Preis pro Klick
-- Verguetung pro Klick
-- Anzahl gebuchter Klicks
-- Veguetung-Id (wenn nicht Preis/Verguetung gesetzt sind)
-
-Forced-Kampagne<>User:
-- Id-Nummer
-- Kampagnen-Id
-- Bucher-Id (vom Mitglied/Sponsor/Admin)
-- Bucher-Typ (USER,SPONSOR,ADMIN,API)
-
-Forced-Verguetungen f. Mitglieder/Sponsoren
-- Id-Nummer
-- Preis pro Klick
-- Verguetung pro Klick
-- Sichtbarkeit (MEMBER,SPONSOR,ALL,NONE)
-
-Forced-Kampagnenstatistik
-- Id-Nummer
-- Kampagnen-Id
-- User-Id (der geklickt hat)
-- Klickzeitpunkt
-- Verguetung
+Diese Datei wurde am 03.10.2011 gesaeubert, da diese Datei nicht mehr gewartet
+wird und der Aufwand, drei Stellen (diese Datei, die ext-forced.php selbst und
+das Wiki) zu gross wird. Anstelle gibt es jetzt eine Wiki-Seite, die gepflegt
+wird.
 
 
+Hier der Link zur Entwickler-Wiki-Seite von ext-forced:
+http://wiki.mxchange.org/doku.php/de/developer/ideas/extensions/ext-forced
index 35beb826f83f66bece7ac31e833a7b524fd2f5ca..42267daf5d42a631baa47dfddf95627642778d6c 100644 (file)
@@ -19,7 +19,7 @@ CID = Kampagnen-Id (z.B. Textmail-Id aus Textmails, CampaignID)
 TID = Track-Id oder Sub-Id (z.B. lokale User-Id von dem klickenden Mitglied)
 
 Beispiel:
 TID = Track-Id oder Sub-Id (z.B. lokale User-Id von dem klickenden Mitglied)
 
 Beispiel:
-http://www.anbieter-name.invalid/code/t-mail.php?id=%UID%&sid=%SID%&trackid=%TID%
+http://www.anbieter-name.example/code/t-mail.php?id=%UID%&sid=%SID%&trackid=%TID%
 
 -------------------------------------------------------------------------------
 
 
 -------------------------------------------------------------------------------
 
@@ -60,7 +60,7 @@ Tragen Sie dazu einfach den kompletten "rohen" Referral-Link aus dem jeweiligen
 Zugangsbereiches des Werbenetzwerkes ein, wo Sie sich angemeldet haben.
 
 So kann dieser Link aussehen:
 Zugangsbereiches des Werbenetzwerkes ein, wo Sie sich angemeldet haben.
 
 So kann dieser Link aussehen:
-http://www.anbieter-name.invalid/?ref=xxxx
+http://www.anbieter-name.example/?ref=xxxx
 
 Den genauen Link erfahren Sie im Zugangsbereich des Werbenetzwerkes meistens
 unter "Werbebanner" oder "Ref-Center". Bitte kopieren Sie jedoch keinen
 
 Den genauen Link erfahren Sie im Zugangsbereich des Werbenetzwerkes meistens
 unter "Werbebanner" oder "Ref-Center". Bitte kopieren Sie jedoch keinen
index 7b31b121f8503383238c076609ae00a99d0ce320..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,10 +1 @@
-#!/bin/sh
-
-# Shell script to determine where in the code are commented-in debug lines
-#
-if ! test -e "modules.php"; then
-  echo "$0: Please execute this script from root directory."
-  exit 1
-fi
-
-svn diff |grep -v "svn diff" | grep "DEBUG" | grep "+" | grep -v "//\* DEBUG" > DOCS/debug-lines.log
+#@DEPRECATED
index a3fb4dbe1e3c96f0086a9c873e5e9d2231c748e2..e16c9a66a4a7c8cc8bdebc15fe277f225631fd5a 100644 (file)
@@ -1,3 +1,3 @@
-Please read the license file DOCS/LICENSE.txt for details.
+Please read the license file DOCS/LICENSE-GPL2.txt for details.
 
 [EOF]
 
 [EOF]
index 8a2b64cec7cc8ef9c52a462e1b1818f8adb44083..c97fbb19537685cfb3fc1e9f330f075b897deef2 100644 (file)
@@ -94,7 +94,7 @@ 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.
 
 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-
+Beide Barrieren koennen Sie im Admin-Bereich veraendern, die Standard-
 Einstellung ist mit einigen Webmastern abgeklaert und sollte sicher genug sein.
 
 3. Modul-Sicherheit
 Einstellung ist mit einigen Webmastern abgeklaert und sollte sicher genug sein.
 
 3. Modul-Sicherheit
index 322b9382d018f72b87d2d3a1845db68b92dc4f84..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,34 +1 @@
-#!/bin/sh
-
-# Shell script to determine how close we are to final release
-# If one of these values are bigger zero we still have to do something
-#
-if ! test -e "modules.php"; then
-  echo "$0: Please execute this script from root directory."
-  exit 1
-fi
-
-echo "$0: Analyzing..."
-echo " - TODOs in PHP..."
-TODOS_PHP=`find -type f -name "*.php" -exec grep "@TODO" {} \; | grep "@" --count`
-echo " - TODOs in TPL..."
-TODOS_TPL=`find -type f -name "*.tpl" -exec grep "@TODO" {} \; | grep "@" --count`
-echo " - TODOs in XML..."
-TODOS_XML=`find -type f -name "*.xml" -exec grep "@TODO" {} \; | grep "@" --count`
-echo " - DEPRECATED in PHP..."
-DEPRECATED_PHP=`find -type f -name "*.php" -exec grep "@DEPRECATED" {} \; | grep "@" --count`
-echo " - DEPRECATED in TPL..."
-DEPRECATED_TPL=`find -type f -name "*.tpl" -exec grep "@DEPRECATED" {} \; | grep "@" --count`
-echo " - DEPRECATED in XML..."
-DEPRECATED_XML=`find -type f -name "*.xml" -exec grep "@DEPRECATED" {} \; | grep "@" --count`
-echo " - global statements..."
-GLOBALS=`find -type f -name "*.php" -exec grep -Hn "global " {} \; | grep -v "//" | grep -v "security_functions.php" | grep -v "phpmailer" --count`
-echo "$0: Result..."
-echo "--------------------------------------"
-echo " - Open TODOs: ${TODOS_PHP}/${TODOS_TPL}/${TODOS_XML}"
-echo " - Open DEPRECATED: ${DEPRECATED_PHP}/${DEPRECATED_TPL}/${DEPRECATED_XML}"
-echo " - global statements: ${GLOBALS}"
-echo "--------------------------------------"
-echo "$0: Thanks for waiting for the final release 0.2.1-FINAL! :-)"
-echo
-exit 0
+#@DEPRECATED
index 1e333eee6adac48f6618ceb1b796b4011216b251..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,15 +1 @@
-#!/bin/sh
-
-if ! test -e "modules.php"; then
-  echo "$0: Please execute this script from root directory."
-  exit 1
-fi
-
-echo "$0: Analysing PHP scripts for syntax errors (lint) ..."
-LINT=`find -type f -name "*.php" -exec php -l -f {} 2>&1 \; | grep -v "No syntax errors detected in"`
-
-if test "${LINT}" != ""; then
-       echo "${LINT}"
-else
-       echo "$0: No syntax errors found."
-fi
+#@DEPRECATED
index fcc04614e6febdb7a496968a6319e47d0bacee43..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,3 +1 @@
-#!/bin/sh
-
-svn merge --dry-run http://mxchange.org/repos/mailer/branches/0.2.1-FINAL-expression_language_BROKEN/ http://mxchange.org/repos/mailer/branches/0.2.1-FINAL .
+#@DEPRECATED
index caf1bcd5424f662dd76074b08400d39b37784661..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,20 +1 @@
-#!/bin/sh
-
-if ! test -e "modules.php"; then
-  echo "$0: Please execute this script from root directory."
-  exit 1
-fi
-
-find -type f -name "*.php" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
-find -type f -name "*-" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
-find -type f -name "*_" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
-find -type f -name "_*.php" -exec svn propset svn:keywords "Author Id Revision HeadURL Date Tag" {} \;
-find -type f -name "*.php" -exec svn propset svn:mime-type "text/plain" {} \;
-find -type f -name "*-" -exec svn propset svn:mime-type "text/plain" {} \;
-find -type f -name "*_" -exec svn propset svn:mime-type "text/plain" {} \;
-find -type f -name "_*.php" -exec svn propset svn:mime-type "text/plain" {} \;
-find -type f -name "*.jpg" -exec svn propset svn:mime-type "image/jpeg" {} \;
-find -type f -name "*.png" -exec svn propset svn:mime-type "image/png" {} \;
-find -type f -name "*.gif" -exec svn propset svn:mime-type "image/gif" {} \;
-find -type f -name "*.txt" -exec svn propset svn:mime-type "text/plain" {} \;
-find -type f -name "*.tpl" -exec svn propset svn:mime-type "text/plain" {} \;
+#@DEPRECATED
index 87bed750d944fee16987e144d4e9d3dcfc3bc11d..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,12 +1 @@
-#!/bin/sh
-
-if ! test -e "modules.php"; then
-  echo "$0: Please execute this script from root directory."
-  exit 1
-fi
-
-LIST=`find -name "*.tpl" -exec grep -H "@DEPRECATED" {} \;`
-if test "${LIST}" != ""; then
-       echo "${LIST}" | cut -d ":" -f 1 | xargs svn --force del
-       sh ./DOCS/todo-builder.sh
-fi
+#@DEPRECATED
index 999c8e84a4d2b5847770941d71af113fa9ef957f..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,35 +1 @@
-#!/bin/sh
-
-# This script helps building the file DOCS/TODOs.txt and should be executed by
-# developers with SVN write-access
-
-if ! test -e "modules.php"; then
-  echo "$0: Please execute this script from root directory."
-  exit 1
-fi
-
-TODO=`dirname $0`/TODOs.txt
-
-echo "$0: Generating TODOs.txt ..."
-echo "### WARNING: THIS FILE IS AUTO-GENERATED BY $0 (uid=${UID}/user=${USER}) ###" > ${TODO}
-echo "### DO NOT EDIT THIS FILE. ###" >> ${TODO}
-echo "$0: Searching for @TODO ..."
-find -type f -name "*.php" -exec grep -Hin "@TODO" {} \; | sort >> ${TODO}
-find -type f -name "*.tpl" -exec grep -Hin "@TODO" {} \; | sort >> ${TODO}
-find -type f -name "*.xml" -exec grep -Hin "@TODO" {} \; | sort >> ${TODO}
-find -type f -name ".htaccess" -exec grep -Hin "@TODO" {} \; | sort >> ${TODO}
-echo "### ### DEPRECATION FOLLOWS: ### ###" >> ${TODO}
-echo "$0: Searching for @DEPRECATED ..."
-find -type f -name "*.php" -exec grep -Hin "@DEPRECATED" {} \; | sort >> ${TODO}
-find -type f -name "*.tpl" -exec grep -Hin "@DEPRECATED" {} \; | sort >> ${TODO}
-find -type f -name "*.xml" -exec grep -Hin "@DEPRECATED" {} \; | sort >> ${TODO}
-find -type f -name ".htaccess" -exec grep -Hin "@DEPRECATED" {} \; | sort >> ${TODO}
-echo "$0: Checking for template-warnings.log ..."
-LOG=`dirname $0`/template-warnings.log
-if test -e "${LOG}"; then
-       echo "$0: Found a template-warnings.log, adding it..."
-       echo "### ### template-warnings.log follows: ### ###" >> ${TODO}
-       cat ${LOG} >> ${TODO}
-fi
-echo "$0: Done."
-exit 0
+#@DEPRECATED
index d5f3c055aa9eb309561c73eb26667da6ee3197b6..737d10675f4274d73f5a43257d5b53851445b586 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -56,15 +56,15 @@ $doc->loadHTMLFile($_SERVER['argv'][1]);
 
 $data = $doc->saveHTML();
 $newData = str_replace("<br>", "<br />\n", $data);
 
 $data = $doc->saveHTML();
 $newData = str_replace("<br>", "<br />\n", $data);
-$newData = str_replace("\n\n", "\n", $newData);
+$newData = str_replace("\n\n", chr(10), $newData);
 
 
-$array = explode("\n", $newData);
+$array = explode(chr(10), $newData);
 array_shift($array);
 array_shift($array);
 unset($array[count($array) - 1]);
 unset($array[count($array) - 1]);
 
 array_shift($array);
 array_shift($array);
 unset($array[count($array) - 1]);
 unset($array[count($array) - 1]);
 
-$newData = implode("\n", $array)."\n";
+$newData = implode(chr(10), $array).chr(10);
 
 // Has a template changed?
 if ($data != $newData) {
 
 // Has a template changed?
 if ($data != $newData) {
index 9dea827d03f77191a032ade21b241a2e008f65ea..b3de570576e026b8d19b94a6b4dcd7d3ab52dcd6 100755 (executable)
@@ -1,14 +1 @@
-#!/bin/sh
-
-if ! test -e "modules.php"; then
-  echo "$0: Please execute this script from root directory."
-  exit 1
-fi
-
-echo "$0: Validating all templates..."
-DUMMY=`find templates/de/html/ -type f -name *.tpl -exec php DOCS/tpl-validator.php {} \; 2>&1`
-echo "${DUMMY}" | \
-       grep "Warning" | \
-       cut -d "/" -f 1-5 | \
-       grep -v "error parsing attribute name" > `dirname $0`/template-warnings.log
-echo "$0: done."
+#@DEPRECATED
index c247e2b19b3ff3c231e9854b05b22d9c527b83a0..9505fa7de730431dca6928472e8f48bb1a7ef4e9 100644 (file)
--- a/admin.php
+++ b/admin.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module
 
 // Set module
-$GLOBALS['__module'] = 'admin';
-$GLOBALS['output_mode'] = -1;
+$GLOBALS['__module']      = 'admin';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
diff --git a/agb.php b/agb.php
index b995f68da730daa504ec37a87541befab7b17cfb..a47be37f6d09966c01f676ef5fecd7f6135e1f2e 100644 (file)
--- a/agb.php
+++ b/agb.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module
-$GLOBALS['__module'] = 'agb';
-$GLOBALS['output_mode'] = -1;
+// Set module and output mode (raw)
+$GLOBALS['__module']      = 'agb';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
diff --git a/ajax.php b/ajax.php
new file mode 100644 (file)
index 0000000..8ef804f
--- /dev/null
+++ b/ajax.php
@@ -0,0 +1,90 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 09/17/2011 *
+ * ===================                          Last change: 09/17/2011 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ajax.php                                         *
+ * -------------------------------------------------------------------- *
+ * Short description : AJAX backend script                              *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : AJAX-Abfragescript                               *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// XDEBUG call
+//* DEBUG: */ xdebug_start_trace();
+
+// Load security system
+require('inc/libs/security_functions.php');
+
+// Init start time
+$GLOBALS['__start_time'] = microtime(true);
+
+/*
+ * Set output to "AJAX mode", proper module and prevent HTML headers/footers
+ * being sent.
+ */
+$GLOBALS['__output_mode'] = -2;
+$GLOBALS['__module']      = 'ajax';
+$GLOBALS['__header_sent'] = 2;
+$GLOBALS['__footer_sent'] = 2;
+
+// Load config file
+require('inc/config-global.php');
+
+// Load special AJAX library
+loadIncludeOnce('inc/ajax-functions.php');
+
+// Init AJAX request (including HTTP status code)
+initAjax();
+
+// Load header here
+loadIncludeOnce('inc/header.php');
+
+// Process only POST requests and that at least 'level' is set
+if ((getHttpRequestMethod() == 'POST') && (isPostRequestElementSet('level'))) {
+       // Okay, that is valid, now check that the requested level right is valid
+       if (isAjaxRequestLevelValid()) {
+               // Process the request
+               processAjaxRequest();
+
+               // Do we have an error? ('200 OK' is fine)
+               if ((getHttpStatus() != '200 OK') && (getHttpStatus() != '404 NOT FOUND')) {
+                       // The process was handled but didn't work
+                       reportBug(__FUNCTION__, __LINE__, 'AJAX request is valid but does not do anything.');
+               } // END - if
+       } else {
+               // Not allowed
+               setHttpStatus('403 Forbidden');
+       }
+} // END - if
+
+// Footer
+loadIncludeOnce('inc/footer.php');
+
+// [EOF]
+?>
index 7ccffab41094a470fc99ebf3628ea5ec9a785121..de3548d39987575e2a4e7baf6d16d0f85c68ffbe 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module
 
 // Set module
-$GLOBALS['__module'] = 'autoreg';
-$GLOBALS['output_mode'] = 1;
-$GLOBALS['header_sent'] = 3;
+$GLOBALS['__module']      = 'autoreg';
+$GLOBALS['__output_mode'] = 1;
+$GLOBALS['__header_sent'] = 3;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
diff --git a/beg.php b/beg.php
index 83c0bb1e2a484281fd7d677194c85548ab479e88..8459da1436704cc40936eda4c4a241aec41b4148 100644 (file)
--- a/beg.php
+++ b/beg.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module
-$GLOBALS['__module'] = 'beg';
-$GLOBALS['output_mode'] = '0';
+// Set module and output mode (HTML)
+$GLOBALS['__module']      = 'beg';
+$GLOBALS['__output_mode'] = '0';
 $errorCode = NULL;
 
 // Load the required file(s)
 $errorCode = NULL;
 
 // Load the required file(s)
@@ -212,7 +212,7 @@ if (isGetRequestElementSet('userid')) {
 }
 
 // Really all done here... ;-)
 }
 
 // Really all done here... ;-)
-shutdown();
+doShutdown();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
index 364d7ca2360291ae251335b6c41ff3cb7e04ff1d..f1193741f44e26e6a960320b0534daec9391e7e7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module
 
 // Set module
-$GLOBALS['__module'] = 'birthday_confirm';
-$GLOBALS['output_mode'] = '0';
+$GLOBALS['__module']      = 'birthday_confirm';
+$GLOBALS['__output_mode'] = '0';
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
index d5cc535af561eeebdf5fd584f19ecbc40c325525..7a35e98a54bcd930c477ac3b7b31c9c1ceae2cd1 100644 (file)
--- a/click.php
+++ b/click.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module
 
 // Set module
-$GLOBALS['__module'] = 'click';
-$GLOBALS['output_mode'] = -1;
+$GLOBALS['__module']      = 'click';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
@@ -67,7 +67,7 @@ if ((isGetRequestElementSet('user')) && (isGetRequestElementSet('banner'))) {
 redirectToUrl('modules.php?module=index');
 
 // Shutdown
 redirectToUrl('modules.php?module=index');
 
 // Shutdown
-shutdown();
+doShutdown();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
index 56c395494f470c1684df5a5ca3def2f6f77b98b5..5df3718fb692a67b8c22deff6fdaed84fd502da2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module to confirm
-$GLOBALS['__module'] = 'confirm';
-$GLOBALS['output_mode'] = -1;
+// Set module to confirm and output-mode to raw
+$GLOBALS['__module']      = 'confirm';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
diff --git a/css.php b/css.php
index 277d19ec45e49f7f3df7dbd91fe29639fe57c82b..c75762c63cf9b7de95d063d0cf33a9642ff58797 100644 (file)
--- a/css.php
+++ b/css.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Footer is disabled in CSS mode
 require('inc/libs/security_functions.php');
 
 // Footer is disabled in CSS mode
-$GLOBALS['footer_sent'] = -1;
+$GLOBALS['__footer_sent'] = -1;
 
 // Init start time
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// This is a CSS file loader!
-$GLOBALS['__module'] = 'css';
-$GLOBALS['output_mode'] = 1;
+// This is a CSS file loader
+$GLOBALS['__module']      = 'css';
+$GLOBALS['__output_mode'] = 1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
index 87d11a704e2f60d38c57d791089edd01e9279f88..77443cf126c017f0a2061c88ef768da5964faf08 100644 (file)
--- a/debug.php
+++ b/debug.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module and fake "CSS mode"
 
 // Set module and fake "CSS mode"
-$GLOBALS['__module'] = 'debug';
-$GLOBALS['output_mode'] = -1;
+$GLOBALS['__module']      = 'debug';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
@@ -82,7 +82,7 @@ if ((isExtensionActive('debug')) && (!ifFatalErrorsDetected())) {
 } // END - if
 
 // Really all done here... ;-)
 } // END - if
 
 // Really all done here... ;-)
-shutdown();
+doShutdown();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
index 6a259162edbede44c1cfc2bff954296c060a4cbf..d8a7f4be5643c34eb776dd564a69c00bcd952b91 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module
-$GLOBALS['__module'] = 'doubler';
-$GLOBALS['output_mode'] = '0';
+// Set module and output mode
+$GLOBALS['__module']      = 'doubler';
+$GLOBALS['__output_mode'] = '0';
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
diff --git a/img.php b/img.php
index ebe55cbecc8a58f68da7646144abfad6e9cb643d..6cb9043b6691ec5681ff4e7d0b8f73657681dc4c 100644 (file)
--- a/img.php
+++ b/img.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module
-$GLOBALS['__module'] = 'img';
-$GLOBALS['output_mode'] = -3;
+// Set module and output mode
+$GLOBALS['__module']      = 'img';
+$GLOBALS['__output_mode'] = -3;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
diff --git a/inc/ajax-functions.php b/inc/ajax-functions.php
new file mode 100644 (file)
index 0000000..47db96c
--- /dev/null
@@ -0,0 +1,137 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 09/17/2011 *
+ * ===================                          Last change: 09/17/2011 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ajax-functions.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : AJAX-related functions                           *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : AJAX-bezogene Funktionen                         *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} // END - if
+
+// Init ajax request
+function initAjax () {
+       // Init AJAX reply array
+       $GLOBALS['ajax_reply'] = array(
+               // Raw content
+               'reply_content' => NULL,
+       );
+
+       // Set content type (mostly JSON)
+       setContentType('application/json');
+
+       // By default nothing is found/valid
+       setHttpStatus('204 No Content');
+
+       // Set username
+       setUsername('{--USERNAME_AJAX--}');
+
+       // In installation phase load ajax_installer.php
+       if (isInstallationPhase()) {
+               // Load it
+               loadIncludeOnce('inc/ajax/ajax_installer.php');
+       } // END - if
+}
+
+// Setter for AJAX reply content
+function setAjaxReplyContent ($content) {
+       // Set it, but with URL encoding
+       $GLOBALS['ajax_reply']['reply_content'] = urlencode(doFinalCompilation($content, false));
+}
+
+/**
+ * Checks whether the AJAX access level was valid. This function doesn't need
+ * caching in $GLOBALS[__FUNCTION__] because it will be called only once.
+ */
+function isAjaxRequestLevelValid () {
+       // By default nothing is valid
+       $isValid = false;
+
+       // Switch on the 'level' value
+       switch (postRequestElement('level')) {
+               case 'install': // Installation phase level
+                       // Simply check for it
+                       $isValid = isInstallationPhase();
+                       break;
+
+               case 'admin': // Admin area
+                       // Load admin includes
+                       loadIncludeOnce('inc/modules/admin/admin-inc.php');
+                       loadIncludeOnce('inc/ajax/ajax_admin.php');
+
+                       // Determine correct 'what' value
+                       $what = determineWhat();
+
+                       // Get action value
+                       $action = getActionFromModuleWhat('admin', $what);
+
+                       // Check condition
+                       $isValid = ((isAdmin()) && (isAdminAllowedAccessMenu($action, $what)));
+                       break;
+
+               default: // Unsupported level (please report this!)
+                       logDebugMessage(__FUNCTION__, __LINE__, 'Unsupported AJAX request access level ' . postRequestElement('level') . ' detected. Please report this, it means this part is not finished.');
+                       break;
+       } // END - switch
+
+       // Return validation result
+       return $isValid;
+}
+
+// Processes the AJAX request by generating a call-back on given 'level' value
+function processAjaxRequest () {
+       // Generate the call-back function name
+       $callbackName = 'doAjaxProcess' . capitalizeUnderscoreString(postRequestElement('level'));
+
+       // Is the call-back function there?
+       if (!function_exists($callbackName)) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'AJAX call-back ' . $callbackName . ' does not exist.');
+       } // END - if
+
+       // Call the function
+       call_user_func($callbackName);
+}
+
+// Send AJAX content
+function sendAjaxContent () {
+       // Is the status fine or template not found (404)?
+       if ((getHttpStatus() == '200 OK') || (getHttpStatus() == '404 NOT FOUND')) {
+               // Then output the JSON
+               outputHtml(json_encode($GLOBALS['ajax_reply'], JSON_FORCE_OBJECT));
+       } // END - if
+}
+
+// [EOF]
+?>
diff --git a/inc/ajax/.htaccess b/inc/ajax/.htaccess
new file mode 100644 (file)
index 0000000..3a42882
--- /dev/null
@@ -0,0 +1 @@
+Deny from all
diff --git a/inc/ajax/ajax_admin.php b/inc/ajax/ajax_admin.php
new file mode 100644 (file)
index 0000000..dc5733e
--- /dev/null
@@ -0,0 +1,112 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 06/24/2012 *
+ * ===================                          Last change: 06/24/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ajax_admin.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : AJAX library for admin menu                      *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : AJAX-Bibliothek fuer Adminmenu                   *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+       die();
+} // END - if
+
+// "Generates" admin content by loading a message template
+function generateAdminContent () {
+       // Return it
+       return displayMessage('{--ADMIN_AJAX_MENU_IS_LOADING--}', true);
+}
+
+// Processes AJAX requests for admin menu
+function doAjaxProcessAdmin () {
+       // 'do' must always be set and isAdmin must be true
+       if (!isAdmin()) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'This AJAX request handler was called outside the admin menu.');
+       } elseif (!isPostRequestElementSet('do')) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "do" which is fatal.');
+       } // END - if
+
+       // Again we do a call-back, so generate a function name depending on 'do'
+       $callbackName = 'doAjaxAdmin' . capitalizeUnderscoreString(postRequestElement('do'));
+
+       // Is the call-back function there?
+       if (!function_exists($callbackName)) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'AJAX call-back ' . $callbackName . ' does not exist.');
+       } // END - if
+
+       // Call the function
+       call_user_func($callbackName);
+
+       // Send AJAX content
+       sendAjaxContent();
+}
+
+// Processes admin AJAX calls for content-requests
+function doAjaxAdminRequestContent () {
+       // 'tab' must be there
+       if (!isPostRequestElementSet('tab')) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "tab" which is fatal.');
+       } // END - if
+
+       // Construct call-back name for value-preset
+       $callbackName = 'doAjaxPrepareAdmin' . capitalizeUnderscoreString(postRequestElement('tab'));
+
+       // Is the function there?
+       if (function_exists($callbackName)) {
+               // Call it for setting values in session
+               call_user_func($callbackName);
+       } else {
+               // Log missing functions
+               logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callbackName . ' does not exist.');
+       }
+
+       // Is the HTTP status still the same? (204 No Content)
+       if (getHttpStatus() == '204 No Content') {
+               // We use the current access level 'install' as prefix and construct a template name
+               setAjaxReplyContent(loadTemplate('admin_area_' . trim(postRequestElement('tab')), true));
+
+               // Has the template been loaded?
+               if (isset($GLOBALS['tpl_content']['admin_page_' . trim(postRequestElement('tab'))])) {
+                       // All okay if we reach this point
+                       setHttpStatus('200 OK');
+               } else {
+                       // Set 404 error
+                       setHttpStatus('404 NOT FOUND');
+               }
+       } // END - if
+}
+// [EOF]
+?>
diff --git a/inc/ajax/ajax_installer.php b/inc/ajax/ajax_installer.php
new file mode 100644 (file)
index 0000000..1f6f9fc
--- /dev/null
@@ -0,0 +1,461 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 06/24/2012 *
+ * ===================                          Last change: 06/24/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ajax_installer.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : AJAX-related functions for installer             *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : AJAX-bezogene Funktionen fuer Installer          *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} // END - if
+
+//-----------------------------------------------------------------------------
+//             Call-back functions for processing AJAX requests
+//-----------------------------------------------------------------------------
+
+// Processes AJAX requests for installer
+function doAjaxProcessInstall () {
+       // 'do' must always be set and installation phase must be true
+       if (!isInstallationPhase()) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'This AJAX request handler was called outside the installer.');
+       } elseif (!isPostRequestElementSet('do')) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "do" which is fatal.');
+       } // END - if
+
+       // Notify all modules that we are installing
+       $GLOBALS['__mailer_installing'] =  true;
+
+       // Again we do a call-back, so generate a function name depending on 'do'
+       $callbackName = 'doAjaxInstaller' . capitalizeUnderscoreString(postRequestElement('do'));
+
+       // Is the call-back function there?
+       if (!function_exists($callbackName)) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'AJAX call-back ' . $callbackName . ' does not exist.');
+       } // END - if
+
+       // Call the function
+       call_user_func($callbackName);
+
+       // Is the status fine or template not found (404)?
+       sendAjaxContent();
+}
+
+// Processes installer request for testing
+function doAjaxInstallerTest () {
+       // Load the "test passed" template
+       setAjaxReplyContent(loadTemplate('ajax_test_passed', true));
+
+       // All okay if we reach this point
+       setHttpStatus('200 OK');
+}
+
+// Processes installer requests for footer navigation
+function doAjaxInstallerFooterNavigation () {
+       // 'tab' must always be set to determine which navigation buttons shall be visible
+       if (!isPostRequestElementSet('tab')) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "tab" which is fatal.');
+       } // END - if
+
+       // Init array for footer navigation
+       $enabledNavigations = array();
+
+       // "Detect" the 'tab' value
+       switch (postRequestElement('tab')) {
+               case 'base_data': // Also 'previous' is valid
+               case 'database_config':
+               case 'smtp_config':
+               case 'other_config':
+                       array_push($enabledNavigations, 'previous');
+               case 'welcome': // Only 'next' works for welcome page
+                       array_push($enabledNavigations, 'next');
+                       break;
+
+               case 'overview': // Enable only 'previous'
+                       array_push($enabledNavigations, 'previous');
+                       break;
+
+               default: // Unsupported value
+                       // This shall not happen
+                       reportBug(__FUNCTION__, __LINE__, 'Unsupported "tab" value ' . postRequestElement('tab') . ' detected.');
+
+                       // This will never be reached
+                       break;
+       } // END - switch
+
+       // Output the array for JSON reply
+       setAjaxReplyContent(json_encode($enabledNavigations, JSON_FORCE_OBJECT));
+
+       // All okay if we reach this point
+       setHttpStatus('200 OK');
+}
+
+// Processes installer AJAX calls for content-requests
+function doAjaxInstallerRequestContent () {
+       // 'tab' must be there
+       if (!isPostRequestElementSet('tab')) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "tab" which is fatal.');
+       } // END - if
+
+       // Construct call-back name for value-preset
+       $callbackName = 'doAjaxPrepareInstaller' . capitalizeUnderscoreString(postRequestElement('tab'));
+
+       // Is the function there?
+       if (function_exists($callbackName)) {
+               // Call it for setting values in session
+               call_user_func($callbackName);
+       } else {
+               // Log missing functions
+               logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callbackName . ' does not exist.');
+       }
+
+       // Is the HTTP status still the same? (204 No Content)
+       if (getHttpStatus() == '204 No Content') {
+               // We use the current access level 'install' as prefix and construct a template name
+               setAjaxReplyContent(loadTemplate('install_page_' . trim(postRequestElement('tab')), true));
+
+               // Has the template been loaded?
+               if (isset($GLOBALS['tpl_content']['install_page_' . trim(postRequestElement('tab'))])) {
+                       // All okay if we reach this point
+                       setHttpStatus('200 OK');
+               } else {
+                       // Set 404 error
+                       setHttpStatus('404 NOT FOUND');
+               }
+       } // END - if
+}
+
+// Process installer AJAX call for change-warning
+function doAjaxInstallerChangeWarning () {
+       // 'elements' and 'button' must be there
+       if ((!isPostRequestElementSet('elements')) || (!isPostRequestElementSet('button'))) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "elements" and/or "button" which is fatal.');
+       } // END - if
+
+       // "Walk" through all elements
+       $OUT = '<ol>';
+       foreach (explode(':', postRequestElement('elements')) as $element) {
+               // Add row
+               $OUT .= '<li>{--INSTALLER_CHANGED_ELEMENT_' . strtoupper($element) . '--}</li>';
+       } // END - foreach
+       $OUT .= '</ol>';
+
+       // Prepare content
+       $content = array(
+               'out'     => $OUT,
+               'button'  => postRequestElement('button'),
+               'message' => '{--INSTALLER_TAB_NAVIGATION_' . strtoupper(postRequestElement('button')) . '_LINK--}',
+       );
+
+       if (in_array(postRequestElement('button'), array('previous', 'next'))) {
+               // Load 'prefixed' template
+               setAjaxReplyContent(loadTemplate('install_warning_' . postRequestElement('button'), true, $content));
+       } else {
+               // Load 'tab' template
+               setAjaxReplyContent(loadTemplate('install_warning_tab', true, $content));
+       }
+
+       // All okay if we reach this point
+       setHttpStatus('200 OK');
+}
+
+// Process installer AJAC call for saving changes
+function doAjaxInstallerSaveChanges () {
+       // 'tab' must always be set to create a post-check-callback
+       if (!isPostRequestElementSet('tab')) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "tab" which is fatal.');
+       } // END - if
+
+       // Save the tab for pre-"filtering"
+       $currentTab = postRequestElement('tab');
+
+       // Remove some elements which should not be saved
+       foreach (array('do', 'level') as $removedElement) {
+               // Remove this element from POST data
+               unsetPostRequestElement($removedElement);
+       } // END - foreach
+
+       // Default is failed save attempt (e.g. nothing to save)
+       $saveStatus = array(
+               'status'        => 'failed',
+               'message'       => '{--INSTALLER_SAVE_CHANGES_FAILED--}',
+               // Don't set this to false, or else it will be returned as 'failed' but is saved
+               'is_saved'      => true,
+               'failed_fields' => array()
+       );
+
+       // Init overall status
+       $isAllSaved = true;
+
+       // Now set all remaining data in session
+       foreach (postRequestArray() as $key => $value) {
+               // Set it, if it is valid, else it will be added to $saveStatus (call-by-reference)
+               $saveStatus['is_saved'] = (
+                       // Is the data valid?
+                       (isInstallerDataValid($saveStatus, $key, $value))
+               &&
+                       // And can it be stored in session?
+                       (setSession($key, $value))
+               );
+
+               // Save the overall status for below final check
+               $isAllSaved = (($isAllSaved === true) && ($saveStatus['is_saved'] === true));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ',is_saved=' . intval($saveStatus['is_saved']) . ',isAllSaved=' . intval($isAllSaved));
+       } // END - foreach
+
+       // 'is_saved' is still true?
+       if ($isAllSaved === true) {
+               // Set 'done' and message
+               $saveStatus['status']  = 'done';
+               $saveStatus['message'] = '{--INSTALLER_SAVE_CHANGES_DONE--}';
+
+               // Then do the post-check
+               doInstallerPostCheck($currentTab, $saveStatus);
+       } // END - if
+
+       // Output the status array for JSON reply
+       setAjaxReplyContent(json_encode($saveStatus, JSON_FORCE_OBJECT));
+
+       // All okay if we reach this point
+       setHttpStatus('200 OK');
+}
+
+// Prepare AJAX request 'welcome'
+function doAjaxPrepareInstallerWelcome () {
+       // Kept empty to prevent logfile entry
+}
+
+// Prepare AJAX request 'base_data'
+function doAjaxPrepareInstallerBaseData () {
+       // Is 'base_path' not set?
+       if (!isSessionVariableSet('base_path')) {
+               // Then set it from PATH
+               setSession('base_path', getPath());
+       } // END - if
+
+       // Is 'base_url' not set?
+       if (!isSessionVariableSet('base_url')) {
+               // Then set it from URL
+               setSession('base_url', getUrl());
+       } // END - if
+
+       // Is 'main_title' not set?
+       if (!isSessionVariableSet('main_title')) {
+               // Then set it from default main title
+               setSession('main_title', '{--DEFAULT_MAIN_TITLE--}');
+       } // END - if
+
+       // Is 'slogan' not set?
+       if (!isSessionVariableSet('slogan')) {
+               // Then set it from default slogan
+               setSession('slogan', '{--DEFAULT_SLOGAN--}');
+       } // END - if
+
+       // Is 'webmaster' not set?
+       if (!isSessionVariableSet('webmaster')) {
+               // Then set it from default webmaster email address
+               setSession('webmaster', '{--DEFAULT_WEBMASTER--}');
+       } // END - if
+}
+
+// Prepare AJAX request 'database_config'
+function doAjaxPrepareInstallerDatabaseConfig () {
+       // Is 'mysql_host' not set?
+       if (!isSessionVariableSet('mysql_host')) {
+               // Then set it directly
+               setSession('mysql_host', 'localhost');
+       } // END - if
+
+       // Is 'mysql_dbase' not set?
+       if (!isSessionVariableSet('mysql_dbase')) {
+               // Then set it directly
+               setSession('mysql_dbase', 'your_database');
+       } // END - if
+
+       // Is 'mysql_prefix' not set?
+       if (!isSessionVariableSet('mysql_prefix')) {
+               // Then set it directly
+               setSession('mysql_prefix', 'mailer');
+       } // END - if
+
+       // Is 'mysql_login' not set?
+       if (!isSessionVariableSet('mysql_login')) {
+               // Then set it directly
+               setSession('mysql_login', 'your_login');
+       } // END - if
+
+       // Is 'mysql_dbase' not set?
+       if (!isSessionVariableSet('mysql_pass1')) {
+               // Then set it directly
+               setSession('mysql_pass1', '');
+       } // END - if
+
+       // Is 'mysql_pass2' not set?
+       if (!isSessionVariableSet('mysql_pass2')) {
+               // Then set it directly
+               setSession('mysql_pass2', '');
+       } // END - if
+
+       // Is 'mysql_type' not set?
+       if (!isSessionVariableSet('mysql_type')) {
+               // Then set it directly
+               setSession('mysql_type', 'MyISAM');
+       } // END - if
+}
+
+// Prepare AJAX request 'smtp_config'
+function doAjaxPrepareInstallerSmtpConfig () {
+       // Kept empty to prevent logfile entry because SMTP settings are optional
+}
+
+// Prepare AJAX request 'other_config'
+function doAjaxPrepareInstallerOtherConfig () {
+       // Is 'output_mode' not set?
+       if (!isSessionVariableSet('output_mode')) {
+               // Then set it directly
+               setSession('output_mode', 'render');
+       } // END - if
+
+       // Is 'warn_no_pass' not set?
+       if (!isSessionVariableSet('warn_no_pass')) {
+               // Then set it directly
+               setSession('warn_no_pass', 'Y');
+       } // END - if
+
+       // Is 'write_footer' not set?
+       if (!isSessionVariableSet('write_footer')) {
+               // Then set it directly
+               setSession('write_footer', 'Y');
+       } // END - if
+
+       // Is 'enable_backlink' not set?
+       if (!isSessionVariableSet('enable_backlink')) {
+               // Then set it directly
+               setSession('enable_backlink', 'Y');
+       } // END - if
+}
+
+// Prepare AJAX request 'overview'
+function doAjaxPrepareInstallerOverview () {
+       // 'tab' must always be set to create a post-check-callback
+       if (!isPostRequestElementSet('tab')) {
+               // This shall not happen
+               reportBug(__FUNCTION__, __LINE__, 'The JavaScript did not send "tab" which is fatal.');
+       } // END - if
+
+       // Save the tab for pre-"filtering"
+       $currentTab = postRequestElement('tab');
+
+       // Default is failed save attempt (e.g. nothing to save)
+       $verificationStatus = array(
+               // Status code, can be 'failed' or 'done'
+               'status'        => 'failed',
+               // Status message (e.g. for output)
+               'message'       => '{--INSTALLER_OVERVIEW_FINAL_CHECK_FAILED--}',
+               // Don't set this to false, or else it will be returned as 'failed' but is saved
+               'is_valid'      => true,
+               // Failed fields
+               'failed_fields' => array()
+       );
+
+       // Init overall status and final output
+       $isAllValid = true;
+       $output     = '';
+
+       // Check all data in session
+       foreach (getSessionArray() as $key => $value) {
+               // Skip 'mailer_theme', 'tab' and 'installer'
+               if (in_array($key, array('mailer_theme', 'tab', 'installer'))) {
+                       // Skip this
+                       continue;
+               } // END - if
+
+               // Is the data valid?
+               $verificationStatus['is_valid'] = (isInstallerDataValid($verificationStatus, $key, $value));
+
+               // Is this step okay?
+               if ($verificationStatus['is_valid'] === true) {
+                       // Add this key/value pair to a overview group
+                       addKeyValueToInstallerOverviewGroup($key, $value);
+               } // END - if
+
+               // Save the overall status for below final check
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ',is_valid=' . intval($verificationStatus['is_valid']) . ',isAllValid=' . intval($isAllValid));
+               $isAllValid = (($isAllValid === true) && ($verificationStatus['is_valid'] === true));
+       } // END - foreach
+
+       // Is it still true?
+       if ($isAllValid === true) {
+               // Set 'done' and message
+               $verificationStatus['status']  = 'done';
+               $verificationStatus['message'] = '{--INSTALLER_OVERVIEW_FINAL_CHECK_DONE--}';
+
+               // Then do the post-check
+               doInstallerPostCheck($currentTab, $verificationStatus);
+       } // END - if
+
+       // Is it still valid?
+       if ($verificationStatus['status'] != 'done') {
+               // Log message away
+               logDebugMessage(__FUNCTION__, __LINE__, 'Final check on all stored data failed. message=' . $verificationStatus['message']);
+
+               // Output the array for JSON reply
+               setAjaxReplyContent(json_encode($verificationStatus, JSON_FORCE_OBJECT));
+
+               /*
+                * Something went wrong, this might happen when e.g. the user has tried
+                * to save invalid database login data but hit reload button on error
+                * message.
+                */
+               setHttpStatus('500 Internal Server Error');
+
+               // Abort here
+               return;
+       } // END - if
+
+       // Output final rendered content
+       setAjaxReplyContent($output);
+
+       // All okay if we reach this point
+       setHttpStatus('200 OK');
+}
+
+// [EOF]
+?>
index ecd9dec87d4d9a2b045e92bfec1ee570f4bcc76b..d6d2b927e52ec1bc0fa543f5ca3f1c61bdf24b5e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,7 @@ function doXmlAdminEntryMetaData ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes));
        } // END - if
 }
 
        } // END - if
 }
 
@@ -54,25 +54,26 @@ function doXmlCallbackFunction ($resource, $attributes) {
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 2 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 2 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        }
 
        // Add the function name and no attributes by default
        $GLOBALS['__XML_CALLBACKS']['callbacks'][] = __FUNCTION__;
        $GLOBALS['__XML_CALLBACKS']['functions'][__FUNCTION__][] = $attributes['VALUE'];
        $GLOBALS['__XML_ARGUMENTS'][__FUNCTION__] = array();
        }
 
        // Add the function name and no attributes by default
        $GLOBALS['__XML_CALLBACKS']['callbacks'][] = __FUNCTION__;
        $GLOBALS['__XML_CALLBACKS']['functions'][__FUNCTION__][] = $attributes['VALUE'];
        $GLOBALS['__XML_ARGUMENTS'][__FUNCTION__] = array();
+       $GLOBALS['__COLUMN_INDEX'][__FUNCTION__] = 'column';
 }
 
 // Handles the XML node 'database-table'
 }
 
 // Handles the XML node 'database-table'
@@ -80,30 +81,29 @@ function doXmlDatabaseTable ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('database_table', $attributes);
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('database_table', $attributes);
-       //$GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['database_table'] = $attributes['VALUE'];
 }
 
 // Handles the XML node 'database-column-list'
 }
 
 // Handles the XML node 'database-column-list'
@@ -111,7 +111,7 @@ function doXmlDatabaseColumnList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } // END - if
 
        // Add an empty list
        } // END - if
 
        // Add an empty list
@@ -123,37 +123,37 @@ function doXmlDatabaseColumnListEntry ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 6) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 6) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 6 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 6 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['TABLE'])) {
                // 'TABLE' not found
        } elseif (!isset($attributes['TABLE'])) {
                // 'TABLE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TABLE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TABLE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['TABLE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['TABLE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute TABLE does not validate. TYPE=' . $attributes['TYPE'] . ',TABLE=' . $attributes['TABLE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute TABLE does not validate. TYPE=' . $attributes['TYPE'] . ',TABLE=' . $attributes['TABLE']);
        } elseif (!isset($attributes['ALIAS'])) {
                // 'ALIAS' not found
        } elseif (!isset($attributes['ALIAS'])) {
                // 'ALIAS' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute ALIAS not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute ALIAS not found.');
        } elseif (!isset($attributes['FUNCTION'])) {
                // 'FUNCTION' not found
        } elseif (!isset($attributes['FUNCTION'])) {
                // 'FUNCTION' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute FUNCTION not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute FUNCTION not found.');
        } elseif ((trim($attributes['ALIAS']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['ALIAS']))) {
                // 'ALIAS' not valid/verifyable
        } elseif ((trim($attributes['ALIAS']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['ALIAS']))) {
                // 'ALIAS' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute ALIAS does not validate. ALIAS=' . $attributes['ALIAS']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute ALIAS does not validate. ALIAS=' . $attributes['ALIAS']);
        } elseif ((trim($attributes['FUNCTION']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['FUNCTION']))) {
                // 'FUNCTION' not valid/verifyable
        } elseif ((trim($attributes['FUNCTION']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['FUNCTION']))) {
                // 'FUNCTION' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute FUNCTION does not validate. FUNCTION=' . $attributes['FUNCTION']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute FUNCTION does not validate. FUNCTION=' . $attributes['FUNCTION']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/database-column-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/database-column-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        }
 
        // Add the entry to the list
@@ -165,7 +165,7 @@ function doXmlCallbackFunctionList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } // END - if
 
        // Add an empty list
        } // END - if
 
        // Add an empty list
@@ -177,25 +177,25 @@ function doXmlCallbackFunctionListEntry ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['callback_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['callback_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/callback-function-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/callback-function-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        }
 
        // Add the entry to the list
@@ -207,7 +207,7 @@ function doXmlExtraParameterList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } // END - if
 
        // Add an empty list
        } // END - if
 
        // Add an empty list
@@ -219,40 +219,94 @@ function doXmlExtraParameterListEntry ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('extra_list', $attributes);
 }
 
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('extra_list', $attributes);
 }
 
+// Handles the XML node 'time-columns-list'
+function doXmlTimeColumnsList ($resource, $attributes) {
+       // There should be no attributes
+       if (count($attributes) > 0) {
+               // Please don't add any attributes to foo-list nodes
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+       } // END - if
+
+       // Add an empty list
+       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['time_columns'] = array();
+}
+
+// Handles the XML node 'time-columns-list-entry'
+function doXmlTimeColumnsListEntry ($resource, $attributes) {
+       // There are three attributes, by default
+       if (count($attributes) != 3) {
+               // Not the right count
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+       } elseif (!isset($attributes['NAME'])) {
+               // 'NAME' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+       } elseif (!isset($attributes['TYPE'])) {
+               // 'TYPE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+       } elseif (!isInvalidXmlType($attributes['TYPE'])) {
+               // No valid type
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+       } elseif (!isset($attributes['VALUE'])) {
+               // 'VALUE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+       } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
+               // Not valid/verifyable
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+       } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['time_columns'])) {
+               // doXmlCallbackFunction is missing
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list not included around this node. Please fix your XML.');
+       }
+
+       // Add the entry to the list
+       addXmlValueToCallbackAttributes('time_columns', $attributes);
+}
+
 // Handles the XML node 'extra-parameter-member-list'
 function doXmlExtraParameterMemberList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
 // Handles the XML node 'extra-parameter-member-list'
 function doXmlExtraParameterMemberList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['member_list'])) {
                // This list should be created already
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['member_list'])) {
                // This list should be created already
-               debug_report_bug(__FUNCTION__, __LINE__, 'member_list should be already created.');
+               reportBug(__FUNCTION__, __LINE__, 'member_list should be already created.');
+       }
+}
+
+// Handles the XML node 'extra-parameter-reload-list'
+function doXmlExtraParameterReloadList ($resource, $attributes) {
+       // There should be no attributes
+       if (count($attributes) > 0) {
+               // Please don't add any attributes to foo-list nodes
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+       } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['reload_list'])) {
+               // This list should be created already
+               reportBug(__FUNCTION__, __LINE__, 'reload_list should be already created.');
        }
 }
 
        }
 }
 
@@ -261,40 +315,70 @@ function doXmlExtraParameterMemberListEntry ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['member_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['member_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/member-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/member-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('extra_list', $attributes, 'member_list');
 }
 
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('extra_list', $attributes, 'member_list');
 }
 
+// Handles the XML node 'extra-parameter-reload-list-entry'
+function doXmlExtraParameterReloadListEntry ($resource, $attributes) {
+       // There are three attributes, by default
+       if (count($attributes) != 3) {
+               // Not the right count
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+       } elseif (!isset($attributes['NAME'])) {
+               // 'NAME' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+       } elseif (!isset($attributes['TYPE'])) {
+               // 'TYPE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+       } elseif (!isInvalidXmlType($attributes['TYPE'])) {
+               // No valid type
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+       } elseif (!isset($attributes['VALUE'])) {
+               // 'VALUE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+       } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
+               // Not valid/verifyable
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+       } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['reload_list'])) {
+               // doXmlCallbackFunction is missing
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/reload-list not included around this node. Please fix your XML.');
+       }
+
+       // Add the entry to the list
+       addXmlValueToCallbackAttributes('extra_list', $attributes, 'reload_list');
+}
+
 // Handles the XML node 'extra-parameter-added-list'
 function doXmlExtraParameterAddedList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
 // Handles the XML node 'extra-parameter-added-list'
 function doXmlExtraParameterAddedList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['added_list'])) {
                // This list should be created already
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['added_list'])) {
                // This list should be created already
-               debug_report_bug(__FUNCTION__, __LINE__, 'added_list should be already created.');
+               reportBug(__FUNCTION__, __LINE__, 'added_list should be already created.');
        }
 }
 
        }
 }
 
@@ -303,55 +387,97 @@ function doXmlExtraParameterAddedListEntry ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['added_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['added_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/added-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/added-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('extra_list', $attributes, 'added_list');
 }
 
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('extra_list', $attributes, 'added_list');
 }
 
+// Handles the XML node 'extra-parameter-created-list'
+function doXmlExtraParameterCreatedList ($resource, $attributes) {
+       // There should be no attributes
+       if (count($attributes) > 0) {
+               // Please don't add any attributes to foo-list nodes
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+       } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['created_list'])) {
+               // This list should be created already
+               reportBug(__FUNCTION__, __LINE__, 'created_list should be already created.');
+       }
+}
+
+// Handles the XML node 'extra-parameter-created-list-entry'
+function doXmlExtraParameterCreatedListEntry ($resource, $attributes) {
+       // There are three attributes, by default
+       if (count($attributes) != 3) {
+               // Not the right count
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+       } elseif (!isset($attributes['NAME'])) {
+               // 'NAME' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+       } elseif (!isset($attributes['TYPE'])) {
+               // 'TYPE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+       } elseif (!isInvalidXmlType($attributes['TYPE'])) {
+               // No valid type
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+       } elseif (!isset($attributes['VALUE'])) {
+               // 'VALUE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+       } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
+               // Not valid/verifyable
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+       } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_list']['created_list'])) {
+               // doXmlCallbackFunction is missing
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/created-list not included around this node. Please fix your XML.');
+       }
+
+       // Add the entry to the list
+       addXmlValueToCallbackAttributes('extra_list', $attributes, 'created_list');
+}
+
 // Handles the XML node 'status-change-column'
 function doXmlStatusChangeColumn ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
 // Handles the XML node 'status-change-column'
 function doXmlStatusChangeColumn ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        }
 
        // Add the entry to the list
@@ -363,10 +489,10 @@ function doXmlStatusChangeList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['status_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['status_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/status-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/status-list not included around this node. Please fix your XML.');
        }
 }
 
        }
 }
 
@@ -375,28 +501,28 @@ function doXmlStatusChangeListEntry ($resource, $attributes) {
        // There are for attributes, by default
        if (count($attributes) != 4) {
                // Not the right count
        // There are for attributes, by default
        if (count($attributes) != 4) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 4 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 4 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['OLD'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['OLD'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute OLD does not validate. TYPE=' . $attributes['TYPE'] . ',OLD=' . $attributes['OLD']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute OLD does not validate. TYPE=' . $attributes['TYPE'] . ',OLD=' . $attributes['OLD']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['status_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['status_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/change-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/extra-parameter-list/change-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        }
 
        // Add the entry to the list
@@ -408,30 +534,29 @@ function doXmlEnableModifyEntries ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('enable_modify_entries', $attributes);
        }
 
        // Add the entry to the list
        addXmlValueToCallbackAttributes('enable_modify_entries', $attributes);
-       //$GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['enable_modify_entries'] = convertStringToBoolean($attributes['VALUE']);
 }
 
 // Handles the XML node 'table-id-column'
 }
 
 // Handles the XML node 'table-id-column'
@@ -439,30 +564,29 @@ function doXmlTableIdColumn ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('table_id_column', $attributes);
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('table_id_column', $attributes);
-       //$GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['table_id_column'] = $attributes['VALUE'];
 }
 
 // Handles the XML node 'table-userid-column'
 }
 
 // Handles the XML node 'table-userid-column'
@@ -470,30 +594,29 @@ function doXmlTableUseridColumn ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('table_userid_column', $attributes);
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('table_userid_column', $attributes);
-       //$GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['table_userid_column'] = $attributes['VALUE'];
 }
 
 // Handles the XML node 'raw-userid-column-key'
 }
 
 // Handles the XML node 'raw-userid-column-key'
@@ -501,30 +624,59 @@ function doXmlRawUseridColumnKey ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
        } elseif (!isset($attributes['NAME'])) {
                // 'NAME' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('raw_userid_column_key', $attributes);
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('raw_userid_column_key', $attributes);
-       //$GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['raw_userid_column_key'] = $attributes['VALUE'];
+}
+
+// Handles the XML node 'cache-file'
+function doXmlCacheFile ($resource, $attributes) {
+       // There are three attributes, by default
+       if (count($attributes) != 3) {
+               // Not the right count
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+       } elseif (!isset($attributes['NAME'])) {
+               // 'NAME' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+       } elseif (!isset($attributes['TYPE'])) {
+               // 'TYPE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+       } elseif (!isInvalidXmlType($attributes['TYPE'])) {
+               // No valid type
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+       } elseif (!isset($attributes['VALUE'])) {
+               // 'VALUE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+       } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
+               // Not valid/verifyable
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. TYPE=' . $attributes['TYPE'] . ',VALUE=' . $attributes['VALUE']);
+       } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
+               // doXmlCallbackFunction is missing
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+       }
+
+       // Add the entry to the array
+       addXmlValueToCallbackAttributes('cache_file', $attributes);
 }
 
 //-----------------------------------------------------------------------------
 }
 
 //-----------------------------------------------------------------------------
@@ -536,7 +688,7 @@ function doXmlAdminListData ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes));
        } // END - if
 }
 
        } // END - if
 }
 
@@ -545,7 +697,7 @@ function doXmlDataTables ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes));
        } // END - if
 }
 
        } // END - if
 }
 
@@ -554,28 +706,28 @@ function doXmlDataTable ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['ALIAS'])) {
                // 'ALIAS' not found
        } elseif (!isset($attributes['ALIAS'])) {
                // 'ALIAS' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute ALIAS not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute ALIAS not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif ((trim($attributes['ALIAS']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['ALIAS']))) {
                // Not valid/verifyable
        } elseif ((trim($attributes['ALIAS']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['ALIAS']))) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. ALIAS=' . $attributes['ALIAS']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. ALIAS=' . $attributes['ALIAS']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -587,10 +739,10 @@ function doXmlSelectDataFromList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
        }
 
        // Add an empty list
        }
 
        // Add an empty list
@@ -602,34 +754,34 @@ function doXmlSelectDataFromListEntry ($resource, $attributes) {
        // There are five attributes, by default
        if (count($attributes) != 5) {
                // Not the right count
        // There are five attributes, by default
        if (count($attributes) != 5) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['ALIAS'])) {
                // 'ALIAS' not found
        } elseif (!isset($attributes['ALIAS'])) {
                // 'ALIAS' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute ALIAS not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute ALIAS not found.');
        } elseif (!isset($attributes['FUNCTION'])) {
                // 'FUNCTION' not found
        } elseif (!isset($attributes['FUNCTION'])) {
                // 'FUNCTION' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute FUNCTION not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute FUNCTION not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // 'VALUE' not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // 'VALUE' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif ((trim($attributes['ALIAS']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['ALIAS']))) {
                // 'ALIAS' not valid/verifyable
        } elseif ((trim($attributes['ALIAS']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['ALIAS']))) {
                // 'ALIAS' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute ALIAS does not validate. ALIAS=' . $attributes['ALIAS']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute ALIAS does not validate. ALIAS=' . $attributes['ALIAS']);
        } elseif ((trim($attributes['FUNCTION']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['FUNCTION']))) {
                // 'FUNCTION' not valid/verifyable
        } elseif ((trim($attributes['FUNCTION']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['FUNCTION']))) {
                // 'FUNCTION' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute FUNCTION does not validate. FUNCTION=' . $attributes['FUNCTION']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute FUNCTION does not validate. FUNCTION=' . $attributes['FUNCTION']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_column_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_column_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/select-data-from-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/select-data-from-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -641,10 +793,10 @@ function doXmlWhereSelectFromList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
        }
 
        // Add an empty list
        }
 
        // Add an empty list
@@ -656,58 +808,82 @@ function doXmlWhereSelectFromListEntry ($resource, $attributes) {
        // There are five attributes, by default
        if (count($attributes) != 5) {
                // Not the right count
        // There are five attributes, by default
        if (count($attributes) != 5) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isset($attributes['TABLE'])) {
                // 'TABLE' not found
        } elseif (!isset($attributes['TABLE'])) {
                // 'TABLE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TABLE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TABLE not found.');
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isset($attributes['CONDITION'])) {
                // 'CONDITION' not found
        } elseif (!isset($attributes['CONDITION'])) {
                // 'CONDITION' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute CONDITION not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute CONDITION not found.');
        } elseif (!isset($attributes['LOOK-FOR'])) {
                // 'LOOK-FOR' not found
        } elseif (!isset($attributes['LOOK-FOR'])) {
                // 'LOOK-FOR' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute LOOK-FOR not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute LOOK-FOR not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif ((trim($attributes['TABLE']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['TABLE']))) {
                // 'TABLE' not valid/verifyable
        } elseif ((trim($attributes['TABLE']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['TABLE']))) {
                // 'TABLE' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute TABLE does not validate. TABLE=' . $attributes['TABLE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute TABLE does not validate. TABLE=' . $attributes['TABLE']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // 'VALUE' not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // 'VALUE' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['CONDITION'])) {
                // 'CONDITION' not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['CONDITION'])) {
                // 'CONDITION' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute CONDITION does not validate. CONDITION=' . $attributes['CONDITION']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute CONDITION does not validate. CONDITION=' . $attributes['CONDITION']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['LOOK-FOR'])) {
                // 'LOOK-FOR' not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['LOOK-FOR'])) {
                // 'LOOK-FOR' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute LOOK-FOR does not validate. LOOK-FOR=' . $attributes['LOOK-FOR']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute LOOK-FOR does not validate. LOOK-FOR=' . $attributes['LOOK-FOR']);
        } elseif (!isXmlConditionValid($attributes['CONDITION'])) {
                // 'CONDITION' is not known
        } elseif (!isXmlConditionValid($attributes['CONDITION'])) {
                // 'CONDITION' is not known
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute CONDITION is not valid. LOOK-FOR=' . $attributes['CONDITION']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute CONDITION is not valid. LOOK-FOR=' . $attributes['CONDITION']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_column_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_column_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-column-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-column-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('where_select_list', $attributes);
 }
 
        }
 
        // Add the entry to the array
        addXmlValueToCallbackAttributes('where_select_list', $attributes);
 }
 
+// Handles the XML node 'where-condition'
+function doXmlWhereCondition ($resource, $attributes) {
+       // There are two attributes, by default
+       if (count($attributes) != 3) {
+               // Please don't add any attributes to foo-list nodes
+               reportBug(__FUNCTION__, __LINE__, 'Expected 2 attributes because this is a where-condition node, got ' . count($attributes));
+       } elseif (!isset($attributes['TYPE'])) {
+               // 'TYPE' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+       } elseif (!isset($attributes['CONDITION'])) {
+               // 'CONDITION' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute CONDITION not found.');
+       } elseif (!isset($attributes['NAME'])) {
+               // 'NAME' not found
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute NAME not found.');
+       } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
+               // doXmlCallbackFunction is missing
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
+       }
+
+       // Add an empty list
+       addXmlValueToCallbackAttributes('where_condition', $attributes);
+}
+
 // Handles the XML node 'order-by-list'
 function doXmlOrderByList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
 // Handles the XML node 'order-by-list'
 function doXmlOrderByList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
        }
 
        // Add an empty list
        }
 
        // Add an empty list
@@ -719,34 +895,34 @@ function doXmlOrderByListEntry ($resource, $attributes) {
        // There are four attributes, by default
        if (count($attributes) != 4) {
                // Not the right count
        // There are four attributes, by default
        if (count($attributes) != 4) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['ORDER'])) {
                // 'ORDER' not found
        } elseif (!isset($attributes['ORDER'])) {
                // 'ORDER' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute ORDER not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute ORDER not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isset($attributes['TABLE'])) {
                // 'TABLE' not found
        } elseif (!isset($attributes['TABLE'])) {
                // 'TABLE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TABLE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TABLE not found.');
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['ORDER'])) {
                // 'ORDER' not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['ORDER'])) {
                // 'ORDER' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute ORDER does not validate. ORDER=' . $attributes['ORDER']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute ORDER does not validate. ORDER=' . $attributes['ORDER']);
        } elseif ((trim($attributes['TABLE']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['TABLE']))) {
                // 'TABLE' not valid/verifyable
        } elseif ((trim($attributes['TABLE']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['TABLE']))) {
                // 'TABLE' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute TABLE does not validate. TABLE=' . $attributes['TABLE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute TABLE does not validate. TABLE=' . $attributes['TABLE']);
        } elseif ((trim($attributes['VALUE']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE']))) {
                // 'VALUE' not valid/verifyable
        } elseif ((trim($attributes['VALUE']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE']))) {
                // 'VALUE' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_column_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_column_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-column-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-column-list not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -758,22 +934,22 @@ function doXmlListTemplate ($resource, $attributes) {
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -785,22 +961,22 @@ function doXmlListRowTemplate ($resource, $attributes) {
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -812,10 +988,10 @@ function doXmlColumnCallbackList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['data_table'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/data-table not included around this node. Please fix your XML.');
        }
 
        // Add an empty list
        }
 
        // Add an empty list
@@ -827,10 +1003,10 @@ function doXmlColumnCallbackListEntry ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes because this is a foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_callback_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_callback_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/column-callback not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/column-callback not included around this node. Please fix your XML.');
        }
 }
 
        }
 }
 
@@ -839,28 +1015,28 @@ function doXmlColumnCallbackData ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isset($attributes['CALLBACK'])) {
                // 'CALLBACK' not found
        } elseif (!isset($attributes['CALLBACK'])) {
                // 'CALLBACK' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute CALLBACK not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute CALLBACK not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        } elseif ((trim($attributes['CALLBACK']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['CALLBACK']))) {
                // 'CALLBACK' not valid/verifyable
        } elseif ((trim($attributes['CALLBACK']) != '') && (!isXmlValueValid($attributes['TYPE'], $attributes['CALLBACK']))) {
                // 'CALLBACK' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute CALLBACK does not validate. CALLBACK=' . $attributes['CALLBACK']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute CALLBACK does not validate. CALLBACK=' . $attributes['CALLBACK']);
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -872,10 +1048,10 @@ function doXmlCallbackExtraParameterList ($resource, $attributes) {
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
        // There should be no attributes
        if (count($attributes) > 0) {
                // Please don't add any attributes to foo-list nodes
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 1 attributes because this is a named foo-list node, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 1 attributes because this is a named foo-list node, got ' . count($attributes));
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_callback_list'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_callback_list'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/column-callback-list not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/column-callback-list not included around this node. Please fix your XML.');
        } elseif (isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['__EXTRA_PARAMETER'])) {
                // Abort silently here, no one wants to kill this array
                return;
        } elseif (isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['__EXTRA_PARAMETER'])) {
                // Abort silently here, no one wants to kill this array
                return;
@@ -890,25 +1066,25 @@ function doXmlCallbackExtraParameterListEntry ($resource, $attributes) {
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
        // There are three attributes, by default
        if (count($attributes) != 3) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 5 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['COLUMN'])) {
                // 'COLUMN' not found
        } elseif (!isset($attributes['COLUMN'])) {
                // 'COLUMN' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute COLUMN not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute COLUMN not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // 'VALUE' not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // 'VALUE' not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['__EXTRA_PARAMETER'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['__EXTRA_PARAMETER'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function/__EXTRA_PARAMETER not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function/__EXTRA_PARAMETER not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -920,22 +1096,22 @@ function doXmlNoEntryFoundMessage ($resource, $attributes) {
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
        // There are two attributes, by default
        if (count($attributes) != 2) {
                // Not the right count
-               debug_report_bug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
+               reportBug(__FUNCTION__, __LINE__, 'Expected 3 attributes, got ' . count($attributes));
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
        } elseif (!isset($attributes['VALUE'])) {
                // 'VALUE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute VALUE not found.');
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
        } elseif (!isset($attributes['TYPE'])) {
                // 'TYPE' not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Required attribute TYPE not found.');
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
        } elseif (!isInvalidXmlType($attributes['TYPE'])) {
                // No valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
+               reportBug(__FUNCTION__, __LINE__, 'TYPE is not valid, got: ' . $attributes['TYPE']);
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
        } elseif (!isXmlValueValid($attributes['TYPE'], $attributes['VALUE'])) {
                // Not valid/verifyable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
+               reportBug(__FUNCTION__, __LINE__, 'Attribute VALUE does not validate. VALUE=' . $attributes['VALUE']);
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
        } elseif (!isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'])) {
                // doXmlCallbackFunction is missing
-               debug_report_bug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'Required XML node callback-function not included around this node. Please fix your XML.');
        }
 
        // Add the entry to the array
        }
 
        // Add the entry to the array
@@ -1059,6 +1235,10 @@ function addXmlValueToCallbackAttributes ($element, $attributes, $extraKey = '',
 
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',CONDITION[' . gettype($attributes['CONDITION']) . ']=' . $attributes['CONDITION'] . ',LOOK-FOR[' . gettype($attributes['LOOK-FOR']) . ']=' . $attributes['LOOK-FOR'] . ' - CONDITION! (VALUE=' . $attributes['VALUE'] . ')');
                $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][] = $array;
 
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',CONDITION[' . gettype($attributes['CONDITION']) . ']=' . $attributes['CONDITION'] . ',LOOK-FOR[' . gettype($attributes['LOOK-FOR']) . ']=' . $attributes['LOOK-FOR'] . ' - CONDITION! (VALUE=' . $attributes['VALUE'] . ')');
                $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][] = $array;
+       } elseif ((isset($attributes['CONDITION'])) && (isset($attributes['NAME']))) {
+               // CONDITION/NAME detected
+               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',CONDITION[' . gettype($attributes['CONDITION']) . ']=' . $attributes['CONDITION'] . ',NAME[' . gettype($attributes['NAME']) . ']=' . $attributes['NAME'] . ' - CONDITION!');
+               $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['NAME']] = $attributes['CONDITION'];
        } elseif (isset($attributes['CALLBACK'])) {
                // CALLBACK/VALUE detected
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',CALLBACK[' . gettype($attributes['CALLBACK']) . ']=' . $attributes['CALLBACK'] . ' - CALLBACK! (VALUE=' . $attributes['VALUE'] . ')');
        } elseif (isset($attributes['CALLBACK'])) {
                // CALLBACK/VALUE detected
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',extraKey=' . $extraKey . ',TYPE=' . $attributes['TYPE'] . ',CALLBACK[' . gettype($attributes['CALLBACK']) . ']=' . $attributes['CALLBACK'] . ' - CALLBACK! (VALUE=' . $attributes['VALUE'] . ')');
@@ -1077,7 +1257,7 @@ function addXmlValueToCallbackAttributes ($element, $attributes, $extraKey = '',
                $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][] = $attributes['VALUE'];
        } elseif (isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['NAME']])) {
                // Already created
                $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][] = $attributes['VALUE'];
        } elseif (isset($GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction'][$element][$attributes['NAME']])) {
                // Already created
-               debug_report_bug(__FUNCTION__, __LINE__, 'NAME=' . $attributes['NAME'] . ' already addded to ' . $element . ' attributes=<pre>' . print_r($attributes, true) . '</pre>');
+               reportBug(__FUNCTION__, __LINE__, 'NAME=' . $attributes['NAME'] . ' already addded to ' . $element . ' attributes=<pre>' . print_r($attributes, true) . '</pre>');
        } else {
                // Use from NAME
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',NAME=' . $attributes['NAME'] . ',VALUE[' . gettype($attributes['VALUE']) . ']=' . $attributes['VALUE'] . ' - NAME!');
        } else {
                // Use from NAME
                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',NAME=' . $attributes['NAME'] . ',VALUE[' . gettype($attributes['VALUE']) . ']=' . $attributes['VALUE'] . ' - NAME!');
@@ -1091,7 +1271,7 @@ function addXmlValueToCallbackAttributes ($element, $attributes, $extraKey = '',
 //-----------------------------------------------------------------------------
 
 // Execute function for doXmlCallbackFunction()
 //-----------------------------------------------------------------------------
 
 // Execute function for doXmlCallbackFunction()
-function doXmlCallbackFunctionExecute ($callbackFunction, $args) {
+function doXmlCallbackFunctionExecute ($callbackName, $args, $columnIndex) {
        // Is 'id_index' set and form sent?
        if ((isset($args['id_index'])) && (isFormSent())) {
                // Prepare 'id_index'
        // Is 'id_index' set and form sent?
        if ((isset($args['id_index'])) && (isFormSent())) {
                // Prepare 'id_index'
@@ -1099,8 +1279,8 @@ function doXmlCallbackFunctionExecute ($callbackFunction, $args) {
        } // END - if
 
        // Just call it
        } // END - if
 
        // Just call it
-       //* DEBUG: */ die('callbackFunction=' . $callbackFunction . ',args=<pre>'.print_r($args, true).'</pre>');
-       call_user_func_array($callbackFunction, $args);
+       //* DEBUG: */ die('callbackFunction=' . $callbackName . ',columnIndex=' . $columnIndex . ',args=<pre>'.print_r($args, true).'</pre>');
+       call_user_func_array($callbackName, $args);
 }
 
 // [EOF]
 }
 
 // [EOF]
index dd991721182406a698395cd3d2d51400243d65ee..729197a03dd48d8d7d6e542c6d67010acc53e6b3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -119,13 +119,13 @@ class CacheSystem {
 
                        // Create file
                        if ($this->isCacheReadable()) changeMode($this->fqfn, 0666);
 
                        // Create file
                        if ($this->isCacheReadable()) changeMode($this->fqfn, 0666);
-                       $this->pointer = fopen($this->fqfn, 'w') or debug_report_bug(__METHOD__, __LINE__, 'Cannot write to cache ' . $this->fqfn . ' !');
+                       $this->pointer = fopen($this->fqfn, 'w') or reportBug(__METHOD__, __LINE__, 'Cannot write to cache ' . $this->fqfn . ' !');
 
                        // Add open PHP tag
                        $this->writeLine('<?php');
                } else {
                        // Cannot create file
 
                        // Add open PHP tag
                        $this->writeLine('<?php');
                } else {
                        // Cannot create file
-                       debug_report_bug(__METHOD__, __LINE__, 'Problems with cache directory detected, getStatusCode()=' . $this->getStatusCode());
+                       reportBug(__METHOD__, __LINE__, 'Problems with cache directory detected, getStatusCode()=' . $this->getStatusCode());
                }
        }
 
                }
        }
 
@@ -138,10 +138,10 @@ class CacheSystem {
                // Is the pointer a valid resource?
                if (is_resource($this->pointer)) {
                        // Write the line
                // Is the pointer a valid resource?
                if (is_resource($this->pointer)) {
                        // Write the line
-                       fwrite($this->pointer, $line . "\n");
+                       fwrite($this->pointer, $line . chr(10));
                } else {
                        // Something bad happened
                } else {
                        // Something bad happened
-                       debug_report_bug(__METHOD__, __LINE__, 'Pointer type is ' . gettype($this->pointer) . ', expected is resource.');
+                       reportBug(__METHOD__, __LINE__, 'Pointer type is ' . gettype($this->pointer) . ', expected is resource.');
                }
        }
 
                }
        }
 
@@ -187,7 +187,7 @@ class CacheSystem {
                                        }
                                } elseif ($this->name == 'admin_acls') {
                                        // Access control lines
                                        }
                                } elseif ($this->name == 'admin_acls') {
                                        // Access control lines
-                                       $GLOBALS['cache_array']['admin_acls'][$k][$data['admin_id']][] = $v;
+                                       array_push($GLOBALS['cache_array']['admin_acls'][$k][$data['admin_id']], $v);
                                } elseif ($this->name == 'refdepths') {
                                        // Referral levels
                                        $GLOBALS['cache_array']['refdepths'][$k][$data['id']] = $v;
                                } elseif ($this->name == 'refdepths') {
                                        // Referral levels
                                        $GLOBALS['cache_array']['refdepths'][$k][$data['id']] = $v;
@@ -224,7 +224,7 @@ class CacheSystem {
                                        $this->removeCacheFile(true);
 
                                        // Unsupported/unhandled cache detected
                                        $this->removeCacheFile(true);
 
                                        // Unsupported/unhandled cache detected
-                                       debug_report_bug(__METHOD__, __LINE__, 'Unsupported cache ' . $this->name . ' detected.');
+                                       reportBug(__METHOD__, __LINE__, 'Unsupported cache ' . $this->name . ' detected.');
                                }
 
                                // Write cache line to file
                                }
 
                                // Write cache line to file
@@ -232,7 +232,7 @@ class CacheSystem {
                        } // END - foreach
                } else {
                        // Cannot create file
                        } // END - foreach
                } else {
                        // Cannot create file
-                       debug_report_bug(__METHOD__, __LINE__, 'Problem with cache detected, no resource! pointer[]=' . gettype($this->pointer));
+                       reportBug(__METHOD__, __LINE__, 'Problem with cache detected, no resource! pointer[]=' . gettype($this->pointer));
                }
        }
 
                }
        }
 
@@ -296,7 +296,7 @@ class CacheSystem {
                        } // END - if
                } else {
                        // Cache file not found or not readable
                        } // END - if
                } else {
                        // Cache file not found or not readable
-                       debug_report_bug(__METHOD__, __LINE__, '{%message,CACHE_CANNOT_LOAD=' . $this->name . '%}');
+                       reportBug(__METHOD__, __LINE__, '{%message,CACHE_CANNOT_LOAD=' . $this->name . '%}');
 
                        // Try to remove it
                        $this->removeCacheFile();
 
                        // Try to remove it
                        $this->removeCacheFile();
@@ -338,7 +338,7 @@ class CacheSystem {
                        } // END - if
 
                        // Remove cache file from system
                        } // END - if
 
                        // Remove cache file from system
-                       //* DEBUG: */ debug_report_bug(__METHOD__, __LINE__, 'About to remove ' . basename($this->fqfn) . '!');
+                       //* DEBUG: */ reportBug(__METHOD__, __LINE__, 'About to remove ' . basename($this->fqfn) . '!');
                        removeFile($this->fqfn);
 
                        // Reset read status
                        removeFile($this->fqfn);
 
                        // Reset read status
@@ -352,7 +352,7 @@ class CacheSystem {
                                $this->rebuilt[$this->name] = true;
                        } else {
                                // Not removed!
                                $this->rebuilt[$this->name] = true;
                        } else {
                                // Not removed!
-                               debug_report_bug(__METHOD__, __LINE__, '{%message,CACHE_CANNOT_UNLINK=' . $this->name . '%}');
+                               reportBug(__METHOD__, __LINE__, '{%message,CACHE_CANNOT_UNLINK=' . $this->name . '%}');
                        }
                } // END - if
        }
                        }
                } // END - if
        }
@@ -383,7 +383,7 @@ class CacheSystem {
                        } // END - if
                } else {
                        // Cannot write to cache!
                        } // END - if
                } else {
                        // Cannot write to cache!
-                       debug_report_bug(__METHOD__, __LINE__, 'Problem with cache detected: Unexpected status ' . $this->status[$this->name]);
+                       reportBug(__METHOD__, __LINE__, 'Problem with cache detected: Unexpected status ' . $this->status[$this->name]);
                }
        }
 
                }
        }
 
@@ -407,7 +407,7 @@ class CacheSystem {
                        } // END - foreach
                } else {
                        // Cannot write array!
                        } // END - foreach
                } else {
                        // Cannot write array!
-                       debug_report_bug(__METHOD__, __LINE__, 'Problem with cache detected: pointer is not resource! pointer[]=' . gettype($this->pointer));
+                       reportBug(__METHOD__, __LINE__, 'Problem with cache detected: pointer is not resource! pointer[]=' . gettype($this->pointer));
                }
        }
 
                }
        }
 
@@ -444,7 +444,7 @@ class CacheSystem {
                        } // END - if
                } else {
                        // Cannot write to cache!
                        } // END - if
                } else {
                        // Cannot write to cache!
-                       debug_report_bug(__METHOD__, __LINE__, 'Problem with cache detected: Unexpected status ' . $this->status[$this->name]);
+                       reportBug(__METHOD__, __LINE__, 'Problem with cache detected: Unexpected status ' . $this->status[$this->name]);
                }
        }
 
                }
        }
 
@@ -466,11 +466,11 @@ class CacheSystem {
                        //* DEBUG: */ logDebugMessage(__METHOD__, __LINE__, 'name=' . $this->name . ',ext_name=' . $ext_name . ',ext_ver=' . $ext_ver);
                } else {
                        // Cannot create file
                        //* DEBUG: */ logDebugMessage(__METHOD__, __LINE__, 'name=' . $this->name . ',ext_name=' . $ext_name . ',ext_ver=' . $ext_ver);
                } else {
                        // Cannot create file
-                       debug_report_bug(__METHOD__, __LINE__, 'Problem with cache detected: pointer is not resource! pointer[]=' . gettype($this->pointer));
+                       reportBug(__METHOD__, __LINE__, 'Problem with cache detected: pointer is not resource! pointer[]=' . gettype($this->pointer));
                }
        }
 
                }
        }
 
-       // Checks wether versions from cache and extension matches
+       // Checks whether versions from cache and extension matches
        function extensionVersionMatches ($ext_name) {
                // Check cache
                if (!isset($GLOBALS[__METHOD__][$ext_name])) {
        function extensionVersionMatches ($ext_name) {
                // Check cache
                if (!isset($GLOBALS[__METHOD__][$ext_name])) {
@@ -538,7 +538,7 @@ class CacheSystem {
                        }
                } elseif (isset($value[0])) {
                        // These lines needs fixing
                        }
                } elseif (isset($value[0])) {
                        // These lines needs fixing
-                       debug_report_bug(__METHOD__, __LINE__, 'Invalid entry with [0] found. key=' . $key);
+                       reportBug(__METHOD__, __LINE__, 'Invalid entry with [0] found. key=' . $key);
                } else {
                        // Non-string
                        $line = '$this->' . $prefix . "['" . $this->name . "']['" . $key . "']" . $extender . ' = ' . $value . ';';
                } else {
                        // Non-string
                        $line = '$this->' . $prefix . "['" . $this->name . "']['" . $key . "']" . $extender . ' = ' . $value . ';';
@@ -558,7 +558,7 @@ class CacheSystem {
                $this->statusCode = $status;
        }
 
                $this->statusCode = $status;
        }
 
-       // Checks wether the current cache file is readable
+       // Checks whether the current cache file is readable
        function isCacheReadable () {
                // Array entry found?
                if (!isset($this->readable[$this->name])) {
        function isCacheReadable () {
                // Array entry found?
                if (!isset($this->readable[$this->name])) {
@@ -573,7 +573,7 @@ class CacheSystem {
        // Cloning not allowed
        function __clone () {
                // Please do not clone this class
        // Cloning not allowed
        function __clone () {
                // Please do not clone this class
-               debug_report_bug(__METHOD__, __LINE__, 'Cloning of this class is not allowed.');
+               reportBug(__METHOD__, __LINE__, 'Cloning of this class is not allowed.');
        }
 } // END - class
 
        }
 } // END - class
 
index 47805bde3cfc2af67c18298d344fa75ccf4c9835..4f1cd1a242aff77b596eaae028515eb0d49b0317 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5f5801693142b9c376e2d83e420ed9ce5a878d12..744c3fea173bb5cf9630989e11bdaf1df15120cb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,7 +50,7 @@ function getCode ($key) {
        // Is the key set?
        if (!isCodeSet($key)) {
                // Abort here
        // Is the key set?
        if (!isCodeSet($key)) {
                // Abort here
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("%s[%s:] Code %s is not set.",
+               reportBug(__FUNCTION__, __LINE__, sprintf("%s[%s:] Code %s is not set.",
                        __FUNCTION__,
                        __LINE__,
                        $key
                        __FUNCTION__,
                        __LINE__,
                        $key
@@ -61,11 +61,20 @@ function getCode ($key) {
        return $GLOBALS['status_codes'][$key];
 }
 
        return $GLOBALS['status_codes'][$key];
 }
 
-// Checks wether a specified status code is set
+// Checks whether a specified status code is set
 function isCodeSet ($key) {
        // Simply use isset()
        return (isset($GLOBALS['status_codes'][$key]));
 }
 
 function isCodeSet ($key) {
        // Simply use isset()
        return (isset($GLOBALS['status_codes'][$key]));
 }
 
+// Get hex-decimal value from given error code
+function getHexErrorCode ($errorCode) {
+       // Convert it
+       $hex = str_pad(dechex($errorCode), 3, '0', STR_PAD_LEFT);
+
+       // Return it
+       return $hex;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index ba074262d3123d2117875e3783b236f4deb1e02a..84f442bb553ff2ce1eda957eb2ea5434d508ec50 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,7 @@ function initConfig () {
        // Init not if already found
        if (isConfigurationLoaded()) {
                // Already initialized
        // Init not if already found
        if (isConfigurationLoaded()) {
                // Already initialized
-               debug_report_bug(__FUNCTION__, __LINE__, 'Configuration is already initialized.');
+               reportBug(__FUNCTION__, __LINE__, 'Configuration is already initialized.');
        } // END - if
 
        // Set a minimum of configuration, required to by-pass some error triggers in getConfig()
        } // END - if
 
        // Set a minimum of configuration, required to by-pass some error triggers in getConfig()
@@ -74,7 +74,7 @@ function getConfig ($configEntry) {
        // Is the entry there?
        if (!isConfigEntrySet($configEntry)) {
                // Raise an error of missing entries
        // Is the entry there?
        if (!isConfigEntrySet($configEntry)) {
                // Raise an error of missing entries
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("Configuration entry <span class=\"data\">%s</span> is missing.", $configEntry));
+               reportBug(__FUNCTION__, __LINE__, sprintf("Configuration entry <span class=\"data\">%s</span> is missing.", $configEntry));
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
@@ -88,17 +88,16 @@ function setConfigEntry ($configEntry, $value) {
        $GLOBALS['config'][$configEntry] = $value;
 }
 
        $GLOBALS['config'][$configEntry] = $value;
 }
 
-// Checks wether the given config entry is set
+// Checks whether the given config entry is set
 function isConfigEntrySet ($configEntry) {
        //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . $configEntry . '=' . intval(isset($GLOBALS['config'][$configEntry])));
 function isConfigEntrySet ($configEntry) {
        //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . $configEntry . '=' . intval(isset($GLOBALS['config'][$configEntry])));
-       return (isset($GLOBALS['config'][$configEntry]));
+       return ((isset($GLOBALS['config'][$configEntry])) || (array_key_exists($configEntry, $GLOBALS['config'])));
 }
 
 // Merges $GLOBALS['config'] with data in given array
 function mergeConfig ($newConfig) {
 }
 
 // Merges $GLOBALS['config'] with data in given array
 function mergeConfig ($newConfig) {
+       // Merge current configuration with new one
        $GLOBALS['config'] = merge_array(getConfigArray(), $newConfig);
        $GLOBALS['config'] = merge_array(getConfigArray(), $newConfig);
-
-       // Remove all cached entries
 }
 
 // Increment or init with given value or 1 as default the given config entry
 }
 
 // Increment or init with given value or 1 as default the given config entry
@@ -111,7 +110,7 @@ function incrementConfigEntry ($configEntry, $value=1) {
        }
 }
 
        }
 }
 
-// Checks wether the configuration array is set so the config is loaded
+// Checks whether the configuration array is set so the config is loaded
 function isConfigurationLoaded () {
        // Check all
        return (isset($GLOBALS['config']['config']));
 function isConfigurationLoaded () {
        // Check all
        return (isset($GLOBALS['config']['config']));
@@ -183,7 +182,7 @@ function updateOldConfigFile () {
        copyFileVerified(getPath() . 'inc/config-local.php.dist', getCachePath() . 'config-local.php', 0644);
 
        // First of all, load the old one!
        copyFileVerified(getPath() . 'inc/config-local.php.dist', getCachePath() . 'config-local.php', 0644);
 
        // First of all, load the old one!
-       $oldConfig = explode("\n", readFromFile(getPath() . 'inc/config.php'));
+       $oldConfig = explode(chr(10), readFromFile(getPath() . 'inc/config.php'));
 
        // Now, analyze every entry
        $done = array();
 
        // Now, analyze every entry
        $done = array();
@@ -281,35 +280,47 @@ function updateConfiguration ($entries, $values, $updateMode = '', $config = '0'
                return;
        } // END - if
 
                return;
        } // END - if
 
+       // Default is empty SQL
+       $SQL = '';
+
        // Do we have multiple entries?
        if (is_array($entries)) {
                // Walk through all
        // Do we have multiple entries?
        if (is_array($entries)) {
                // Walk through all
-               $all = '';
                foreach ($entries as $idx => $entry) {
                        // Update mode set?
                        if (!empty($updateMode)) {
                                // Update entry
                foreach ($entries as $idx => $entry) {
                        // Update mode set?
                        if (!empty($updateMode)) {
                                // Update entry
-                               $all .= sprintf("`%s`=`%s`%s%s,", $entry, $entry, $updateMode, (float) $values[$idx]);
+                               $SQL .= sprintf("`%s`=`%s`%s%s,", $entry, $entry, $updateMode, (float) $values[$idx]);
                        } else {
                                // Check if string or number but no array
                                if (is_array($values[$idx])) {
                                        // Arrays must be fixed...
                        } else {
                                // Check if string or number but no array
                                if (is_array($values[$idx])) {
                                        // Arrays must be fixed...
-                                       debug_report_bug(__FUNCTION__, __LINE__, 'values[' . $idx . '] should not be an array! Content=<pre>'.print_r($values[$idx], true).'</pre>');
-                               } elseif (($values[$idx] + 0) === $values[$idx]) {
-                                       // Number detected
-                                       $all .= sprintf("`%s`=%s,", $entry, (float) $values[$idx]);
-
-                                       // Set it in config as well
-                                       setConfigEntry($entry, $values[$idx]);
+                                       reportBug(__FUNCTION__, __LINE__, 'values[' . $idx . '] should not be an array! Content=<pre>'.print_r($values[$idx], true).'</pre>');
                                } elseif ($values[$idx] == 'UNIX_TIMESTAMP()') {
                                        // Function UNIX_TIMESTAMP() detected
                                } elseif ($values[$idx] == 'UNIX_TIMESTAMP()') {
                                        // Function UNIX_TIMESTAMP() detected
-                                       $all .= sprintf("`%s`=UNIX_TIMESTAMP(),", $entry);
+                                       $SQL .= sprintf("`%s`=UNIX_TIMESTAMP(),", $entry);
 
                                        // Set timestamp in array as well
                                        setConfigEntry($entry, time());
 
                                        // Set timestamp in array as well
                                        setConfigEntry($entry, time());
+                               } elseif (!empty($updateMode)) {
+                                       // Is the value zero?
+                                       if ($values[$idx] == '0') {
+                                               // Then skip it
+                                               continue;
+                                       } // END - if
+
+                                       // Update mode set
+                                       // @TODO Call setConfigEntry() somehow
+                                       $SQL .= $entries = sprintf("`%s`=`%s`%s%s", $entry, $entry, $updateMode, (float) $values[$idx]);
+                               } elseif (($values[$idx] + 0) === $values[$idx]) {
+                                       // Number detected
+                                       $SQL .= sprintf("`%s`=%s,", $entry, (float) $values[$idx]);
+
+                                       // Set it in config as well
+                                       setConfigEntry($entry, $values[$idx]);
                                } else {
                                        // String detected
                                } else {
                                        // String detected
-                                       $all .= sprintf("`%s`='%s',", $entry, SQL_ESCAPE($values[$idx]));
+                                       $SQL .= sprintf("`%s`='%s',", $entry, SQL_ESCAPE($values[$idx]));
 
                                        // Set it in config as well
                                        setConfigEntry($entry, $values[$idx]);
 
                                        // Set it in config as well
                                        setConfigEntry($entry, $values[$idx]);
@@ -318,35 +329,42 @@ function updateConfiguration ($entries, $values, $updateMode = '', $config = '0'
                } // END - foreach
 
                // Remove last comma
                } // END - foreach
 
                // Remove last comma
-               $entries = substr($all, 0, -1);
+               $SQL = substr($SQL, 0, -1);
        } elseif (!empty($updateMode)) {
        } elseif (!empty($updateMode)) {
+               // Is the value zero?
+               if ($values == '0') {
+                       // Then skip it
+                       continue;
+               } // END - if
+
                // Update mode set
                // Update mode set
-               $entries = sprintf("`%s`=`%s`%s%s", $entries, $entries, $updateMode, (float) $values);
+               // @TODO Call setConfigEntry() somehow
+               $SQL = sprintf("`%s`=`%s`%s%s", $entries, $entries, $updateMode, (float) $values);
        } elseif (($values + 0) === $values) {
                // Number detected
        } elseif (($values + 0) === $values) {
                // Number detected
-               $entries = sprintf("`%s`=%s", $entries, (float) $values);
+               $SQL = sprintf("`%s`=%s", $entries, (float) $values);
 
                // Set it in config first
                setConfigEntry($entries, (float) $values);
        } elseif ($values == 'UNIX_TIMESTAMP()') {
                // Function UNIX_TIMESTAMP() detected
 
                // Set it in config first
                setConfigEntry($entries, (float) $values);
        } elseif ($values == 'UNIX_TIMESTAMP()') {
                // Function UNIX_TIMESTAMP() detected
-               $entries = sprintf("`%s`=UNIX_TIMESTAMP()", $entries);
+               $SQL = sprintf("`%s`=UNIX_TIMESTAMP()", $entries);
 
                // Set timestamp in array as well
                setConfigEntry($entries, time());
        } else {
                // Regular entry to update
 
                // Set timestamp in array as well
                setConfigEntry($entries, time());
        } else {
                // Regular entry to update
-               $entries = sprintf("`%s`='%s'", $entries, SQL_ESCAPE($values));
+               $SQL = sprintf("`%s`='%s'", $entries, SQL_ESCAPE($values));
 
                // Set it in config as well
                setConfigEntry($entries, SQL_ESCAPE($values));
        }
 
        // Run database update
 
                // Set it in config as well
                setConfigEntry($entries, SQL_ESCAPE($values));
        }
 
        // Run database update
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'entries=' . $entries);
-       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_config` SET ".$entries." WHERE `config`=%s LIMIT 1",
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SQL=' . $SQL);
+       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_config` SET ".$SQL." WHERE `config`=%s LIMIT 1",
                        array(bigintval($config)), __FUNCTION__, __LINE__);
                        array(bigintval($config)), __FUNCTION__, __LINE__);
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'entries=' . $entries . ',affectedRows=' . SQL_AFFECTEDROWS());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SQL=' . $SQL . ',affectedRows=' . SQL_AFFECTEDROWS());
 
        // Rebuild cache
        rebuildCache('config', 'config');
 
        // Rebuild cache
        rebuildCache('config', 'config');
@@ -364,10 +382,8 @@ function FILTER_LOAD_CONFIGURATION ($no = '0') {
                // Load config from cache
                mergeConfig($GLOBALS['cache_array']['config'][$no]);
 
                // Load config from cache
                mergeConfig($GLOBALS['cache_array']['config'][$no]);
 
-               // Count cache hits if exists
-               if ((isStatsEntrySet('cache_hits')) && (isExtensionActive('cache'))) {
-                       incrementStatsEntry('cache_hits');
-               } // END - if
+               // Count cache hits 
+               incrementStatsEntry('cache_hits');
        } elseif ((!isExtensionActive('cache')) || (!isset($GLOBALS['cache_array']['config'][$no]))) {
                // Load config from DB
                $result_config = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_config` WHERE `config`='%s' LIMIT 1",
        } elseif ((!isExtensionActive('cache')) || (!isset($GLOBALS['cache_array']['config'][$no]))) {
                // Load config from DB
                $result_config = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_config` WHERE `config`='%s' LIMIT 1",
index 56ae1735bdb53c62279d721f582761f561d55ac6..f2ef6fd7fcd75cb03a0b10a17203897603d13428 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,7 +51,7 @@ if (function_exists('date_default_timezone_set')) {
 } // END - if
 
 // CFG: ERROR_REPORTING
 } // END - if
 
 // CFG: ERROR_REPORTING
-error_reporting(E_ALL | E_STRICT);
+error_reporting(E_ALL | E_DEPRECATED | E_STRICT);
 
 // Is the function there? (removed in PHP 5.4.x)
 if (function_exists('import_request_variables')) {
 
 // Is the function there? (removed in PHP 5.4.x)
 if (function_exists('import_request_variables')) {
@@ -60,7 +60,7 @@ if (function_exists('import_request_variables')) {
 } // END - if
 
 // Detect path (without 'inc') and fix windozer paths
 } // END - if
 
 // Detect path (without 'inc') and fix windozer paths
-$path = str_replace("\\", '/', substr(dirname(__FILE__), 0, -3));
+$path = str_replace(chr(92), '/', substr(dirname(__FILE__), 0, -3));
 
 // Some very important function includes
 foreach (array('config', 'wrapper', 'template', 'module', 'inc', 'stats', 'http', 'xml', 'callback', 'referral') as $inc) {
 
 // Some very important function includes
 foreach (array('config', 'wrapper', 'template', 'module', 'inc', 'stats', 'http', 'xml', 'callback', 'referral') as $inc) {
@@ -71,12 +71,15 @@ foreach (array('config', 'wrapper', 'template', 'module', 'inc', 'stats', 'http'
 include($path . 'inc/functions.php');
 
 // Auto-detection of URL
 include($path . 'inc/functions.php');
 
 // Auto-detection of URL
-$URL = 'http://' . detectServerName() . str_replace("\\", '/', dirname($_SERVER['PHP_SELF']));
+$URL = 'http://' . detectServerName() . str_replace(chr(92), '/', dirname($_SERVER['PHP_SELF']));
 while (substr($URL, -1, 1) == '/') { $URL = substr($URL, 0, -1); }
 
 // Initialize the configuration
 initConfig();
 
 while (substr($URL, -1, 1) == '/') { $URL = substr($URL, 0, -1); }
 
 // Initialize the configuration
 initConfig();
 
+// Init HTTP handling
+initHttp();
+
 // CFG: HOST-URL (without trailing '/' !)
 setConfigEntry('URL', $URL);
 
 // CFG: HOST-URL (without trailing '/' !)
 setConfigEntry('URL', $URL);
 
@@ -96,7 +99,7 @@ setConfigEntry('AUTHOR' , 'Roland H&auml;der');
 setConfigEntry('TITLE', 'Mailer-Project');
 
 // CFG: COPY
 setConfigEntry('TITLE', 'Mailer-Project');
 
 // CFG: COPY
-setConfigEntry('COPY', 'Copyright &copy; 2003 - 2009, by Roland H&auml;der,<br />2009 - 2011 by Mailer Developer Team');
+setConfigEntry('COPY', 'Copyright &copy; 2003 - 2009, by Roland H&auml;der,<br />2009 - 2012 by Mailer Developer Team');
 
 // CFG: CACHE_PATH
 setConfigEntry('CACHE_PATH', 'inc/cache/');
 
 // CFG: CACHE_PATH
 setConfigEntry('CACHE_PATH', 'inc/cache/');
index 8dca5734d63cec146ddbaf63d4f2dfc0e6f6225c..348ecbb7285ad85d14f3dd8922a020eba449d8e9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -101,6 +101,9 @@ setConfigEntry('DEBUG_TEMPLATE_CACHE', 'N');
 // CFG: DEBUG-REGEX (comment in to debug regular expressions)
 //setConfigEntry('DEBUG_REGEX', 'Y');
 
 // CFG: DEBUG-REGEX (comment in to debug regular expressions)
 //setConfigEntry('DEBUG_REGEX', 'Y');
 
+// CFG: ALLOW-TESTER0ACCOUNTS (comment in to allow tester accounts being re-included)
+//setConfigEntry('ALLOW_TESTER_ACCOUNTS', 'Y');
+
 // Your MySQL data (we don't like M$ SQL ;-) )
 $GLOBALS['mysql'] = array(
        // CFG: MYSQL-HOST
 // Your MySQL data (we don't like M$ SQL ;-) )
 $GLOBALS['mysql'] = array(
        // CFG: MYSQL-HOST
@@ -116,12 +119,13 @@ $GLOBALS['mysql'] = array(
 // SMTP-Subsystem (keep all empty to use legacy mail() command!)
 // CFG: SMTP-HOSTNAME
 setConfigEntry('SMTP_HOSTNAME', '');
 // SMTP-Subsystem (keep all empty to use legacy mail() command!)
 // CFG: SMTP-HOSTNAME
 setConfigEntry('SMTP_HOSTNAME', '');
+
 // CFG: SMTP-USER
 setConfigEntry('SMTP_USER'    , '');
 // CFG: SMTP-USER
 setConfigEntry('SMTP_USER'    , '');
+
 // CFG: SMTP-PASSWORD
 setConfigEntry('SMTP_PASSWORD', '');
 
 // CFG: SMTP-PASSWORD
 setConfigEntry('SMTP_PASSWORD', '');
 
-// @TODO Rewrite the following three constants, somehow...
 // CFG: MAIN-TITLE
 setConfigEntry('MAIN_TITLE', 'Your mail-exchanger title');
 
 // CFG: MAIN-TITLE
 setConfigEntry('MAIN_TITLE', 'Your mail-exchanger title');
 
index 5a03b92f1f4d3fd3de086391e7ca936991aabdd1..8e5b8baa421a83e1b895addc84616f0adc1ab849 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 055faf701fb315b1927fbe5af856563c6f00c512..cca103ab91d1fdb8da366824600eee03a727ca4d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4e451376038c2eea22a6424425e816a9f26d0fcb..0dd607299eb37bcd9d242776ded435d0a7fd2cd4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 78f08e7dd5984582870000fe6badc2ead707ee29..300f3c2ff1cb53f0ece1e4135ac8331b6767c090 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4ff04e06348dc564d53616bf0d392a60a37bcaa1..96a1a8d8e2088ab8ffd4ececa0b07ec413b8949b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -65,11 +65,14 @@ if ((getConfig('birthday_active')  == 'Y') && (isExtensionActive('autopurge')) &
 
 // Only confirmed members shall receive birthday mails...
 $result_birthday = SQL_QUERY_ESC("SELECT
 
 // Only confirmed members shall receive birthday mails...
 $result_birthday = SQL_QUERY_ESC("SELECT
-       `userid`,`email`,`birth_year`
+       `userid`,
+       `email`,
+       `birth_year`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       `status`='CONFIRMED' AND
+       `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
        `birth_day`=%s AND
        `birth_month`=%s AND
        `birthday_sent` < (UNIX_TIMESTAMP() - ({?ONE_DAY?} * 364))
        `birth_day`=%s AND
        `birth_month`=%s AND
        `birthday_sent` < (UNIX_TIMESTAMP() - ({?ONE_DAY?} * 364))
@@ -88,13 +91,13 @@ if (!SQL_HASZERONUMS($result_birthday)) {
                // Simply subtract both values and you got the age... :)
                $age = $now - $bd;
 
                // Simply subtract both values and you got the age... :)
                $age = $now - $bd;
 
-               if (getConfig('birthday_points') > 0) {
+               if (getBirthdayPoints() > 0) {
                        // Add more entries to the array
                        $content['age']    = $age;
                        $content['check']  = '';
 
                        // @TODO 4 is hard-coded here, should we move it out in config?
                        // Add more entries to the array
                        $content['age']    = $age;
                        $content['check']  = '';
 
                        // @TODO 4 is hard-coded here, should we move it out in config?
-                       for ($idx = '0'; $idx < 4; $idx++) {
+                       for ($idx = 0; $idx < 4; $idx++) {
                                $content['check'] .= generateRandomCode('8', mt_rand(0, $month . $day), $content['userid'], ($age * ($idx + 1)));
                        } // END - for
 
                                $content['check'] .= generateRandomCode('8', mt_rand(0, $month . $day), $content['userid'], ($age * ($idx + 1)));
                        } // END - for
 
@@ -109,7 +112,7 @@ if (!SQL_HASZERONUMS($result_birthday)) {
                        $message = loadEmailTemplate('member_birthday_confirm', $content, bigintval($content['userid']));
                } else {
                        // Load default email template and fill in the age
                        $message = loadEmailTemplate('member_birthday_confirm', $content, bigintval($content['userid']));
                } else {
                        // Load default email template and fill in the age
-                       $message = loadEmailTemplate('member_birthday', $age, $content['userid']);
+                       $message = loadEmailTemplate('member_birthday', $content, $content['userid']);
                }
 
                // Send email
                }
 
                // Send email
index d03dcf52650ecc025c896f1dcd8307e4be145b5b..56a72bb728130673271b281dd66b4e55a1ea8f93 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index eb57dee6d05b4a4426c2c5ad4c0efc2a81fc9c03..836e747ffb1985f1d8bea7555d835ef7d335d57a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
diff --git a/inc/daily/daily_earning.php b/inc/daily/daily_earning.php
new file mode 100644 (file)
index 0000000..93028cd
--- /dev/null
@@ -0,0 +1,56 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 06/08/2012 *
+ * ===================                          Last change: 06/08/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : daily_earning.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : Things to be done on daily reset                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Dinge, die beim taeglichen Reset erledigt werden *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} elseif ((!isHtmlOutputMode()) || (!isResetModeEnabled())) {
+       // Do not execute when script is in CSS mode or no daily reset
+       return;
+} elseif (!isExtensionActive('earning')) {
+       logDebugMessage(__FILE__, __LINE__, 'Not resetting, needed extension disabled.');
+       return;
+}
+
+// Debug line
+//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Daily reset started.');
+
+// Debug line
+//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Daily reset ended.');
+
+// [EOF]
+?>
index 11563c52f47059f3003565d104a7656d2a59e555..23bf85b4e531c5945df7ad516b782d4862925ff6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 6ba642ec43969c6c1923d9d2bcdea686d6dfa1fc..7801f8e62d0a48288444a4ee5be9706effd273fe 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -60,7 +60,8 @@ if ((isSendProfileUpdateEnabled()) && (getProfileUpdate() > 0) && (getResendProf
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       `status`='CONFIRMED' AND (
+       `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND (
                (
                        (UNIX_TIMESTAMP() - `last_update`) >= {?profile_update?} AND
                        `last_update` > 0 AND
                (
                        (UNIX_TIMESTAMP() - `last_update`) >= {?profile_update?} AND
                        `last_update` > 0 AND
index 3b017124050d1d465c4a1f5367ddd5d2a0c097db..a0d1af6299d874f54404c5abebaf996357142e99 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index f7b9085e2a566b3e3e03955e9a9a0bf0b5923ab5..f475f805308b2efdd4e659dfb527863977511bfd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -77,6 +77,7 @@ FROM
 WHERE
        `ref_payout`=0 AND
        `status`='CONFIRMED'
 WHERE
        `ref_payout`=0 AND
        `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 ORDER BY
        `userid` ASC", __FILE__, __LINE__);
 
 ORDER BY
        `userid` ASC", __FILE__, __LINE__);
 
@@ -85,75 +86,88 @@ if (!SQL_HASZERONUMS($result_daily)) {
        // Init SQLs
        initSqls();
 
        // Init SQLs
        initSqls();
 
-       // Start checking accounts which are on 0 confirmed-to-go mails
-       while ($content = SQL_FETCHARRAY($result_daily)) {
-               //* DEBUG: */ debugOutput(basename(__FILE__) . ':' . $content['userid']);
-               $result_points = SQL_QUERY_ESC("SELECT
+       // Run through all 'locked_(foo)_points columsn
+       foreach (runFilterChain('locked_points_columns_array', array('points')) as $columnName) {
+               // Start checking accounts which are on 0 confirmed-to-go mails
+               while ($content = SQL_FETCHARRAY($result_daily)) {
+                       //* DEBUG: */ debugOutput(basename(__FILE__) . ':' . $content['userid']);
+                       $result_points = SQL_QUERY_ESC("SELECT
        `ref_depth`,
        `ref_depth`,
-       `locked_points`
+       `locked_%s`
 FROM
        `{?_MYSQL_PREFIX?}_user_points`
 WHERE
        `userid`=%s AND
 FROM
        `{?_MYSQL_PREFIX?}_user_points`
 WHERE
        `userid`=%s AND
-       `locked_points` > 0.00000
+       `locked_%s` > 0.00000
 ORDER BY
        `ref_depth` ASC",
 ORDER BY
        `ref_depth` ASC",
-                       array(bigintval($content['userid'])), __FILE__, __LINE__);
+                               array(
+                                       $columnName,
+                                       bigintval($content['userid']),
+                                       $columnName
+                               ), __FILE__, __LINE__);
 
 
-               //* DEBUG: */ debugOutput(basename(__FILE__) . ':payout=0;points|numRows=' . SQL_NUMROWS($result_points));
-               if (!SQL_HASZERONUMS($result_points)) {
-                       // Ok transfer points
-                       while ($content2 = SQL_FETCHARRAY($result_points)) {
-                               // Merge both arrays
-                               $content = merge_array($content, $content2);
+                       //* DEBUG: */ debugOutput(basename(__FILE__) . ':payout=0;points|numRows=' . SQL_NUMROWS($result_points));
+                       if (!SQL_HASZERONUMS($result_points)) {
+                               // Ok transfer points
+                               while ($content2 = SQL_FETCHARRAY($result_points)) {
+                                       // Merge both arrays
+                                       $content = merge_array($content, $content2);
 
 
-                               //* DEBUG: */ debugOutput(basename(__FILE__) . ':userid=' . $content['userid'].',depth='.$content['ref_depth'].',locked='.$content['locked_points']);
-                               if ($content['ref_depth'] > 0) {
-                                       // Level 1+
-                                       addSql(SQL_QUERY_ESC("UPDATE
+                                       //* DEBUG: */ debugOutput(basename(__FILE__) . ':userid=' . $content['userid'].',depth='.$content['ref_depth'].',columnName=' . $columnName . ',locked='.$content['locked_' . $columnName]);
+                                       if ($content['ref_depth'] > 0) {
+                                               // Level 1+
+                                               addSql(SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_points`
 SET
        `{?_MYSQL_PREFIX?}_user_points`
 SET
-       `points`=`points`+%s,
-       `locked_points`=0.00000
+       `%s`=`%s`+%s,
+       `locked_%s`=0.00000
 WHERE
        `userid`=%s AND
        `ref_depth`=%s
 LIMIT 1",
 WHERE
        `userid`=%s AND
        `ref_depth`=%s
 LIMIT 1",
-                                               array(
-                                                       $content['locked_points'],
-                                                       bigintval($content['userid']),
+                                                       array(
+                                                               $columnName,
+                                                               $columnName,
+                                                               $content['locked_' . $columnName],
+                                                               $columnName,
+                                                               bigintval($content['userid']),
                                                        $content['ref_depth']
                                                        $content['ref_depth']
-                                               ), __FILE__, __LINE__, false)
-                                       );
-                               } else {
-                                       // Level zero
-                                       addSql(SQL_QUERY_ESC("UPDATE
+                                                       ), __FILE__, __LINE__, false)
+                                               );
+                                       } else {
+                                               // Level zero
+                                               addSql(SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_points`
 SET
        `{?_MYSQL_PREFIX?}_user_points`
 SET
-       `points`=`points`+%s,
-       `locked_points`=0.00000
+       `%s`=`%s`+%s,
+       `locked_%s`=0.00000
 WHERE
        `userid`=%s AND
        `ref_depth` IS NULL
 LIMIT 1",
 WHERE
        `userid`=%s AND
        `ref_depth` IS NULL
 LIMIT 1",
-                                               array(
-                                                       $content['locked_points'],
-                                                       bigintval($content['userid'])
-                                               ), __FILE__, __LINE__, false)
-                                       );
-                               }
+                                                       array(
+                                                               $columnName,
+                                                               $columnName,
+                                                               $content['locked_' . $columnName],
+                                                               $columnName,
+                                                               bigintval($content['userid'])
+                                                       ), __FILE__, __LINE__, false)
+                                               );
+                                       }
 
 
-                               // Update mediadata as well
-                               if (isExtensionInstalledAndNewer('mediadata', '0.0.4')) {
-                                       // Update database
-                                       updateMediadataEntry(array('total_points'), 'add', $content['locked_points']);
-                               } // END - if
-                       } // END - while
-               } // END - if
+                                       // Update mediadata as well
+                                       if (isExtensionInstalledAndNewer('mediadata', '0.0.4')) {
+                                               // Update database
+                                               updateMediadataEntry(array('total_points'), 'add', $content['locked_' . $columnName]);
+                                       } // END - if
+                               } // END - while
+                       } // END - if
 
 
-               // Free memory
-               SQL_FREERESULT($result_points);
-       } // END - while
+                       // Free memory
+                       SQL_FREERESULT($result_points);
+               } // END - while
+       } // END - foreach
 
        // Run all SQLs
        runFilterChain('run_sqls');
 
        // Run all SQLs
        runFilterChain('run_sqls');
index e9953613d8906e617af66c28ad3881967ed8f76e..87de90b5181f528485af835e0574beb3abdb908f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8e42f451283f0d8a4e1cc5a4de95827071ae70c6..851d3eec9f2f0bff7786407adad6dd39b11e0597 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,48 +41,51 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // System-wide return codes
 } // END - if
 
 // System-wide return codes
-addCode('WRONG_PASS'         , 0x001);
-addCode('WRONG_ID'           , 0x002);
-addCode('ACCOUNT_LOCKED'     , 0x003);
-addCode('ACCOUNT_UNCONFIRMED', 0x004);
-addCode('ACCOUNT_UNKNOWN'    , 0x005);
-addCode('UNKNOWN_STATUS'     , 0x006);
-addCode('NO_MAIL_TYPE'       , 0x007);
-addCode('CNTR_FAILED'        , 0x008);
-addCode('LOGOUT_DONE'        , 0x009);
-addCode('LOGOUT_FAILED'      , 0x00a);
-addCode('URL_TIME_LOCK'      , 0x00b);
-addCode('URL_FOUND'          , 0x00c);
-addCode('OVERLENGTH'         , 0x00d);
-addCode('SUBJECT_URL'        , 0x00e);
-addCode('BLIST_URL'          , 0x00f);
-addCode('NO_RECS_LEFT'       , 0x010);
-addCode('INVALID_TAGS'       , 0x011);
-addCode('MORE_POINTS'        , 0x012);
-addCode('COOKIES_DISABLED'   , 0x013);
-addCode('DATA_INVALID'       , 0x014);
-addCode('POSSIBLE_INVALID'   , 0x015);
-addCode('USER_404'           , 0x016);
-addCode('STATS_404'          , 0x017);
-addCode('ALREADY_CONFIRMED'  , 0x018);
-addCode('ERROR_MAILID'       , 0x019);
-addCode('EXTENSION_PROBLEM'  , 0x01a);
-addCode('MORE_RECEIVERS1'    , 0x01b);
-addCode('MORE_RECEIVERS2'    , 0x01c);
-addCode('MORE_RECEIVERS3'    , 0x01d);
-addCode('INVALID_URL'        , 0x01e);
-addCode('MENU_NOT_VALID'     , 0x01f);
-addCode('LOGIN_FAILED'       , 0x020);
-addCode('BEG_SAME_AS_OWN'    , 0x021);
-addCode('UNHANDLED_STATUS'   , 0x022);
-addCode('MODULE_MEMBER_ONLY' , 0x023);
-addCode('UNKNOWN_ERROR'      , 0x024);
-addCode('PROFILE_UPDATED'    , 0x025);
+addCode('WRONG_PASS'          , 0x001);
+addCode('WRONG_ID'            , 0x002);
+addCode('ACCOUNT_LOCKED'      , 0x003);
+addCode('ACCOUNT_UNCONFIRMED' , 0x004);
+addCode('ACCOUNT_UNKNOWN'     , 0x005);
+addCode('UNKNOWN_STATUS'      , 0x006);
+addCode('NO_MAIL_TYPE'        , 0x007);
+addCode('CNTR_FAILED'         , 0x008);
+addCode('LOGOUT_DONE'         , 0x009);
+addCode('LOGOUT_FAILED'       , 0x00a);
+addCode('URL_TIME_LOCK'       , 0x00b);
+addCode('URL_FOUND'           , 0x00c);
+addCode('OVERLENGTH'          , 0x00d);
+addCode('SUBJECT_URL'         , 0x00e);
+addCode('BLIST_URL'           , 0x00f);
+addCode('NO_RECS_LEFT'        , 0x010);
+addCode('INVALID_TAGS'        , 0x011);
+addCode('MORE_POINTS'         , 0x012);
+addCode('COOKIES_DISABLED'    , 0x013);
+addCode('DATA_INVALID'        , 0x014);
+addCode('POSSIBLE_INVALID'    , 0x015);
+addCode('USER_404'            , 0x016);
+addCode('STATS_404'           , 0x017);
+addCode('ALREADY_CONFIRMED'   , 0x018);
+addCode('ERROR_MAILID'        , 0x019);
+addCode('EXTENSION_PROBLEM'   , 0x01a);
+addCode('MORE_RECEIVERS1'     , 0x01b);
+addCode('MORE_RECEIVERS2'     , 0x01c);
+addCode('MORE_RECEIVERS3'     , 0x01d);
+addCode('INVALID_URL'         , 0x01e);
+addCode('MENU_NOT_VALID'      , 0x01f);
+addCode('LOGIN_FAILED'        , 0x020);
+addCode('BEG_SAME_AS_OWN'     , 0x021);
+addCode('UNHANDLED_STATUS'    , 0x022);
+addCode('MODULE_MEMBER_ONLY'  , 0x023);
+addCode('UNKNOWN_ERROR'       , 0x024);
+addCode('PROFILE_UPDATED'     , 0x025);
+addCode('UNKNOWN_REDIRECT'    , 0x026);
+addCode('LOGIN_EMPTY_ID'      , 0x027);
+addCode('LOGIN_EMPTY_PASSWORD', 0x028);
 
 // Full version
 setConfigEntry('FULL_VERSION', '0.2.1-FINAL');
 
 
 // Full version
 setConfigEntry('FULL_VERSION', '0.2.1-FINAL');
 
-// Server-URL (DO NOT CHANGE THIS OR YOU CANNOT CHECK FOR UPDATES/EXTENSIONS!)
+// Server-URL (DO NOT CHANGE THIS OR YOU CANNOT CHECK FOR UPDATES!)
 setConfigEntry('SERVER_URL', 'http://mxchange.org');
 
 // One day
 setConfigEntry('SERVER_URL', 'http://mxchange.org');
 
 // One day
@@ -100,5 +103,17 @@ setConfigEntry('ENCRYPT_SEPARATOR', ':');
 // Extra title is empty by default
 setExtraTitle('');
 
 // Extra title is empty by default
 setExtraTitle('');
 
+// Time unit translations
+$GLOBALS['time_units'] = array(
+       // Data value -> string-representation
+       'Y' => 'YEAR',
+       'M' => 'MONTH',
+       'W' => 'WEEK',
+       'D' => 'DAY',
+       'h' => 'HOUR',
+       'm' => 'MINUTE',
+       's' => 'SECOND',
+);
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 1f4fb3cdbdd4fd745f1506d169158cad125ef27e..29b6b9b1bfd279cfaf2f05095f5301eb7815e8ed 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -52,13 +52,13 @@ function SQL_QUERY ($sqlString, $F, $L, $enableCodes = true) {
                // Empty query string or link is not up?
                if (empty($sqlStringModified)) {
                        // Empty SQL string!
                // Empty query string or link is not up?
                if (empty($sqlStringModified)) {
                        // Empty SQL string!
-                       debug_report_bug(__FUNCTION__, __LINE__, sprintf("SQL string is empty. Please fix this. file=%s, line=%s",
+                       reportBug(__FUNCTION__, __LINE__, sprintf("SQL string is empty, please fix this: file=%s, line=%s",
                                basename($F),
                                $L
                        ));
                } elseif (!SQL_IS_LINK_UP()) {
                        // We should not quietly ignore this
                                basename($F),
                                $L
                        ));
                } elseif (!SQL_IS_LINK_UP()) {
                        // We should not quietly ignore this
-                       debug_report_bug(__FUNCTION__, __LINE__, sprintf("Cannot query database: sqlString=%s,file=%s,line=%s",
+                       reportBug(__FUNCTION__, __LINE__, sprintf("Cannot query database: sqlString=%s,file=%s,line=%s",
                                $sqlStringModified,
                                basename($F),
                                $L
                                $sqlStringModified,
                                basename($F),
                                $L
@@ -66,7 +66,7 @@ function SQL_QUERY ($sqlString, $F, $L, $enableCodes = true) {
                }
 
                // Remove \t, \n and \r from queries they may confuse some MySQL versions
                }
 
                // Remove \t, \n and \r from queries they may confuse some MySQL versions
-               $sqlStringModified = str_replace("\t", ' ', str_replace("\n", ' ', str_replace("\r", ' ', $sqlStringModified)));
+               $sqlStringModified = str_replace(array(chr(9), chr(10), chr(13)), array(' ', ' ', ' '), $sqlStringModified);
 
                // Compile config entries out
                $sqlStringModified = SQL_PREPARE_SQL_STRING($sqlStringModified, $enableCodes);
 
                // Compile config entries out
                $sqlStringModified = SQL_PREPARE_SQL_STRING($sqlStringModified, $enableCodes);
@@ -90,7 +90,7 @@ function SQL_QUERY ($sqlString, $F, $L, $enableCodes = true) {
        // Run SQL command
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'F=' . basename($F) . ',L=' . $L . ',sql=' . $GLOBALS['last_sql']);
        $result = mysql_query($GLOBALS['last_sql'], SQL_GET_LINK())
        // Run SQL command
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'F=' . basename($F) . ',L=' . $L . ',sql=' . $GLOBALS['last_sql']);
        $result = mysql_query($GLOBALS['last_sql'], SQL_GET_LINK())
-               or debug_report_bug($F, $L, 'file='. basename($F) . ',line=' . $L . ':mysql_error()=' . mysql_error() . ',last_query=' . $GLOBALS['last_sql']);
+               or SQL_ERROR($F, $L, 'file='. basename($F) . ',line=' . $L . ':mysql_error()=' . mysql_error() . ',last_query=' . $GLOBALS['last_sql']);
        //* DEBUG: */ logDebugMessage($F, $L, 'sql=' . $GLOBALS['last_sql'] . ',affected=' . SQL_AFFECTEDROWS() . ',numRows='.(is_resource($result) ? SQL_NUMROWS($result) : gettype($result)));
 
        // Calculate query time
        //* DEBUG: */ logDebugMessage($F, $L, 'sql=' . $GLOBALS['last_sql'] . ',affected=' . SQL_AFFECTEDROWS() . ',numRows='.(is_resource($result) ? SQL_NUMROWS($result) : gettype($result)));
 
        // Calculate query time
@@ -109,7 +109,7 @@ function SQL_QUERY ($sqlString, $F, $L, $enableCodes = true) {
        incrementConfigEntry('sql_count');
 
        // Debug output
        incrementConfigEntry('sql_count');
 
        // Debug output
-       if ((!isCssOutputMode()) && (isDebugModeEnabled()) && (isSqlDebuggingEnabled())) {
+       if (SQL_DEBUG_ENABLED()) {
                // Is this the first call?
                if (!isset($GLOBALS['sql_first_entry'])) {
                        // Write first entry
                // Is this the first call?
                if (!isset($GLOBALS['sql_first_entry'])) {
                        // Write first entry
@@ -118,17 +118,11 @@ function SQL_QUERY ($sqlString, $F, $L, $enableCodes = true) {
                } // END - if
 
                // Append debug line
                } // END - if
 
                // Append debug line
-               appendLineToFile(getCachePath() . 'mysql.log', basename($F) . '|LINE=' . $L . '|NUM=' . (is_resource($result) ? SQL_NUMROWS($result) : 'false') . '|AFFECTED=' . SQL_AFFECTEDROWS() . '|QUERYTIME:' . $queryTime . '): ' . str_replace("\r", '', str_replace("\n", ' ', $GLOBALS['last_sql'])));
+               appendLineToFile(getCachePath() . 'mysql.log', basename($F) . '|LINE=' . $L . '|NUM=' . (is_resource($result) ? SQL_NUMROWS($result) : 'false') . '|AFFECTED=' . SQL_AFFECTEDROWS() . '|QUERYTIME:' . $queryTime . '): ' . str_replace(array(chr(13), chr(10)), array('', ' '), $GLOBALS['last_sql']));
        } // END - if
 
        } // END - if
 
-       // Count DB hits
-       if (!isStatsEntrySet('db_hits')) {
-               // Count in dummy variable
-               setStatsEntry('db_hits', 1);
-       } else {
-               // Count to config array
-               incrementStatsEntry('db_hits');
-       }
+       // Increment stats entry
+       incrementStatsEntry('db_hits');
 
        // Return the result
        return $result;
 
        // Return the result
        return $result;
@@ -143,7 +137,7 @@ function SQL_NUMROWS ($resource) {
        $lines = false;
 
        // Is the result a valid resource?
        $lines = false;
 
        // Is the result a valid resource?
-       if (isset($GLOBALS['sql_numrows'][$resource])) {
+       if (isset($GLOBALS['sql_numrows'][intval($resource)])) {
                // Use cache
                $lines = $GLOBALS['sql_numrows'][intval($resource)];
        } elseif (is_resource($resource)) {
                // Use cache
                $lines = $GLOBALS['sql_numrows'][intval($resource)];
        } elseif (is_resource($resource)) {
@@ -154,7 +148,7 @@ function SQL_NUMROWS ($resource) {
                $GLOBALS['sql_numrows'][intval($resource)] = $lines;
        } else {
                // No resource given, please fix this
                $GLOBALS['sql_numrows'][intval($resource)] = $lines;
        } else {
                // No resource given, please fix this
-               debug_report_bug(__FUNCTION__, __LINE__, 'No resource given! result[]=' . gettype($resource) . ',last_sql=' .  $GLOBALS['last_sql']);
+               reportBug(__FUNCTION__, __LINE__, 'No resource given! result[]=' . gettype($resource) . ',last_sql=' .  $GLOBALS['last_sql']);
        }
 
        // Return lines
        }
 
        // Return lines
@@ -215,10 +209,21 @@ function SQL_RESULT ($resource, $row, $field = '0') {
 // SQL connect
 function SQL_CONNECT ($host, $login, $password, $F, $L) {
        // Try to connect
 // SQL connect
 function SQL_CONNECT ($host, $login, $password, $F, $L) {
        // Try to connect
-       $linkResource = mysql_connect($host, $login, $password) or debug_report_bug(__FUNCTION__, __LINE__, $F . ' (' . $L . '):' . mysql_error());
+       $linkResource = mysql_connect($host, $login, $password) or SQL_ERROR($F, $L,  mysql_error());
 
        // Set the link resource
 
        // Set the link resource
-       SQL_SET_LINK($linkResource);
+       if (is_resource($linkResource)) {
+               /*
+                * A non-resource (boolean) may happen on installation phase which
+                * shall not be set here. Only valid link resources shall be set so
+                * SQL_IS_LINK_UP() will only return 'true' if there is really a
+                * working database link.
+                */
+               SQL_SET_LINK($linkResource);
+       } // END - if
+
+       // Return the resource
+       return $linkResource;
 }
 
 // SQL select database
 }
 
 // SQL select database
@@ -227,7 +232,7 @@ function SQL_SELECT_DB ($dbName, $F, $L) {
        if (!SQL_IS_LINK_UP()) return false;
 
        // Return the result
        if (!SQL_IS_LINK_UP()) return false;
 
        // Return the result
-       return mysql_select_db($dbName, SQL_GET_LINK()) or debug_report_bug(__FUNCTION__, __LINE__, $F . ' (' . $L . '):' . mysql_error());
+       return mysql_select_db($dbName, SQL_GET_LINK()) or SQL_ERROR($F, $L,  mysql_error());
 }
 
 // SQL close link
 }
 
 // SQL close link
@@ -238,10 +243,10 @@ function SQL_CLOSE ($F, $L) {
        } // END - if
 
        // Close database link and forget the link
        } // END - if
 
        // Close database link and forget the link
-       $close = mysql_close(SQL_GET_LINK()) or debug_report_bug(__FUNCTION__, __LINE__, $F . ' (' . $L . '):'.mysql_error());
+       $close = mysql_close(SQL_GET_LINK()) or SQL_ERROR($F, $L, mysql_error());
 
        // Close link
 
        // Close link
-       SQL_SET_LINK(null);
+       SQL_SET_LINK(NULL);
 
        // Return the result
        return $close;
 
        // Return the result
        return $close;
@@ -330,7 +335,7 @@ function SQL_RESULT_FROM_ARRAY ($table, $columns, $idRow, $id, $F, $L) {
        // Is columns an array?
        if (!is_array($columns)) {
                // No array
        // Is columns an array?
        if (!is_array($columns)) {
                // No array
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("columns is not an array. %s != array, file=%s, line=%s",
+               reportBug(__FUNCTION__, __LINE__, sprintf("columns is not an array. %s != array, file=%s, line=%s",
                        gettype($columns),
                        basename($F),
                        $L
                        gettype($columns),
                        basename($F),
                        $L
@@ -451,7 +456,7 @@ function SQL_ALTER_TABLE ($sql, $F, $L, $enableCodes = true) {
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'keyName=' . $keyName . 'begin=' . $begin . ' - BETWEEN');
 
                                // Remove brackes
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'keyName=' . $keyName . 'begin=' . $begin . ' - BETWEEN');
 
                                // Remove brackes
-                               $keyName = str_replace('(', '', str_replace(')', '', $keyName));
+                               $keyName = str_replace(array('(', ')'), array('', ''), $keyName);
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'keyName=' . $keyName . 'begin=' . $begin . ' - AFTER');
 
                                // Continue
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'keyName=' . $keyName . 'begin=' . $begin . ' - AFTER');
 
                                // Continue
@@ -506,7 +511,7 @@ function SQL_SET_LINK ($link) {
                return;
        } elseif ((!is_resource($link)) && (!is_null($link))) {
                // This should never happen!
                return;
        } elseif ((!is_resource($link)) && (!is_null($link))) {
                // This should never happen!
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("Type of link is not resource or null, type=%s", gettype($link)));
+               reportBug(__FUNCTION__, __LINE__, sprintf("Type of link is not resource or null, type=%s", gettype($link)));
        } // END - if
 
        // Set it
        } // END - if
 
        // Set it
@@ -518,23 +523,14 @@ function SQL_SET_LINK ($link) {
 
 // Checks if the link is up
 function SQL_IS_LINK_UP () {
 
 // Checks if the link is up
 function SQL_IS_LINK_UP () {
-       // Default is not up
-       $linkUp = false;
-
        // Do we have cached this?
        // Do we have cached this?
-       if (isset($GLOBALS['is_sql_link_up'])) {
-               // Then use this
-               $linkUp = $GLOBALS['is_sql_link_up'];
-       } else {
-               // Get it
-               $linkUp = is_resource(SQL_GET_LINK());
-
-               // And cache it
-               $GLOBALS['is_sql_link_up'] = $linkUp;
-       }
+       if (!isset($GLOBALS['is_sql_link_up'])) {
+               // Determine it
+               $GLOBALS['is_sql_link_up'] = is_resource(SQL_GET_LINK());
+       } // END - if
 
        // Return the result
 
        // Return the result
-       return $linkUp;
+       return $GLOBALS['is_sql_link_up'];
 }
 
 // Wrapper function to make code more readable
 }
 
 // Wrapper function to make code more readable
@@ -569,6 +565,24 @@ function SQL_EPOCHE_TO_TIMESTAMP ($timestamp) {
        return generateDateTime($timestamp, 7);
 }
 
        return generateDateTime($timestamp, 7);
 }
 
+// Log SQL errors to debug.log in installation phase or call reportBug()
+function SQL_ERROR ($file, $line, $message) {
+       // Remember plain error in last_sql_error
+       $GLOBALS['last_sql_error'] = mysql_error();
+
+       // Do we have installation phase?
+       if (isInstallationPhase()) {
+               /*
+                * In installation phase, we don't want SQL errors abort e.g. connection
+                * tests, so just log it away.
+                */
+               logDebugMessage($file, $line, $message);
+       } else {
+               // Regular mode, then call reportBug()
+               reportBug($file, $line, $message);
+       }
+}
+
 // Check if there is a SQL table created
 function isSqlTableCreated ($tableName) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ' - ENTERED!');
 // Check if there is a SQL table created
 function isSqlTableCreated ($tableName) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ' - ENTERED!');
@@ -642,5 +656,49 @@ function isSqlTableIndexFound ($tableName, $keyName) {
        return $GLOBALS[__FUNCTION__][$tableName][$keyName];
 }
 
        return $GLOBALS[__FUNCTION__][$tableName][$keyName];
 }
 
+// Init database layer
+function initDatabaseLayer () {
+       // Set all required variables:
+       $GLOBALS['last_sql_error'] = '';
+}
+
+// Get last SQL error
+function getLastSqlError () {
+       return $GLOBALS['last_sql_error'];
+}
+
+// Gets an array (or false if none is found) from all supported engines
+function getArrayFromSupportedSqlEngines ($support = 'YES') {
+       // Init array
+       $engines = array();
+
+       // This also worked, now we need to check if the selected database type is supported
+       $result = SQL_QUERY('SHOW ENGINES', __FUNCTION__, __LINE__);
+
+       // Do we have entries? (Bad if not)
+       if (SQL_NUMROWS($result) > 0) {
+               // Load all and check for active entries
+               while ($content = SQL_FETCHARRAY($result)) {
+                       // Is this supported?
+                       if (($support == 'ALL') || ($content['Support'] == $support)) {
+                               // Add it
+                               array_push($engines, $content);
+                       } elseif (isDebugModeEnabled()) {
+                               // Log it away in debug mode
+                               logDebugMessage(__FUNCTION__, __LINE__, 'Engine ' . $content['Engine'] . ' is not supported (' . $content['Supported'] . ')');
+                       }
+               } // END - if
+       } else {
+               // No engines! :(
+               $engines = false;
+       }
+
+       // Free result
+       SQL_FREERESULT($result);
+
+       // Return result
+       return $engines;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index ba0d73c1e0178d8528c40a87b683a334446007d6..9d28823ac52107f9919291adf25e43f050f5d3fb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,13 +43,16 @@ if (!defined('__SECURITY')) {
 // Create include file name
 $inc = sprintf("inc/db/lib-%s.php", getConfig('_DB_TYPE'));
 
 // Create include file name
 $inc = sprintf("inc/db/lib-%s.php", getConfig('_DB_TYPE'));
 
-if (isIncludeReadable($inc)) {
-       // Include abstraction layer
-       loadIncludeOnce($inc);
-} else {
+if (!isIncludeReadable($inc)) {
        // Bye, bye...
        // Bye, bye...
-       debug_report_bug(__FILE__, __LINE__, 'Cannot load database abstraction layer <u>' . getConfig('_DB_TYPE') . '</u> -&gt; R.I.P.');
-}
+       reportBug(__FILE__, __LINE__, 'Cannot load database abstraction layer <u>' . getConfig('_DB_TYPE') . '</u> -&gt; R.I.P.');
+} // END - if
+
+// Include abstraction layer
+loadIncludeOnce($inc);
+
+// Initialize it
+initDatabaseLayer();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
index d2bc8bd606ca1fef0eaaa91e747b2e87290d80e3..2003fa1c83492bfed50bab8ef0e448be7417ab9c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3aa8026953da4a850835eb16ce2523a65b60e0ba..82ba0ca9a33403dc99b7afd651096295efafbfd0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,7 @@ function replaceExpressionCode ($data, $replacer) {
        return str_replace($data['matches'][0][$data['key']], $replacer, escapeQuotes($data['code']));
 }
 
        return str_replace($data['matches'][0][$data['key']], $replacer, escapeQuotes($data['code']));
 }
 
-// Private function to determine wether we have a special expression function avaible
+// Private function to determine whether we have a special expression function avaible
 // (mostly located in wrapper-functions.php)
 function isExpressionFunctionAvaiable ($data) {
        // Get the enty we need and trim it
 // (mostly located in wrapper-functions.php)
 function isExpressionFunctionAvaiable ($data) {
        // Get the enty we need and trim it
@@ -81,7 +81,7 @@ function isExpressionFunctionAvaiable ($data) {
                }
        } elseif ($GLOBALS['expression_function_available'][$entry] == false) {
                // Debug message
                }
        } elseif ($GLOBALS['expression_function_available'][$entry] == false) {
                // Debug message
-               logDebugMessage(__FUNCTION__, __LINE__, 'Expression function for entry ' . $entry . ' requested but not found.');
+               logDebugMessage(__FUNCTION__, __LINE__, 'Expression function for entry ' . $entry . ' requested but does not exist.');
        }
 
        // Return cache
        }
 
        // Return cache
@@ -110,12 +110,16 @@ function doExpressionCode ($data) {
 function doExpressionUrl ($data) {
        // Do we have JS-mode?
        if ($data['callback'] == 'js') {
 function doExpressionUrl ($data) {
        // Do we have JS-mode?
        if ($data['callback'] == 'js') {
-               $data['output_mode'] = 1;
+               // Switch to it
+               $data['output_mode'] = '1';
        } // END - if
 
        // Handle an URL here
        $replacer = "{DQUOTE} . encodeUrl('" . $data['matches'][4][$data['key']] . "', " . $data['output_mode'] . ') . {DQUOTE}';
 
        } // END - if
 
        // Handle an URL here
        $replacer = "{DQUOTE} . encodeUrl('" . $data['matches'][4][$data['key']] . "', " . $data['output_mode'] . ') . {DQUOTE}';
 
+       // Debug log
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'replacer=' . $replacer . ',callback=' . $data['callback']);
+
        // Replace it
        $code = replaceExpressionCode($data, $replacer);
 
        // Replace it
        $code = replaceExpressionCode($data, $replacer);
 
@@ -169,9 +173,12 @@ function doExpressionConfig ($data) {
        if (isExpressionFunctionAvaiable($data)) {
                // Then use it
                $replacer = '{DQUOTE}  . ' . $data['callback'] . '(' . getExpressionFunction($data) . '()) . {DQUOTE}';
        if (isExpressionFunctionAvaiable($data)) {
                // Then use it
                $replacer = '{DQUOTE}  . ' . $data['callback'] . '(' . getExpressionFunction($data) . '()) . {DQUOTE}';
+       } elseif (!isConfigEntrySet($data['matches'][4][$data['key']])) {
+               // Config entry is not set
+               $replacer = '{DQUOTE}  . ' . $data['callback'] . '(NULL) . {DQUOTE}';
        } else {
                // Default replacer is the config value itself
        } else {
                // Default replacer is the config value itself
-               $replacer = '{DQUOTE}  . ' . $data['callback'] . '(getConfig(' . "'" . $data['matches'][4][$data['key']] . "'" . ')) . {DQUOTE}';
+               $replacer = '{DQUOTE}  . ' . $data['callback'] . '(getConfig(' . chr(39) . $data['matches'][4][$data['key']] . chr(39) . ')) . {DQUOTE}';
        }
 
        // Replace the config entry
        }
 
        // Replace the config entry
@@ -249,7 +256,7 @@ function doExpressionMessage ($data) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'callback=' . $data['callback'] . ',extra_func=' . $data['extra_func'] . ',value=' . $data['value']);
 
        // Message string replacement depends on if message is masked
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'callback=' . $data['callback'] . ',extra_func=' . $data['extra_func'] . ',value=' . $data['value']);
 
        // Message string replacement depends on if message is masked
-       if ((isMessageMasked($data['callback'])) && ((!empty($data['extra_func'])) || ($data['extra_func'] == '0'))) {
+       if ((isMessageMasked($data['callback'], false)) && ((!empty($data['extra_func'])) || ($data['extra_func'] == '0'))) {
                // Message should be masked
                $replacer = "{DQUOTE} . getMaskedMessage('" . $data['callback'] . "', '" . $data['extra_func'] . "') . {DQUOTE}";
        } elseif (!empty($data['value'])) {
                // Message should be masked
                $replacer = "{DQUOTE} . getMaskedMessage('" . $data['callback'] . "', '" . $data['extra_func'] . "') . {DQUOTE}";
        } elseif (!empty($data['value'])) {
@@ -270,28 +277,31 @@ function doExpressionMessage ($data) {
 // Expression call-back for template functions
 function doExpressionTemplate ($data) {
        // Construct call-back function name
 // Expression call-back for template functions
 function doExpressionTemplate ($data) {
        // Construct call-back function name
-       $callback = 'doTemplate' . $data['callback'];
+       $callbackFunction = 'doTemplate' . $data['callback'];
 
        // Init replacer
 
        // Init replacer
-       $replacer = '<!-- [' . __FUNCTION__ . ':' . __LINE__.'] Call-back function ' . $callback  . ' does not exist. //-->';
+       $replacer = '<!-- [' . __FUNCTION__ . ':' . __LINE__.'] Call-back function ' . $callbackFunction  . ' does not exist. //-->';
 
        // Is the function there?
 
        // Is the function there?
-       if (function_exists($callback)) {
+       if (!isset($GLOBALS['current_template'])) {
+               // This is very bad and needs fixing
+               reportBug(__FUNCTION__, __LINE__, 'current_template in GLOBALS not set, callbackFunction=' . $callbackFunction . ',function_exists()=' . intval(function_exists($callbackFunction)));
+       } elseif (!function_exists($callbackFunction)) {
+               // Log missing function
+               logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callbackFunction . ' does not exist.');
+       } else {
                // Do the replacement
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template='.$GLOBALS['current_template']);
                // Do the replacement
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template='.$GLOBALS['current_template']);
-               $replacer = '{DQUOTE} . ' . $callback . "('" . $GLOBALS['current_template'] . "', true";
+               $replacer = '{DQUOTE} . ' . $callbackFunction . '(' . chr(39) . $GLOBALS['current_template'] . chr(39) . ', true';
 
                // Is 'value' set?
                if (!empty($data['value'])) {
                        // Then include it as well
 
                // Is 'value' set?
                if (!empty($data['value'])) {
                        // Then include it as well
-                       $replacer .= ", '" . $data['value'] . "'";
+                       $replacer .= ', ' . chr(39) . $data['value'] . chr(39);
                } // END - if
 
                // Replacer is ready
                $replacer .= ') . {DQUOTE}';
                } // END - if
 
                // Replacer is ready
                $replacer .= ') . {DQUOTE}';
-       } else {
-               // Log missing function
-               logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callback . ' does not exist.');
        }
 
        // Replace the code
        }
 
        // Replace the code
@@ -341,5 +351,43 @@ function doExpressionPost ($data) {
        return $code;
 }
 
        return $code;
 }
 
+// Expression call-back for session data
+function doExpressionSession ($data) {
+       // Construct the replacer
+       $replacer = '{%pipe,getSession=' . $data['value'] . '%}';
+
+       // Debug message
+       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $data['value'] . ',replacer=' . $replacer);
+
+       // Replace the code
+       $code = replaceExpressionCode($data, $replacer);
+
+       // Return the (maybe) replaced code
+       return $code;
+}
+
+/**
+ * Expression call-back for session piplining, this means:
+ *
+ * 1) Read session data
+ * 2) Wrap the raw data into {%pipe,fooFunction=$rawValue%}
+ */
+function doExpressionSessionPipe ($data) {
+       // Get the session data
+       $rawValue = getSession($data['value']);
+
+       // Construct the replacer
+       $replacer = '{%pipe,' . $data['callback'] . '=' . $rawValue . '%}';
+
+       // Debug message
+       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $data['value'] . ',rawValue=' . $rawValue . ',replacer=' . $replacer);
+
+       // Replace the code
+       $code = replaceExpressionCode($data, $replacer);
+
+       // Return the (maybe) replaced code
+       return $code;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 7e65fe9c0d8ce6cac7a88d719084438f5851ae44..3ac6e884603d8550f7edb6564cd55d3ca58f8d49 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,12 +42,12 @@ if (!defined('__SECURITY')) {
 
 // Load the extension and maybe found language and function files.
 function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $dry_run = false) {
 
 // Load the extension and maybe found language and function files.
 function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $dry_run = false) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_mode=' . $ext_mode . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_mode=' . $ext_mode . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ' - ENTERED!');
        // Loading an extension in same mode, but not test/update, twice is not
        // good, so is the extension $ext_name already loaded in mode $ext_mode?
        if ((isset($GLOBALS['loaded_extension'][$ext_name][$ext_mode])) && (!in_array($ext_mode, array('update', 'test')))) {
                // If this happens twice, we need the bug report from you, except for updates/tests
        // Loading an extension in same mode, but not test/update, twice is not
        // good, so is the extension $ext_name already loaded in mode $ext_mode?
        if ((isset($GLOBALS['loaded_extension'][$ext_name][$ext_mode])) && (!in_array($ext_mode, array('update', 'test')))) {
                // If this happens twice, we need the bug report from you, except for updates/tests
-               debug_report_bug(__FUNCTION__, __LINE__, __FUNCTION__ . '() is called twice: ext_name=' . $ext_name . ', ext_mode='. $ext_mode . ',ext_sqls=' . print_r(getExtensionSqls(), true) . ', ext_register_running=' . print_r($GLOBALS['ext_register_running'], true) . ', ext_running_updates=' . print_r($GLOBALS['ext_running_updates'], true));
+               reportBug(__FUNCTION__, __LINE__, __FUNCTION__ . '() is called twice: ext_name=' . $ext_name . ', ext_mode='. $ext_mode . ',ext_sqls=' . print_r(getExtensionSqls(), true) . ', ext_register_running=' . print_r($GLOBALS['ext_register_running'], true) . ', ext_running_updates=' . print_r($GLOBALS['ext_running_updates'], true));
        } // END - if
 
        // Make sure this situation can only happen once
        } // END - if
 
        // Make sure this situation can only happen once
@@ -78,7 +78,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $dry_run = fal
                // In all but test-mode we need these messages to debug! Please report all (together, e.g.)
                if (($ext_mode != 'test') && (getCurrentExtensionVersion() == '0.0.0')) {
                        // Abort here, this must now always be set!
                // In all but test-mode we need these messages to debug! Please report all (together, e.g.)
                if (($ext_mode != 'test') && (getCurrentExtensionVersion() == '0.0.0')) {
                        // Abort here, this must now always be set!
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Extension version is empty, setting to 0.0. ext_name=' . $ext_name . ', ext_mode=' . $ext_mode . ', dry_run=' . intval($dry_run));
+                       reportBug(__FUNCTION__, __LINE__, 'Extension version is empty, setting to 0.0. ext_name=' . $ext_name . ', ext_mode=' . $ext_mode . ', dry_run=' . intval($dry_run));
                } // END - if
        }
 
                } // END - if
        }
 
@@ -98,7 +98,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $dry_run = fal
        initExtensionSqls();
 
        // Is the extension already loaded?
        initExtensionSqls();
 
        // Is the extension already loaded?
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Loading extension ' . $ext_name . ', mode=' . getExtensionMode() . ', ver=' . getCurrentExtensionVersion());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Loading extension ' . $ext_name . ', getExtensionMode()=' . getExtensionMode() . ', getCurrentExtensionVersion()=' . getCurrentExtensionVersion());
        if ((isExtensionLoaded($ext_name)) && (getExtensionMode() == 'init')) {
                // Debug message
                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension %s already loaded.", $ext_name));
        if ((isExtensionLoaded($ext_name)) && (getExtensionMode() == 'init')) {
                // Debug message
                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension %s already loaded.", $ext_name));
@@ -110,7 +110,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $dry_run = fal
        // Is the extension file NOT there?
        if (!isExtensionNameValid($ext_name)) {
                // Debug message
        // Is the extension file NOT there?
        if (!isExtensionNameValid($ext_name)) {
                // Debug message
-               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension %s not found or not readable.", $ext_name));
+               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension %s not found or not readable or the PHP script is deprecated.", $ext_name));
 
                // Abort here
                return false;
 
                // Abort here
                return false;
@@ -179,7 +179,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $dry_run = fal
 // Registers an extension and possible update dependencies
 function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates = false) {
        // Set current extension name
 // Registers an extension and possible update dependencies
 function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates = false) {
        // Set current extension name
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',task_id=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - ENTERED!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',task_id=' . intval($taskId) . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - ENTERED!');
        setCurrentExtensionName($ext_name);
 
        // Enable dry-run
        setCurrentExtensionName($ext_name);
 
        // Enable dry-run
@@ -189,8 +189,9 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates
        enableExtensionProductive();
 
        // This shall never do a non-admin user or if the extension is active (already installed)
        enableExtensionProductive();
 
        // This shall never do a non-admin user or if the extension is active (already installed)
-       if ((!isAdmin()) || (isExtensionInstalled($ext_name))) {
+       if (((!isAdmin()) && (!isInstallationPhase())) || (isExtensionInstalled($ext_name))) {
                // Abort here with 'false'
                // Abort here with 'false'
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - ABORTED: isAdmin()=' . intval(isAdmin()) . ',isInstallationPhase()=' . intval(isInstallationPhase()) . ',isExtensionInstalled()=' . intval(isExtensionInstalled($ext_name)));
                return false;
        } // END - if
 
                return false;
        } // END - if
 
@@ -198,7 +199,7 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates
        if ((isExtensionRegistrationRunning($ext_name)) || ((isExtensionUpdateRunning($ext_name)) && ($ignoreUpdates === false))) {
                // Then abort here with 'true' becaus it is fine
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates));
        if ((isExtensionRegistrationRunning($ext_name)) || ((isExtensionUpdateRunning($ext_name)) && ($ignoreUpdates === false))) {
                // Then abort here with 'true' becaus it is fine
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates));
-               ///* BUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!');
+               //* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',taskId=' . $taskId . ',dry_run=' . intval($dry_run) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!');
                return true;
        } // END - if
 
                return true;
        } // END - if
 
@@ -212,7 +213,7 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates
        } // END - if
 
        // Is the task id zero? Then we need to auto-fix it here
        } // END - if
 
        // Is the task id zero? Then we need to auto-fix it here
-       if ($taskId == '0') {
+       if (($taskId == '0') && (!isInstallationPhase())) {
                // Try to find the task
                $taskId = determineExtensionTaskId(getCurrentExtensionName());
 
                // Try to find the task
                $taskId = determineExtensionTaskId(getCurrentExtensionName());
 
@@ -224,7 +225,7 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates
                        // Is it still zero?
                        if ($taskId == '0') {
                                // Then request a bug report
                        // Is it still zero?
                        if ($taskId == '0') {
                                // Then request a bug report
-                               debug_report_bug(__FUNCTION__, __LINE__, sprintf("%s: task_id is still zero after determineExtensionTaskId(%s)",
+                               reportBug(__FUNCTION__, __LINE__, sprintf("%s: task_id is still zero after determineExtensionTaskId(%s)",
                                        __FUNCTION__,
                                        getCurrentExtensionName()
                                ));
                                        __FUNCTION__,
                                        getCurrentExtensionName()
                                ));
@@ -245,7 +246,7 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates
        enableExtensionReportingFailure();
 
        // Does this extension exists?
        enableExtensionReportingFailure();
 
        // Does this extension exists?
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ' - CALLING loadExtension() ...');
        if (loadExtension(getCurrentExtensionName(), 'register', '0.0.0', isExtensionDryRun())) {
                // Set current extension name again
                setCurrentExtensionName($ext_name);
        if (loadExtension(getCurrentExtensionName(), 'register', '0.0.0', isExtensionDryRun())) {
                // Set current extension name again
                setCurrentExtensionName($ext_name);
@@ -284,12 +285,14 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates
                                } // END - if
 
                                // Extension version set? If empty the extension is not registered
                                } // END - if
 
                                // Extension version set? If empty the extension is not registered
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_ver[' . gettype($ext_ver) . ']=' . $ext_ver . ',isInstallationPhase()=' . intval(isInstallationPhase()) . ',currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ' - EMPTY?');
                                if (empty($ext_ver)) {
                                        // Extension not registered so far so first load task's id...
                                        $taskId = determineExtensionTaskId($ext_update);
 
                                        // Entry found?
                                if (empty($ext_ver)) {
                                        // Extension not registered so far so first load task's id...
                                        $taskId = determineExtensionTaskId($ext_update);
 
                                        // Entry found?
-                                       if ($taskId > 0) {
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'taskId=' . $taskId . ',isInstallationPhase()=' . intval(isInstallationPhase()) . ',currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ' - CHECKING!');
+                                       if (($taskId > 0) || (isInstallationPhase())) {
                                                // Try to register the extension
                                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ',taskId=' . $taskId . ',isExtensionDryRun()=' . isExtensionDryRun());
                                                $processResult = registerExtension($ext_update, $taskId, isExtensionDryRun(), true);
                                                // Try to register the extension
                                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ',taskId=' . $taskId . ',isExtensionDryRun()=' . isExtensionDryRun());
                                                $processResult = registerExtension($ext_update, $taskId, isExtensionDryRun(), true);
@@ -414,16 +417,27 @@ function registerExtension ($ext_name, $taskId, $dry_run = false, $ignoreUpdates
                        array(bigintval($taskId)), __FUNCTION__, __LINE__);
        }
 
                        array(bigintval($taskId)), __FUNCTION__, __LINE__);
        }
 
+       // @TODO This redirect is still needed to register sql_patches! Please try to avoid it
+       if (($ret === true) && ($dry_run === false) && ($ext_name == 'sql_patches') && (!isInstallationPhase())) {
+               /*
+                * This is a really dirty hack to prevent an error about a missing
+                * configuration entry which should be there after registration of
+                * ext-sql_patches.
+                */
+               redirectToRequestUri();
+       } // END - if
+
        // Return status code
        // Return status code
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',processResult=' . intval($processResult) . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',currName=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',processResult=' . intval($processResult) . ',ret=' . intval($ret) . ' - EXIT!');
        return $ret;
 }
 
 // Run SQL queries for given extension id
 // @TODO Change from ext_id to ext_name (not just even the variable! ;-) )
 function doExtensionSqls ($ext_id, $load_mode) {
        return $ret;
 }
 
 // Run SQL queries for given extension id
 // @TODO Change from ext_id to ext_name (not just even the variable! ;-) )
 function doExtensionSqls ($ext_id, $load_mode) {
-       // This shall never do a non-admin user!
-       if (!isAdmin()) {
+       // This shall never do a non-admin user but installation phase is okay
+       if ((!isAdmin()) && (!isInstallationPhase())) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_id=' . $ext_id. ',load_mode=' . $load_mode . ',isAdmin()=' . intval(isAdmin()) . ',isInstallationPhase()=' . intval(isInstallationPhase()) . ' - ABORT!');
                return false;
        } // END - if
 
                return false;
        } // END - if
 
@@ -466,7 +480,7 @@ function doExtensionSqls ($ext_id, $load_mode) {
        runFilterChain('extension_' . $load_mode);
 
        // Remove cache file(s) if extension is active
        runFilterChain('extension_' . $load_mode);
 
        // Remove cache file(s) if extension is active
-       if (((isExtensionActive('cache')) && ((!SQL_HASZEROAFFECTED())) || ($sqlRan === true) || ($load_mode == 'activate') || ($load_mode == 'deactivate'))) {
+       if (((isExtensionActive('cache')) && ((!SQL_HASZEROAFFECTED()) || ($sqlRan === true) || ($load_mode == 'activate') || ($load_mode == 'deactivate')))) {
                // Run filters
                runFilterChain('post_extension_run_sql', getCurrentExtensionName());
        } // END - if
                // Run filters
                runFilterChain('post_extension_run_sql', getCurrentExtensionName());
        } // END - if
@@ -480,13 +494,13 @@ function doExtensionSqls ($ext_id, $load_mode) {
        } // END - if
 }
 
        } // END - if
 }
 
-// Check wether the given extension is installed
+// Check whether the given extension is installed
 function isExtensionInstalled ($ext_name) {
        // We don't like empty extension names here
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - ENTERED!');
        if (empty($ext_name)) {
                // Please fix them all
 function isExtensionInstalled ($ext_name) {
        // We don't like empty extension names here
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - ENTERED!');
        if (empty($ext_name)) {
                // Please fix them all
-               debug_report_bug(__FUNCTION__, __LINE__, 'ext_name is empty.');
+               reportBug(__FUNCTION__, __LINE__, 'ext_name is empty.');
        } // END - if
 
        // By default non is installed
        } // END - if
 
        // By default non is installed
@@ -504,9 +518,9 @@ function isExtensionInstalled ($ext_name) {
 
                // Count cache hits
                incrementStatsEntry('cache_hits');
 
                // Count cache hits
                incrementStatsEntry('cache_hits');
-       } elseif ((isInstallationPhase())) {
+       } elseif (isInstallationPhase()) {
                // Extensions are all inactive/not installed during installation
                // Extensions are all inactive/not installed during installation
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - installion phase');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - installation phase detected.');
        } else {
                // Look in database
                $ext_id = getExtensionId($ext_name);
        } else {
                // Look in database
                $ext_id = getExtensionId($ext_name);
@@ -536,12 +550,14 @@ function isExtensionInstalled ($ext_name) {
 function isExtensionActive ($ext_name) {
        if (isInstallationPhase()) {
                // Extensions are all inactive during installation
 function isExtensionActive ($ext_name) {
        if (isInstallationPhase()) {
                // Extensions are all inactive during installation
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Extensions are always inactive while installation phase. ext_name=' . $ext_name);
                return false;
        } elseif (empty($ext_name)) {
                // Empty extension names must befixed
                return false;
        } elseif (empty($ext_name)) {
                // Empty extension names must befixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Empty extension name provided.');
+               reportBug(__FUNCTION__, __LINE__, 'Empty extension name provided.');
        } elseif (!isExtensionInstalled($ext_name)) {
                // Not installed extensions are always inactive
        } elseif (!isExtensionInstalled($ext_name)) {
                // Not installed extensions are always inactive
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not installed extensions are always inactive. ext_name=' . $ext_name);
                return false;
        }
 
                return false;
        }
 
@@ -558,7 +574,7 @@ function isExtensionActive ($ext_name) {
                incrementStatsEntry('cache_hits');
        } elseif (isExtensionLoaded($ext_name)) {
                // @TODO Extension is loaded, what next?
                incrementStatsEntry('cache_hits');
        } elseif (isExtensionLoaded($ext_name)) {
                // @TODO Extension is loaded, what next?
-               debug_report_bug(__FUNCTION__, __LINE__, 'LOADED:' . $ext_name);
+               reportBug(__FUNCTION__, __LINE__, 'LOADED:' . $ext_name);
        } elseif (($ext_name == 'cache') || (!isExtensionInstalled('cache'))) {
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DB! ext_name=' . $ext_name);
                // Load from database
        } elseif (($ext_name == 'cache') || (!isExtensionInstalled('cache'))) {
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DB! ext_name=' . $ext_name);
                // Load from database
@@ -599,11 +615,12 @@ function getExtensionVersion ($ext_name, $force = false) {
        // Empty extension name should be fixed!
        if (empty($ext_name)) {
                // Please report this bug!
        // Empty extension name should be fixed!
        if (empty($ext_name)) {
                // Please report this bug!
-               debug_report_bug(__FUNCTION__, __LINE__, 'ext_name is empty which is not allowed here.');
+               reportBug(__FUNCTION__, __LINE__, 'ext_name is empty which is not allowed here.');
        } // END - if
 
        // Extensions are all inactive during installation
        if (isInstallationPhase()) {
        } // END - if
 
        // Extensions are all inactive during installation
        if (isInstallationPhase()) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',force=' . intval($force) . ' - Installation phase detected, returning empty version.');
                return '';
        } // END - if
 
                return '';
        } // END - if
 
@@ -641,7 +658,7 @@ function getExtensionVersion ($ext_name, $force = false) {
        // Extension version should not be invalid
        if (($data['ext_version'] == 'false') && ($force === false)) {
                // Please report this trouble
        // Extension version should not be invalid
        if (($data['ext_version'] == 'false') && ($force === false)) {
                // Please report this trouble
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("Extension <span class=\"data\">%s</span> has empty version!", $ext_name));
+               reportBug(__FUNCTION__, __LINE__, sprintf("Extension <span class=\"data\">%s</span> has empty version!", $ext_name));
        } // END - if
 
        // Return result
        } // END - if
 
        // Return result
@@ -655,7 +672,7 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false, $ignoreDependen
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!');
        if ((!isAdmin()) || (empty($ext_name))) {
                // Called as non-admin or empty extension
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',ext_ver=' . $ext_ver . ',dry_run=' . intval($dry_run) . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!');
        if ((!isAdmin()) || (empty($ext_name))) {
                // Called as non-admin or empty extension
-               debug_report_bug(__FUNCTION__, __LINE__, 'Called as non-admin (isAdmin()=' . intval(isAdmin()) . '), or empty extension name. ext_name=' . $ext_name);
+               reportBug(__FUNCTION__, __LINE__, 'Called as non-admin (isAdmin()=' . intval(isAdmin()) . '), or empty extension name. ext_name=' . $ext_name);
        } // END - if
 
        // Set current SQL name
        } // END - if
 
        // Set current SQL name
@@ -665,7 +682,7 @@ function updateExtension ($ext_name, $ext_ver, $dry_run = false, $ignoreDependen
        if ((isExtensionUpdateRunning($ext_name, $ignoreDependencies)) && ($dry_run === false)) {
                // This is fine but needs logging ATM
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, all fine.');
        if ((isExtensionUpdateRunning($ext_name, $ignoreDependencies)) && ($dry_run === false)) {
                // This is fine but needs logging ATM
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, all fine.');
-               ///* BUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, please investigate!');
+               //* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in update phase, please investigate!');
                return true;
        } // END - if
 
                return true;
        } // END - if
 
@@ -766,7 +783,7 @@ function addExtensionVerboseSqlTable ($title = '{--ADMIN_SQLS_EXECUTED_ON_REMOVA
        // Empty title?
        if (empty($title)) {
                // Then abort here
        // Empty title?
        if (empty($title)) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'title is empty.');
+               reportBug(__FUNCTION__, __LINE__, 'title is empty.');
        } // END - if
 
        // Init variables
        } // END - if
 
        // Init variables
@@ -790,7 +807,7 @@ function addExtensionVerboseSqlTable ($title = '{--ADMIN_SQLS_EXECUTED_ON_REMOVA
                                                // Prepare output for template
                                                $content = array(
                                                        'i'   => ($idx + 1),
                                                // Prepare output for template
                                                $content = array(
                                                        'i'   => ($idx + 1),
-                                                       'sql' => str_replace('{', '&#123;', str_replace('}', '&#125;', encodeEntities($sql)))
+                                                       'sql' => str_replace(array('{', '}'), array('&#123;', '&#125;'), encodeEntities($sql))
                                                );
 
                                                // Load row template
                                                );
 
                                                // Load row template
@@ -812,7 +829,7 @@ function addExtensionVerboseSqlTable ($title = '{--ADMIN_SQLS_EXECUTED_ON_REMOVA
                        $OUT = loadTemplate('admin_extension_sql_table', true, $content);
                } else {
                        // No addional SQL commands to run
                        $OUT = loadTemplate('admin_extension_sql_table', true, $content);
                } else {
                        // No addional SQL commands to run
-                       $OUT = displayMessage('{--ADMIN_NO_ADDITIONAL_SQLS--}', true);
+                       $OUT = displayMessage('{--ADMIN_EXTENSION_VERBOSE_SQLS_404--}', true);
                }
        } // END - if
 
                }
        } // END - if
 
@@ -850,7 +867,7 @@ function getExtensionName ($ext_id) {
        // Did we find some extension?
        if (empty($data['ext_name'])) {
                // We should fix these all!
        // Did we find some extension?
        if (empty($data['ext_name'])) {
                // We should fix these all!
-               debug_report_bug(__FUNCTION__, __LINE__, 'ext_name is empty. ext_id=' . $ext_id);
+               reportBug(__FUNCTION__, __LINE__, 'ext_name is empty. ext_id=' . $ext_id);
        } // END - if
 
        // Return the extension name
        } // END - if
 
        // Return the extension name
@@ -891,7 +908,7 @@ function getExtensionId ($ext_name) {
        return $data['ext_id'];
 }
 
        return $data['ext_id'];
 }
 
-// Determines wether the given extension name is valid
+// Determines whether the given extension name is valid
 function isExtensionNameValid ($ext_name) {
        // Do we have cache?
        if (!isset($GLOBALS['ext_name_valid'][$ext_name])) {
 function isExtensionNameValid ($ext_name) {
        // Do we have cache?
        if (!isset($GLOBALS['ext_name_valid'][$ext_name])) {
@@ -906,7 +923,7 @@ function isExtensionNameValid ($ext_name) {
        return $GLOBALS['ext_name_valid'][$ext_name];
 }
 
        return $GLOBALS['ext_name_valid'][$ext_name];
 }
 
-// Determines wether the given extension id is valid
+// Determines whether the given extension id is valid
 function isExtensionIdValid ($ext_id) {
        // Default is nothing valid
        $isValid = false;
 function isExtensionIdValid ($ext_id) {
        // Default is nothing valid
        $isValid = false;
@@ -932,7 +949,7 @@ function doActivateExtension ($ext_name) {
        // Is the extension installed?
        if (!isExtensionInstalled($ext_name)) {
                // Non-installed extensions cannot be activated
        // Is the extension installed?
        if (!isExtensionInstalled($ext_name)) {
                // Non-installed extensions cannot be activated
-               debug_report_bug(__FUNCTION__, __LINE__, 'Tried to activate non-installed extension ' . $ext_name);
+               reportBug(__FUNCTION__, __LINE__, 'Tried to activate non-installed extension ' . $ext_name);
        } // END - if
 
        // Activate the extension
        } // END - if
 
        // Activate the extension
@@ -948,7 +965,7 @@ function doDeactivateExtension ($ext_name) {
        // Is the extension installed?
        if (!isExtensionInstalled($ext_name)) {
                // Non-installed extensions cannot be activated
        // Is the extension installed?
        if (!isExtensionInstalled($ext_name)) {
                // Non-installed extensions cannot be activated
-               debug_report_bug(__FUNCTION__, __LINE__, 'Tried to deactivate non-installed extension ' . $ext_name . ',getExtensionMode()=' . getExtensionMode());
+               reportBug(__FUNCTION__, __LINE__, 'Tried to deactivate non-installed extension ' . $ext_name . ',getExtensionMode()=' . getExtensionMode());
        } // END - if
 
        // Activate the extension
        } // END - if
 
        // Activate the extension
@@ -972,7 +989,7 @@ function doDeactivateExtension ($ext_name) {
        );
 }
 
        );
 }
 
-// Checks wether the extension is older than given
+// Checks whether the extension is older than given
 function isExtensionOlder ($ext_name, $ext_ver) {
        // Get current extension version
        $currVersion = getExtensionVersion($ext_name);
 function isExtensionOlder ($ext_name, $ext_ver) {
        // Get current extension version
        $currVersion = getExtensionVersion($ext_name);
@@ -1002,7 +1019,7 @@ function createExtensionUpdateTask ($adminId, $ext_name, $ext_ver, $notes) {
                } // END - if
        } else {
                // Extension not there! :-(
                } // END - if
        } else {
                // Extension not there! :-(
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("Extension <span class=\"data\">%s</span> not found but should be updated?", $ext_name));
+               reportBug(__FUNCTION__, __LINE__, sprintf("Extension <span class=\"data\">%s</span> not found but should be updated?", $ext_name));
        }
 
        // Return task id
        }
 
        // Return task id
@@ -1187,7 +1204,7 @@ function addExtensionCssFile ($file) {
        } // END - if
 
        // Add the entry
        } // END - if
 
        // Add the entry
-       $GLOBALS['css_files'][] = $file;
+       array_push($GLOBALS['css_files'], $file);
 }
 
 // Setter for EXT_ALWAYS_ACTIVE flag
 }
 
 // Setter for EXT_ALWAYS_ACTIVE flag
@@ -1200,7 +1217,7 @@ function getThisExtensionAlwaysActive () {
        return $GLOBALS['ext_always_active'][getCurrentExtensionName()];
 }
 
        return $GLOBALS['ext_always_active'][getCurrentExtensionName()];
 }
 
-// Checks wether the current extension is always active
+// Checks whether the current extension is always active
 function isThisExtensionAlwaysActive () {
        return (getThisExtensionAlwaysActive() == 'Y');
 }
 function isThisExtensionAlwaysActive () {
        return (getThisExtensionAlwaysActive() == 'Y');
 }
@@ -1221,8 +1238,18 @@ function setExtensionDeprecated ($deprecated) {
 }
 
 // Getter for EXT_DEPRECATED flag
 }
 
 // Getter for EXT_DEPRECATED flag
-function isExtensionDeprecated () {
-       return ($GLOBALS['ext_deprecated'][getCurrentExtensionName()] == 'Y');
+function isExtensionDeprecated ($ext_name = NULL) {
+       // Default is from current (NULL) extension
+       $isDeprecated = ($GLOBALS['ext_deprecated'][getCurrentExtensionName()] == 'Y');
+
+       // Is ext_name set?
+       if (!is_null($ext_name)) {
+               // Then use it instead
+               $isDeprecated = ((isset($GLOBALS['ext_deprecated'][$ext_name])) && ($GLOBALS['ext_deprecated'][$ext_name] == 'Y'));
+       } // END - if
+
+       // Return it
+       return $isDeprecated;
 }
 
 // Setter for EXT_UPDATE_DEPENDS flag
 }
 
 // Setter for EXT_UPDATE_DEPENDS flag
@@ -1231,7 +1258,7 @@ function addExtensionDependency ($updateDepends) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . '/' . $updateDepends . ',extensionMode=' . getExtensionMode() . ' - ENTERED!');
        if (empty($updateDepends)) {
                // Please report this bug!
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . '/' . $updateDepends . ',extensionMode=' . getExtensionMode() . ' - ENTERED!');
        if (empty($updateDepends)) {
                // Please report this bug!
-               debug_report_bug(__FUNCTION__, __LINE__, 'updateDepends is empty: currentExtension=' . getCurrentExtensionName());
+               reportBug(__FUNCTION__, __LINE__, 'updateDepends is empty: currentExtension=' . getCurrentExtensionName());
        } // END - if
 
        // Is it not yet added?
        } // END - if
 
        // Is it not yet added?
@@ -1245,10 +1272,10 @@ function addExtensionDependency ($updateDepends) {
        } // END - if
 
        // Add it to the list of extension update depencies map
        } // END - if
 
        // Add it to the list of extension update depencies map
-       $GLOBALS['ext_update_depends'][getCurrentExtensionName()][] = (string) $updateDepends;
+       array_push($GLOBALS['ext_update_depends'][getCurrentExtensionName()], $updateDepends);
 
        // Remember it in the list of running updates
 
        // Remember it in the list of running updates
-       $GLOBALS['ext_running_updates'][getCurrentExtensionName()][] = $updateDepends;
+       array_push($GLOBALS['ext_running_updates'][getCurrentExtensionName()], $updateDepends);
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . '/' . $updateDepends . ',extensionMode=' . getExtensionMode() . ' - EXIT!');
 }
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . '/' . $updateDepends . ',extensionMode=' . getExtensionMode() . ' - EXIT!');
 }
 
@@ -1257,7 +1284,7 @@ function getExtensionUpdatesRunning () {
        return $GLOBALS['ext_running_updates'][getCurrentExtensionName()];
 }
 
        return $GLOBALS['ext_running_updates'][getCurrentExtensionName()];
 }
 
-// Checks wether the given extension registration is in progress
+// Checks whether the given extension registration is in progress
 function isExtensionRegistrationRunning ($ext_name) {
        // Simply check it
        $isRunning = ((isset($GLOBALS['ext_register_running'])) && (in_array($ext_name, $GLOBALS['ext_register_running'])));
 function isExtensionRegistrationRunning ($ext_name) {
        // Simply check it
        $isRunning = ((isset($GLOBALS['ext_register_running'])) && (in_array($ext_name, $GLOBALS['ext_register_running'])));
@@ -1274,7 +1301,7 @@ function initExtensionUpdateDependencies () {
        // Init update depency map automatically if not found
        if (isExtensionUpdateDependenciesInitialized()) {
                // We need these bug reports as well...
        // Init update depency map automatically if not found
        if (isExtensionUpdateDependenciesInitialized()) {
                // We need these bug reports as well...
-               debug_report_bug(__FUNCTION__, __LINE__, '() is called twice: currName=' . getCurrentExtensionName());
+               reportBug(__FUNCTION__, __LINE__, '() is called twice: currName=' . getCurrentExtensionName());
        } // END - if
 
        $GLOBALS['ext_update_depends'][getCurrentExtensionName()] = array();
        } // END - if
 
        $GLOBALS['ext_update_depends'][getCurrentExtensionName()] = array();
@@ -1291,21 +1318,21 @@ function addExtensionRunningRegistration ($ext_name) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Registration in progress: ext_name=' . $ext_name . ' - ENTERED!');
        if (isExtensionRegistrationRunning($ext_name)) {
                // This is really bad and should not be quietly ignored
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Registration in progress: ext_name=' . $ext_name . ' - ENTERED!');
        if (isExtensionRegistrationRunning($ext_name)) {
                // This is really bad and should not be quietly ignored
-               debug_report_bug(__FUNCTION__, __LINE__, '() already called! ext_name=' . $ext_name);
+               reportBug(__FUNCTION__, __LINE__, '() already called! ext_name=' . $ext_name);
        } // END - if
 
        // Then add it!
        } // END - if
 
        // Then add it!
-       $GLOBALS['ext_register_running'][] = $ext_name;
+       array_push($GLOBALS['ext_register_running'], $ext_name);
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Registration in progress: ext_name=' . $ext_name . ' - EXIT!');
 }
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Registration in progress: ext_name=' . $ext_name . ' - EXIT!');
 }
 
-// Checks wether EXT_UPDATE_DEPENDS is initialized
+// Checks whether EXT_UPDATE_DEPENDS is initialized
 function isExtensionUpdateDependenciesInitialized () {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
        return (isset($GLOBALS['ext_update_depends'][getCurrentExtensionName()]));
 }
 
 function isExtensionUpdateDependenciesInitialized () {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
        return (isset($GLOBALS['ext_update_depends'][getCurrentExtensionName()]));
 }
 
-// Checks wether an update is already running for given extension
+// Checks whether an update is already running for given extension
 function isExtensionUpdateRunning ($ext_name, $ignoreDependencies = false) {
        // Current and given extensions means whole array
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!');
 function isExtensionUpdateRunning ($ext_name, $ignoreDependencies = false) {
        // Current and given extensions means whole array
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentExtension=' . getCurrentExtensionName() . ',ext_name=' . $ext_name . ',ignoreDependencies=' . intval($ignoreDependencies) . ' - ENTERED!');
@@ -1361,7 +1388,7 @@ function getExtensionUpdateDependenciesIterator () {
 
 // Counter for extension update depencies
 function countExtensionUpdateDependencies () {
 
 // Counter for extension update depencies
 function countExtensionUpdateDependencies () {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . '=' . count($GLOBALS['ext_update_depends'][getCurrentExtensionName()]));
        return count($GLOBALS['ext_update_depends'][getCurrentExtensionName()]);
 }
 
        return count($GLOBALS['ext_update_depends'][getCurrentExtensionName()]);
 }
 
@@ -1370,6 +1397,9 @@ function removeExtensionDependency ($ext_name) {
        // Look it up
        $key = array_search($ext_name, getExtensionUpdateDependencies());
 
        // Look it up
        $key = array_search($ext_name, getExtensionUpdateDependencies());
 
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',key[' . gettype($key) . ']=' . $key);
+
        // Is it valid?
        if ($key !== false) {
                // Then remove it
        // Is it valid?
        if ($key !== false) {
                // Then remove it
@@ -1389,10 +1419,13 @@ function initExtensionUpdateIterator () {
 // Getter for depency iterator
 function getExtensionUpdateIterator () {
        // Auto-init iterator
 // Getter for depency iterator
 function getExtensionUpdateIterator () {
        // Auto-init iterator
-       if (!isset($GLOBALS['ext_depend_iterator'][getCurrentExtensionName()])) initExtensionUpdateIterator();
+       if (!isset($GLOBALS['ext_depend_iterator'][getCurrentExtensionName()])) {
+               // Initialize update iterator
+               initExtensionUpdateIterator();
+       } // END - if
 
        // Return it
 
        // Return it
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName().'/'.$GLOBALS['ext_depend_iterator'][getCurrentExtensionName()]);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . '=' . $GLOBALS['ext_depend_iterator'][getCurrentExtensionName()]);
        return $GLOBALS['ext_depend_iterator'][getCurrentExtensionName()];
 }
 
        return $GLOBALS['ext_depend_iterator'][getCurrentExtensionName()];
 }
 
@@ -1419,13 +1452,20 @@ function setExtensionVersionHistory ($versionHistory) {
 
 // Getter for EXT_VER_HISTORY array
 function getExtensionVersionHistory () {
 
 // Getter for EXT_VER_HISTORY array
 function getExtensionVersionHistory () {
+       // Is it set?
+       if (!isset($GLOBALS['ext_ver_history'][getCurrentExtensionName()])) {
+               // Then abort here to a avoid an ugly "Undefined index" error
+               reportBug(__FUNCTION__, __LINE__, 'Extension ext-' . getCurrentExtensionName() . ' has no history set! Is this extension empty?');
+       } // END - if
+
+       // Return the history
        return $GLOBALS['ext_ver_history'][getCurrentExtensionName()];
 }
 
 // Setter for EXT_UPDATE_NOTICES
 function setExtensionUpdateNotes ($updateNotes, $ext_ver = '') {
        //
        return $GLOBALS['ext_ver_history'][getCurrentExtensionName()];
 }
 
 // Setter for EXT_UPDATE_NOTICES
 function setExtensionUpdateNotes ($updateNotes, $ext_ver = '') {
        //
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName() . ',getExtensionMode()=' . getExtensionMode() . ',ext_ver=' . $ext_ver . '/' . getCurrentExtensionVersion() . ',updateNotes()=' . strlen($updateNotes));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName() . ',getExtensionMode()=' . getExtensionMode() . ',ext_ver=' . $ext_ver . '/' . getCurrentExtensionVersion() . ',updateNotes(length)=' . strlen($updateNotes));
        if (empty($ext_ver)) {
                $GLOBALS['ext_update_notes'][getCurrentExtensionName()][getCurrentExtensionVersion()] = (string) $updateNotes;
        } else {
        if (empty($ext_ver)) {
                $GLOBALS['ext_update_notes'][getCurrentExtensionName()][getCurrentExtensionVersion()] = (string) $updateNotes;
        } else {
@@ -1448,7 +1488,7 @@ function initExtensionNotes ($force = false) {
        // Is it already initialized?
        if (($force === false) && (isset($GLOBALS['ext_notes'][getCurrentExtensionName()]))) {
                // This is mostly not wanted, so please report it
        // Is it already initialized?
        if (($force === false) && (isset($GLOBALS['ext_notes'][getCurrentExtensionName()]))) {
                // This is mostly not wanted, so please report it
-               debug_report_bug(__FUNCTION__, __LINE__, 'ext_notes already set for extension ' . getCurrentExtensionName());
+               reportBug(__FUNCTION__, __LINE__, 'ext_notes already set for extension ' . getCurrentExtensionName());
        } // END - if
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName());
        } // END - if
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName());
@@ -1457,7 +1497,7 @@ function initExtensionNotes ($force = false) {
 
 // Append extension notice
 function appendExtensionNotes ($notes) {
 
 // Append extension notice
 function appendExtensionNotes ($notes) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName() . ', notes()=' . strlen($notes));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getCurrentExtensionName()=' . getCurrentExtensionName() . ', notes(length)=' . strlen($notes));
        $GLOBALS['ext_notes'][getCurrentExtensionName()] .= (string) trim($notes);
 }
 
        $GLOBALS['ext_notes'][getCurrentExtensionName()] .= (string) trim($notes);
 }
 
@@ -1475,7 +1515,7 @@ function setCurrentExtensionName ($ext_name) {
 function getCurrentExtensionName () {
        if (!isset($GLOBALS['curr_extension_name'])) {
                // Not set!
 function getCurrentExtensionName () {
        if (!isset($GLOBALS['curr_extension_name'])) {
                // Not set!
-               debug_report_bug(__FUNCTION__, __LINE__, 'curr_extension_name not initialized. Please execute initExtensionSqls() before calling this function.');
+               reportBug(__FUNCTION__, __LINE__, 'curr_extension_name not initialized. Please execute initExtensionSqls() before calling this function.');
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
@@ -1498,7 +1538,7 @@ function initExtensionSqls ($force = false) {
 function addExtensionSql ($sql) {
        // Add it
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',ext_version=' . getCurrentExtensionVersion() . ',sql=' . $sql);
 function addExtensionSql ($sql) {
        // Add it
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . getCurrentExtensionName() . ',ext_version=' . getCurrentExtensionVersion() . ',sql=' . $sql);
-       $GLOBALS['ext_sqls'][getCurrentExtensionName()][getCurrentExtensionVersion()][] = $sql;
+       array_push($GLOBALS['ext_sqls'][getCurrentExtensionName()][getCurrentExtensionVersion()], $sql);
 }
 
 // Getter for SQLs array for current extension
 }
 
 // Getter for SQLs array for current extension
@@ -1506,7 +1546,7 @@ function getExtensionSqls () {
        // Output debug backtrace if not found (SHOULD NOT HAPPEN!)
        if (!isset($GLOBALS['ext_sqls'][getCurrentExtensionName()])) {
                // Not found, should not happen
        // Output debug backtrace if not found (SHOULD NOT HAPPEN!)
        if (!isset($GLOBALS['ext_sqls'][getCurrentExtensionName()])) {
                // Not found, should not happen
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("ext_sqls is empty, current extension: %s",
+               reportBug(__FUNCTION__, __LINE__, sprintf("ext_sqls is empty, current extension: %s",
                        getCurrentExtensionName()
                ));
        } // END - if
                        getCurrentExtensionName()
                ));
        } // END - if
@@ -1520,7 +1560,7 @@ function countExtensionSqls () {
        // Output debug backtrace if not found (SHOULD NOT HAPPEN!)
        if (!isset($GLOBALS['ext_sqls'][getCurrentExtensionName()])) {
                // Not found, should not happen
        // Output debug backtrace if not found (SHOULD NOT HAPPEN!)
        if (!isset($GLOBALS['ext_sqls'][getCurrentExtensionName()])) {
                // Not found, should not happen
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("ext_sqls is empty, current extension: %s",
+               reportBug(__FUNCTION__, __LINE__, sprintf("ext_sqls is empty, current extension: %s",
                        getCurrentExtensionName()
                ));
        } // END - if
                        getCurrentExtensionName()
                ));
        } // END - if
@@ -1543,7 +1583,7 @@ function initExtensionRemovalList () {
        } // END - if
 }
 
        } // END - if
 }
 
-// Checks wether the current extension is on the removal list
+// Checks whether the current extension is on the removal list
 function isExtensionOnRemovalList () {
        // Init removal list
        initExtensionRemovalList();
 function isExtensionOnRemovalList () {
        // Init removal list
        initExtensionRemovalList();
@@ -1555,7 +1595,7 @@ function isExtensionOnRemovalList () {
 // Adds the current extension to the removal list
 function addCurrentExtensionToRemovalList () {
        // Simply add it
 // Adds the current extension to the removal list
 function addCurrentExtensionToRemovalList () {
        // Simply add it
-       $GLOBALS['ext_update_remove'][] = getCurrentExtensionName();
+       array_push($GLOBALS['ext_update_remove'], getCurrentExtensionName());
 }
 
 // Getter for removal list
 }
 
 // Getter for removal list
@@ -1575,8 +1615,11 @@ function redirectOnUninstalledExtension ($ext_name) {
 
 // Filter for initialization of all extensions by loading them in 'init' mode
 function FILTER_INIT_EXTENSIONS () {
 
 // Filter for initialization of all extensions by loading them in 'init' mode
 function FILTER_INIT_EXTENSIONS () {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTERED!');
+       // Init notification pool
+       initIncludePool('notify');
+
        // Do we have some entries?
        // Do we have some entries?
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY!');
        if (isset($GLOBALS['cache_array']['extension']['ext_name'])) {
                // Load all found extensions if found
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHE - START!');
        if (isset($GLOBALS['cache_array']['extension']['ext_name'])) {
                // Load all found extensions if found
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHE - START!');
@@ -1588,6 +1631,10 @@ function FILTER_INIT_EXTENSIONS () {
                } // END - foreach
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHE - END!');
        } // END - if
                } // END - foreach
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'CACHE - END!');
        } // END - if
+
+       // Run any notifications
+       runFilterChain('load_includes', 'notify');
+
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'EXIT!');
 }
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'EXIT!');
 }
 
@@ -1617,7 +1664,7 @@ function setCurrentExtensionVersion ($ext_ver) {
        // ext_ver should never be empty in other modes than 'test'
        if ((empty($ext_ver)) && (getExtensionMode() != 'test')) {
                // Please report all these messages
        // ext_ver should never be empty in other modes than 'test'
        if ((empty($ext_ver)) && (getExtensionMode() != 'test')) {
                // Please report all these messages
-               debug_report_bug(__FUNCTION__, __LINE__, 'ext_ver is empty. Current extension name: ' . getCurrentExtensionName() . ', mode=' . getExtensionMode());
+               reportBug(__FUNCTION__, __LINE__, 'ext_ver is empty. Current extension name: ' . getCurrentExtensionName() . ', mode=' . getExtensionMode());
        } // END - if
 
        // Add version
        } // END - if
 
        // Add version
@@ -1680,7 +1727,7 @@ function getExtensionHasCss () {
        return $GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()];
 }
 
        return $GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()];
 }
 
-// Checks wether the given extension has a language file
+// Checks whether the given extension has a language file
 function ifExtensionHasLanguageFile ($ext_name) {
        // Do we have cache?
        if (isset($GLOBALS['cache_array']['extension']['ext_lang'][$ext_name])) {
 function ifExtensionHasLanguageFile ($ext_name) {
        // Do we have cache?
        if (isset($GLOBALS['cache_array']['extension']['ext_lang'][$ext_name])) {
@@ -1700,7 +1747,7 @@ function loadCurrentExtensionInclude () {
        // Is it readable?
        if (!isExtensionIncludeReadable()) {
                // Not readable
        // Is it readable?
        if (!isExtensionIncludeReadable()) {
                // Not readable
-               debug_report_bug(__FUNCTION__, __LINE__, 'Extension ' . getCurrentExtensionName() . ' should be loaded, but is not readable.');
+               reportBug(__FUNCTION__, __LINE__, 'Extension ' . getCurrentExtensionName() . ' should be loaded, but is not readable.');
        } // END - if
 
        // Generate INC name
        } // END - if
 
        // Generate INC name
@@ -1710,7 +1757,7 @@ function loadCurrentExtensionInclude () {
        loadInclude($INC);
 }
 
        loadInclude($INC);
 }
 
-// Checks wether an extension is readable
+// Checks whether an extension is readable
 function isExtensionIncludeReadable ($ext_name = '') {
        // If empty, use current
        if (empty($ext_name)) {
 function isExtensionIncludeReadable ($ext_name = '') {
        // If empty, use current
        if (empty($ext_name)) {
@@ -1765,10 +1812,10 @@ function addCreateTableSql ($tableName, $sql, $comment) {
 ENGINE = {?_TABLE_TYPE?}
 CHARACTER SET utf8
 COLLATE utf8_general_ci
 ENGINE = {?_TABLE_TYPE?}
 CHARACTER SET utf8
 COLLATE utf8_general_ci
-COMMENT ' . "'" . $comment . "'");
+COMMENT ' . chr(39) . $comment . chr(39));
        } else {
                // Is already there, which should not happen
        } else {
                // Is already there, which should not happen
-               debug_report_bug(__FUNCTION__, __LINE__, 'The table ' . $tableName . ' is already created which should not happen.');
+               reportBug(__FUNCTION__, __LINE__, 'The table ' . $tableName . ' is already created which should not happen.');
        }
 }
 
        }
 }
 
@@ -1928,7 +1975,7 @@ function addConfigDropSql ($columnName) {
                // Found, so add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` DROP `' . $columnName . '`');
        } elseif (isDebugModeEnabled()) {
                // Found, so add it
                addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_config` DROP `' . $columnName . '`');
        } elseif (isDebugModeEnabled()) {
-               // Add debug line, debug_report_bug() would cause some extenion updates fail
+               // Add debug line, reportBug() would cause some extenion updates fail
                logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' not found.');
        }
 }
                logDebugMessage(__FUNCTION__, __LINE__, 'Configuration entry ' . $columnName . ' not found.');
        }
 }
@@ -1950,7 +1997,7 @@ function enableExtensionProductive ($isProductive = true) {
        $GLOBALS['ext_productive'][getCurrentExtensionName()] = (bool) $isProductive;
 }
 
        $GLOBALS['ext_productive'][getCurrentExtensionName()] = (bool) $isProductive;
 }
 
-// Checks wether the extension is in productive phase. If not set, development
+// Checks whether the extension is in productive phase. If not set, development
 // phase (=false) is assumed.
 function isExtensionProductive ($ext_name = '') {
        // Is the extension name empty? Then use current
 // phase (=false) is assumed.
 function isExtensionProductive ($ext_name = '') {
        // Is the extension name empty? Then use current
@@ -1982,7 +2029,7 @@ function markExtensionAsLoaded ($ext_name) {
        // Is it already loaded?
        if (isExtensionLoaded($ext_name)) {
                // Then abort here
        // Is it already loaded?
        if (isExtensionLoaded($ext_name)) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Extension ' . $ext_name . ' is already marked as loaded!');
+               reportBug(__FUNCTION__, __LINE__, 'Extension ' . $ext_name . ' is already marked as loaded!');
        } // END - if
 
        // Mark it
        } // END - if
 
        // Mark it
@@ -1990,7 +2037,7 @@ function markExtensionAsLoaded ($ext_name) {
        $GLOBALS['ext_loaded']['ext_name'][$ext_name] = true;
 }
 
        $GLOBALS['ext_loaded']['ext_name'][$ext_name] = true;
 }
 
-// Determine wether the given extension is already loaded
+// Determine whether the given extension is already loaded
 function isExtensionLoaded ($ext_name) {
        // Is it there?
        return ((isset($GLOBALS['ext_loaded']['ext_name'][$ext_name])) && ($GLOBALS['ext_loaded']['ext_name'][$ext_name] === true));
 function isExtensionLoaded ($ext_name) {
        // Is it there?
        return ((isset($GLOBALS['ext_loaded']['ext_name'][$ext_name])) && ($GLOBALS['ext_loaded']['ext_name'][$ext_name] === true));
@@ -2001,14 +2048,14 @@ function markExtensionLibraryAsLoaded ($ext_name) {
        // Is it already loaded?
        if (isExtensionLibraryLoaded($ext_name)) {
                // Then abort here
        // Is it already loaded?
        if (isExtensionLibraryLoaded($ext_name)) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Extension library ' . $ext_name . ' is already marked as loaded!');
+               reportBug(__FUNCTION__, __LINE__, 'Extension library ' . $ext_name . ' is already marked as loaded!');
        } // END - if
 
        // Mark it
        $GLOBALS['ext_loaded']['library'][$ext_name] = true;
 }
 
        } // END - if
 
        // Mark it
        $GLOBALS['ext_loaded']['library'][$ext_name] = true;
 }
 
-// Determine wether the given extension's library is already loaded
+// Determine whether the given extension's library is already loaded
 function isExtensionLibraryLoaded ($ext_name) {
        // Is it there?
        return ((isset($GLOBALS['ext_loaded']['library'][$ext_name])) && ($GLOBALS['ext_loaded']['library'][$ext_name] === true));
 function isExtensionLibraryLoaded ($ext_name) {
        // Is it there?
        return ((isset($GLOBALS['ext_loaded']['library'][$ext_name])) && ($GLOBALS['ext_loaded']['library'][$ext_name] === true));
index 965a1ed5e2cbaf99ee3a1d1a77ba537b306c1024..6626f11285b00cc34e827d48b429812f9ca6ff09 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,7 +54,7 @@ switch (getExtensionMode()) {
                // SQL commands to run
 
                // Register module
                // SQL commands to run
 
                // Register module
-               //addModuleSql('foo','Y','Y','N','N');
+               //addModuleSql('foo', '{OPEN_TEMPLATE}MODULE_FOO_TITLE{CLOSE_TEMPLATE}','Y','Y','N','N');
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
index 4845b2fcfc47ccb429c19d5bf989472d79baa6d5..6fda7310df2246fc5f96c6b7243b4d8de8fc78d3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -58,7 +58,7 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_active'");
 
                // Unregister filter
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_active'");
 
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'online_extra_links', 'ADD_LINK_ACTIVE_LIST', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'online_extra_links', 'ADD_LINK_ACTIVE_LIST', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -121,7 +121,7 @@ switch (getExtensionMode()) {
                                addExtensionDependency('online');
 
                                // Register filter
                                addExtensionDependency('online');
 
                                // Register filter
-                               registerFilter('online_extra_links', 'ADD_LINK_ACTIVE_LIST', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'online_extra_links', 'ADD_LINK_ACTIVE_LIST', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter f&uuml;r den &quot;Wer ist Online&quot; Block hinzugef&uuml;gt und ist von <strong>online</strong> abh&auml;ngig.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter f&uuml;r den &quot;Wer ist Online&quot; Block hinzugef&uuml;gt und ist von <strong>online</strong> abh&auml;ngig.");
index e07e75766d0272a727cfccb4e5ed1e900e63605e..762ad1eb3988c303d676ab07936559b9a416978d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -65,10 +65,10 @@ switch (getExtensionMode()) {
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` DROP `default_acl`");
 
                // Remove filters
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_admins` DROP `default_acl`");
 
                // Remove filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'sql_admin_extra_data', 'ADD_EXTRA_SQL_DATA', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'do_admin_login_done', 'RESET_ADMINS_LOGIN_FAILURES', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'do_admin_login_pass', 'COUNT_ADMINS_LOGIN_FAILURE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'do_admin_login_done', 'REHASH_ADMINS_PASSWORD', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'sql_admin_extra_data', 'ADD_EXTRA_SQL_DATA', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'do_admin_login_done', 'RESET_ADMINS_LOGIN_FAILURES', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'do_admin_login_pass', 'COUNT_ADMINS_LOGIN_FAILURE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'do_admin_login_done', 'REHASH_ADMINS_PASSWORD', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -295,7 +295,7 @@ INDEX (`admin_id`)",
                                addExtensionDependency('sql_patches');
 
                                // Add filters
                                addExtensionDependency('sql_patches');
 
                                // Add filters
-                               registerFilter('sql_admin_extra_data', 'ADD_EXTRA_SQL_DATA', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'sql_admin_extra_data', 'ADD_EXTRA_SQL_DATA', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt und ist von <strong>sql_patches</strong> abh&auml;ngig.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt und ist von <strong>sql_patches</strong> abh&auml;ngig.");
@@ -321,8 +321,8 @@ INDEX (`admin_id`)",
 
                        case '0.7.4': // SQL queries for v0.7.4
                                // Add filter
 
                        case '0.7.4': // SQL queries for v0.7.4
                                // Add filter
-                               registerFilter('do_admin_login_done', 'RESET_ADMINS_LOGIN_FAILURES', false, true, isExtensionDryRun());
-                               registerFilter('do_admin_login_pass', 'COUNT_ADMINS_LOGIN_FAILURE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'do_admin_login_done', 'RESET_ADMINS_LOGIN_FAILURES', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'do_admin_login_pass', 'COUNT_ADMINS_LOGIN_FAILURE', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugefuegt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugefuegt.");
@@ -330,7 +330,7 @@ INDEX (`admin_id`)",
 
                        case '0.7.5': // SQL queries for v0.7.5
                                // Add filter
 
                        case '0.7.5': // SQL queries for v0.7.5
                                // Add filter
-                               registerFilter('do_admin_login_done', 'REHASH_ADMINS_PASSWORD', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'do_admin_login_done', 'REHASH_ADMINS_PASSWORD', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Rehashen des Adminpassworts nach erfolgtem Login hinzugef&uuml;gt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Rehashen des Adminpassworts nach erfolgtem Login hinzugef&uuml;gt.");
index 1c3034b5d4afcff3313a3b85d2de051ded4b425a..90e21cae95566b8a8c7c2a32019809f7ed9cb86c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 805afa8ec0720cfacd6428d6bb5cc92f516722b7..3607fe7c8ae5cd0a487667d0d82c9f5c7da2b2b3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7747eea3a084bb84878fe9210feef48c0cbc2c32..154ccca50147e63974ee9cdc47cfcab53c8f43d9 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 0dc861c131722a313f1eb2a6d41ee9182d29be17..46eb8354ac73d523dd8d9e211b2292e1d4976848 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -65,6 +65,9 @@ switch (getExtensionMode()) {
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` CHANGE `data_type` `data_type` ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_autopurge','list_autopurge')");
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `ap_notified`");
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_bonus` CHANGE `data_type` `data_type` ENUM('NEW','QUEUE','SEND') NOT NULL DEFAULT 'NEW'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_autopurge','list_autopurge')");
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `ap_notified`");
+
+               // Unregister with points data
+               unregisterExtensionPointsData('autopurge_add');
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -79,7 +82,7 @@ switch (getExtensionMode()) {
 
        case 'update': // Update an extension
                switch (getCurrentExtensionVersion()) {
 
        case 'update': // Update an extension
                switch (getCurrentExtensionVersion()) {
-                       case '0.1.0': // SQL queries for v0.1
+                       case '0.1.0': // SQL queries for v0.1.0
                                // Add dependency to 'user'
                                addExtensionDependency('user');
 
                                // Add dependency to 'user'
                                addExtensionDependency('user');
 
@@ -254,7 +257,8 @@ switch (getExtensionMode()) {
                                break;
 
                        case '0.4.1': // SQL queries for v0.4.1
                                break;
 
                        case '0.4.1': // SQL queries for v0.4.1
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('autopurge_add','points','LOCKED','DIRECT')");
+                               // Register with points data system
+                               registerExtensionPointsData('autopurge_add', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
index 48f52ec0af8c052fa106272dd91af814ae06a409..13c36161b30d14b2fc963b6edcbe57a7d441b969 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 43dc0757cdcc76ba93fe96a74f451e48517f649f..7e9434efdaed3a403c8c2b842341c4b1050691e0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2c61987565f780510f74db7db94f80524032490f..68d1b4395295a79124d01c82c2eb0d1ee10f9e30 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.3.2');
+setThisExtensionVersion('0.3.4');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2'));
+setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -76,12 +76,22 @@ INDEX (`userid`)",
                // SQL commands to run
                addDropTableSql('beg_ips');
                addDropTableSql('beg_referals');
                // SQL commands to run
                addDropTableSql('beg_ips');
                addDropTableSql('beg_referals');
-               addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('config_beg','list_beg','list_beg_referal_urls')");
+               addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN ('config_beg','list_beg','list_beg_referral_urls')");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='beg'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` IN ('beg','beg2')");
 
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='beg'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` IN ('beg','beg2')");
 
+               // Unregister points data
+               unregisterExtensionPointsData('beg');
+               unregisterExtensionPointsData('beg_ref');
+               unregisterExtensionPointsData('monthly_beg');
+               unregisterExtensionPointsData('monthly_beg_ref');
+
                // Unregister module
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='beg' LIMIT 1");
                // Unregister module
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='beg' LIMIT 1");
+
+               // Unregister filter
+               unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'BEG_PURGE_IPS_NOTIFY_USER', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -282,19 +292,19 @@ INDEX (`userid`)",
                                break;
 
                        case '0.2.9': // SQL queries for v0.2.9
                                break;
 
                        case '0.2.9': // SQL queries for v0.2.9
-                               addDropTableSql('beg_referals');
-                               addCreateTableSql('beg_referals', "
+                               addDropTableSql('beg_referrals');
+                               addCreateTableSql('beg_referrals', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
 `remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
 `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
 `remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
 `timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
-`referal_url` TINYTEXT NOT NULL,
+`referral_url` TINYTEXT NOT NULL,
 PRIMARY KEY (`id`),
 INDEX (`userid`)",
                                        'Recorded referral URLs');
 
                                // Add admin menu
 PRIMARY KEY (`id`),
 INDEX (`userid`)",
                                        'Recorded referral URLs');
 
                                // Add admin menu
-                               addAdminMenuSql('user','list_beg_referal_urls','Bettel-Referrals auflisten','Listet alle Bettellink-Aufrufe inklusive Referral-URL auf.','13');
+                               addAdminMenuSql('user','list_beg_referral_urls','Bettel-Referrals auflisten','Listet alle Bettellink-Aufrufe inklusive Referral-URL auf.','13');
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Loggen der Referral-URLs hinzugef&uuml;gt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Loggen der Referral-URLs hinzugef&uuml;gt.");
@@ -302,8 +312,10 @@ INDEX (`userid`)",
 
                        case '0.3.0': // SQL queries for v0.3.0
                                addConfigDropSql('beg_mode');
 
                        case '0.3.0': // SQL queries for v0.3.0
                                addConfigDropSql('beg_mode');
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('beg','points','LOCKED','DIRECT')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('monthly_beg','points','LOCKED','DIRECT')");
+
+                               // Register points data
+                               registerExtensionPointsData('beg'        , 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('monthly_beg', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
@@ -330,7 +342,33 @@ INDEX (`userid`)",
                                addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Betteln bei {OPEN_CONFIG}MAIN_TITLE{CLOSE_CONFIG}' WHERE `module`='beg' AND `title`='' LIMIT 1");
 
                                // Update notes
                                addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Betteln bei {OPEN_CONFIG}MAIN_TITLE{CLOSE_CONFIG}' WHERE `module`='beg' AND `title`='' LIMIT 1");
 
                                // Update notes
-                               setExtensionUpdateNotes("Modul registriert und bei leerem Titel mit einem Standarttitel versehen.");
+                               setExtensionUpdateNotes("Modul registriert und bei leerem Titel mit einem Standardtitel versehen.");
+                               break;
+
+                       case '0.3.3': // SQL queries for v0.3.3
+                               // Register a filter
+                               registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'init', 'BEG_PURGE_IPS_NOTIFY_USER', false, true, isExtensionDryRun());
+
+                               // This depends on ext-register
+                               addExtensionDependency('register');
+
+                               // Update notes
+                               setExtensionUpdateNotes("Filter f&uuml;r Anmeldeformular und Aufr&auml;men der IPs hinzugef&uuml;gt.");
+                               break;
+
+                       case '0.3.4': // SQL queries for v0.3.4
+                               // Register points data
+                               registerExtensionPointsData('beg_ref'        , 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('monthly_beg_ref', 'points', 'LOCKED', 'DIRECT');
+
+                               // SQL queries (renaming)
+                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_beg_referals` CHANGE `referal_url` `referral_url` TINYTEXT NOT NULL");
+                               addExtensionSql("RENAME TABLE `{?_MYSQL_PREFIX?}_beg_referals` TO `{?_MYSQL_PREFIX?}_beg_referrals`");
+                               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_beg_referral_urls` WHERE `what`='list_beg_referal_urls' LIMIT 1");
+
+                               // Update notes
+                               setExtensionUpdateNotes("Verwendungszwecke f&uuml;r Referralgutgschriften registriert.");
                                break;
                } // END - switch
                break;
                                break;
                } // END - switch
                break;
@@ -342,18 +380,6 @@ INDEX (`userid`)",
                break;
 
        case 'init': // When extension is initialized
                break;
 
        case 'init': // When extension is initialized
-               // Remove old entries
-               $OLD = getBegTimeout();
-               if (getBegUseridTimeout() > $OLD) {
-                       $OLD = getBegUseridTimeout();
-               } // END - if
-               SQL_QUERY('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_beg_ips` WHERE (UNIX_TIMESTAMP() - `timeout`) >= ' . ($OLD + 60*60) . '', __FILE__, __LINE__);
-
-               // Check for beg rallye is active and send mails out
-               if ((isBegRallyeEnabled()) && (isBegNewMemberNotifyEnabled())) {
-                       // Include file for sending out mails
-                       addIncludeToPool('notify', 'inc/mails/beg_mails.php');
-               } // END - if
                break;
 
        default: // Unknown extension mode
                break;
 
        default: // Unknown extension mode
index 15fafc3597fc5a5401a2c7db5985172a8c66f931..f4bb404bb0af5868732dd3250baf47fc73bf1b1e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.3.9');
+setThisExtensionVersion('0.4.1');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9'));
+setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.1'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -56,6 +56,9 @@ switch (getExtensionMode()) {
                // SQL commands to run
                addDropTableSql('user_birthday');
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_birthday' LIMIT 1");
                // SQL commands to run
                addDropTableSql('user_birthday');
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_birthday' LIMIT 1");
+
+               // Unregister points data
+               unregisterExtensionPointsData('birthday_confirm');
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -194,6 +197,14 @@ INDEX (`userid`)",
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Dies brauchen wir nicht mehr.");
                                break;
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Dies brauchen wir nicht mehr.");
                                break;
+
+                       case '0.4.1': // SQL queries for v0.4.1
+                               // Register points data
+                               registerExtensionPointsData('birthday_confirm', 'points', 'LOCKED', 'DIRECT');
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Eintrag in Tabelle <strong>{?_MYSQL_PREFIX?}_points_data</strong> hinzugef&uum;gt.");
+                               break;
                } // END - if
                break;
 
                } // END - if
                break;
 
index e753abe98ef1eb9b2b6eba41e8d9d49a203f41c8..0a32e0262e1a3c2644ec0983e9ea626bd89dfe3f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index cf745843ecb5be7d5d951242a0a57d517a2d6270..c2ff1730f82836dd52b68b3733fc4fc96afcd1fc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version of this extension
 } // END - if
 
 // Version of this extension
-setThisExtensionVersion('0.9.7');
+setThisExtensionVersion('0.9.9');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.1.6', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7', '0.7.8', '0.7.9', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6', '0.8.7', '0.8.8', '0.8.9', '0.9.0', '0.9.1', '0.9.2', '0.9.3', '0.9.4', '0.9.5', '0.9.6', '0.9.7'));
+setExtensionVersionHistory(array('0.0.0', '0.1.6', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7', '0.7.8', '0.7.9', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6', '0.8.7', '0.8.8', '0.8.9', '0.9.0', '0.9.1', '0.9.2', '0.9.3', '0.9.4', '0.9.5', '0.9.6', '0.9.7', '0.9.8', '0.9.9'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -88,10 +88,15 @@ INDEX (`cat_id`)",
                addDropTableSql('bonus_customer');
                addDropTableSql('bonus_turbo');
 
                addDropTableSql('bonus_customer');
                addDropTableSql('bonus_turbo');
 
+               // Unregister points data
+               unregisterExtensionPointsData('monthly_bonus');
+
                // Unregister filter
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'BONUS_USER_REGISTRATION_ADD_SQL_COLUMNS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'SEND_BONUS_NOTIFICATIONS', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -560,7 +565,7 @@ ORDER BY
 
                        case '0.9.0': // SQL queries for v0.9.0
                                // Register filter
 
                        case '0.9.0': // SQL queries for v0.9.0
                                // Register filter
-                               registerFilter('member_login_check', 'ADD_LOGIN_BONUS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'member_login_check', 'ADD_LOGIN_BONUS', false, true, isExtensionDryRun());
 
                                // Update notes
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
 
                                // Update notes
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt der den Login-Bonus aktualisiert (bzw. soll) (internes TODO).");
@@ -603,14 +608,15 @@ ORDER BY
 
                        case '0.9.5': // SQL queries for v0.9.5
                                // Register filter
 
                        case '0.9.5': // SQL queries for v0.9.5
                                // Register filter
-                               registerFilter('generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'generate_admin_mail_links', 'GENERATE_BONUS_MAIL_LINKS', false, true, isExtensionDryRun());
 
                                // Update notes
                                setExtensionUpdateNotes("Filter zum Generieren von Admin-Links f&uuml;r Bonus-Mails hinzugef&uuml;gt.");
                                break;
 
                        case '0.9.6': // SQL queries for v0.9.6
 
                                // Update notes
                                setExtensionUpdateNotes("Filter zum Generieren von Admin-Links f&uuml;r Bonus-Mails hinzugef&uuml;gt.");
                                break;
 
                        case '0.9.6': // SQL queries for v0.9.6
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('monthly_bonus','points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('monthly_bonus', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
@@ -627,11 +633,30 @@ ORDER BY
                                addConfigChangeSql('bonus_click_yn', 'include_bonus_click', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
 
                                // Register filter
                                addConfigChangeSql('bonus_click_yn', 'include_bonus_click', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
 
                                // Register filter
-                               registerFilter('add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'add_bonus_points_user_columns', 'ADD_BONUS_POINTS_USER_COLUMNS', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Konfigurationseintr&auml;ge umbenannt.");
                                break;
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Konfigurationseintr&auml;ge umbenannt.");
                                break;
+
+                       case '0.9.8': // SQL queries for v0.9.8
+                               // Register filter
+                               registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'BONUS_USER_REGISTRATION_ADD_SQL_COLUMNS', false, true, isExtensionDryRun());
+
+                               // Add dependency to ext-register
+                               addExtensionDependency('register');
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter zum Hinzuf&uuml;gen von SQL-Spalten bei der Mitgliederanmeldung.");
+                               break;
+
+                       case '0.9.9': // SQL queries for v0.9.9
+                               // Register filter
+                               registerFilter(__FILE__, __LINE__, 'init', 'SEND_BONUS_NOTIFICATIONS', false, true, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter zum Hinzuf&uuml;gen von SQL-Spalten bei der Mitgliederanmeldung.");
+                               break;
                } // END - switch
                break;
 
                } // END - switch
                break;
 
@@ -642,11 +667,6 @@ ORDER BY
                break;
 
        case 'init': // Do stuff when extension is initialized
                break;
 
        case 'init': // Do stuff when extension is initialized
-               // Check for bonus rallye is active and send mails out
-               if ((isBonusRallyeActive()) && (isBonusNewMemberNotifyEnabled())) {
-                       // Include file for sending out mails
-                       addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
-               } // END - if
                break;
 
        default: // Unknown extension mode
                break;
 
        default: // Unknown extension mode
index d77204cdb31ac7d6b027e508c8ad811118ac9ff6..bb4469b12a79831691954d89cc069d2bb7912d9c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -77,8 +77,8 @@ INDEX (`userid`)",
                addMemberMenuSql('main', 'booking', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Kontoauszug', 5);
 
                // Add the filters
                addMemberMenuSql('main', 'booking', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Kontoauszug', 5);
 
                // Add the filters
-               registerFilter('post_add_points', 'ADD_BOOKING_RECORD', false, true, isExtensionDryRun());
-               registerFilter('post_sub_points', 'ADD_BOOKING_RECORD', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'post_add_points', 'ADD_BOOKING_RECORD', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'post_sub_points', 'ADD_BOOKING_RECORD', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -87,8 +87,8 @@ INDEX (`userid`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='booking'");
 
                // Remove the filters
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='booking'");
 
                // Remove the filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_add_points', 'ADD_BOOKING_RECORD', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_sub_points', 'ADD_BOOKING_RECORD', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_add_points', 'ADD_BOOKING_RECORD', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_sub_points', 'ADD_BOOKING_RECORD', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
index 566c1879a1ad6aa7c8f68bb6a66cebfa06c2b805..35010eed7abcebe1df2cf7fc4761964f93b24dfb 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -60,15 +60,15 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('cache_stats','config_config')");
 
                // Unregister all filters
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('cache_stats','config_config')");
 
                // Unregister all filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'extension_update', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_extension_installed', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_extension_run_sql', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_admin_added', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_form_submited', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_form_deleted', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_form_reset_pass', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'extension_remove', 'CACHE_DESTROY_ALL', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'shutdown', 'CACHE_DESTROY_FILTER', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'extension_update', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_extension_installed', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_extension_run_sql', 'CACHE_DESTROY_ON_EXT_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_admin_added', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_form_submited', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_form_deleted', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_form_reset_pass', 'CACHE_DESTROY_ON_ADMIN_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'extension_remove', 'CACHE_DESTROY_ALL', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'shutdown', 'CACHE_DESTROY_FILTER', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -193,14 +193,14 @@ switch (getExtensionMode()) {
 
                        case '0.2.1': // SQL queries for v0.2.1
                                // Register the new filter
 
                        case '0.2.1': // SQL queries for v0.2.1
                                // Register the new filter
-                               registerFilter('extension_update', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun());
-                               registerFilter('post_extension_installed', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun());
-                               registerFilter('post_extension_run_sql', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun());
-                               registerFilter('post_admin_added', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
-                               registerFilter('post_form_submited', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
-                               registerFilter('post_form_deleted', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
-                               registerFilter('post_form_reset_pass', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
-                               registerFilter('extension_remove', 'CACHE_DESTROY_ALL', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'extension_update', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_extension_installed', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_extension_run_sql', 'CACHE_DESTROY_ON_EXT_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_admin_added', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_form_submited', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_form_deleted', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_form_reset_pass', 'CACHE_DESTROY_ON_ADMIN_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'extension_remove', 'CACHE_DESTROY_ALL', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter f&uuml;r Erweiterungsmanagement hinzugef&uuml;gt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter f&uuml;r Erweiterungsmanagement hinzugef&uuml;gt.");
@@ -218,7 +218,7 @@ switch (getExtensionMode()) {
                                setExtensionUpdateNotes("Cachen von Filtern hinzugef&uuml;gt.");
 
                                // Register a new filter
                                setExtensionUpdateNotes("Cachen von Filtern hinzugef&uuml;gt.");
 
                                // Register a new filter
-                               registerFilter('shutdown', 'CACHE_DESTROY_FILTER', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'shutdown', 'CACHE_DESTROY_FILTER', false, true, isExtensionDryRun());
                                break;
 
                        case '0.2.4': // SQL queries for v0.2.4
                                break;
 
                        case '0.2.4': // SQL queries for v0.2.4
index f2275b856b4b1a540734f928196c4a37fe5bab5f..3e21291bcd228b3080cc2fa1ddc912c4c4de357b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 1f3466aa979b383c0bd5b233e039451554719e33..46fceed039c2e6d4bdb4e31310291598e28abdcd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.0.4');
+setThisExtensionVersion('0.0.5');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4'));
+setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5'));
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
@@ -77,6 +77,9 @@ UNIQUE (`code`)",
                // SQL commands to run
                addDropTableSql('countries');
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='country'");
                // SQL commands to run
                addDropTableSql('countries');
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='country'");
+
+               // Unregister filter
+               unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'COUNTRY_USER_REGISTRATION_ADD_SQL_COLUMNS', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -90,8 +93,7 @@ UNIQUE (`code`)",
                break;
 
        case 'update': // Update an extension
                break;
 
        case 'update': // Update an extension
-               switch (getCurrentExtensionVersion())
-               {
+               switch (getCurrentExtensionVersion()) {
                        case '0.0.1': // SQL queries for v0.0.1
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("SQL-Dateien hinzugef&uuml;gt, die Sie mit z.B. phpMyAdmin einspielen k&ouml;nnen. (DOCS/country/README.de lesen!)");
                        case '0.0.1': // SQL queries for v0.0.1
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("SQL-Dateien hinzugef&uuml;gt, die Sie mit z.B. phpMyAdmin einspielen k&ouml;nnen. (DOCS/country/README.de lesen!)");
@@ -111,7 +113,18 @@ UNIQUE (`code`)",
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Sicherheitsupdate f&uuml;r die Include-Befehle.");
                                break;
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Sicherheitsupdate f&uuml;r die Include-Befehle.");
                                break;
-               }
+
+                       case '0.0.5': // SQL queries for v0.0.5
+                               // Register a filter
+                               registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'COUNTRY_USER_REGISTRATION_ADD_SQL_COLUMNS', false, true, isExtensionDryRun());
+
+                               // This depends on ext-register
+                               addExtensionDependency('register');
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter zum Mitgliederanmeldeformular hinzugef&uuml;gt.");
+                               break;
+               } // END - switch
                break;
 
        case 'modify': // When the extension got modified
                break;
 
        case 'modify': // When the extension got modified
@@ -126,7 +139,7 @@ UNIQUE (`code`)",
        default: // Unknown extension mode
                logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
                break;
        default: // Unknown extension mode
                logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
                break;
-}
+} // END - switch
 
 
-//
+// [EOF]
 ?>
 ?>
index 84ee50137cdeb35d1f3cf4c23f8fd319af5c9daa..4a90ed792057d8c8bf4a07332aefcb126e7765c0 100644 (file)
@@ -18,7 +18,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -102,7 +102,7 @@ UNIQUE (`coupon_code`)",
                addMemberMenuSql('coupon', 'list_coupon', 'Eingel&ouml;ste auflisten', 2);
 
                // Add filter (for changing user_points column dynamically
                addMemberMenuSql('coupon', 'list_coupon', 'Eingel&ouml;ste auflisten', 2);
 
                // Add filter (for changing user_points column dynamically
-               registerFilter('determine_points_column_name', 'COUPON_CHANGE_POINTS_COLUMN_NAME', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'determine_points_column_name', 'COUPON_CHANGE_POINTS_COLUMN_NAME', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -112,9 +112,12 @@ UNIQUE (`coupon_code`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='coupon' LIMIT 4");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='coupon' LIMIT 3");
 
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='coupon' LIMIT 4");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='coupon' LIMIT 3");
 
+               // Remove points data
+               unregisterExtensionPointsData('coupon_cashed');
+
                // Remove all filters
                // Remove all filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'determine_points_column_name', 'COUPON_CHANGE_POINTS_COLUMN_NAME', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_cash_coupon', 'POST_CASH_COUPON', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'determine_points_column_name', 'COUPON_CHANGE_POINTS_COLUMN_NAME', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_cash_coupon', 'POST_CASH_COUPON', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -139,7 +142,7 @@ UNIQUE (`coupon_code`)",
                                addExtensionDependency('order');
 
                                // Insert data in new table
                                addExtensionDependency('order');
 
                                // Insert data in new table
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('coupon_cashed','order_points','LOCKED','DIRECT')");
+                               registerExtensionPointsData('coupon_cashed', 'order_points', 'LOCKED', 'DIRECT');
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes('');
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes('');
@@ -154,7 +157,7 @@ UNIQUE (`coupon_code`)",
                                break;
 
                        case '0.0.3': // SQL queries for v0.0.3
                                break;
 
                        case '0.0.3': // SQL queries for v0.0.3
-                               registerFilter('post_cash_coupon', 'POST_CASH_COUPON', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_cash_coupon', 'POST_CASH_COUPON', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes('Filter zum Post- und Pre-Filter hinzugef&uuml;gt.');
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes('Filter zum Post- und Pre-Filter hinzugef&uuml;gt.');
index 965a1ed5e2cbaf99ee3a1d1a77ba537b306c1024..6d42efc5ed56cca132cc8a72a099d07354d81cb7 100644 (file)
@@ -4,11 +4,11 @@
  * ===================                          Last change: 09/25/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * ===================                          Last change: 09/25/2004 *
  *                                                                      *
  * -------------------------------------------------------------------- *
- * File              : ext-                                             *
+ * File              : ext-cprping.php                                  *
  * -------------------------------------------------------------------- *
  * -------------------------------------------------------------------- *
- * Short description :                                                  *
+ * Short description : Check against CPR anti-spam database             *
  * -------------------------------------------------------------------- *
  * -------------------------------------------------------------------- *
- * Kurzbeschreibung  :                                                  *
+ * Kurzbeschreibung  : Pruefung gegen CPR-Antispam-Datenbank            *
  * -------------------------------------------------------------------- *
  * $Revision::                                                        $ *
  * $Date::                                                            $ *
  * -------------------------------------------------------------------- *
  * $Revision::                                                        $ *
  * $Date::                                                            $ *
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,7 +54,7 @@ switch (getExtensionMode()) {
                // SQL commands to run
 
                // Register module
                // SQL commands to run
 
                // Register module
-               //addModuleSql('foo','Y','Y','N','N');
+               //addModuleSql('foo', '{OPEN_TEMPLATE}MODULE_CPRPING_TITLE{CLOSE_TEMPLATE}','Y','Y','N','N');
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
diff --git a/inc/extensions/ext-currency.php b/inc/extensions/ext-currency.php
new file mode 100644 (file)
index 0000000..f79d750
--- /dev/null
@@ -0,0 +1,100 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 11/12/2011 *
+ * ===================                          Last change: 11/12/2011 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : ext-currency.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : General virtual-currency extension               *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Allgemeine Erweiterung f. virtuelle Waehrungen  *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} // END - if
+
+// Version number
+setThisExtensionVersion('0.0.0');
+
+// Version history array (add more with , '0.0.1' and so on)
+setExtensionVersionHistory(array('0.0.0'));
+
+// This extension is in development (non-productive)
+enableExtensionProductive(false);
+
+switch (getExtensionMode()) {
+       case 'register': // Do stuff when installation is running
+               // SQL commands to run
+
+               // Register module
+               //addModuleSql('foo','Y','Y','N','N');
+               break;
+
+       case 'remove': // Do stuff when removing extension
+               // SQL commands to run
+               break;
+
+       case 'activate': // Do stuff when admin activates this extension
+               // SQL commands to run
+               //addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='N', `hidden`='N', `admin_only`='N', `mem_only`='N' WHERE `module`='foo' LIMIT 1");
+               break;
+
+       case 'deactivate': // Do stuff when admin deactivates this extension
+               // SQL commands to run
+               //addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `locked`='Y' WHERE `module`='foo' LIMIT 1");
+               break;
+
+       case 'update': // Update an extension
+               switch (getCurrentExtensionVersion()) {
+                       case '0.0.1': // SQL queries for v0.0.1
+                               addExtensionSql('');
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes('');
+                               break;
+               } // END - switch
+               break;
+
+       case 'modify': // When the extension got modified
+               break;
+
+       case 'test': // For testing purposes
+               break;
+
+       case 'init': // Do stuff when extension is initialized
+               break;
+
+       default: // Unknown extension mode
+               logDebugMessage(__FILE__, __LINE__, sprintf("Unknown extension mode %s in extension %s detected.", getExtensionMode(), getCurrentExtensionName()));
+               break;
+} // END - switch
+
+// [EOF]
+?>
index d535db08fab5349fba3229cb9353b513b05f5c7b..48b19796fdbd1fb7317175dcef76b1c4c74a2ac5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index f68a40dccf9e93e0691a3afb9ccdb12eb715dca2..c24c9e66d088859bd10db482171ea79c68e0b782 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 09444fce93994336b0fc119cd145b800be328036..c53fd4ff3ade855d2d5d1382d19e83576cf62f6f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -120,6 +120,10 @@ INDEX (`userid`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='doubler'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='doubler' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='doubler' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='doubler'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='doubler' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='doubler' LIMIT 1");
+
+               // Unregister points data
+               unregisterExtensionPointsData('doubler_direct');
+               unregisterExtensionPointsData('doubler_reset');
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -239,8 +243,9 @@ INDEX (`userid`)",
                                break;
 
                        case '0.1.8': // SQL queries for v0.1.8
                                break;
 
                        case '0.1.8': // SQL queries for v0.1.8
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('doubler_direct','points','LOCKED','DIRECT')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('doubler_reset','points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('doubler_direct', 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('doubler_reset' , 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
index 43f9924f368791c745da7c733923cb3978e5c3ac..290811d8fbb7244214150f12c987a41849977d53 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -86,7 +86,7 @@ INDEX (`earning_userid`)",
                        'User->Earning connections');
 
                // Register filter
                        'User->Earning connections');
 
                // Register filter
-               registerFilter('member_footer_extras', 'ADD_EARNING_GROUP_POPUP', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'member_footer_extras', 'ADD_EARNING_GROUP_POPUP', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -99,7 +99,7 @@ INDEX (`earning_userid`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_earning' LIMIT 1");
 
                // Unregister filter
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='list_earning' LIMIT 1");
 
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'member_footer_extras', 'ADD_EARNING_GROUP_POPUP', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'member_footer_extras', 'ADD_EARNING_GROUP_POPUP', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
index b83a6b27f85cc42b2765eb32b8ecccee974f4281..0e6559b7299998e5bbced4ced31cab99ee7b88b8 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8b0c25c241f1ddcae7531ca79626eb42b433f16a..2d4677f3196baad1ac65b8ab167371558a70fc0e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -110,6 +110,7 @@ PRIMARY KEY (`forced_costs_id`)",
 `forced_stats_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `forced_stats_campaign_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
 `forced_stats_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
 `forced_stats_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
 `forced_stats_campaign_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
 `forced_stats_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL,
+`forced_stats_token` VARCHAR(255) NULL DEFAULT NULL,
 `forced_stats_viewed` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `forced_stats_clicked` TIMESTAMP NULL DEFAULT NULL,
 `forced_stats_real_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
 `forced_stats_viewed` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
 `forced_stats_clicked` TIMESTAMP NULL DEFAULT NULL,
 `forced_stats_real_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
@@ -127,7 +128,7 @@ INDEX (`forced_stats_userid`)",
                addAdminMenuSql('forced', NULL, 'Forced-Ads', 'Verwalten Sie hier bequem alle laufenden Forced-Banner, -Textlinks, -PopUps und deren Kampgnen. Sie k&ouml;nnen hier auch neue Werbmittel (Ads) hinzuf&uuml;gen oder laufende Forced-Kampagnen bei z.B. Regelverst&ouml;ssen sperren oder l&ouml;schen. Auch das natr&auml;gliche Editieren von Ads und Kampagnen ist jederzeit m&ouml;glich. Kampagnen dienen der einfacheren Verwaltung und der Trennung von dem Werbemittel selbst dienen. Sie brauchen also z.B. einen Forced-Banner nur einmal einf&uuml;gen und k&ouml;nnen dann bei Bedarf weitere Kampagnen starten.', 5);
                addAdminMenuSql('forced', 'list_forced_ads', 'Forced-Ads verwalten', 'Listet alle eingetragenen Forced-Ads (Werbmittel mit Klickzwang) auf und f&uuml;gt neue hinzu. Sie k&ouml;nnen hier diese nachtr&auml;glich editieren falls Sie mal eine falsche URL eingegeben haben oder den Text &auml;ndern wollen. L&ouml;schen Sie hier auch Forced-Banner, die nicht mehr g&uuml;ltig sind (z.B. abgelaufen sind). Sollten doch mit dem Werbmittel verkn&uuml;pfte Kampagnen vorhanden sein, erhalten Sie einen Warnhinweis. Neue Werbmittel k&ouml;nnen Sie hier ebenfalls hinzuf&uuml;gen. Denken Sie aber daran, dass ohne Kampagne dieses nicht angezeigt wird. Achten Sie hier auch die Reload-Sperre.', 2);
                addAdminMenuSql('forced', 'list_forced_campaigns', 'Kampagnen verwalten', 'Listet alle Kampagnen auf und zeigt deren Status an. Jederzeit k&ouml;nnen Sie Kampagnen stoppen, falls Sie dies w&uuml;nschen oder ein Regelverstoss vorliegt. Haben Sie ein Werbemittel hinzugef&uuml;gt, so f&uuml;gen Sie bitte unbedingt eine Kampagne hinzu, da es sonst nicht angezeigt wird.', 3);
                addAdminMenuSql('forced', NULL, 'Forced-Ads', 'Verwalten Sie hier bequem alle laufenden Forced-Banner, -Textlinks, -PopUps und deren Kampgnen. Sie k&ouml;nnen hier auch neue Werbmittel (Ads) hinzuf&uuml;gen oder laufende Forced-Kampagnen bei z.B. Regelverst&ouml;ssen sperren oder l&ouml;schen. Auch das natr&auml;gliche Editieren von Ads und Kampagnen ist jederzeit m&ouml;glich. Kampagnen dienen der einfacheren Verwaltung und der Trennung von dem Werbemittel selbst dienen. Sie brauchen also z.B. einen Forced-Banner nur einmal einf&uuml;gen und k&ouml;nnen dann bei Bedarf weitere Kampagnen starten.', 5);
                addAdminMenuSql('forced', 'list_forced_ads', 'Forced-Ads verwalten', 'Listet alle eingetragenen Forced-Ads (Werbmittel mit Klickzwang) auf und f&uuml;gt neue hinzu. Sie k&ouml;nnen hier diese nachtr&auml;glich editieren falls Sie mal eine falsche URL eingegeben haben oder den Text &auml;ndern wollen. L&ouml;schen Sie hier auch Forced-Banner, die nicht mehr g&uuml;ltig sind (z.B. abgelaufen sind). Sollten doch mit dem Werbmittel verkn&uuml;pfte Kampagnen vorhanden sein, erhalten Sie einen Warnhinweis. Neue Werbmittel k&ouml;nnen Sie hier ebenfalls hinzuf&uuml;gen. Denken Sie aber daran, dass ohne Kampagne dieses nicht angezeigt wird. Achten Sie hier auch die Reload-Sperre.', 2);
                addAdminMenuSql('forced', 'list_forced_campaigns', 'Kampagnen verwalten', 'Listet alle Kampagnen auf und zeigt deren Status an. Jederzeit k&ouml;nnen Sie Kampagnen stoppen, falls Sie dies w&uuml;nschen oder ein Regelverstoss vorliegt. Haben Sie ein Werbemittel hinzugef&uuml;gt, so f&uuml;gen Sie bitte unbedingt eine Kampagne hinzu, da es sonst nicht angezeigt wird.', 3);
-               addAdminMenuSql('forced', 'list_forced_costs', 'Kosten verwalten', 'Legen Sie die Preise pro Klick f&uuml;r Forced-Werbemittelbuchungen fest und wie viele {OPEN_CONFIG}POINTS{CLOSE_CONFIG} Ihre Mitglieder erhalten sollen. Generell sollten Sie bei Mitgliederbuchungen h&ouml;here Kosten pro Klick als was Ihre Mitglieder pro Klick erhalten einstellen, da so die {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abgebaut werden (Sie k&ouml;nnen an Accountaufladungen z.B. verdienen).', 4);
+               addAdminMenuSql('forced', 'list_forced_costs', 'Preise verwalten', 'Legen Sie die Preise pro Klick f&uuml;r Forced-Werbemittelbuchungen fest und wie viele {OPEN_CONFIG}POINTS{CLOSE_CONFIG} Ihre Mitglieder erhalten sollen. Generell sollten Sie bei Mitgliederbuchungen h&ouml;here Kosten pro Klick als was Ihre Mitglieder pro Klick erhalten einstellen, da so die {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abgebaut werden (Sie k&ouml;nnen an Accountaufladungen z.B. verdienen).', 4);
                addAdminMenuSql('forced', 'stats_forced', 'Statistiken', 'Zeigt Gesamtstatistiken und zu den einzelnen Kampagnen und Werbmitteln an. Die hier angezeigte Statistik kann jedoch nicht manuell gel&ouml;scht werden (bitte auch nicht selber tun) da sie auch gleichzeitigt als Reload-Sperre dient.', 5);
 
                // - Members
                addAdminMenuSql('forced', 'stats_forced', 'Statistiken', 'Zeigt Gesamtstatistiken und zu den einzelnen Kampagnen und Werbmitteln an. Die hier angezeigte Statistik kann jedoch nicht manuell gel&ouml;scht werden (bitte auch nicht selber tun) da sie auch gleichzeitigt als Reload-Sperre dient.', 5);
 
                // - Members
@@ -139,8 +140,10 @@ INDEX (`forced_stats_userid`)",
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_earning_data` (`earning_group`,`earning_provider`,`earning_sorting`) VALUES ('POPUP','FORCED_POPUP',1)");
 
                // Register filters
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_earning_data` (`earning_group`,`earning_provider`,`earning_sorting`) VALUES ('POPUP','FORCED_POPUP',1)");
 
                // Register filters
-               registerFilter('add_forced_ads_types', 'FORCED_AD_TYPE_DEFAULTS', false, true, isExtensionDryRun());
-               registerFilter('member_earning_table_data', 'FORCED_POPUP_TABLE_DATA', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'add_forced_ads_types', 'FORCED_AD_TYPE_DEFAULTS', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'member_earning_table_data', 'FORCED_POPUP_TABLE_DATA', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'post_change_forced_campaign_status', 'FORCED_CHANGE_CAMPAIGN_STATUS', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'pre_change_forced_campaign_status', 'FORCED_CHANGE_CAMPAIGN_VALIDATE_DATA', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -161,8 +164,10 @@ INDEX (`forced_stats_userid`)",
                } // END - if
 
                // Remove filter
                } // END - if
 
                // Remove filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'add_forced_ads_types', 'FORCED_AD_TYPE_DEFAULTS', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'member_earning_table_data', 'FORCED_POPUP_TABLE_DATA', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'add_forced_ads_types', 'FORCED_AD_TYPE_DEFAULTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'member_earning_table_data', 'FORCED_POPUP_TABLE_DATA', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_change_forced_campaign_status', 'FORCED_CHANGE_CAMPAIGN_STATUS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'pre_change_forced_campaign_status', 'FORCED_CHANGE_CAMPAIGN_VALIDATE_DATA', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
index d79cd93946e5081b1da3861358746f0da7508f69..75cfe18b9c15a162cb73a07d7ebbbe03680c7a38 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5a0db2e8ccac55c560f27bed4701b6cf375a4a5b..cedea5eb664bc1b7de8d28bf71f96f097db3ab05 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ae6787f9ab32ac34a096f8e098f588ea49b96cb7..2a16ce295762239b3c76b277abc994f7d75b7c34 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e162861124ac673ec4562535f35028a1e73c2644..583a0664b6c4934e6b10da0e9765f9be6e64d2a9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -153,8 +153,8 @@ switch (getExtensionMode()) {
                //
                $GLOBALS['url_ends'] = array(
                        ' ',
                //
                $GLOBALS['url_ends'] = array(
                        ' ',
-                       "\n",
-                       "\r",
+                       chr(10),
+                       chr(13),
                        ')',
                );
 
                        ')',
                );
 
index dc936919dc9f67af2c78105a33437c5bbc3e82a6..a976b8da926d05a010755b772a26f0c5bfc4b8d2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 1a1363de86fe2463109952b000a60515e415c351..74beef759f8cecbcabfca70e85d87d9197c7981d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7f5e846f37f8feb9394070e83698d011f02e0251..ad2186adee0995803f150fae67de9cec9c3cc487 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index bd63a5757342059a035ea6add0942fce21a3009a..5506d42e6d15141174ae01fbe3888bfd82a95190 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3229fc02fcb3684ad237aafff6651cc22e8c713d..33387e646355331ea4d551139189b45cc277987a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -48,13 +48,16 @@ setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
+               // This extension requires ext-other
+               addExtensionDependency('other');
+
                // SQL commands to run
                addExtensionSql('');
                break;
 
        case 'remove': // Do stuff when removing extension
                // SQL commands to run
                addExtensionSql('');
                break;
 
        case 'remove': // Do stuff when removing extension
-               // SQL commands to run
-               addExtensionSql('');
+               // Unregister points data
+               unregisterExtensionPointsData('mailid_payback');
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -233,8 +236,8 @@ switch (getExtensionMode()) {
                                // This update depends on latest sql_patches version
                                addExtensionDependency('sql_patches');
 
                                // This update depends on latest sql_patches version
                                addExtensionDependency('sql_patches');
 
-                               // Insert data in points_data
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('mailid_payback','points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('mailid_payback', 'points', 'LOCKED', 'DIRECT');
                                break;
                } // END - switch
                break;
                                break;
                } // END - switch
                break;
index fad5805484c8d852e09fe2d54be13992d71e486e..ad980256d1d8aae95bfc6a72ba2dc965ffcd181a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e401d0fce625e118f727125a59ae2065a8d36c6e..6c7cbd8405bce1cd366bd4f268bba5ae6b64a7c5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -55,8 +55,8 @@ switch (getExtensionMode()) {
                addExtensionSql('');
 
                // Add the filters
                addExtensionSql('');
 
                // Add the filters
-               registerFilter('post_add_points', 'UPDATE_MEDIADATA_ENTRY', false, true, isExtensionDryRun());
-               registerFilter('post_sub_points', 'UPDATE_MEDIADATA_ENTRY', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'post_add_points', 'UPDATE_MEDIADATA_ENTRY', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'post_sub_points', 'UPDATE_MEDIADATA_ENTRY', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -66,8 +66,8 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='mediadata'");
 
                // Remove the filters
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='mediadata'");
 
                // Remove the filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_add_points', 'UPDATE_MEDIADATA_ENTRY', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_sub_points', 'UPDATE_MEDIADATA_ENTRY', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_add_points', 'UPDATE_MEDIADATA_ENTRY', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_sub_points', 'UPDATE_MEDIADATA_ENTRY', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
index 4f6092ac7a0971880b4a7311fc9e3414eb510766..0df517f061f718badd7e93cb99bfd4d7d09e5880 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c2b1902a9216f68a9420b9703939a20fbb02355c..6808540e8b62a6100585c686844147db1a4f2058 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index dc9434e2fa764f83db32656714943018922c3666..77df87b8924922b82076208bff27e417c63a0fd1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 20a82f834edb9f011bf775f5fa1e2b8d845913d4..0b1a6709a311fe37154f5cdb59314777af2b3426 100644 (file)
@@ -42,7 +42,7 @@
  * @TODO Yoo!Media: What is LayerAd compared to Layer click?            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * @TODO Yoo!Media: What is LayerAd compared to Layer click?            *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index baec7dff597006126faa1e49326621bbc29eb69f..ed44424958bb4e77c0afd9937adee3ee7e118993 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -218,8 +218,8 @@ INDEX `topic` (`nl_topic_id`)",
                // @TODO Move these into configuration
                $GLOBALS['url_ends'] = array(
                        ' ',
                // @TODO Move these into configuration
                $GLOBALS['url_ends'] = array(
                        ' ',
-                       "\n",
-                       "\r",
+                       chr(10),
+                       chr(13),
                        ')',
                );
 
                        ')',
                );
 
index 3f005580c89087ed7774a7cb9ca903158c487c7d..ed9a18f8c480e5fb870dbb435f33a35aa92f1991 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -180,7 +180,7 @@ switch (getExtensionMode()) {
 
                        case '0.2.0': // SQL queries for v0.2.0
                                // Update notes (these will be set as task text!)
 
                        case '0.2.0': // SQL queries for v0.2.0
                                // Update notes (these will be set as task text!)
-                               setExtensionUpdateNotes("Ung&uuml;tiges Update (wegen Verallgemeinerung der <strong>nickname_history</strong>-Tabelle.");
+                               setExtensionUpdateNotes("Ung&uuml;ltiges Update (wegen Verallgemeinerung der <strong>nickname_history</strong>-Tabelle.");
                                break;
 
                        case '0.2.1': // SQL queries for v0.2.1
                                break;
 
                        case '0.2.1': // SQL queries for v0.2.1
index e04c025e6e32c1b55a85f726df9f5d284b791459..daf560c0d647b830c9c1b3e269e0ddfcfd0bda96 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -48,7 +48,7 @@ setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
-               // SQL commands to run
+               // "Who-is-where" table
                addDropTableSql('online');
                addCreateTableSql('online', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
                addDropTableSql('online');
                addCreateTableSql('online', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -67,6 +67,8 @@ INDEX (`userid`),
 INDEX (`refid`),
 INDEX `admin_member` (`is_admin`,`is_member`)",
                        'Who-is-where data');
 INDEX (`refid`),
 INDEX `admin_member` (`is_admin`,`is_member`)",
                        'Who-is-where data');
+
+               // Admin menu
                addAdminMenuSql('misc','usr_online','Online-Statistik','Eine Liste von derzeit &quot;Online&quot; Usern. Doppelte Eintr&auml;ge k&ouml;nnte auf mangelnden Cookie-Support des Browsers oder auf einen Spider hindeuten.', 1);
                break;
 
                addAdminMenuSql('misc','usr_online','Online-Statistik','Eine Liste von derzeit &quot;Online&quot; Usern. Doppelte Eintr&auml;ge k&ouml;nnte auf mangelnden Cookie-Support des Browsers oder auf einen Spider hindeuten.', 1);
                break;
 
@@ -77,7 +79,7 @@ INDEX `admin_member` (`is_admin`,`is_member`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='online'");
 
                // Unregister filter
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `action`='online'");
 
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'init', 'UPDATE_ONLINE_LIST', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'UPDATE_ONLINE_LIST', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -117,7 +119,7 @@ INDEX `admin_member` (`is_admin`,`is_member`)",
                                addGuestMenuSql('online', NULL, 'Jetzt Online', 2);
 
                                // Register filter
                                addGuestMenuSql('online', NULL, 'Jetzt Online', 2);
 
                                // Register filter
-                               registerFilter('init', 'UPDATE_ONLINE_LIST', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'init', 'UPDATE_ONLINE_LIST', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Hinzuf&uuml;gen des Men&uuml;punktes &quot;Jetzt Online&quot; wird nun von dieser Erweiterung erledigt. Filter hinzugef&uuml;gt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Hinzuf&uuml;gen des Men&uuml;punktes &quot;Jetzt Online&quot; wird nun von dieser Erweiterung erledigt. Filter hinzugef&uuml;gt.");
index 3028ee11e90fab3a09e42a935813641962d6a527..5a6e9be3bdc8527cde306a02db9c2fc3ce06fc71 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8734affb94a6cf076c688977802bcc65113f6c25..4767e28d288313d9fccf622e1c175bdc3790ab83 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.5.3');
+setThisExtensionVersion('0.5.6');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3'));
+setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -59,8 +59,12 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='order'");
 
                // Remove these filters
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='order'");
 
                // Remove these filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'get_total_points', 'ORDER_POINTS', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'get_own_points', 'ORDER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_total_points', 'ORDER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_own_points', 'ORDER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_locked_points', 'LOCKED_ORDER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_all_point_columns', 'GET_ALL_ORDER_POINTS_COLUMN_NAMES', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'user_exclusion_sql', 'ORDER_ZIP_CODE_SQL', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'locked_points_columns_array', 'ORDER_POINTS_COLUMNS', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -338,11 +342,38 @@ INDEX (`pool_id`)",
                                addExtensionDependency('user');
 
                                // Register filters for gathering points
                                addExtensionDependency('user');
 
                                // Register filters for gathering points
-                               registerFilter(__FUNCTION__, __LINE__, 'get_total_points', 'ORDER_POINTS', true, isExtensionDryRun());
-                               registerFilter(__FUNCTION__, __LINE__, 'get_own_points', 'ORDER_POINTS', true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'get_total_points', 'ORDER_POINTS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'get_own_points', 'ORDER_POINTS', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
 
                                // Update notes (these will be set as task text!)
-                               setExtensionUpdateNotes("Weiteres {?POINTS?}-Guthabenkonto &quot;Werbeguthaben&quot; hinzugef&uuml;gt (verschoben von ext-user) und neue Filter zum Zur&uuml;ckliefern des Werbeguthabens hinzugef&uuml;gt.");
+                               setExtensionUpdateNotes("Weiteres Verwendungszwecke &quot;Werbeguthaben&quot; hinzugef&uuml;gt (verschoben von ext-user) und neue Filter zum Zur&uuml;ckliefern des Werbeguthabens hinzugef&uuml;gt.");
+                               break;
+
+                       case '0.5.4': // SQL queries for v0.5.4
+                               // Register filter for handling locked points
+                               registerFilter(__FILE__, __LINE__, 'get_locked_points', 'LOCKED_ORDER_POINTS', false, true, isExtensionDryRun());
+
+                               // Register filter for all column names
+                               registerFilter(__FILE__, __LINE__, 'get_all_point_columns', 'GET_ALL_ORDER_POINTS_COLUMN_NAMES', false, true, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter f&uuml;r gesperrtes Werbeguthaben hinzugef&uuml;gt.");
+                               break;
+
+                       case '0.5.5': // SQL queries for v0.5.5
+                               // Register filter
+                               registerFilter(__FILE__, __LINE__, 'user_exclusion_sql', 'ORDER_ZIP_CODE_SQL', false, true, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter f&uuml;r gesperrtes Werbeguthaben hinzugef&uuml;gt.");
+                               break;
+
+                       case '0.5.6': // SQL queries for v0.5.6
+                               // Register filter
+                               registerFilter(__FILE__, __LINE__, 'locked_points_columns_array', 'ORDER_POINTS_COLUMNS', false, true, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter f&uuml;r Spaltenname des gesperrten Werbeguthabens hinzugef&uuml;gt.");
                                break;
                } // END - switch
                break;
                                break;
                } // END - switch
                break;
index 2f2ae89b220760bf6f5e870eb923ddba9a3b129e..83a90646a07c5aef9c16f7eab0c8c1a39f4057ac 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.2.7');
+setThisExtensionVersion('0.2.8');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7'));
+setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8'));
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
@@ -60,7 +60,7 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_other'");
 
                // Unregister filter
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_other'");
 
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'page_footer', 'DISPLAY_DEBUG_SQL', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'page_footer', 'DISPLAY_DEBUG_SQL', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -179,7 +179,7 @@ switch (getExtensionMode()) {
                                break;
 
                        case '0.1.9': // SQL queries for v0.1.9
                                break;
 
                        case '0.1.9': // SQL queries for v0.1.9
-                               addConfigAddSql('mailid_error_redirect', "ENUM('index','reject') NOT NULL DEFAULT 'index'");
+                               addConfigAddSql('mailid_error_redirect', "ENUM('INDEX','REJECT') NOT NULL DEFAULT 'INDEX'");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Bei fehlerhafter Mail w&auml;hrend der Best&auml;tigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Bei fehlerhafter Mail w&auml;hrend der Best&auml;tigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden.");
@@ -215,7 +215,7 @@ switch (getExtensionMode()) {
 
                        case '0.2.4': // SQL queries for v0.2.4
                                // Register filter
 
                        case '0.2.4': // SQL queries for v0.2.4
                                // Register filter
-                               registerFilter('page_footer', 'DISPLAY_DEBUG_SQL', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'page_footer', 'DISPLAY_DEBUG_SQL', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Anzeigen (Debug) von ausgef&uuml;hrten SQL-Anweisungen hinzugef&uuml;gt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Anzeigen (Debug) von ausgef&uuml;hrten SQL-Anweisungen hinzugef&uuml;gt.");
@@ -241,6 +241,13 @@ switch (getExtensionMode()) {
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Der Suffix <strong>_enabled</strong> in Konfigurationseintr&auml;gen ist deprecated und sollte nicht mehr verwendet werden. Da sonst Wrapper-Funktionsnamen wie z.B. <strong>isStatsEnabledEnabled()</strong> nach streng genommender Namenskonvention entstehen.");
                                break;
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Der Suffix <strong>_enabled</strong> in Konfigurationseintr&auml;gen ist deprecated und sollte nicht mehr verwendet werden. Da sonst Wrapper-Funktionsnamen wie z.B. <strong>isStatsEnabledEnabled()</strong> nach streng genommender Namenskonvention entstehen.");
                                break;
+
+                       case '0.2.8': // SQL queries for v0.2.8
+                               addConfigChangeSql('mailid_error_redirect', 'mailid_error_redirect', "ENUM('INDEX','REJECT') NOT NULL DEFAULT 'INDEX'");
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("<strong>mailid_error_redirect</strong> bzw. alle ENUMs haben gross geschriebene Werte.");
+                               break;
                } // END - switch
                break;
 
                } // END - switch
                break;
 
index 605126b73b0d46fd0890b205582f937c6faf4348..d7d2e68ba02ae33f789ea6a996b7c271edd97c98 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 20cffee9d0d9f4f5ca6edf843db1eebe500e9a9d..421771e65f69f540965dbd4c9e9f218c324e9375 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3001ff05e685d2aaa53361c27cee055a0d6c54f9..e57adebec8ad8763d376df92ac7ef65909d2b0b1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -53,12 +53,12 @@ switch (getExtensionMode()) {
                addAdminMenuSql('config','config_politician_stop','Politiker-Stopp-Aktion','Einstellungen zur Satire-Aktion &quot;Politiker-Stopp - Jetzt wird zur&uuml;ck zensiert.&quot;', 7);
 
                // Register filter
                addAdminMenuSql('config','config_politician_stop','Politiker-Stopp-Aktion','Einstellungen zur Satire-Aktion &quot;Politiker-Stopp - Jetzt wird zur&uuml;ck zensiert.&quot;', 7);
 
                // Register filter
-               registerFilter('page_footer', 'DISPLAY_POLITICIAN_STOP_SNIPPET', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'page_footer', 'DISPLAY_POLITICIAN_STOP_SNIPPET', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                // Unregister filter
                break;
 
        case 'remove': // Do stuff when removing extension
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'page_footer', 'DISPLAY_POLITICIAN_STOP_SNIPPET', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'page_footer', 'DISPLAY_POLITICIAN_STOP_SNIPPET', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
index 5db7d70aba119d7360c302c14e5d20b8f927c016..5f81ad2c3e79f1ca92e500abddf6b2d06fb42b31 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 88ae83bb6787c5c1dd5ab86ba54c8bd306c8db8c..f4047fd9a4934a0b47de3005e8b583c579e8a747 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -113,8 +113,11 @@ INDEX (`userid`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='rallyes' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='rallyes' LIMIT 1");
 
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='rallyes' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='rallyes' LIMIT 1");
 
+               // Remove points_data entry
+               unregisterExtensionPointsData('rallye_winner');
+
                // Unregister filter
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -312,14 +315,15 @@ Zudem sollten Sie mindestens folgende Templates (in <strong>templates/".getLangu
                                addExtensionDependency('sql_patches');
 
                                // Register filter
                                addExtensionDependency('sql_patches');
 
                                // Register filter
-                               registerFilter('extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt und ist von <strong>sql_patches</strong> abh&auml;ngig.");
                                break;
 
                        case '0.3.6': // SQL queries for v0.3.6
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt und ist von <strong>sql_patches</strong> abh&auml;ngig.");
                                break;
 
                        case '0.3.6': // SQL queries for v0.3.6
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('rallye_winner','points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('rallye_winner', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
@@ -353,7 +357,12 @@ Zudem sollten Sie mindestens folgende Templates (in <strong>templates/".getLangu
 
                        // Check for new started but not notified rallyes
                        $result = SQL_QUERY("SELECT SQL_SMALL_RESULT
 
                        // Check for new started but not notified rallyes
                        $result = SQL_QUERY("SELECT SQL_SMALL_RESULT
-       `id`,`title`,`start_time`,`end_time`,`send_notify`" . $ADD1 . "
+       `id`,
+       `title`,
+       `start_time`,
+       `end_time`,
+       `send_notify`
+       " . $ADD1 . "
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
@@ -389,7 +398,7 @@ WHERE
 LIMIT 1", __FILE__, __LINE__);
                        if ((SQL_NUMROWS($result) == 1) && (isExtensionActive('autopurge'))) {
                                // End rallye here...
 LIMIT 1", __FILE__, __LINE__);
                        if ((SQL_NUMROWS($result) == 1) && (isExtensionActive('autopurge'))) {
                                // End rallye here...
-                               markReferralRallyesAsExpired($result);
+                               stopRallyeByResult($result);
                        } // END - if
 
                        // Free memory
                        } // END - if
 
                        // Free memory
index 0e6a98a781004c108ed6d4e6a4d8b3ab8710f0b7..adbaa02b933daabf996a4802a3834dac2ab525d1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -59,6 +59,9 @@ switch (getExtensionMode()) {
                // SQL commands to run
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='refback'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_refback','list_refback')");
                // SQL commands to run
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='refback'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_refback','list_refback')");
+
+               // Unregister points data
+               unregisterExtensionPointsData('refback');
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -86,11 +89,12 @@ switch (getExtensionMode()) {
 
                        case '0.0.2': // SQL queries for v0.0.2
                                // Update notes (these will be set as task text!)
 
                        case '0.0.2': // SQL queries for v0.0.2
                                // Update notes (these will be set as task text!)
-                               setExtensionUpdateNotes("Ung&uuml;tiges Update seit Revision 246x.");
+                               setExtensionUpdateNotes("Ung&uuml;ltiges Update seit Revision 246x.");
                                break;
 
                        case '0.0.3': // SQL queries for v0.0.3
                                break;
 
                        case '0.0.3': // SQL queries for v0.0.3
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('refback','points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('refback', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
index ca90175333204ce4330be12771bccc24aab6a4a1..1addee44ef324782013585ea05c27260ad8083c7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e7e3b5aecce7de7f839540e69cefbc88b10212d7..4919f4e0673db1076813097540b9a392e7436c1a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.5.6');
+setThisExtensionVersion('0.5.7');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6'));
+setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -58,8 +58,14 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='register' LIMIT 1");
                addDropTableSql('must_register');
 
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='register' LIMIT 1");
                addDropTableSql('must_register');
 
-               // Unregister a filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'register_must_fillout', 'REGISTER_MUST_FILLOUT', true, isExtensionDryRun());
+               // Unregister points data
+               unregisterExtensionPointsData('register_welcome');
+               unregisterExtensionPointsData('referral_bonus');
+               unregisterExtensionPointsData('referral_bonus_ref');
+
+               // Unregister filter
+               unregisterFilter(__FILE__, __LINE__, 'register_must_fillout', 'REGISTER_MUST_FILLOUT', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'PRE_USER_REGISTRATION_GENERIC', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -74,7 +80,7 @@ switch (getExtensionMode()) {
 
        case 'update': // Update an extension
                switch (getCurrentExtensionVersion()) {
 
        case 'update': // Update an extension
                switch (getCurrentExtensionVersion()) {
-                       case '0.1.0': // SQL queries for v0.1
+                       case '0.1.0': // SQL queries for v0.1.0
                                addDropTableSql('must_register');
                                addCreateTableSql('must_register', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
                                addDropTableSql('must_register');
                                addCreateTableSql('must_register', "
 `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
@@ -84,12 +90,12 @@ PRIMARY KEY (`id`)",
                                        'Data which fields the user must fill out');
 
                                // Add all entries as required (DO NOT DELETE THEM FROM DATABASE!)
                                        'Data which fields the user must fill out');
 
                                // Add all entries as required (DO NOT DELETE THEM FROM DATABASE!)
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('surname','Y')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('family','Y')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('street_nr','Y')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('cntry','Y')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('zip','Y')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('city','Y')");
+                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('surname', 'Y')");
+                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('family', 'Y')");
+                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('street_nr', 'Y')");
+                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('cntry', 'Y')");
+                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('zip', 'Y')");
+                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`, `field_required`) VALUES ('city', 'Y')");
 
                                // Add admin menu
                                addAdminMenuSql('setup','config_register','Pflichtfelder','Stellen Sie hier die Pflichtfelder sowohl im Anmeldeformular, als auch im Mitgliedsbereich unter <strong>Profildaten &auml;ndern</strong> ein.', 12);
 
                                // Add admin menu
                                addAdminMenuSql('setup','config_register','Pflichtfelder','Stellen Sie hier die Pflichtfelder sowohl im Anmeldeformular, als auch im Mitgliedsbereich unter <strong>Profildaten &auml;ndern</strong> ein.', 12);
@@ -318,7 +324,7 @@ PRIMARY KEY (`id`)",
 
                        case '0.5.3': // SQL queries for v0.5.3
                                // Register a filter
 
                        case '0.5.3': // SQL queries for v0.5.3
                                // Register a filter
-                               registerFilter('register_must_fillout', 'REGISTER_MUST_FILLOUT', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'register_must_fillout', 'REGISTER_MUST_FILLOUT', false, true, isExtensionDryRun());
 
                                // Run these SQLs
                                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('gender','Y')");
 
                                // Run these SQLs
                                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_must_register` (`field_name`,`field_required`) VALUES ('gender','Y')");
@@ -345,7 +351,8 @@ PRIMARY KEY (`id`)",
                                break;
 
                        case '0.5.6': // SQL queries for v0.5.6
                                break;
 
                        case '0.5.6': // SQL queries for v0.5.6
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('register_welcome','points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('register_welcome', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
@@ -353,6 +360,18 @@ PRIMARY KEY (`id`)",
                                // Update notes
                                setExtensionUpdateNotes("Anmeldewillkommensgutschrift wird nun &uuml;ber die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
                                break;
                                // Update notes
                                setExtensionUpdateNotes("Anmeldewillkommensgutschrift wird nun &uuml;ber die Tabelle <strong>{OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data</strong> verwaltet.");
                                break;
+
+                       case '0.5.7': // SQL queries for v0.5.7
+                               // Register a filter
+                               registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'PRE_USER_REGISTRATION_GENERIC', false, true, isExtensionDryRun());
+
+                               // Register points data
+                               registerExtensionPointsData('referral_bonus', 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('referral_bonus_ref', 'points', 'LOCKED', 'DIRECT');
+
+                               // Update notes
+                               setExtensionUpdateNotes("Anmeldeformular komplett auf drei Filter umgestrickt (mehr dazu siehe Wiki) und weitere Verwendungszwecke registriert.");
+                               break;
                } // END - switch
                break;
 
                } // END - switch
                break;
 
index aa0e632643c128fd5a2929bc52d2e4cb09a8a92d..01d29159dfbe2edabb19558ec3c9b4d144d55283 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -66,7 +66,7 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_removeip' LIMIT 1");
 
                // Remove filters
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_removeip' LIMIT 1");
 
                // Remove filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_youhere_line', 'ADD_ANONYMITY_NOTICE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_youhere_line', 'ADD_ANONYMITY_NOTICE', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -84,7 +84,7 @@ switch (getExtensionMode()) {
                                addExtensionDependency('sql_patches');
 
                                // Add filters
                                addExtensionDependency('sql_patches');
 
                                // Add filters
-                               registerFilter('post_youhere_line', 'ADD_ANONYMITY_NOTICE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'post_youhere_line', 'ADD_ANONYMITY_NOTICE', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt und ist von <strong>sql_patches</strong> abh&auml;ngig.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter hinzugef&uuml;gt und ist von <strong>sql_patches</strong> abh&auml;ngig.");
index 309776aca2f90b50fdfffd151cd9862b9deb7fd3..996391f8ef33af7367d9e971a33dff77f1b652a4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,7 +44,7 @@ if (!defined('__SECURITY')) {
 setThisExtensionVersion('0.1.8');
 
 // Version history array (add more with , '0.0.1' and so on)
 setThisExtensionVersion('0.1.8');
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.8'));
+setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -91,7 +91,7 @@ switch (getExtensionMode()) {
 
                        case '0.1.3': // SQL queries for v0.1.3
                                // Update notes (these will be set as task text!)
 
                        case '0.1.3': // SQL queries for v0.1.3
                                // Update notes (these will be set as task text!)
-                               setExtensionUpdateNotes("Ung&uuml;tiges Update nach neuster Konvention (Erweiterung <strong>menu</strong> ist ung&uuml;ltig).");
+                               setExtensionUpdateNotes("Ung&uuml;ltiges Update nach neuster Konvention (Erweiterung <strong>menu</strong> ist ung&uuml;ltig).");
                                break;
 
                        case '0.1.4': // SQL queries for v0.1.4
                                break;
 
                        case '0.1.4': // SQL queries for v0.1.4
index df3b47ae54381d035ae89ecd5dbe720c0f67a94a..a835dc0b5f371f0a7c12b90d94d8a2d3be18206f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 341cc122cc622638c9f1477cd464bf3148394372..b783e4cf9ea0f4f939d74172c8396ce3b348cb7a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 799fdde0fa436e929d57498cd3d0ead4900f9fa7..057f758564dc9322c5bc27988468bbd3c48906fb 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c699a0604a68e0ae5b95c424f945e378d04c2fe3..cc70660e54356f8a88d66309812d7673a6778fc4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index bf9948b823deb7be96daeb64049a066bb15a4776..2a4d15c8dbb8a7c18cc491dd3c1497896f55263a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,9 +51,6 @@ enableExtensionProductive(false);
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
-               //
-               // SQL commands to run
-               //
                // Try to make it depend on repair
                addExtensionDependency('repair');
 
                // Try to make it depend on repair
                addExtensionDependency('repair');
 
@@ -302,7 +299,7 @@ INDEX (`sponsor_id`)",
                // Add default entries
                //
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_registry` (`ext_name`,`is_active`,`admin_id`,`stamp_added`) VALUES ('sponsor','N',".getCurrentAdminId().",NOW())");
                // Add default entries
                //
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_registry` (`ext_name`,`is_active`,`admin_id`,`stamp_added`) VALUES ('sponsor','N',".getCurrentAdminId().",NOW())");
-               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_action_convert` (`ext_name`,`conv_rate`,`conv_name`) VALUES ('sponsor','10','Mails')");
+               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_action_convert` (`ext_name`,`conv_rate`,`conv_name`) VALUES ('sponsor',10,'Mails')");
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`,`pay_min_count`,`pay_rate`,`pay_currency`) VALUES ('Standard-Paket', 5, 1000.00000, '&euro;')");
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`,`pay_min_count`,`pay_rate`,`pay_currency`) VALUES ('Spar-Paket', 1, 200.00000, '&euro;')");
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`,`pay_min_count`,`pay_rate`,`pay_currency`) VALUES ('Power-Paket', 10, 2000.00000, '&euro;')");
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`,`pay_min_count`,`pay_rate`,`pay_currency`) VALUES ('Standard-Paket', 5, 1000.00000, '&euro;')");
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`,`pay_min_count`,`pay_rate`,`pay_currency`) VALUES ('Spar-Paket', 1, 200.00000, '&euro;')");
                addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_sponsor_paytypes` (`pay_name`,`pay_min_count`,`pay_rate`,`pay_currency`) VALUES ('Power-Paket', 10, 2000.00000, '&euro;')");
@@ -375,14 +372,9 @@ INDEX (`sponsor_id`)",
                //
                // Register module
                //
                //
                // Register module
                //
-               addModuleSql('sponsor', 'Y', 'Y', 'N', 'N');
-               addModuleSql('sponsor_confirm', 'Y', 'Y', 'N', 'N');
-               addModuleSql('sponsor_ref', 'Y', 'Y', 'N', 'N');
-
-               // Update name, if not yet set
-               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Sponsorbereich' WHERE `module`='sponsor' AND `title`='' LIMIT 1");
-               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Sponsor-Best&auml;tigung' WHERE `module`='sponsor_confirm' AND `title`='' LIMIT 1");
-               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='Sponsor-Referrallink' WHERE `module`='sponsor_ref' AND `title`='' LIMIT 1");
+               addModuleSql('sponsor', '{OPEN_TEMPLATE}MODULE_SPONSOR_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
+               addModuleSql('sponsor_confirm', '{OPEN_TEMPLATE}MODULE_SPONSOR_CONFIRM_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
+               addModuleSql('sponsor_ref', '{OPEN_TEMPLATE}MODULE_SPONSOR_REF_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
index b51faa1b57f70cbfb4dd22ee4237f9dc2e6a5627..574302f55f58cae228fa9184b9410fa85a8492bd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.8.7');
+setThisExtensionVersion('0.9.0');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7', '0.7.8', '0.7.9', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6', '0.8.7'));
+setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2', '0.5.3', '0.5.4', '0.5.5', '0.5.6', '0.5.7', '0.5.8', '0.5.9', '0.6.0', '0.6.1', '0.6.2', '0.6.3', '0.6.4', '0.6.4', '0.6.5', '0.6.6', '0.6.7', '0.6.8', '0.6.9', '0.7.0', '0.7.1', '0.7.2', '0.7.3', '0.7.4', '0.7.5', '0.7.6', '0.7.7', '0.7.8', '0.7.9', '0.8.0', '0.8.1', '0.8.2', '0.8.3', '0.8.4', '0.8.5', '0.8.6', '0.8.7', '0.8.8', '0.8.9', '0.9.0'));
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
@@ -95,9 +95,18 @@ IN (
 `action`='rals' OR
 `action`='account'");
 
 `action`='rals' OR
 `action`='account'");
 
+               // Remove points data
+               unregisterExtensionPointsData('pool_payback');
+               unregisterExtensionPointsData('mail_deleted');
+               unregisterExtensionPointsData('admin_add_single');
+               unregisterExtensionPointsData('admin_add_single_ref');
+               unregisterExtensionPointsData('admin_add_all');
+               unregisterExtensionPointsData('admin_add_all_ref');
+
                // Unregister filter
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'GENERATE_FILE_SECRET_HASH', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -149,7 +158,7 @@ IN (
                                break;
 
                        case '0.0.6': // SQL queries for v0.0.6
                                break;
 
                        case '0.0.6': // SQL queries for v0.0.6
-                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'N'");
+                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_extensions` ADD `ext_has_css` ENUM('Y','N') NOT NULL DEFAULT 'Y'");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Es k&ouml;nnen nun SQL-Updates von einander abh&auml;ngig gemacht werden und die CSS-Datei kann per Admin-Bereich (wegen Debuggings) ein- bzw. ausgeschaltet werden.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Es k&ouml;nnen nun SQL-Updates von einander abh&auml;ngig gemacht werden und die CSS-Datei kann per Admin-Bereich (wegen Debuggings) ein- bzw. ausgeschaltet werden.");
@@ -281,8 +290,8 @@ IN (
                                $auto_type = 'png';
 
                                // Is the JPEG file found and required PHP function there?
                                $auto_type = 'png';
 
                                // Is the JPEG file found and required PHP function there?
-                               if ((isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.jpg')) && function_exists('imagecreatefromjpeg')) {
-                                       // Switch to JPEG format
+                               if ((!isFileReadable(getPath() . 'theme/' . getCurrentTheme() . '/images/code_bg.png')) || (!function_exists('imagecreatefrompng'))) {
+                                       // Switch to JPEG format because PNG is not available
                                        $auto_type = 'jpg';
                                } // END - if
                                addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
                                        $auto_type = 'jpg';
                                } // END - if
                                addConfigAddSql('img_type', "ENUM('jpg','png') NOT NULL DEFAULT '" . $auto_type . "'");
@@ -498,7 +507,7 @@ INDEX (`admin_id`)",
                                addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
                                addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
                                addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
                                addConfigAddSql('proxy_port', 'INT(5) UNSIGNED NOT NULL DEFAULT 0');
                                addConfigAddSql('proxy_username', "VARCHAR(255) NOT NULL DEFAULT ''");
                                addConfigAddSql('proxy_password', "VARCHAR(255) NOT NULL DEFAULT ''");
-                               addAdminMenuSql('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so k&ouml;nnen Sie Ihren {?mt_word?} so konfigurieren, dass es Updates durch diesen hindurch sucht!', 15);
+                               addAdminMenuSql('setup','config_proxy','Proxy-Einstellungen','Sollte Ihr Webserver sich hinter einem Proxy befinden, so k&ouml;nnen Sie Ihren {?mt_word?} so konfigurieren, dass es z.B. Updates, Abfragen von Netzwerkupdates &uuml;ber diesen t&auml;tigt.', 15);
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Proxy-Einstellungen hinzugef&uuml;gt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Proxy-Einstellungen hinzugef&uuml;gt.");
@@ -708,7 +717,7 @@ UNIQUE INDEX `name_function` (`filter_name`,`filter_function`)",
 
                        case '0.6.9': // SQL queries for 0.6.9
                                // Register filter
 
                        case '0.6.9': // SQL queries for 0.6.9
                                // Register filter
-                               registerFilter('member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Zur&uuml;cksetzens des fehlgeschlagenen Mitgliederlogins hinzugef&uuml;gt (internes TODO).");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Zur&uuml;cksetzens des fehlgeschlagenen Mitgliederlogins hinzugef&uuml;gt (internes TODO).");
@@ -729,7 +738,7 @@ INDEX (`ip`)",
                                addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
 
                                // Register filter
                                addConfigAddSql('dns_cache_timeout', 'BIGINT(20) NOT NULL DEFAULT ' . (60*60*24));
 
                                // Register filter
-                               registerFilter('reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'reset', 'CLEANUP_DNS_CACHE', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("IP-Resolver-Klasse hinzugef&uuml;gt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("IP-Resolver-Klasse hinzugef&uuml;gt, um bei der Erweiterung ext-network DNS-Anfragen einzusparen.");
@@ -810,7 +819,7 @@ INDEX (`ip`)",
 `payment_method` ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL',
 `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N',
 PRIMARY KEY (`id`),
 `payment_method` ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL',
 `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N',
 PRIMARY KEY (`id`),
-INDEX (`subject`)",
+UNIQUE KEY (`subject`)",
                                        'Points account data');
 
                                // Admin menu
                                        'Points account data');
 
                                // Admin menu
@@ -833,8 +842,12 @@ INDEX (`subject`)",
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `ext_name` `subject` VARCHAR(255) NOT NULL DEFAULT ''");
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD INDEX `subject` (`subject`)");
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N'");
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `ext_name` `subject` VARCHAR(255) NOT NULL DEFAULT ''");
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD INDEX `subject` (`subject`)");
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD `notify_recipient` ENUM('Y','N') NOT NULL DEFAULT 'N'");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('pool_payback','points','LOCKED','DIRECT')");
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('mail_deleted','points','LOCKED','DIRECT')");
+
+                               // Register points data
+                               registerExtensionPointsData('pool_payback', 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('mail_deleted', 'points', 'LOCKED', 'DIRECT');
+
+                               // Remove deprecated configuration entry
                                addConfigDropSql('reg_points_mode');
 
                                // Update notes (these will be set as task text!)
                                addConfigDropSql('reg_points_mode');
 
                                // Update notes (these will be set as task text!)
@@ -862,7 +875,7 @@ INDEX (`history_last_used` DESC)",
                                        'History of used data');
 
                                // Register filter
                                        'History of used data');
 
                                // Register filter
-                               registerFilter('add_history_entry', 'ADD_HISTORY_ENTRY', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'add_history_entry', 'ADD_HISTORY_ENTRY', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Allgemeine Historie-Tabelle hinzugef&uuml;gt.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Allgemeine Historie-Tabelle hinzugef&uuml;gt.");
@@ -878,7 +891,7 @@ INDEX (`history_last_used` DESC)",
 
                        case '0.8.6': // SQL queries for v0.8.6
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `payment_method` `payment_method` ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL'");
 
                        case '0.8.6': // SQL queries for v0.8.6
                                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` CHANGE `payment_method` `payment_method` ENUM('DIRECT','REFERRAL') NOT NULL DEFAULT 'REFERRAL'");
-                               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_points_data` SET `payment_method`='REFERRAL' WHERE `payment_method`='REFERAL'");
+                               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_points_data` SET `payment_method`='REFERRAL' WHERE `payment_method` != 'DIRECT'");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Referral, REFERRAL soll es &uuml;berall heissen (ist ein Typo nur mit einem R zu schreiben).");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Referral, REFERRAL soll es &uuml;berall heissen (ist ein Typo nur mit einem R zu schreiben).");
@@ -888,7 +901,36 @@ INDEX (`history_last_used` DESC)",
                                addConfigAddSql('admin_menu_javascript', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
 
                                // Update notes (these will be set as task text!)
                                addConfigAddSql('admin_menu_javascript', "ENUM('Y','N') NOT NULL DEFAULT 'N'");
 
                                // Update notes (these will be set as task text!)
-                               setExtensionUpdateNotes("Es kann ausgew&auml;hlt werden, ob das herk&ouml;mliche JavaScrit-lose Men&uuml; oder mit JavaScript aktiv sein soll. Das herk&ouml;mliche ist erstmal Standarteinstellung, bis das JavaScript-Men&uuml; funktioniert.");
+                               setExtensionUpdateNotes("Es kann ausgew&auml;hlt werden, ob das herk&ouml;mliche JavaScrit-lose Men&uuml; oder mit JavaScript aktiv sein soll. Das herk&ouml;mliche ist erstmal Standardeinstellung, bis das JavaScript-Men&uuml; funktioniert.");
+                               break;
+
+                       case '0.8.8': // SQL queries for v0.8.8
+                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` DROP INDEX `subject`, ADD UNIQUE `subject` (`subject`)");
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Der Wert in der Spalte <strong>subject</strong> sollte nur einmal vorkommen, damit eventuell nichts mehrfach durchfl&auuml;ft.");
+                               break;
+
+                       case '0.8.9': // SQL queries for v0.8.9
+                               addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_points_data` ADD `account_provider` ENUM('EXTENSION', 'CUSTOM') NOT NULL DEFAULT 'EXTENSION'");
+                               addConfigAddSql('points_remove_account', "VARCHAR(255) NOT NULL DEFAULT 'points'");
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("&quot;Provider&quot; hinzugef&uuml;gt, welcher nur <strong>Erweiterung</strong> oder <strong>Selbstdefiniert sein kann. Es k&ouml;nnen dann auch nur selbstdefinierte gel&ouml;scht oder editiert werden, Erweiterungen k&ouml;nnen auch nur &quot;einige&quot; Eintr&auml;ge l&ouml;schen.");
+                               break;
+
+                       case '0.9.0': // SQL queries for v0.9.0
+                               // Register filter
+                               registerFilter(__FILE__, __LINE__, 'init', 'GENERATE_FILE_SECRET_HASH', false, true, isExtensionDryRun());
+
+                               // Register points data
+                               registerExtensionPointsData('admin_add_single', 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('admin_add_single_ref', 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('admin_add_all', 'points', 'LOCKED', 'DIRECT');
+                               registerExtensionPointsData('admin_add_all_ref', 'points', 'LOCKED', 'DIRECT');
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter zum Initialisieren von ext-sql_patches registriert und Eintr&auml;ge in <strong>{?_MYSQL_PREFIX?}_points_data</strong> hinzugef&uuml;gt.");
                                break;
                } // END - switch
                break;
                                break;
                } // END - switch
                break;
@@ -909,26 +951,31 @@ INDEX (`history_last_used` DESC)",
                // Init key
                setConfigEntry('secret_key', '');
 
                // Init key
                setConfigEntry('secret_key', '');
 
-               // Read key from secret file
-               if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == ''))) {
-                       // Maybe need setup of secret key!
-                       loadIncludeOnce('inc/gen_sql_patches.php');
-               } // END - if
-
-               // Test again
-               if ((isExtensionInstalledAndNewer('sql_patches', '0.3.6')) && (getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
-                       // File hash fas generated so we can also file the secret file... hopefully.
-                       $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
-                       if (isFileReadable($hashFile)) {
-                               // Read file
-                               setConfigEntry('secret_key', readFromFile($hashFile));
-                       } else {
-                               // Remove it from database
-                               updateConfiguration('file_hash', '');
-
-                               // Cannot read secret file!
-                               debug_report_bug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
-                       }
+               // Is the version recent enought for secret keys?
+               if (isExtensionInstalledAndNewer('sql_patches', '0.3.6')) {
+                       // Read key from secret file
+                       if ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == '')) {
+                               // Maybe need setup of secret key!
+                               loadIncludeOnce('inc/gen_sql_patches.php');
+                       } // END - if
+
+                       // Test again
+                       if ((getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
+                               // File hash fas generated so we can also file the secret file... hopefully.
+                               $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
+
+                               // Is the secret key file readable?
+                               if (isFileReadable($hashFile)) {
+                                       // Read file
+                                       setConfigEntry('secret_key', readFromFile($hashFile));
+                               } else {
+                                       // Remove it from database
+                                       updateConfiguration('file_hash', '');
+
+                                       // Cannot read secret file!
+                                       reportBug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
+                               }
+                       } // END - if
                } // END - if
                break;
 
                } // END - if
                break;
 
index 0265d8ee165f2718e795d17db6c78f52e9744597..c3a71ed3de9b95cb882bc0798087123eb8012808 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 60ad16778a3084e75184f9cafede38b32455e96d..d8f605d05f0269b126be8d3020966dc1979f56e4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -154,7 +154,7 @@ UNIQUE INDEX `status_action` (`actions_status`,`actions_action`)",
                addConfigAddSql('surfbar_dynamic_percent', 'FLOAT(10,5) UNSIGNED NOT NULL DEFAULT 10.00000');
                addConfigAddSql('surfbar_max_order', 'INT(7) UNSIGNED NOT NULL DEFAULT 10');
                addConfigAddSql('surfbar_restart_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (60 * 6));
                addConfigAddSql('surfbar_dynamic_percent', 'FLOAT(10,5) UNSIGNED NOT NULL DEFAULT 10.00000');
                addConfigAddSql('surfbar_max_order', 'INT(7) UNSIGNED NOT NULL DEFAULT 10');
                addConfigAddSql('surfbar_restart_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (60 * 6));
-               addConfigAddSql('surfbar_autostart', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
+               addConfigAddSql('surfbar_auto_start', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
                addConfigAddSql('surfbar_migrate_urls', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
                addConfigAddSql('surfbar_total_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
                addConfigAddSql('surfbar_daily_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
                addConfigAddSql('surfbar_migrate_urls', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
                addConfigAddSql('surfbar_total_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
                addConfigAddSql('surfbar_daily_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0');
@@ -191,20 +191,20 @@ UNIQUE INDEX `status_action` (`actions_status`,`actions_action`)",
                addAdminMenuSql('surfbar', 'unlock_surfbar_urls', 'Wartende URLs freigeben', 'Geben Sie hier f&uuml;r den Besuchertausch gebuchte URLs frei.', 3);
                addAdminMenuSql('surfbar', 'config_surfbar', 'Einstellungen', 'Einstellungen am Besuchertausch &auml;ndern, wie Festverg&uuml;tung, prozentuale Ref-Verg&uuml;tung und vieles mehr.', 4);
                addAdminMenuSql('surfbar', 'surfbar_stats', 'Statistiken', 'Detailierte Statistiken zu einer ausgew&auml;hlten URL anzeigen.', 5);
                addAdminMenuSql('surfbar', 'unlock_surfbar_urls', 'Wartende URLs freigeben', 'Geben Sie hier f&uuml;r den Besuchertausch gebuchte URLs frei.', 3);
                addAdminMenuSql('surfbar', 'config_surfbar', 'Einstellungen', 'Einstellungen am Besuchertausch &auml;ndern, wie Festverg&uuml;tung, prozentuale Ref-Verg&uuml;tung und vieles mehr.', 4);
                addAdminMenuSql('surfbar', 'surfbar_stats', 'Statistiken', 'Detailierte Statistiken zu einer ausgew&auml;hlten URL anzeigen.', 5);
-               addAdminMenuSql('surfbar', 'list_surfbar_actions', 'Mitgliederaktionen', 'Listet alle Mitgliederaktionen auf.', 6);
+               addAdminMenuSql('surfbar', 'list_surfbar_actions', 'Mitglieder-Aktionen', 'Listet alle Mitglieder-Aktionen auf.', 6);
 
                // Register module
 
                // Register module
-               addModuleSql('surfbar', 'Y', 'Y', 'N', 'N');
+               addModuleSql('surfbar', '{OPEN_TEMPLATE}MODULE_SURFBAR_TITLE{CLOSE_TEMPLATE}', 'Y', 'Y', 'N', 'N');
 
                // Insert data for points accounts
 
                // Insert data for points accounts
-               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('monthly_bonus','points','LOCKED','DIRECT')");
+               registerExtensionPointsData('monthly_surfbar', 'points', 'LOCKED', 'DIRECT');
 
                // This extension depends on ext-sql_patches
                addExtensionDependency('sql_patches');
 
                // Register filters
 
                // This extension depends on ext-sql_patches
                addExtensionDependency('sql_patches');
 
                // Register filters
-               registerFilter('post_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_STATUS', false, true, isExtensionDryRun());
-               registerFilter('pre_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_VALIDATE_DATA', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'post_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_STATUS', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'pre_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_VALIDATE_DATA', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -220,9 +220,12 @@ UNIQUE INDEX `status_action` (`actions_status`,`actions_action`)",
                // Unregister module
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='surfbar' LIMIT 1");
 
                // Unregister module
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='surfbar' LIMIT 1");
 
+               // Unregister points data
+               unregisterExtensionPointsData('monthly_surfbar');
+
                // Unregister filter
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'post_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_STATUS', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'pre_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_VALIDATE_DATA', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'post_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_STATUS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'pre_change_surfbar_url_status', 'SURFBAR_CHANGE_URL_VALIDATE_DATA', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
index aab3190c14322768b393d6bdea1850233a43d95c..486eb0423bac5d0301aeb931a8ac8446a54bab89 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8ad3a93d01e51fb7ef1bd148633dc391dfbbe7a9..57c7433f8657e005244020660fb85b735682c425 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 638a45dbf653beee509049cac376cbc55e8c8692..a05a88903148fcad56b5deb447715dcc48c4c1a9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a6ac8f86558ce9d49fe9f759d4bbeb248501a011..d8ead4b10ee3471958ea002dfa523612a3de7acd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.1.2');
+setThisExtensionVersion('0.1.3');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2'));
+setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3'));
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
 
 switch (getExtensionMode()) {
        case 'register': // Do stuff when installation is running
@@ -65,8 +65,9 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='themes' OR `what`='themes'");
 
                // Unregister filters
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `action`='themes' OR `what`='themes'");
 
                // Unregister filters
-               unregisterFilter(__FUNCTION__, __LINE__, 'init', 'HANDLE_THEME_CHANGE', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'member_login_check', 'SET_USERS_THEME', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'HANDLE_THEME_CHANGE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'member_login_check', 'SET_USERS_THEME', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'THEME_USER_REGISTRATION_ADD_SQL_COLUMNS', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -162,7 +163,7 @@ INDEX (`theme_active`)", 'Themes');
 
                        case '0.1.0': // SQL queries for v0.1.0
                                // Register filter
 
                        case '0.1.0': // SQL queries for v0.1.0
                                // Register filter
-                               registerFilter('init', 'HANDLE_THEME_CHANGE', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'init', 'HANDLE_THEME_CHANGE', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("&Auml;ndern des Designs nun im Filter (internes TODO).");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("&Auml;ndern des Designs nun im Filter (internes TODO).");
@@ -170,7 +171,7 @@ INDEX (`theme_active`)", 'Themes');
 
                        case '0.1.1': // SQL queries for v0.1.1
                                // Register filter
 
                        case '0.1.1': // SQL queries for v0.1.1
                                // Register filter
-                               registerFilter('member_login_check', 'SET_USERS_THEME', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'member_login_check', 'SET_USERS_THEME', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Setzen des Mitgliedes&#39; eigener Design-Auswahl per Filter (internes TODO).");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Setzen des Mitgliedes&#39; eigener Design-Auswahl per Filter (internes TODO).");
@@ -183,6 +184,17 @@ INDEX (`theme_active`)", 'Themes');
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Nicht mehr ben&ouml;tigtes Men&uuml; zum Pr&uuml;fen von Theme-Versionen entfernt.");
                                break;
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Nicht mehr ben&ouml;tigtes Men&uuml; zum Pr&uuml;fen von Theme-Versionen entfernt.");
                                break;
+
+                       case '0.1.3': // SQL queries for v0.1.3
+                               // Register filter
+                               registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'THEME_USER_REGISTRATION_ADD_SQL_COLUMNS', false, true, isExtensionDryRun());
+
+                               // This depends on ext-register
+                               addExtensionDependency('register');
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter f&uuml;r Mitgliederanmeldung hinzugef&uuml;gt.");
+                               break;
                } // END - switch
                break;
 
                } // END - switch
                break;
 
index 6d18e7a67b636b30f427e4b8d8c490ec609f49f5..fdc7460acda22ed1cc17ba291c8b22b5759eb023 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -55,7 +55,7 @@ switch (getExtensionMode()) {
                addAdminMenuSql('setup', 'config_timezone', 'Zeitzone', 'Einstellungen an der Zeitzone k&ouml;nnen hier konfiguriert werden.', 10);
 
                // Register filter
                addAdminMenuSql('setup', 'config_timezone', 'Zeitzone', 'Einstellungen an der Zeitzone k&ouml;nnen hier konfiguriert werden.', 10);
 
                // Register filter
-               registerFilter('init', 'INIT_TIMEZONE', false, true, isExtensionDryRun());
+               registerFilter(__FILE__, __LINE__, 'init', 'INIT_TIMEZONE', false, true, isExtensionDryRun());
                break;
 
        case 'remove': // Do stuff when removing extension
                break;
 
        case 'remove': // Do stuff when removing extension
@@ -63,7 +63,7 @@ switch (getExtensionMode()) {
                addExtensionSQL("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_timezone' LIMIT 1");
 
                // Unregister filter
                addExtensionSQL("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_timezone' LIMIT 1");
 
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'init', 'INIT_TIMEZONE', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'init', 'INIT_TIMEZONE', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
index 0278207fe59aebb5fd729231e4b5d647d61dd5eb..81a75423679ef9126f1493198b4e9d0a9ec567a0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2e2a1a21b466c91fb76ff423f8ba5b7f553077ce..c852bb24d74d2dc03ac4c9422fcd5723c6968e89 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -105,6 +105,9 @@ INDEX (`to_userid`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='transfer'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='transfer' LIMIT 1");
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `opt_in`");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='transfer'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='transfer' LIMIT 1");
                addExtensionSql("ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` DROP `opt_in`");
+
+               // Unregister points data
+               unregisterExtensionPointsData('transfer');
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -257,7 +260,7 @@ INDEX (`to_userid`)",
 
                        case '0.2.7': // SQL queries for v0.2.7
                                // Update notes (these will be set as task text!)
 
                        case '0.2.7': // SQL queries for v0.2.7
                                // Update notes (these will be set as task text!)
-                               setExtensionUpdateNotes("Die {?POINTS?} k&ouml;nnen nun wieder wie gewohnt transferiert werden. Der Grund f&uuml;r <span class=\"bad\">{--TRANSFER_INVALID_PASSWORD--}</span> war, dass der Cookie-Hash ein anderer ist, als der in der Datenbank... :-/");
+                               setExtensionUpdateNotes("Die {?POINTS?} k&ouml;nnen nun wieder wie gewohnt transferiert werden. Der Grund f&uuml;r <span class=\"bad\">{--MEMBER_TRANSFER_INVALID_PASSWORD--}</span> war, dass der Cookie-Hash ein anderer ist, als der in der Datenbank... :-/");
                                break;
 
                        case '0.2.8': // SQL queries for v0.2.8
                                break;
 
                        case '0.2.8': // SQL queries for v0.2.8
@@ -271,7 +274,8 @@ INDEX (`to_userid`)",
                                break;
 
                        case '0.3.0': // SQL queries for v0.3.0
                                break;
 
                        case '0.3.0': // SQL queries for v0.3.0
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('transfer','points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('transfer', 'points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
index 8583251bac19fad3ebc722bd7396f1a1258adaff..49915fd3e89903e84406657a0034ae0cff3efb1f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -56,7 +56,7 @@ switch (getExtensionMode()) {
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_uberwach' LIMIT 1");
 
                // Unregister filter
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what`='config_uberwach' LIMIT 1");
 
                // Unregister filter
-               unregisterFilter(__FUNCTION__, __LINE__, 'page_footer', 'DISPLAY_UBERWACH_SNIPPET', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'page_footer', 'DISPLAY_UBERWACH_SNIPPET', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -70,7 +70,7 @@ switch (getExtensionMode()) {
        case 'update': // Update an extension
                switch (getCurrentExtensionVersion()) {
                        case '0.0.1': // SQL queries for v0.0.1
        case 'update': // Update an extension
                switch (getCurrentExtensionVersion()) {
                        case '0.0.1': // SQL queries for v0.0.1
-                               registerFilter('page_footer', 'DISPLAY_UBERWACH_SNIPPET', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'page_footer', 'DISPLAY_UBERWACH_SNIPPET', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Anzeigen des Snippets hinzugef&uuml;gt");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter zum Anzeigen des Snippets hinzugef&uuml;gt");
index b4591e63d711188099577cb70b956e8a28c6fed0..f53fd1d922847e2a7061ee7b7f99dc751e8f0086 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7d39cc57eef173951a3bab47a77edb952020cbae..0e6c7b210ca76fe8e5c0eb7fa204e93ff2324986 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 345120bbdf0750d7f84c2a1d306eb373f23e864c..b2f1be148d8cf44c05508b0e3a06837963a02d3a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,10 +41,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Version number
 } // END - if
 
 // Version number
-setThisExtensionVersion('0.4.8');
+setThisExtensionVersion('0.5.2');
 
 // Version history array (add more with , '0.0.1' and so on)
 
 // Version history array (add more with , '0.0.1' and so on)
-setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8'));
+setExtensionVersionHistory(array('0.0.0', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7', '0.1.8', '0.1.9', '0.2.0', '0.2.1', '0.2.2', '0.2.3', '0.2.4', '0.2.5', '0.2.6', '0.2.7', '0.2.8', '0.2.9', '0.3.0', '0.3.1', '0.3.2', '0.3.3', '0.3.4', '0.3.5', '0.3.6', '0.3.7', '0.3.8', '0.3.9', '0.4.0', '0.4.1', '0.4.2', '0.4.3', '0.4.4', '0.4.5', '0.4.6', '0.4.7', '0.4.8', '0.4.9', '0.5.0', '0.5.1', '0.5.2'));
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
 
 // Keep this extension always active!
 setExtensionAlwaysActive('Y');
@@ -82,7 +82,7 @@ INDEX (`cat_id`)",
 `user_hash` VARCHAR(255) NULL DEFAULT NULL,
 `REMOTE_ADDR` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
 `last_online` VARCHAR(10) NOT NULL DEFAULT 0,
 `user_hash` VARCHAR(255) NULL DEFAULT NULL,
 `REMOTE_ADDR` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0',
 `last_online` VARCHAR(10) NOT NULL DEFAULT 0,
-`last_module` VARCHAR(255) NOT NULL DEFAULT '',
+`last_module` VARCHAR(255) NULL DEFAULT NULL,
 `ref_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `total_logins` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `gender` ENUM('M','F') NOT NULL DEFAULT 'M',
 `ref_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `total_logins` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
 `gender` ENUM('M','F') NOT NULL DEFAULT 'M',
@@ -162,7 +162,7 @@ INDEX (`stats_type`)",
                addAdminMenuSql('user', NULL, 'Mitglieder-Management', 'Mitglieder freischalten, sperren, Accounts editieren, Neuanmeldungen verwalten, {OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben und abziehen und und und...', 3);
                addAdminMenuSql('user', 'del_user', 'Mitglied l&ouml;schen', 'L&ouml;schen Sie hier Mitglied, die gegen die AGBs mehrmals verstossen haben. Bitte seien Sie nett zu Ihren Mitgliedern und l&ouml;schen Sie nicht gleich.', 1);
                addAdminMenuSql('user', 'lock_user', 'Mitglied sperren / entsperren', 'Sperren Sie Mitglied, die zu viele unbest&auml;tigte Mails haben oder gegen Ihre AGBs verstossen haben &uuml;ber diesen Men&uuml;punkt.', 3);
                addAdminMenuSql('user', NULL, 'Mitglieder-Management', 'Mitglieder freischalten, sperren, Accounts editieren, Neuanmeldungen verwalten, {OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben und abziehen und und und...', 3);
                addAdminMenuSql('user', 'del_user', 'Mitglied l&ouml;schen', 'L&ouml;schen Sie hier Mitglied, die gegen die AGBs mehrmals verstossen haben. Bitte seien Sie nett zu Ihren Mitgliedern und l&ouml;schen Sie nicht gleich.', 1);
                addAdminMenuSql('user', 'lock_user', 'Mitglied sperren / entsperren', 'Sperren Sie Mitglied, die zu viele unbest&auml;tigte Mails haben oder gegen Ihre AGBs verstossen haben &uuml;ber diesen Men&uuml;punkt.', 3);
-               addAdminMenuSql('user', 'list_user', 'Mitglied auflisten', 'Listen Sie alle Mitglied oder eingeschr&auml;nkt nach Suchkritieren Ihre Userdatenbank auf. Sie k&ouml;nen per Klick auf die Usernummer sich Details zum Mitglied ansehen.', 4);
+               addAdminMenuSql('user', 'list_user', 'Mitglieder auflisten', 'Listen Sie alle Mitglied oder eingeschr&auml;nkt nach Suchkritieren Ihre Userdatenbank auf. Sie k&ouml;nen per Klick auf die Usernummer sich Details zum Mitglied ansehen.', 4);
                addAdminMenuSql('user', 'add_points', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben', 'Buchen Sie einem Mitglied direkt {OPEN_CONFIG}POINTS{CLOSE_CONFIG} auf. Sie k&ouml;nnen dazu auch einen Kommentar mitsenden.', 5);
                addAdminMenuSql('user', 'edit_user', 'Account editieren', 'Daten eines Mitglieder-Accountes &auml;ndern.', 6);
                addAdminMenuSql('user', 'list_refs', 'Referrals anzeigen', 'Mit diesem Men&uuml;punkt k&ouml;nnen Sie die generierten Referrals eines Mitgliedes auflisten.', 7);
                addAdminMenuSql('user', 'add_points', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG} gutschreiben', 'Buchen Sie einem Mitglied direkt {OPEN_CONFIG}POINTS{CLOSE_CONFIG} auf. Sie k&ouml;nnen dazu auch einen Kommentar mitsenden.', 5);
                addAdminMenuSql('user', 'edit_user', 'Account editieren', 'Daten eines Mitglieder-Accountes &auml;ndern.', 6);
                addAdminMenuSql('user', 'list_refs', 'Referrals anzeigen', 'Mit diesem Men&uuml;punkt k&ouml;nnen Sie die generierten Referrals eines Mitgliedes auflisten.', 7);
@@ -183,8 +183,14 @@ INDEX (`stats_type`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_user','user_contct','list_user_del') OR `action`='user'");
 
                // Register new filters for gathering points
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `what` IN('config_user','user_contct','list_user_del') OR `action`='user'");
 
                // Register new filters for gathering points
-               unregisterFilter(__FUNCTION__, __LINE__, 'get_total_points', 'USER_POINTS', true, isExtensionDryRun());
-               unregisterFilter(__FUNCTION__, __LINE__, 'get_own_points', 'USER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_total_points', 'USER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_own_points', 'USER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_locked_points', 'LOCKED_USER_POINTS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'get_all_point_columns', 'GET_ALL_USER_POINTS_COLUMN_NAMES', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'user_exclusion_sql', 'TESTER_USER_EXCLUSION_SQL', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'user_inclusion_sql', 'TESTER_USER_INCLUSION_SQL', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'pre_user_registration', 'TESTER_USER_REGISTRATION_ADD_SQL_COLUMNS', true, isExtensionDryRun());
+               unregisterFilter(__FILE__, __LINE__, 'convert_user_data_columns', 'ADD_USER_DATA_CONVERT_SQL_COLUMNS', true, isExtensionDryRun());
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -424,8 +430,8 @@ INDEX (`userid`)",
 
                        case '0.4.0': // SQL queries for v0.4.0
                                // Register new filters for gathering points
 
                        case '0.4.0': // SQL queries for v0.4.0
                                // Register new filters for gathering points
-                               registerFilter('get_total_points', 'USER_POINTS', false, true, isExtensionDryRun());
-                               registerFilter('get_own_points', 'USER_POINTS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'get_total_points', 'USER_POINTS', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'get_own_points', 'USER_POINTS', false, true, isExtensionDryRun());
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter registriert, die das eigene {?POINTS?}-Guthaben des Mitgliedes zur&uuml;ckliefern.");
 
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("Filter registriert, die das eigene {?POINTS?}-Guthaben des Mitgliedes zur&uuml;ckliefern.");
@@ -501,6 +507,72 @@ INDEX (`refid`)",
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("0000-00-00  00:00:00 ist kein Standardwert mehr, NULL ist dies.");
                                break;
                                // Update notes (these will be set as task text!)
                                setExtensionUpdateNotes("0000-00-00  00:00:00 ist kein Standardwert mehr, NULL ist dies.");
                                break;
+
+                       case '0.4.8': // SQL queries for v0.4.8
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Dieses Update ist nicht mehr g&uuml;ltig.");
+                               break;
+
+                       case '0.4.9': // SQL queries for v0.4.9
+                               addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `last_module` `last_what` VARCHAR(255) NULL DEFAULT NULL');
+
+                               // Register filter locked points
+                               registerFilter(__FILE__, __LINE__, 'get_locked_points', 'LOCKED_USER_POINTS', false, true, isExtensionDryRun());
+
+                               // Register filter for all column names
+                               registerFilter(__FILE__, __LINE__, 'get_all_point_columns', 'GET_ALL_USER_POINTS_COLUMN_NAMES', false, true, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Die Spalte <strong>last_module</strong> ist nach <strong>last_what</strong> umbenannt und hat nun NULL als Ausgangswert und Filter f&uuml;r gesperrtes Guthaben hinzugef&uuml;gt.");
+                               break;
+
+                       case '0.5.0': // SQL queries for v0.5.0
+                               // Prefix for all test accounts
+                               addConfigAddSql('tester_user_maximum', 'INT(5) UNSIGNED ZEROFILL NOT NULL DEFAULT 00999');
+                               addConfigAddSql('tester_user_gender', "ENUM('M','F') NOT NULL DEFAULT 'M'");
+                               addConfigAddSql('tester_user_surname_prefix', "VARCHAR(255) NOT NULL DEFAULT 'tester_'");
+                               addConfigAddSql('tester_user_family', "VARCHAR(255) NOT NULL DEFAULT 'Testbenutzer'");
+                               addConfigAddSql('tester_user_street_nr', "VARCHAR(255) NOT NULL DEFAULT 'Teststra&szlig;e 123'");
+                               addConfigAddSql('tester_user_zip', 'INT(6) UNSIGNED NOT NULL DEFAULT 12345');
+                               addConfigAddSql('tester_user_city', "VARCHAR(255) NOT NULL DEFAULT 'Teststadt'");
+                               addConfigAddSql('tester_user_email', "VARCHAR(255) NOT NULL DEFAULT '{OPEN_CONFIG}WEBMASTER{CLOSE_CONFIG}'");
+                               addConfigAddSql('tester_user_default_refid', 'BIGINT(20) NULL DEFAULT NULL');
+                               addConfigAddSql('tester_user_password', "VARCHAR(255) NOT NULL DEFAULT ''");
+                               addConfigAddSql('tester_user_check_cat', "ENUM('Y','N') NOT NULL DEFAULT 'Y'");
+
+                               // Admin menu
+                               addAdminMenuSql('user', 'add_tester_user', 'Testbenutzer anlegen', 'Es k&ouml;nnen hier bis zu 100 Testbenutzer angelegt werden. Diese haben als Vornamen immer den Pr&auml;fix <span class="data">{?tester_user_surname_prefix?}</span> und werden bei Null anfangend bis 99 hochgez&auml;lt.', 1);
+                               addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Mitglieder auflisten' WHERE `what`='list_user' LIMIT 1");
+
+                               // Change 'zip' to INT(6)
+                               addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_user_data` CHANGE `zip` `zip` INT(6) NOT NULL DEFAULT 0');
+
+                               // Register filter for WHERE/AND exclusion/inclusion statements
+                               registerFilter(__FILE__, __LINE__, 'user_exclusion_sql', 'TESTER_USER_EXCLUSION_SQL', false, true, isExtensionDryRun());
+                               registerFilter(__FILE__, __LINE__, 'user_inclusion_sql', 'TESTER_USER_INCLUSION_SQL', false, true, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Es k&ouml;nnen nun Test-Benutzer angelegt werden. Noch m&uuml;ssen diese &uuml;berall ausgeschlossen werden, damit die Mediadaten nicht unn&ouml;tig verf&auml;lscht werden.");
+                               break;
+
+                       case '0.5.1': // SQL queries for v0.5.1
+                               // Register a filter
+                               registerFilter(__FILE__, __LINE__, 'pre_user_registration', 'TESTER_USER_REGISTRATION_ADD_SQL_COLUMNS', false, true, isExtensionDryRun());
+
+                               // This depends on ext-register
+                               addExtensionDependency('register');
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter zum Hinzuf&uuml;gen von SQL-Spalten f&uuml;r die Mitgliederanmeldung hinzugef&uuml;gt.");
+                               break;
+
+                       case '0.5.2': // SQL queries for v0.5.2
+                               // Register a filter
+                               registerFilter(__FILE__, __LINE__, 'convert_user_data_columns', 'ADD_USER_DATA_CONVERT_SQL_COLUMNS', false, true, isExtensionDryRun());
+
+                               // Update notes (these will be set as task text!)
+                               setExtensionUpdateNotes("Filter zum Hinzuf&uuml;gen von SQL-Spalten f&uuml;r die Mitgliederanmeldung hinzugef&uuml;gt.");
+                               break;
                } // END - switch
                break;
 
                } // END - switch
                break;
 
index ba4343bf88bfc040d6dac797baec1f44b79f4398..b5c000a82547c8d576eea1c216f6ba8ef2ab7300 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c54b2db7a4f191be6d5172fac19674509bcf6adf..bfb0ac521be04f81798ce3ca79f76cdba5ca1e42 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -91,6 +91,9 @@ INDEX (`userid`)",
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='wernis'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='wernis' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='wernis_portal' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='wernis'");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='wernis' LIMIT 1");
                addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_guest_menu` WHERE `what`='wernis_portal' LIMIT 1");
+
+               // Unregister points data
+               unregisterExtensionPointsData('wernis_withdraw');
                break;
 
        case 'activate': // Do stuff when admin activates this extension
                break;
 
        case 'activate': // Do stuff when admin activates this extension
@@ -125,7 +128,7 @@ INDEX (`userid`)",
                                addConfigAddSql('wernis_pass_md5', "VARCHAR(32) NOT NULL DEFAULT ''");
 
                                // Update notes (these will be set as task text!)
                                addConfigAddSql('wernis_pass_md5', "VARCHAR(32) NOT NULL DEFAULT ''");
 
                                // Update notes (these will be set as task text!)
-                               setExtensionUpdateNotes("Auszahlunsfunktion an die neue API 0.2-BETA angepasst. Demnach muss Ihr Wernis-Passwort beim Auszahlen benutzt werden und in Ihrem {?mt_word?} als MD5-Hash gespeichert werden.");
+                               setExtensionUpdateNotes("Auszahlungsfunktion an die neue API 0.2-BETA angepasst. Demnach muss Ihr Wernis-Passwort beim Auszahlen benutzt werden und in Ihrem {?mt_word?} als MD5-Hash gespeichert werden.");
                                break;
 
                        case '0.0.3': // SQL queries for v0.0.3
                                break;
 
                        case '0.0.3': // SQL queries for v0.0.3
@@ -136,7 +139,8 @@ INDEX (`userid`)",
                                break;
 
                        case '0.0.4': // SQL queries for v0.0.4
                                break;
 
                        case '0.0.4': // SQL queries for v0.0.4
-                               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('wernis_withdraw','order_points','LOCKED','DIRECT')");
+                               // Register points data
+                               registerExtensionPointsData('wernis_withdraw', 'order_points', 'LOCKED', 'DIRECT');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
 
                                // This depends on ext-sql_patches
                                addExtensionDependency('sql_patches');
index a5bf57852f6244d4b8635b5bd371706cbd7ac449..1c3e71d094187af616e8b9cada4c2c395da3e812 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 851921132e0d518b2dc3bbf144ded0041554f3a5..534be3b12d5e7959b840b009c858dd28e12b40f2 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a894e0e77c455b11a8c72b60b5c3ef9963fd128d..d7479b1af35d28eae779b8342dde774362458d7a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,7 @@ function initFilterSystem () {
        // Is the filter already initialized?
        if (isset($GLOBALS['filter_init'])) {
                // Then abort here
        // Is the filter already initialized?
        if (isset($GLOBALS['filter_init'])) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Filter system already initialized.');
+               reportBug(__FUNCTION__, __LINE__, 'Filter system already initialized.');
        } // END - if
 
        // Load all saved filers if sql_patches is updated
        } // END - if
 
        // Load all saved filers if sql_patches is updated
@@ -103,112 +103,113 @@ ORDER BY
        }
 
        // Init filters
        }
 
        // Init filters
-       registerFilter('init', 'LOAD_CONFIGURATION');
-       registerFilter('init', 'INIT_RANDOMIZER');
-       registerFilter('init', 'LOAD_RUNTIME_INCLUDES');
-       registerFilter('init', 'INIT_EXTENSIONS');
-       registerFilter('init', 'SET_CURRENT_DATE');
-       registerFilter('init', 'INIT_RANDOM_NUMBER');
-       registerFilter('init', 'CHECK_REPOSITORY_REVISION');
-       registerFilter('init', 'RUN_HOURLY_RESET');
-       registerFilter('init', 'RUN_DAILY_RESET');
-       registerFilter('init', 'TRIGGER_SENDING_POOL');
-       registerFilter('init', 'DETERMINE_USERNAME');
-       registerFilter('init', 'DETERMINE_WHAT_ACTION');
-       registerFilter('init', 'COUNT_MODULE');
-       registerFilter('init', 'UPDATE_LOGIN_DATA');
-       registerFilter('init', 'ACTIVATE_EXCHANGE');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'LOAD_CONFIGURATION');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'INIT_RANDOMIZER');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'LOAD_RUNTIME_INCLUDES');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'INIT_EXTENSIONS');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'SET_CURRENT_DATE');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'INIT_RANDOM_NUMBER');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'CHECK_REPOSITORY_REVISION');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'RUN_HOURLY_RESET');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'RUN_DAILY_RESET');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'TRIGGER_SENDING_POOL');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'DETERMINE_USERNAME');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'DETERMINE_WHAT_ACTION');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'COUNT_MODULE');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'UPDATE_LOGIN_DATA');
+       registerFilter(__FUNCTION__, __LINE__, 'init', 'ACTIVATE_EXCHANGE');
 
        // Page headers - pre-filter (normally, you want to register here)
 
        // Page headers - pre-filter (normally, you want to register here)
-       registerFilter('pre_page_header', 'LOAD_PAGE_HEADER');
+       registerFilter(__FUNCTION__, __LINE__, 'pre_page_header', 'LOAD_PAGE_HEADER');
 
        // Page headers - post-filter (normally, you don't want to register here)
        //-------------------- LAST FILTER FOR THIS CHAIN! ------------------------
 
        // Page headers - post-filter (normally, you don't want to register here)
        //-------------------- LAST FILTER FOR THIS CHAIN! ------------------------
-       registerFilter('post_page_header', 'FINISH_PAGE_HEADER');
+       registerFilter(__FUNCTION__, __LINE__, 'post_page_header', 'FINISH_PAGE_HEADER');
        //-------------------- LAST FILTER FOR THIS CHAIN! ------------------------
 
        // 'You are here' navigation - post filter
        //-------------------- LAST FILTER FOR THIS CHAIN! ------------------------
 
        // 'You are here' navigation - post filter
-       registerFilter('post_youhere_line', 'CALL_HANDLER_LOGIN_FAILTURES');
-       registerFilter('post_youhere_line', 'HANDLE_HOME_IN_INDEX_SETTING');
+       registerFilter(__FUNCTION__, __LINE__, 'post_youhere_line', 'CALL_HANDLER_LOGIN_FAILTURES');
+       registerFilter(__FUNCTION__, __LINE__, 'post_youhere_line', 'HANDLE_HOME_IN_INDEX_SETTING');
 
        // Filters for pre-extension-registration
 
        // Filters for pre-extension-registration
-       registerFilter('pre_extension_installed', 'RUN_SQLS');
+       registerFilter(__FUNCTION__, __LINE__, 'pre_extension_installed', 'RUN_SQLS');
 
        // Filters for post-extension-registration
 
        // Filters for post-extension-registration
-       registerFilter('post_extension_installed', 'AUTO_ACTIVATE_EXTENSION');
-       registerFilter('post_extension_installed', 'SOLVE_TASK');
-       registerFilter('post_extension_installed', 'LOAD_INCLUDES');
-       registerFilter('post_extension_installed', 'REMOVE_UPDATES');
-       registerFilter('post_extension_installed', 'EXTENSION_MARK_INSTALLED');
+       registerFilter(__FUNCTION__, __LINE__, 'post_extension_installed', 'AUTO_ACTIVATE_EXTENSION');
+       registerFilter(__FUNCTION__, __LINE__, 'post_extension_installed', 'SOLVE_TASK');
+       registerFilter(__FUNCTION__, __LINE__, 'post_extension_installed', 'LOAD_INCLUDES');
+       registerFilter(__FUNCTION__, __LINE__, 'post_extension_installed', 'REMOVE_UPDATES');
+       registerFilter(__FUNCTION__, __LINE__, 'post_extension_installed', 'EXTENSION_MARK_INSTALLED');
 
        // Solving tasks
 
        // Solving tasks
-       registerFilter('solve_task', 'SOLVE_TASK');
+       registerFilter(__FUNCTION__, __LINE__, 'solve_task', 'SOLVE_TASK');
 
        // Loading includes in general
 
        // Loading includes in general
-       registerFilter('load_includes', 'LOAD_INCLUDES');
+       registerFilter(__FUNCTION__, __LINE__, 'load_includes', 'LOAD_INCLUDES');
 
        // Run SQLs
 
        // Run SQLs
-       registerFilter('run_sqls', 'RUN_SQLS');
+       registerFilter(__FUNCTION__, __LINE__, 'run_sqls', 'RUN_SQLS');
 
        // Admin ACL check
 
        // Admin ACL check
-       registerFilter('check_admin_acl', 'CHECK_ADMIN_ACL');
+       registerFilter(__FUNCTION__, __LINE__, 'check_admin_acl', 'CHECK_ADMIN_ACL');
 
        // Register shutdown filters
 
        // Register shutdown filters
-       registerFilter('shutdown', 'FLUSH_FILTERS');
-       registerFilter('shutdown', 'FLUSH_STATS');
-       registerFilter('shutdown', 'FLUSH_TEMPLATE_CACHE');
-       registerFilter('shutdown', 'FLUSH_OUTPUT');
+       registerFilter(__FUNCTION__, __LINE__, 'shutdown', 'FLUSH_FILTERS');
+       registerFilter(__FUNCTION__, __LINE__, 'shutdown', 'FLUSH_STATS');
+       registerFilter(__FUNCTION__, __LINE__, 'shutdown', 'FLUSH_TEMPLATE_CACHE');
+       registerFilter(__FUNCTION__, __LINE__, 'shutdown', 'FLUSH_OUTPUT');
 
        // Compiling code
 
        // Compiling code
-       registerFilter('compile_code', 'COMPILE_CONFIG');
-       registerFilter('compile_code', 'COMPILE_EXPRESSION_CODE');
+       registerFilter(__FUNCTION__, __LINE__, 'compile_code', 'COMPILE_CONFIG');
+       registerFilter(__FUNCTION__, __LINE__, 'compile_code', 'COMPILE_EXPRESSION_CODE');
 
        // Generic extension update filters
 
        // Generic extension update filters
-       registerFilter('extension_update', 'UPDATE_EXTENSION_DATA');
+       registerFilter(__FUNCTION__, __LINE__, 'extension_update', 'UPDATE_EXTENSION_DATA');
 
        // Do hourly reset stuff, keep this entry first in this chain:
 
        // Do hourly reset stuff, keep this entry first in this chain:
-       registerFilter('hourly', 'RUN_HOURLY_INCLUDES');
+       registerFilter(__FUNCTION__, __LINE__, 'hourly', 'RUN_HOURLY_INCLUDES');
 
        // Do reset stuff, keep this entry first in this chain:
 
        // Do reset stuff, keep this entry first in this chain:
-       registerFilter('reset', 'RUN_RESET_INCLUDES');
+       registerFilter(__FUNCTION__, __LINE__, 'reset', 'RUN_RESET_INCLUDES');
 
        // Remove extension
 
        // Remove extension
-       registerFilter('extension_remove', 'REMOVE_EXTENSION');
+       registerFilter(__FUNCTION__, __LINE__, 'extension_remove', 'REMOVE_EXTENSION');
 
        // Exclude some users
 
        // Exclude some users
-       registerFilter('exclude_users', 'HTML_INCLUDE_USERS');
+       registerFilter(__FUNCTION__, __LINE__, 'exclude_users', 'HTML_INCLUDE_USERS');
 
        // Handling of fatal errors
 
        // Handling of fatal errors
-       registerFilter('handle_fatal_errors', 'HANDLE_FATAL_ERRORS');
+       registerFilter(__FUNCTION__, __LINE__, 'handle_fatal_errors', 'HANDLE_FATAL_ERRORS');
 
        // Page footer filters
 
        // Page footer filters
-       registerFilter('page_footer', 'HANDLE_FATAL_ERRORS');
-       registerFilter('page_footer', 'DISPLAY_COPYRIGHT');
-       registerFilter('page_footer', 'DISPLAY_PARSING_TIME');
+       registerFilter(__FUNCTION__, __LINE__, 'page_footer', 'HANDLE_FATAL_ERRORS');
+       registerFilter(__FUNCTION__, __LINE__, 'page_footer', 'DISPLAY_COPYRIGHT');
+       registerFilter(__FUNCTION__, __LINE__, 'page_footer', 'DISPLAY_PARSING_TIME');
 
        // Member login check. Always keep FETCH_USER_DATA as first entry!
 
        // Member login check. Always keep FETCH_USER_DATA as first entry!
-       registerFilter('member_login_check', 'FETCH_USER_DATA');
+       registerFilter(__FUNCTION__, __LINE__, 'member_login_check', 'FETCH_USER_DATA');
 
        // Admin login
 
        // Admin login
-       registerFilter('do_admin_login_done', 'DO_LOGIN_ADMIN');
+       registerFilter(__FUNCTION__, __LINE__, 'do_admin_login_done', 'DO_LOGIN_ADMIN');
 
        // Admin mail links
 
        // Admin mail links
-       registerFilter('generate_admin_mail_links', 'GENERATE_POOL_MAIL_LINKS');
+       registerFilter(__FUNCTION__, __LINE__, 'generate_admin_mail_links', 'GENERATE_POOL_MAIL_LINKS');
 }
 
 // "Registers" a new filter function
 }
 
 // "Registers" a new filter function
-function registerFilter ($filterName, $filterFunction, $silentAbort = true, $force = false, $dry_run = false) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: filterName=' . $filterName . ',filterFunction=' . $filterFunction . ' - ENTERED!');
-
+function registerFilter ($F, $L, $filterName, $filterFunction, $silentAbort = true, $force = false, $dry_run = false) {
        // Extend the filter function name
        // Extend the filter function name
-       $filterFunction = sprintf("FILTER_%s", strtoupper($filterFunction));
+       $filterFunction = 'FILTER_' . strtoupper($filterFunction);
+
+       // Debug message with FILTER_ prefix
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',force=' . intval($force) . ',F=' . basename($F) . ',L=' . $L . ' - ENTERED!');
 
        // Is that filter already there?
        if ((isset($GLOBALS['cache_array']['filter']['chains'][$filterName][$filterFunction])) && ($force === false)) {
                // In installation phase we always want to abort
                if (($silentAbort === false) || (isInstallationPhase())) {
                        // Add fatal message
 
        // Is that filter already there?
        if ((isset($GLOBALS['cache_array']['filter']['chains'][$filterName][$filterFunction])) && ($force === false)) {
                // In installation phase we always want to abort
                if (($silentAbort === false) || (isInstallationPhase())) {
                        // Add fatal message
-                       debug_report_bug(__FUNCTION__, __LINE__, sprintf("Filter chain %s has already filter function %s registered!", $filterName, $filterFunction));
+                       reportBug(__FUNCTION__, __LINE__, sprintf("Filter chain %s has already filter function %s registered! F=%s,L=%s,force=%d", $filterName, $filterFunction, basename($F), $L, intval($force)));
                } // END - if
 
                // Abort here
                } // END - if
 
                // Abort here
@@ -220,17 +221,17 @@ function registerFilter ($filterName, $filterFunction, $silentAbort = true, $for
                // Is the function there?
                if (!function_exists($filterFunction)) {
                        // Then abort here
                // Is the function there?
                if (!function_exists($filterFunction)) {
                        // Then abort here
-                       addFatalMessage(__FUNCTION__, __LINE__, sprintf("Filter function %s could not be added to filter chain %s.", $filterFunction, $filterName));
+                       addFatalMessage(__FUNCTION__, __LINE__, sprintf("Filter function %s could not be added to filter chain %s. F=%s,L=%s,force=%d", $filterFunction, $filterName, basename($F), $L, intval($force)));
                        return false;
                } // END - if
 
                // Simply add it to the array
                        return false;
                } // END - if
 
                // Simply add it to the array
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'REGISTER: filterName=' . $filterName . ',filterFunction=' . $filterFunction);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'REGISTER: filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',force=' . intval($force) . ',F=' . basename($F) . ',L=' . $L);
                $GLOBALS['cache_array']['filter']['chains'][$filterName][$filterFunction] = 'A';
                $GLOBALS['cache_array']['filter']['counter'][$filterName][$filterFunction] = '0';
        } // END - if
 
                $GLOBALS['cache_array']['filter']['chains'][$filterName][$filterFunction] = 'A';
                $GLOBALS['cache_array']['filter']['counter'][$filterName][$filterFunction] = '0';
        } // END - if
 
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: filterName=' . $filterName . ',filterFunction=' . $filterFunction . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ENTRY: filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',force=' . intval($force) . ',F=' . basename($F) . ',L=' . $L . ' - EXIT!');
 }
 
 // "Unregisters" a filter from the given chain
 }
 
 // "Unregisters" a filter from the given chain
@@ -239,7 +240,7 @@ function unregisterFilter ($F, $L, $filterName, $filterFunction, $force = false,
 
        // Extend the filter function name only if not loaded from database
        if (!isset($GLOBALS['cache_array']['filter']['loaded'][$filterName][$filterFunction])) {
 
        // Extend the filter function name only if not loaded from database
        if (!isset($GLOBALS['cache_array']['filter']['loaded'][$filterName][$filterFunction])) {
-               $filterFunction = sprintf("FILTER_%s", strtoupper($filterFunction));
+               $filterFunction = 'FILTER_' . strtoupper($filterFunction);
        } // END - if
 
        // Is that filter there?
        } // END - if
 
        // Is that filter there?
@@ -268,7 +269,7 @@ function runFilterChain ($filterName, $filterData = NULL) {
                // Log not found filters in debug-mode
                if (isDebugModeEnabled()) {
                        // Log it away...
                // Log not found filters in debug-mode
                if (isDebugModeEnabled()) {
                        // Log it away...
-                       logDebugMessage(__FUNCTION__, __LINE__, 'Filter chain ' . $filterName . ' not found.');
+                       logDebugMessage(__FUNCTION__, __LINE__, 'Filter chain ' . $filterName . ' does not exist.');
                } // END - if
 
                // Abort here and return content
                } // END - if
 
                // Abort here and return content
@@ -289,7 +290,7 @@ function runFilterChain ($filterName, $filterData = NULL) {
                        // Is this filter there?
                        if (!function_exists($filterFunction)) {
                                // Should be fixed
                        // Is this filter there?
                        if (!function_exists($filterFunction)) {
                                // Should be fixed
-                               debug_report_bug(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',filterFunction=' . $filterFunction . ' - AUTO-UNREGISTERED!');
+                               reportBug(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',filterFunction=' . $filterFunction . ' - AUTO-UNREGISTERED!');
                        } // END - if
 
                        // Call the filter chain
                        } // END - if
 
                        // Call the filter chain
index ceafc65f1c492ffb8c57bfaf5dcb8bdfe00a3f07..dd38ba7f9beb5b5152911478ca4fb05cfadc930a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3a7a9a57be387b18511e5b2db1b96030351c7525..ecb2506f1d88680e979878c4b22dc690467da906 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7e5faa555716d506255063b18d16adf5679ebd26..7a9259df3942c9c6cb3ae46c847ca6c4adc1c120 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
diff --git a/inc/filter/beg_filter.php b/inc/filter/beg_filter.php
new file mode 100644 (file)
index 0000000..c8def82
--- /dev/null
@@ -0,0 +1,85 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 06/11/2012 *
+ * ===================                          Last change: 06/11/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : beg_filter.php                                   *
+ * -------------------------------------------------------------------- *
+ * Short description : Filters for ext-                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Filter fuer ext-                                 *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} // END - if
+
+// Filter for adding SQL columns if notification is disabled
+function FILTER_BEG_RALLYE_USER_REGISTRATION_ADD_SQL_COLUMNS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Add columns for begging rallye, if active
+       if (!isBegNewMemberNotifyEnabled()) {
+               $GLOBALS['register_sql_columns'] .= ', `beg_rallye_enable_notify`, `beg_rallye_disable_notify`';
+               $GLOBALS['register_sql_data']    .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()';
+       } // END - if
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,true).'</pre>';
+       return $filterData;
+}
+
+// Filter for removing old IPs and sending notifications, if enabled for "instant delivery"
+function FILTER_BEG_PURGE_IPS_NOTIFY_USER ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Remove old entries
+       $OLD = getBegTimeout();
+       if (getBegUseridTimeout() > $OLD) {
+               $OLD = getBegUseridTimeout();
+       } // END - if
+
+       // Run the SQL query
+       SQL_QUERY_ESC('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_beg_ips` WHERE (UNIX_TIMESTAMP() - `timeout`) >= %s',
+               array($OLD + 60*60), __FUNCTION__, __LINE__);
+
+       // Check for beg rallye is active and send mails out
+       if ((isBegRallyeEnabled()) && (isBegNewMemberNotifyEnabled())) {
+               // Include file for sending out mails
+               addIncludeToPool('notify', 'inc/mails/beg_mails.php');
+       } // END - if
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// [EOF]
+?>
index 09ed63f552d20c77b8de1423ea3b71d6efde5273..7c6815affdba4b78d365a3424df973ff6a2c9851 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -46,7 +46,7 @@ function FILTER_ADD_LOGIN_BONUS ($filterData) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        if (!isMember()) {
                // Do only run for logged in members
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        if (!isMember()) {
                // Do only run for logged in members
-               debug_report_bug(__FUNCTION__, __LINE__, 'Please only run this filter for logged in users.');
+               reportBug(__FUNCTION__, __LINE__, 'Please only run this filter for logged in users.');
        } // END - if
 
        // Bonus is not given by default ;-)
        } // END - if
 
        // Bonus is not given by default ;-)
@@ -86,8 +86,9 @@ LIMIT 1',
 
 // Filter for generating admin mail links for bonus mails
 function FILTER_GENERATE_BONUS_MAIL_LINKS ($filterData) {
 
 // Filter for generating admin mail links for bonus mails
 function FILTER_GENERATE_BONUS_MAIL_LINKS ($filterData) {
-       // Is the type 'bid'?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Is the type 'bid'?
        if ($filterData['type'] == 'bid') {
                // Load template
                $filterData['__output'] .= loadTemplate('admin_links_bonus_mail', true, $filterData);
        if ($filterData['type'] == 'bid') {
                // Load template
                $filterData['__output'] .= loadTemplate('admin_links_bonus_mail', true, $filterData);
@@ -100,6 +101,8 @@ function FILTER_GENERATE_BONUS_MAIL_LINKS ($filterData) {
 
 // Filter for adding bonus columns with a plus (+) sign
 function FILTER_ADD_BONUS_POINTS_USER_COLUMNS ($add = '') {
 
 // Filter for adding bonus columns with a plus (+) sign
 function FILTER_ADD_BONUS_POINTS_USER_COLUMNS ($add = '') {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
        // Skip out-dated extension, because this causes an error
        if (isExtensionInstalledAndOlder('bonus', '0.9.7')) {
                // Skip this silently
        // Skip out-dated extension, because this causes an error
        if (isExtensionInstalledAndOlder('bonus', '0.9.7')) {
                // Skip this silently
@@ -114,8 +117,40 @@ function FILTER_ADD_BONUS_POINTS_USER_COLUMNS ($add = '') {
        if (getConfig('include_bonus_ref')   == 'Y') $add .= ' + `bonus_ref`';
 
        // Return $add
        if (getConfig('include_bonus_ref')   == 'Y') $add .= ' + `bonus_ref`';
 
        // Return $add
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
        return $add;
 }
 
        return $add;
 }
 
+// Filter for adding SQL columns on user registration for bonus/"active" rallye notification
+function FILTER_BONUS_USER_REGISTRATION_ADD_SQL_COLUMNS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Next: active rallye
+       if (!isBonusNewMemberNotifyEnabled()) {
+               $GLOBALS['register_sql_columns'] .= ', `bonus_rallye_enable_notify`, `bonus_rallye_disable_notify`';
+               $GLOBALS['register_sql_data']    .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()';
+       } // END - if
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,true).'</pre>';
+       return $filterData;
+}
+
+// Filter for sending out bonus rallye notifications
+function FILTER_SEND_BONUS_NOTIFICATIONS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Check for bonus rallye is active and send mails out
+       if ((isBonusRallyeActive()) && (isBonusNewMemberNotifyEnabled())) {
+               // Include file for sending out mails
+               addIncludeToPool('notify', 'inc/mails/bonus_mails.php');
+       } // END - if
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,true).'</pre>';
+       return $filterData;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index a5af21e25e996ff5708104d15c07327d9ba6598d..9e65874f040d9aa2744a6db99c7a473edb550ea1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 36bab764cc295b78d838e3f3b77413d46895da57..7ef4dd33aabb10100632cf97bfa780317515312c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,7 +50,9 @@ function FILTER_CACHE_DESTROY_ON_EXT_CHANGE ($filterData) {
 
        // Remove cache
        foreach (array('config', 'extension', 'filter', 'modules', 'earning', 'points_data') as $cache) {
 
        // Remove cache
        foreach (array('config', 'extension', 'filter', 'modules', 'earning', 'points_data') as $cache) {
+               // Is this cache there?
                if ($GLOBALS['cache_instance']->loadCacheFile($cache)) {
                if ($GLOBALS['cache_instance']->loadCacheFile($cache)) {
+                       // Yes, then remove it
                        $GLOBALS['cache_instance']->removeCacheFile();
                } // END - if
        } // END - foreach
                        $GLOBALS['cache_instance']->removeCacheFile();
                } // END - if
        } // END - foreach
diff --git a/inc/filter/country_filter.php b/inc/filter/country_filter.php
new file mode 100644 (file)
index 0000000..ebf3451
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 06/11/2012 *
+ * ===================                          Last change: 06/11/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : country_filter.php                               *
+ * -------------------------------------------------------------------- *
+ * Short description : Filters for ext-                                 *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Filter fuer ext-                                 *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} // END - if
+
+// Filter to add SQLs columns for user registration
+function FILTER_COUNTRY_USER_REGISTRATION_ADD_SQL_COLUMNS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Save with new selectable country code
+       $GLOBALS['register_country_row'] = '`country_code`';
+       $GLOBALS['register_country_data'] = bigintval(postRequestElement('country_code'));
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,true).'</pre>';
+       return $filterData;
+}
+
+// [EOF]
+?>
index 6d6a5485fea6208f397cc8a2a469adf808c0e56c..e240452512ed16257e2d2d03323b38665646c985 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8efff96a8ceb0378ddb6322eef8f42e6bd234c75..4f290e70db897ebcc1b1c681013d76a6af599788 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -46,7 +46,7 @@ function FILTER_ADD_EARNING_GROUP_POPUP ($filterData) {
        // Check if the current userid is same as in $filterData
        if (getMemberId() != $filterData['userid']) {
                // Not the same
        // Check if the current userid is same as in $filterData
        if (getMemberId() != $filterData['userid']) {
                // Not the same
-               debug_report_bug(__FUNCTION__, __LINE__, 'Validation of userid failed. ' . getMemberId() . '!=' . $filterData['userid']);
+               reportBug(__FUNCTION__, __LINE__, 'Validation of userid failed. ' . getMemberId() . '!=' . $filterData['userid']);
        } // END - if
 
        // Now check if the user has subscription and amount left
        } // END - if
 
        // Now check if the user has subscription and amount left
@@ -54,7 +54,11 @@ function FILTER_ADD_EARNING_GROUP_POPUP ($filterData) {
        d.`earning_id`,
        d.`earning_provider`,
        u.`earning_current_amount`,
        d.`earning_id`,
        d.`earning_provider`,
        u.`earning_current_amount`,
-       u.`earning_daily_amount`
+       u.`earning_daily_amount`,
+       u.`earning_active`,
+       u.`earning_added`,
+       u.`earning_canceled`,
+       u.`earning_points`
 FROM
        `{?_MYSQL_PREFIX?}_user_earning` AS u
 INNER JOIN
 FROM
        `{?_MYSQL_PREFIX?}_user_earning` AS u
 INNER JOIN
@@ -73,7 +77,7 @@ ORDER BY
                ), __FUNCTION__, __LINE__);
 
        // Do we have entries left?
                ), __FUNCTION__, __LINE__);
 
        // Do we have entries left?
-       if (SQL_NUMROWS($result) > 0) {
+       if (!SQL_HASZERONUMS($result)) {
                // Load all names
                while ($content = SQL_FETCHARRAY($result)) {
                        // Merge the $filterData array in
                // Load all names
                while ($content = SQL_FETCHARRAY($result)) {
                        // Merge the $filterData array in
@@ -82,7 +86,11 @@ ORDER BY
                        // Construct callback function name
                        $callbackName = 'get' . capitalizeUnderscoreString($content['earning_provider']) . 'DataByEarningArray';
 
                        // Construct callback function name
                        $callbackName = 'get' . capitalizeUnderscoreString($content['earning_provider']) . 'DataByEarningArray';
 
-                       // And call it
+                       /*
+                        * And call it, the called function should NOT write data in
+                        * '__output'. This however is done here in this function. The
+                        * called function shall ALWAYS put it's data in '__data'.
+                        */
                        $content = call_user_func($callbackName, $content);
                } // END - if
        } // END - if
                        $content = call_user_func($callbackName, $content);
                } // END - if
        } // END - if
index a2bb805336a398044820cb70b211116ddbae0ec1..418746971fd938552f9d3ff759cf80fa18506d13 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,18 +43,18 @@ if (!defined('__SECURITY')) {
 // Filter to add default forced-ad types
 function FILTER_FORCED_AD_TYPE_DEFAULTS ($data) {
        // Forced-Banner
 // Filter to add default forced-ad types
 function FILTER_FORCED_AD_TYPE_DEFAULTS ($data) {
        // Forced-Banner
-       $data[] = array(
-               'type'   => 'BANNER',
-       );
-
-       // Forced-Textlinks
-       $data[] = array(
-               'type'   => 'TEXTLINK',
-       );
-
-       // Forced-Popups
-       $data[] = array(
-               'type'   => 'POPUP',
+       array_push(
+               $data,
+               array(
+                       // Forced-Banner
+                       'type' => 'BANNER',
+               ), array(
+                       // Forced-Textlinks
+                       'type' => 'TEXTLINK',
+               ), array(
+                       // Forced-PopUp
+                       'type' => 'POPUP',
+               )
        );
 
        // Return data
        );
 
        // Return data
@@ -79,5 +79,45 @@ function FILTER_FORCED_POPUP_TABLE_DATA ($filterData) {
        return $filterData;
 }
 
        return $filterData;
 }
 
+// Filter for changing URL status
+function FILTER_FORCED_CHANGE_CAMPAIGN_STATUS ($filterData) {
+       /*
+       // Do some dirty fixing here:
+       if (($filterData['data']['forced_campaign_status'] == 'STOPPED') && ($filterData['new_status'] == 'pending')) {
+               // Fix for template change
+               $filterData['new_status'] = 'continued';
+       } // END - if
+       */
+
+       // Send admin notification
+       doForcedNotifyAdmin('campaign_' . strtolower($filterData['data']['forced_campaign_status']) . '_' . $filterData['new_status'], $filterData['data']);
+
+       // Send user notification
+       doForcedNotifyMember('campaign_' . strtolower($filterData['data']['forced_campaign_status']) . '_' . $filterData['new_status'], $filterData['data']);
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for validating status
+function FILTER_FORCED_CHANGE_CAMPAIGN_VALIDATE_DATA ($filterData) {
+       // Is the new status set?
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       if ((!is_string($filterData['new_status'])) || (empty($filterData['new_status']))) {
+               // Abort here, not fine
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newStatus[' . gettype($filterData['new_status']) . ']=' . $filterData['new_status'] . ' - EXIT!');
+               $filterData['abort'] = false;
+       } elseif ($filterData['data']['forced_campaign_status'] != $filterData['prev_status']) {
+               // Status is not like prevStatus
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $filterData['data']['forced_campaign_status'] . '!=' . $filterData['prev_status'] . ' - EXIT!');
+               $filterData['abort'] = false;
+       } // END - if
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 4cebbeeba9b9e67f544f1c96cb05ca545983c153..bf811ae78d02bfcfaffd277528470ac38c8c7728 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index bd7726565414c84eae4f41ff320b61375b9144c4..c124eec65edad33a10c8d21d98d09e7e1a6400e8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,15 +44,16 @@ if (!defined('__SECURITY')) {
 function FILTER_UPDATE_ONLINE_LIST ($filterData) {
        // Do not update online list when extension is deactivated
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
 function FILTER_UPDATE_ONLINE_LIST ($filterData) {
        // Do not update online list when extension is deactivated
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
-       if (!isExtensionActive('online', true)) {
+       if (!isExtensionActive('online')) {
                // Extension not active
                // Extension not active
-               return;
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Extension ext-online is not active.');
+               return $filterData;
        } // END - if
 
        // Empty session?
        if (session_id() == '') {
                // This is invalid here!
        } // END - if
 
        // Empty session?
        if (session_id() == '') {
                // This is invalid here!
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid session.');
+               reportBug(__FUNCTION__, __LINE__, 'Invalid session.');
        } // END - if
 
        // Initialize variables
        } // END - if
 
        // Initialize variables
index 4f05dd0f6acabf69d64f3d31c066da2b64378dab..4abbd40c7c6972dfd70bf8ba93677f5bbcf5ec39 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,5 +54,61 @@ function FILTER_ORDER_POINTS ($filterData) {
        return $filterData;
 }
 
        return $filterData;
 }
 
+// Filter for returning given user's locked order points
+function FILTER_LOCKED_ORDER_POINTS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Is ext-user installed and active?
+       if (isExtensionActive('user')) {
+               // Get the points and add them to the existing
+               $filterData['points'] += countSumTotalData($filterData['userid'], 'user_points', 'locked_order_points');
+       } // END - if
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for returning all user's order points column names
+function FILTER_GET_ALL_ORDER_POINTS_COLUMN_NAMES ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Add 'order_points' and 'locked_order_points'
+       $filterData['columns'] .= $filterData['alias'] . 'order_points' . $filterData['separator'] . $filterData['alias'] . 'locked_order_points' . $filterData['separator'];
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for ZIP code inclusion (not exclusion but it must be run in exclusion filter chain)
+function FILTER_ORDER_ZIP_CODE_SQL ($sql) {
+       // Check if category and number of receivers is okay
+       if ((isOrderMultiPageEnabled()) && (isPostRequestElementSet('zip')) && (postRequestElement('zip') != '')) {
+               // Choose recipients by ZIP code
+               if (empty($sql)) {
+                       $sql = sprintf(" WHERE d.`zip` LIKE '%s%%'",
+                               bigintval(postRequestElement('zip'))
+                       );
+               } else {
+                       $sql .= sprintf(" AND d.`zip` LIKE '%s%%'",
+                               bigintval(postRequestElement('zip'))
+                       );
+               }
+       } // END - if
+
+       // Return expanded SQL
+       return $sql;
+}
+
+// Filter for adding columns of points to array
+function FILTER_ORDER_POINTS_COLUMNS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Add column
+       array_push($filterData, 'order_points');
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 135885e6b936d9f3b6711ed842c625c487572f61..15ec1150beefb1dd779866c8fad54eeb64a32ac0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,7 +44,7 @@ if (!defined('__SECURITY')) {
 function FILTER_DISPLAY_DEBUG_SQL ($filterData) {
        // Shall we display SQL queries?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
 function FILTER_DISPLAY_DEBUG_SQL ($filterData) {
        // Shall we display SQL queries?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
-       if ((isAdmin()) && (isDisplayDebugSqlEnabled()) && (!isGetRequestElementSet('frame')) && ($GLOBALS['header_sent'] == 2)) {
+       if ((isAdmin()) && (isDisplayDebugSqlEnabled()) && (isFullPage()) && ($GLOBALS['__header_sent'] == 2)) {
                // Then display it here
                displayDebugSqls();
        } // END - if
                // Then display it here
                displayDebugSqls();
        } // END - if
index 568394028dbcce5428efc72c572a100f18563d1d..89aeb096922f439b3051a3b07268e71b388706b1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,7 +44,7 @@ if (!defined('__SECURITY')) {
 function FILTER_DISPLAY_POLITICIAN_STOP_SNIPPET ($filterData) {
        // Shall we include the politician_stop snippet?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
 function FILTER_DISPLAY_POLITICIAN_STOP_SNIPPET ($filterData) {
        // Shall we include the politician_stop snippet?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
-       if ((!isGetRequestElementSet('frame')) && (isExtensionActive('politician_stop')) && (getModule() != 'admin') && ($GLOBALS['header_sent'] == 2)) {
+       if ((isFullPage()) && (isExtensionActive('politician_stop')) && (getModule() != 'admin') && ($GLOBALS['__header_sent'] == 2)) {
                // Then display it here
                loadPoliticianStopSnippet();
        } // END - if
                // Then display it here
                loadPoliticianStopSnippet();
        } // END - if
index 6df1f69c1a9ed3ee6ef93eee6fe7fff1a8c8edd2..24d09ba745482415401b918d13bc85f4f29e8414 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8b8ad026e698885a38f0ff400e9c3ed9c26e544e..0be63a434b2ff1de75dccbd4bf06ca6ca5e8f3f3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,7 +41,7 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Run a filter for must-fillout fields
 } // END - if
 
 // Run a filter for must-fillout fields
-function FILTER_REGISTER_MUST_FILLOUT ($content) {
+function FILTER_REGISTER_MUST_FILLOUT ($filterData) {
        // Get all fields for output
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        $result = SQL_QUERY('SELECT `field_name`,`field_required` FROM `{?_MYSQL_PREFIX?}_must_register` ORDER BY `id` ASC',
        // Get all fields for output
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        $result = SQL_QUERY('SELECT `field_name`,`field_required` FROM `{?_MYSQL_PREFIX?}_must_register` ORDER BY `id` ASC',
@@ -56,7 +56,7 @@ function FILTER_REGISTER_MUST_FILLOUT ($content) {
                } // END - if
 
                // Add it
                } // END - if
 
                // Add it
-               $content['must_fillout_' . strtolower($row['field_name']) . ''] = $value;
+               $filterData['must_fillout_' . strtolower($row['field_name']) . ''] = $value;
        } // END - while
 
        // Free memory
        } // END - while
 
        // Free memory
@@ -64,7 +64,62 @@ function FILTER_REGISTER_MUST_FILLOUT ($content) {
 
        // Return it
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
 
        // Return it
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
-       return $content;
+       return $filterData;
+}
+
+/**
+ * Run a filter for pre user registration - generic code (e.g. create hash,
+ * init global array elements). WARNING: This filter MUST run filter before all
+ * others, make your extension/-update depending on ext-register to avoid
+ * missing global array elements, etc.
+ *
+ * @param      $filterData             Filter data from previous filter
+ * @return     $filterData             Unchanged filter data
+ */
+function FILTER_PRE_USER_REGISTRATION_GENERIC ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Generate hash which will be inserted into confirmation mail
+       $GLOBALS['register_confirm_hash'] = generateHash(sha1(
+               // Get total confirmed, ...
+               getTotalConfirmedUser() . getEncryptSeparator() .
+               // ... unconfirmed ...
+               getTotalUnconfirmedUser() . getEncryptSeparator() .
+               // ... and locked users
+               getTotalLockedUser() . getEncryptSeparator() .
+               postRequestElement('month') . '-' .
+               postRequestElement('day') . '-' .
+               postRequestElement('year') . getEncryptSeparator() .
+               postRequestElement('pass1') . getEncryptSeparator() .
+               detectServerName() . getEncryptSeparator() .
+               detectRemoteAddr() . getEncryptSeparator() .
+               detectUserAgent() . '/' .
+               getSiteKey() . '/' .
+               getDateKey() . '/' .
+               getConfig('CACHE_BUSTER')
+       ));
+
+       // Old way with enterable two-char-code
+       $GLOBALS['register_country_row'] = '`country`';
+       $GLOBALS['register_country_data'] = substr(postRequestElement('cntry'), 0, 2);
+
+       // Init extra SQL data
+       $GLOBALS['register_sql_columns'] = '';
+       $GLOBALS['register_sql_data']    = '';
+
+       // Init "status" as for many users
+       setPostRequestElement('status', 'UNCONFIRMED');
+
+       // Add ip for later POST pings
+       setPostRequestElement('remote_addr', detectRemoteAddr());
+
+       // Generic initialization is done
+       $filterData['init_done'] = true;
+
+       // Return it
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,true).'</pre>';
+       return $filterData;
 }
 
 // [EOF]
 }
 
 // [EOF]
index bd3784bcf4396206ca0363e95b081ba1b12dc62e..c80471051c8a65d85d4c90c40c447b4fec3e6678 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 85c220a289fd947a93385449ce084132c37a91fc..ca61910cf58a53838254e8c92aaf9f7e42558f7c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -56,10 +56,10 @@ function FILTER_SURFBAR_CHANGE_URL_STATUS ($filterData) {
        } // END - if
 
        // Send admin notification
        } // END - if
 
        // Send admin notification
-       SURFBAR_NOTIFY_ADMIN('url_' . strtolower($filterData['data'][$filterData['url_id']]['url_status']) . '_' . $filterData['new_status'], $filterData['data'][$filterData['url_id']]);
+       doSurfbarNotifyAdmin('url_' . strtolower($filterData['data'][$filterData['url_id']]['url_status']) . '_' . $filterData['new_status'], $filterData['data'][$filterData['url_id']]);
 
        // Send user notification
 
        // Send user notification
-       SURFBAR_NOTIFY_USER('url_' . strtolower($filterData['data'][$filterData['url_id']]['url_status']) . '_' . $filterData['new_status'], $filterData['data'][$filterData['url_id']]);
+       doSurfbarNotifyMember('url_' . strtolower($filterData['data'][$filterData['url_id']]['url_status']) . '_' . $filterData['new_status'], $filterData['data'][$filterData['url_id']]);
 
        // Return filter data
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
 
        // Return filter data
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
index f531016da15cc0ca309596a88ccaa497778e6718..37b6bc5bc847b93cb50df6e154cf90f21dae273b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,14 +42,15 @@ if (!defined('__SECURITY')) {
 
 // Filter for generic handling of theme change
 function FILTER_HANDLE_THEME_CHANGE ($filterData) {
 
 // Filter for generic handling of theme change
 function FILTER_HANDLE_THEME_CHANGE ($filterData) {
-       // Check if new theme is selcted
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Check if new theme is selcted
        if ((isPostRequestElementSet('new_theme')) && (postRequestElement('new_theme') != getCurrentTheme())) {
                // Set new theme for guests
                $newTheme = postRequestElement('new_theme');
 
                // Change to new theme
        if ((isPostRequestElementSet('new_theme')) && (postRequestElement('new_theme') != getCurrentTheme())) {
                // Set new theme for guests
                $newTheme = postRequestElement('new_theme');
 
                // Change to new theme
-               setTheme($newTheme);
+               setMailerTheme($newTheme);
 
                // Remove current from array
                removeIncludeFromPool('theme', sprintf("theme/%s/theme.php", getCurrentTheme()));
 
                // Remove current from array
                removeIncludeFromPool('theme', sprintf("theme/%s/theme.php", getCurrentTheme()));
@@ -68,20 +69,35 @@ function FILTER_HANDLE_THEME_CHANGE ($filterData) {
 
 // Filter for settings theme from user profile, must be executed only if FILTER_FETCH_USER_DATA() ran before
 function FILTER_SET_USERS_THEME ($filterData) {
 
 // Filter for settings theme from user profile, must be executed only if FILTER_FETCH_USER_DATA() ran before
 function FILTER_SET_USERS_THEME ($filterData) {
-       // Is the user data valid?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Is the user data valid?
        if (!isMember()) {
                // Do only run for logged in members
        if (!isMember()) {
                // Do only run for logged in members
-               debug_report_bug(__FUNCTION__, __LINE__, 'Please only run this filter for logged in users.');
+               reportBug(__FUNCTION__, __LINE__, 'Please only run this filter for logged in users.');
        } // END - if
 
        // Change to new theme
        } // END - if
 
        // Change to new theme
-       setTheme(getUserData('curr_theme'));
+       setMailerTheme(getUserData('curr_theme'));
 
        // Return data
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
        return $filterData;
 }
 
 
        // Return data
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
        return $filterData;
 }
 
+// Filter for adding SQL columns on user registration about current theme
+function FILTER_THEME_USER_REGISTRATION_ADD_SQL_COLUMNS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Okay, add design here
+       $GLOBALS['register_sql_columns'] .= ', `curr_theme`';
+       $GLOBALS['register_sql_data']    .= ", '{%%pipe,getCurrentTheme%%}'";
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,true).'</pre>';
+       return $filterData;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 4f685d14f34674eee0242b164dfa95dda503ce6c..3e7772b82759d8f37ab60298b7787233adeae26d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c76d1ce2627ee671bbb061ab87a98b55f947aceb..e86cbefd2d4f66788aa5fdbae06f092e4b7c8e22 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,7 +44,7 @@ if (!defined('__SECURITY')) {
 function FILTER_DISPLAY_UBERWACH_SNIPPET ($filterData) {
        // Shall we include the uberwach snippet?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
 function FILTER_DISPLAY_UBERWACH_SNIPPET ($filterData) {
        // Shall we include the uberwach snippet?
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
-       if ((!isGetRequestElementSet('frame')) && (isExtensionActive('uberwach')) && (getModule() != 'admin') && ($GLOBALS['header_sent'] == 2)) {
+       if ((isFullPage()) && (isExtensionActive('uberwach')) && (getModule() != 'admin') && ($GLOBALS['__header_sent'] == 2)) {
                // Then display it here
                loadUberwachSnippet();
        } // END - if
                // Then display it here
                loadUberwachSnippet();
        } // END - if
index a98c45be3f6c55194fa47519830bab9be3ca28f8..95f91b3df5aa24147397046fa5f009637200faec 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,8 +42,9 @@ if (!defined('__SECURITY')) {
 
 // Filter for returning given user's points
 function FILTER_USER_POINTS ($filterData) {
 
 // Filter for returning given user's points
 function FILTER_USER_POINTS ($filterData) {
-       // Get the points and add them to the existing
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Get the points and add them to the existing
        $filterData['points'] += countSumTotalData($filterData['userid'], 'user_points', 'points');
 
        // Return the data for next filter
        $filterData['points'] += countSumTotalData($filterData['userid'], 'user_points', 'points');
 
        // Return the data for next filter
@@ -51,5 +52,100 @@ function FILTER_USER_POINTS ($filterData) {
        return $filterData;
 }
 
        return $filterData;
 }
 
+// Filter for returning given user's locked points
+function FILTER_LOCKED_USER_POINTS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Get the points and add them to the existing
+       $filterData['points'] += countSumTotalData($filterData['userid'], 'user_points', 'locked_points');
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for returning all user points column names
+function FILTER_GET_ALL_USER_POINTS_COLUMN_NAMES ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+       // Add 'points' and 'locked_points'
+       $filterData['columns'] .= $filterData['alias'] . 'points' . $filterData['separator'] . $filterData['alias'] . 'locked_points' . $filterData['separator'];
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       return $filterData;
+}
+
+// Filter for excluding tester users in WHERE statements
+function FILTER_TESTER_USER_EXCLUSION_SQL ($sql) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called! - sql(' . strlen($sql) . ')=' . $sql);
+
+       /*
+        * Allow testers to be included? Do only this when you only want to test
+        * it, normally you don't want these accounts being included everywhere.
+        */
+       if (ifTesterAccountsAllowed()) {
+               // Do not exclude tester accounts
+               return $sql;
+       } // END - if
+
+       // Add it, as of this filter is registered only with ext-user >= 0.5.0
+       if (empty($sql)) {
+               // Add WHERE
+               $sql = " WHERE `surname` NOT LIKE '{?tester_user_surname_prefix?}%%'";
+       } else {
+               // Add AND
+               $sql .= " AND `surname` NOT LIKE '{?tester_user_surname_prefix?}%%'";
+       }
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done! - sql(' . strlen($sql) . ')=' . $sql);
+       return $sql;
+}
+
+// Filter for including tester users in WHERE statements
+function FILTER_TESTER_USER_INCLUSION_SQL ($sql) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called! - sql(' . strlen($sql) . ')=' . $sql);
+       // Add it, as of this filter is registered only with ext-user >= 0.5.0
+       if (empty($sql)) {
+               // Add WHERE
+               $sql = " WHERE `surname` LIKE '{?tester_user_surname_prefix?}%%'";
+       } else {
+               // Add AND
+               $sql .= " AND `surname` LIKE '{?tester_user_surname_prefix?}%%'";
+       }
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done! - sql(' . strlen($sql) . ')=' . $sql);
+       return $sql;
+}
+
+// Filter to add SQL columns to user registration
+function FILTER_TESTER_USER_REGISTRATION_ADD_SQL_COLUMNS ($filterData) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!');
+
+       // Does the admin create a tester account?
+       if ((isAdmin()) && (isTesterUserName(postRequestElement('surname')))) {
+               // Yes, these accounts never needs confirmation (you can still test it by creating a usual account).
+               setPostRequestElement('status', 'CONFIRMED');
+       } // END - if
+
+       // Return filter data
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!');
+       //* NOISY-DEBUG: */ print __FUNCTION__.':filterData=<pre>'.print_r($filterData,true).'</pre>';
+       return $filterData;
+}
+
+// Filter to add 'converting' SQL statements
+function FILTER_ADD_USER_DATA_CONVERT_SQL_COLUMNS ($sql) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called! - sql(' . strlen($sql) . ')=' . $sql);
+
+       // Add it
+       $sql .= ', UNIX_TIMESTAMP(`lock_timestamp`) AS `lock_timestamp`';
+
+       // Return the data for next filter
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done! - sql(' . strlen($sql) . ')=' . $sql);
+       return $sql;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 8508ceae6164dd71e748bf1e237f0eb409110648..54e697ad99f475bc649eefe96455f73451e513a8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,7 +54,7 @@ function FILTER_FLUSH_FILTERS () {
        // Is a database link here and not in installation mode?
        if ((!SQL_IS_LINK_UP()) && (!isInstalling())) {
                // Abort here
        // Is a database link here and not in installation mode?
        if ((!SQL_IS_LINK_UP()) && (!isInstalling())) {
                // Abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'No database link is up. Cannot flush filters.');
+               reportBug(__FUNCTION__, __LINE__, 'No database link is up. Cannot flush filters.');
                return false;
        } // END - if
 
                return false;
        } // END - if
 
@@ -142,7 +142,7 @@ function FILTER_CALL_HANDLER_LOGIN_FAILTURES ($filterData) {
 
        // Handle failed logins here if not in guest
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $filterData['type'] . ',action=' . getAction() . ',what=' . getWhat() . ',level=' . $filterData['access_level']);
 
        // Handle failed logins here if not in guest
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $filterData['type'] . ',action=' . getAction() . ',what=' . getWhat() . ',level=' . $filterData['access_level']);
-       if ((($filterData['type'] == 'what') || ($filterData['type'] == 'action') && ((!isWhatSet()) || (getWhat() == 'overview') || (getWhat() == getIndexHome()))) && ($filterData['access_level'] != 'guest') && ((isExtensionInstalledAndNewer('sql_patches', '0.4.7')) || (isExtensionInstalledAndNewer('admins', '0.7.6')))) {
+       if ((($filterData['type'] == 'what') || ($filterData['type'] == 'action') && ((!isWhatSet()) || (getWhat() == 'welcome') || (getWhat() == getIndexHome()))) && ($filterData['access_level'] != 'guest') && ((isExtensionInstalledAndNewer('sql_patches', '0.4.7')) || (isExtensionInstalledAndNewer('admins', '0.7.6')))) {
                // Handle failure
                $content['content'] .= handleLoginFailures($filterData['access_level']);
        } // END - if
                // Handle failure
                $content['content'] .= handleLoginFailures($filterData['access_level']);
        } // END - if
@@ -197,7 +197,7 @@ function FILTER_SOLVE_TASK ($filterData) {
                adminSolveTask($filterData['task_id']);
        } else {
                // Not detectable!
                adminSolveTask($filterData['task_id']);
        } else {
                // Not detectable!
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("Cannot resolve task. data[%s]=<pre>%s</pre>", gettype($filterData), print_r($filterData, true)));
+               reportBug(__FUNCTION__, __LINE__, sprintf("Cannot resolve task. data[%s]=<pre>%s</pre>", gettype($filterData), print_r($filterData, true)));
        }
 
        // Return the data
        }
 
        // Return the data
@@ -209,7 +209,7 @@ function FILTER_LOAD_INCLUDES ($filterData) {
        // Is it null?
        if (is_null($filterData)) {
                // This should not happen!
        // Is it null?
        if (is_null($filterData)) {
                // This should not happen!
-               debug_report_bug(__FUNCTION__, __LINE__, 'pool is null.');
+               reportBug(__FUNCTION__, __LINE__, 'pool is null.');
        } // END - if
 
        // Is the pool an array and 'pool' set?
        } // END - if
 
        // Is the pool an array and 'pool' set?
@@ -227,7 +227,7 @@ function FILTER_LOAD_INCLUDES ($filterData) {
        // Is it an array?
        if ((!isset($data)) || (!is_array($data))) {
                // Then abort here
        // Is it an array?
        if ((!isset($data)) || (!is_array($data))) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("INC_POOL is no array! Type: %s", gettype($data)));
+               reportBug(__FUNCTION__, __LINE__, sprintf("INC_POOL is no array! Type: %s", gettype($data)));
        } elseif (isset($data['inc_pool'])) {
                // Use this as new inclusion pool!
                setIncludePool($realPool, $data['inc_pool']);
        } elseif (isset($data['inc_pool'])) {
                // Use this as new inclusion pool!
                setIncludePool($realPool, $data['inc_pool']);
@@ -248,6 +248,9 @@ function FILTER_LOAD_INCLUDES ($filterData) {
 
 // Filter for running SQL commands
 function FILTER_RUN_SQLS ($filterData) {
 
 // Filter for running SQL commands
 function FILTER_RUN_SQLS ($filterData) {
+       // Init counter
+       $count = 0;
+
        // Debug message
        //* DEBUG: */ die('getSqls()=<pre>'.print_r(getSqls(), true).'</pre>ext_update_depends=<pre>'.print_r($GLOBALS['ext_update_depends'], true).'</pre>');
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Entered!');
        // Debug message
        //* DEBUG: */ die('getSqls()=<pre>'.print_r(getSqls(), true).'</pre>ext_update_depends=<pre>'.print_r($GLOBALS['ext_update_depends'], true).'</pre>');
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Entered!');
@@ -282,6 +285,12 @@ function FILTER_RUN_SQLS ($filterData) {
                                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Running regular query: ' . $sql . ',enable_codes=' . intval($filterData['enable_codes']));
                                                SQL_QUERY($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']);
                                        }
                                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Running regular query: ' . $sql . ',enable_codes=' . intval($filterData['enable_codes']));
                                                SQL_QUERY($sql, __FUNCTION__, __LINE__, $filterData['enable_codes']);
                                        }
+
+                                       // Has a line changed?
+                                       if (!SQL_HASZEROAFFECTED()) {
+                                               // Add it to total account
+                                               $count += SQL_AFFECTEDROWS();
+                                       } // END - if
                                } // END - if
                        } // END - foreach
                } // END - foreach
                                } // END - if
                        } // END - foreach
                } // END - foreach
@@ -289,6 +298,12 @@ function FILTER_RUN_SQLS ($filterData) {
 
        // Debug message
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Left!');
 
        // Debug message
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '- Left!');
+
+       // Clear any SQL queries
+       //initSqls();
+
+       // Return counter
+       return $count;
 }
 
 // Filter for updating/validating login data
 }
 
 // Filter for updating/validating login data
@@ -312,13 +327,13 @@ function FILTER_UPDATE_LOGIN_DATA () {
                $content = getUserDataArray();
 
                // Maybe first login time?
                $content = getUserDataArray();
 
                // Maybe first login time?
-               if (empty($content['last_module'])) {
-                       $content['last_module'] = 'login';
+               if (empty($content[getUserLastWhatName()])) {
+                       $content[getUserLastWhatName()] = 'login';
                } // END - if
 
                // This will be displayed on welcome page! :-)
                if (empty($GLOBALS['last_online']['module'])) {
                } // END - if
 
                // This will be displayed on welcome page! :-)
                if (empty($GLOBALS['last_online']['module'])) {
-                       $GLOBALS['last_online']['module'] = $content['last_module'];
+                       $GLOBALS['last_online']['module'] = $content[getUserLastWhatName()];
                        $GLOBALS['last_online']['online'] = $content['last_online'];
                } // END - if
 
                        $GLOBALS['last_online']['online'] = $content['last_online'];
                } // END - if
 
@@ -485,7 +500,7 @@ function FILTER_COMPILE_EXPRESSION_CODE ($filterData) {
        // Some entries found?
        if ((count($matches) > 0) && (count($matches[3]) > 0)) {
                // Replace all matches
        // Some entries found?
        if ((count($matches) > 0) && (count($matches[3]) > 0)) {
                // Replace all matches
-               foreach ($matches[2] as $key => $cmd) {
+               foreach ($matches[2] as $key => $eti) {
                        // Init replacer/call-back variable
                        $replacer       = '';
                        $callback       = '';
                        // Init replacer/call-back variable
                        $replacer       = '';
                        $callback       = '';
@@ -494,25 +509,25 @@ function FILTER_COMPILE_EXPRESSION_CODE ($filterData) {
                        $value          = NULL;
 
                        // Extract command and call-back
                        $value          = NULL;
 
                        // Extract command and call-back
-                       $cmdArray = explode(',', $cmd);
-                       $cmd = $cmdArray[0];
+                       $etiArray = explode(',', $eti);
+                       $eti = $etiArray[0];
 
                        // Detect call-back function
 
                        // Detect call-back function
-                       if (isset($cmdArray[1])) {
+                       if (isset($etiArray[1])) {
                                // Call-back function detected
                                // Call-back function detected
-                               $callback = $cmdArray[1];
+                               $callback = $etiArray[1];
                        } // END - if
 
                        // Detect extra function
                        } // END - if
 
                        // Detect extra function
-                       if (isset($cmdArray[2])) {
+                       if (isset($etiArray[2])) {
                                // Also detected
                                // Also detected
-                               $extraFunction = $cmdArray[2];
+                               $extraFunction = $etiArray[2];
                        } // END - if
 
                        // Detect extra function 2
                        } // END - if
 
                        // Detect extra function 2
-                       if (isset($cmdArray[3])) {
+                       if (isset($etiArray[3])) {
                                // Also detected
                                // Also detected
-                               $extraFunction2 = $cmdArray[3];
+                               $extraFunction2 = $etiArray[3];
                        } // END - if
 
                        // And value
                        } // END - if
 
                        // And value
@@ -522,10 +537,10 @@ function FILTER_COMPILE_EXPRESSION_CODE ($filterData) {
                        } // END - if
 
                        // Construct call-back function name for the command
                        } // END - if
 
                        // Construct call-back function name for the command
-                       $commandFunction = 'doExpression' . capitalizeUnderscoreString($cmd);
+                       $etiFunction = 'doExpression' . capitalizeUnderscoreString($eti);
 
                        // Is this function there?
 
                        // Is this function there?
-                       if (function_exists($commandFunction)) {
+                       if (function_exists($etiFunction)) {
                                // Prepare $matches, $key, $outputMode, etc.
                                $data = array(
                                        'matches'     => $matches,
                                // Prepare $matches, $key, $outputMode, etc.
                                $data = array(
                                        'matches'     => $matches,
@@ -539,11 +554,11 @@ function FILTER_COMPILE_EXPRESSION_CODE ($filterData) {
                                );
 
                                // Call it
                                );
 
                                // Call it
-                               //* DEBUG: */ debugOutput(__FUNCTION__ . '[' . __LINE__ . ']: function=' . $commandFunction);
-                               $filterData = call_user_func($commandFunction, $data);
+                               //* DEBUG: */ debugOutput(__FUNCTION__ . '[' . __LINE__ . ']: etiFunction=' . $etiFunction);
+                               $filterData = call_user_func($etiFunction, $data);
                        } else {
                                // Unsupported command detected
                        } else {
                                // Unsupported command detected
-                               logDebugMessage(__FUNCTION__, __LINE__, 'Command cmd=' . $cmd . ', callback=' . $callback . ', extra=' . $extraFunction . ' is unsupported.');
+                               logDebugMessage(__FUNCTION__, __LINE__, 'eti=' . $eti . ', callback=' . $callback . ', extra=' . $extraFunction . ' - unsupported');
                        }
                } // END - foreach
        } // END - if
                        }
                } // END - foreach
        } // END - if
@@ -577,7 +592,7 @@ function FILTER_RUN_HOURLY_INCLUDES () {
        // Is the reset set or old sql_patches?
        if (((!isHourlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.7.5'))) && (isHtmlOutputMode())) {
                // Then abort here
        // Is the reset set or old sql_patches?
        if (((!isHourlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.7.5'))) && (isHtmlOutputMode())) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot run reset! enabled='.intval(isHourlyResetEnabled()).',ext_newer[sql_patches:0.7.5]='.intval(isExtensionInstalledAndNewer('sql_patches', '0.7.5')).' Please report this bug. Thanks');
+               reportBug(__FUNCTION__, __LINE__, 'Cannot run reset! enabled='.intval(isHourlyResetEnabled()).',ext_newer[sql_patches:0.7.5]='.intval(isExtensionInstalledAndNewer('sql_patches', '0.7.5')).' Please report this bug. Thanks');
        } // END - if
 
        // Get more hourly reset scripts
        } // END - if
 
        // Get more hourly reset scripts
@@ -597,7 +612,7 @@ function FILTER_RUN_RESET_INCLUDES () {
        // Is the reset set or old sql_patches?
        if (((!isResetModeEnabled()) || (!isExtensionInstalled('sql_patches'))) && (isHtmlOutputMode())) {
                // Then abort here
        // Is the reset set or old sql_patches?
        if (((!isResetModeEnabled()) || (!isExtensionInstalled('sql_patches'))) && (isHtmlOutputMode())) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot run reset! enabled='.intval(isResetModeEnabled()).',ext='.intval(isExtensionInstalled('sql_patches')).' Please report this bug. Thanks');
+               reportBug(__FUNCTION__, __LINE__, 'Cannot run reset! enabled='.intval(isResetModeEnabled()).',ext='.intval(isExtensionInstalled('sql_patches')).' Please report this bug. Thanks');
        } // END - if
 
        // Get more daily reset scripts
        } // END - if
 
        // Get more daily reset scripts
@@ -943,20 +958,20 @@ function FILTER_HANDLE_FATAL_ERRORS () {
        loadIncludeOnce('inc/footer.php');
 
        // Abort here
        loadIncludeOnce('inc/footer.php');
 
        // Abort here
-       shutdown();
+       doShutdown();
 }
 
 // Filter for displaying copyright line
 function FILTER_DISPLAY_COPYRIGHT () {
        // Shall we display the copyright notice?
 }
 
 // Filter for displaying copyright line
 function FILTER_DISPLAY_COPYRIGHT () {
        // Shall we display the copyright notice?
-       if ((!isGetRequestElementSet('frame')) && (basename($_SERVER['PHP_SELF']) != 'mailid_top.php') && ((getConfig('WRITE_FOOTER') == 'Y') || (isInstalling())) && ($GLOBALS['header_sent'] == 2)) {
+       if ((isFullPage()) && ((getConfig('WRITE_FOOTER') == 'Y') || (isInstalling())) && ($GLOBALS['__header_sent'] == 2) && (ifCopyrightFooterEnabled())) {
                // Backlink enabled?
                if (((isConfigEntrySet('ENABLE_BACKLINK')) && (getConfig('ENABLE_BACKLINK') == 'Y')) || (isInstalling())) {
                        // Copyright with backlink, thanks! :-)
                // Backlink enabled?
                if (((isConfigEntrySet('ENABLE_BACKLINK')) && (getConfig('ENABLE_BACKLINK') == 'Y')) || (isInstalling())) {
                        // Copyright with backlink, thanks! :-)
-                       $GLOBALS['page_footer'] .= loadTemplate('copyright_backlink', true);
+                       $GLOBALS['__page_footer'] .= loadTemplate('copyright_backlink', true);
                } else {
                        // No backlink in Copyright note
                } else {
                        // No backlink in Copyright note
-                       $GLOBALS['page_footer'] .= loadTemplate('copyright', true);
+                       $GLOBALS['__page_footer'] .= loadTemplate('copyright', true);
                }
        } // END - if
 }
                }
        } // END - if
 }
@@ -964,8 +979,8 @@ function FILTER_DISPLAY_COPYRIGHT () {
 // Filter for displaying parsing time
 function FILTER_DISPLAY_PARSING_TIME () {
        // Shall we display the parsing time and number of queries?
 // Filter for displaying parsing time
 function FILTER_DISPLAY_PARSING_TIME () {
        // Shall we display the parsing time and number of queries?
-       // 1234                            5                      54    4         5              5       4    4                       5       543    3                   4432    2             33     2    2                              21
-       if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (getConfig('show_timings') == 'Y') && (!isGetRequestElementSet('frame'))) || (isInstallationPhase())) && (isHtmlOutputMode()) && ($GLOBALS['header_sent'] == 2)) {
+       // 1234                            5                      54    4         5              5       4    4          5543    3                    4432    2                332    2                              21
+       if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (getConfig('show_timings') == 'Y') && (isFullPage())) && (!isInstallationPhase())) && (isHtmlOutputMode()) && ($GLOBALS['__header_sent'] == 2)) {
                // Then display it here
                displayParsingTime();
        } // END - if
                // Then display it here
                displayParsingTime();
        } // END - if
@@ -974,7 +989,10 @@ function FILTER_DISPLAY_PARSING_TIME () {
 // Filter for flushing template cache
 function FILTER_FLUSH_TEMPLATE_CACHE () {
        // Do not flush when debugging the template cache
 // Filter for flushing template cache
 function FILTER_FLUSH_TEMPLATE_CACHE () {
        // Do not flush when debugging the template cache
-       if (isDebuggingTemplateCache()) return;
+       if (isDebuggingTemplateCache()) {
+               // Do not flush templates in debug-mode
+               return;
+       } // END - if
 
        // Do we have cached eval() data?
        if ((isset($GLOBALS['template_eval'])) && (count($GLOBALS['template_eval']) > 0)) {
 
        // Do we have cached eval() data?
        if ((isset($GLOBALS['template_eval'])) && (count($GLOBALS['template_eval']) > 0)) {
@@ -996,7 +1014,7 @@ function FILTER_FETCH_USER_DATA ($userid = NULL) {
        // Get user data
        if (!fetchUserData($userid)) {
                // Userid is not valid
        // Get user data
        if (!fetchUserData($userid)) {
                // Userid is not valid
-               debug_report_bug(__FUNCTION__, __LINE__, 'User id '.$userid . ' is invalid.');
+               reportBug(__FUNCTION__, __LINE__, 'User id '.$userid . ' is invalid.');
        } // END - if
 
        // Set member id
        } // END - if
 
        // Set member id
@@ -1008,7 +1026,7 @@ function FILTER_RESET_USER_LOGIN_FAILURE () {
        // Is the user data valid?
        if (!isMember()) {
                // Do only run for logged in members
        // Is the user data valid?
        if (!isMember()) {
                // Do only run for logged in members
-               debug_report_bug(__FUNCTION__, __LINE__, 'Please only run this filter for logged in users.');
+               reportBug(__FUNCTION__, __LINE__, 'Please only run this filter for logged in users.');
        } // END - if
 
        // Remmeber login failures if available
        } // END - if
 
        // Remmeber login failures if available
@@ -1048,12 +1066,12 @@ function FILTER_DO_LOGIN_ADMIN ($filterData) {
 // Filter for loading page header, this should be ran first!
 function FILTER_LOAD_PAGE_HEADER () {
        // Output page header code
 // Filter for loading page header, this should be ran first!
 function FILTER_LOAD_PAGE_HEADER () {
        // Output page header code
-       $GLOBALS['page_header'] = loadTemplate('page_header', true);
+       $GLOBALS['__page_header'] = loadTemplate('page_header', true);
 
        // Include meta data in 'guest' module
        if ((isModuleSet()) && (getModule() == 'index')) {
                // Load meta data template
 
        // Include meta data in 'guest' module
        if ((isModuleSet()) && (getModule() == 'index')) {
                // Load meta data template
-               $GLOBALS['page_header'] .= loadTemplate('metadata', true);
+               $GLOBALS['__page_header'] .= loadTemplate('metadata', true);
 
                // Add meta description to header
                if ((isInstalled()) && (isAdminRegistered()) && (SQL_IS_LINK_UP())) {
 
                // Add meta description to header
                if ((isInstalled()) && (isAdminRegistered()) && (SQL_IS_LINK_UP())) {
@@ -1069,7 +1087,7 @@ function FILTER_FINISH_PAGE_HEADER () {
        loadIncludeOnce('inc/stylesheet.php');
 
        // Closing HEAD tag
        loadIncludeOnce('inc/stylesheet.php');
 
        // Closing HEAD tag
-       $GLOBALS['page_header'] .= '</head>';
+       $GLOBALS['__page_header'] .= '</head>';
 }
 
 // Cleans up the DNS cache if sql_patches is at least 0.7.0
 }
 
 // Cleans up the DNS cache if sql_patches is at least 0.7.0
@@ -1171,5 +1189,44 @@ function FILTER_ADD_HISTORY_ENTRY ($filterData) {
        return $filterData;
 }
 
        return $filterData;
 }
 
+// Filter for initializing ext-sql_patches
+function FILTER_GENERATE_FILE_SECRET_HASH ($filterData) {
+       // Transfer POINTS word
+       if (isExtensionInstalledAndNewer('sql_patches', '0.0.3')) {
+               // Okay, recent enough, so transfer the word for POINTS
+               setConfigEntry('POINTS', getPointsWord());
+       } // END - if
+
+       // Init key
+       setConfigEntry('secret_key', '');
+
+       // Read key from secret file
+       if ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == '')) {
+               // Maybe need setup of secret key!
+               loadIncludeOnce('inc/gen_sql_patches.php');
+       } // END - if
+
+       // Test again
+       if ((getFileHash() != '') && (getMasterSalt() != '') && (getPassScramble() != '')) {
+               // File hash fas generated so we can also file the secret file... hopefully.
+               $hashFile = sprintf("%s%s.%s.cache", getPath(), getCachePath(), getFileHash());
+
+               // Is the secret key file readable?
+               if (isFileReadable($hashFile)) {
+                       // Read file
+                       setConfigEntry('secret_key', readFromFile($hashFile));
+               } else {
+                       // Remove it from database
+                       updateConfiguration('file_hash', '');
+
+                       // Cannot read secret file!
+                       reportBug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.');
+               }
+       } // END - if
+
+       // Return data
+       return $filterData;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index d3d0b82354910ae325a679364d9225955da5ff4a..9f53a5a65b34f4964426d41cd416b936a241ce47 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ac685a3372dede05a569a14d440728290511a736..6dec7b19c795cdfb260976a180ddd12a5bdb77da 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 44547a191836cc7a9703e243fbeb3b4b1a2913cc..3c9f1eec1d2d91c63ad47bad78c0cac1c9b09849 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -68,7 +68,8 @@ $result_direct = SQL_QUERY('SELECT
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       `refid`=0 OR `refid` IS NULL
+       `refid`=0 OR
+       `refid` IS NULL
 ORDER BY
        `userid` ASC', __FILE__, __LINE__);
 
 ORDER BY
        `userid` ASC', __FILE__, __LINE__);
 
@@ -77,8 +78,9 @@ if (!SQL_HASZERONUMS($result_direct)) {
        // When 'walk' through all users
        while ($content = SQL_FETCHARRAY($result_direct)) {
                // Update refback table
        // When 'walk' through all users
        while ($content = SQL_FETCHARRAY($result_direct)) {
                // Update refback table
-               //* DEBUG: */ debugOutput('userid=' . $content['userid']);
+               /* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'userid=' . $content['userid'] . ' - BEFORE!');
                updateReferralTable($content['userid']);
                updateReferralTable($content['userid']);
+               /* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'userid=' . $content['userid'] . ' - AFTER!');
        } // END - while
 } // END - if
 
        } // END - while
 } // END - if
 
index 51381811d91163582fdb4c63d1938283111e3ced..a485c21d7fb58a61fa6858fc4ebd9f1375443115 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e9c5abe777e874275ea718de2b50cc0fd50b0601..58a447e4f57fa00fcc6ebefa6a38383c9415d46c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,23 +41,23 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Init page footer
 } // END - if
 
 // Init page footer
-$GLOBALS['page_footer'] = '';
+$GLOBALS['__page_footer'] = '';
 
 
-// Footer disabled or already sent?
-// 1234      5                       54    45                            5    5                            543    3                443    3                 443    3                  44321
-if ((((!isset($GLOBALS['footer_sent'])) || (($GLOBALS['footer_sent'] != 1) && ($GLOBALS['footer_sent'] != 2))) && (!isCssOutputMode()) && (!isAjaxOutputMode()) && (!isImageOutputMode()))) {
+// Footer disabled (e.g. CSS/AJAX/image output) or already sent?
+// 1234      5                         54    45                              5    5                              543    3                443    3                 443    3                  44321
+if ((((!isset($GLOBALS['__footer_sent'])) || (($GLOBALS['__footer_sent'] != 1) && ($GLOBALS['__footer_sent'] != 2))) && (!isCssOutputMode()) && (!isAjaxOutputMode()) && (!isImageOutputMode()))) {
        // Run the filter, sweet huh?
        runFilterChain('page_footer');
 
        // Load page footer
        // Run the filter, sweet huh?
        runFilterChain('page_footer');
 
        // Load page footer
-       $GLOBALS['page_footer'] .= loadTemplate('page_footer', true);
+       $GLOBALS['__page_footer'] .= loadTemplate('page_footer', true);
 } // END - if
 
 // Footer has been reached
 } // END - if
 
 // Footer has been reached
-$GLOBALS['footer_sent'] = 1;
+$GLOBALS['__footer_sent'] = 1;
 
 // Shutdown
 
 // Shutdown
-shutdown();
+doShutdown();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
index be6123f558b14507046bc426522461c4c9d3215f..ea660839fa17e6f6242453f88e76ec385482b21f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -61,7 +61,7 @@ function addFatalMessage ($F, $L, $message, $extra = '') {
        }
 
        // Add message to $GLOBALS['fatal_messages']
        }
 
        // Add message to $GLOBALS['fatal_messages']
-       $GLOBALS['fatal_messages'][] = $message;
+       array_push($GLOBALS['fatal_messages'], $message);
 
        // Log fatal messages away
        logDebugMessage($F, $L, 'Fatal error message: ' . $message);
 
        // Log fatal messages away
        logDebugMessage($F, $L, 'Fatal error message: ' . $message);
@@ -82,157 +82,6 @@ function getTotalFatalErrors () {
        return $count;
 }
 
        return $count;
 }
 
-// Send mail out to an email address
-function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = '') {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'toEmail=' . $toEmail . ',subject=' . $subject . ',isHtml=' . $isHtml);
-       // Empty parameters should be avoided, so we need to find them
-       if (empty($isHtml)) {
-               // isHtml is empty
-               debug_report_bug(__FUNCTION__, __LINE__, 'isHtml is empty.');
-       } // END - if
-
-       // Set from header
-       if ((!isInString('@', $toEmail)) && ($toEmail > 0)) {
-               // Does the user exist?
-               if ((isExtensionActive('user')) && (fetchUserData($toEmail))) {
-                       // Get the email
-                       $toEmail = getUserData('email');
-               } else {
-                       // Set webmaster
-                       $toEmail = getWebmaster();
-               }
-       } elseif ($toEmail == '0') {
-               // Is the webmaster!
-               $toEmail = getWebmaster();
-       }
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'TO=' . $toEmail);
-
-       // Check for PHPMailer or debug-mode
-       if ((!checkPhpMailerUsage()) || (isDebugModeEnabled())) {
-               // Prefix is '' for text mails
-               $prefix = '';
-
-               // Is HTML?
-               if ($isHtml == 'Y') {
-                       // Set prefix
-                       $prefix = 'html_';
-               } // END - if
-
-               // Not in PHPMailer-Mode
-               if (empty($mailHeader)) {
-                       // Load email header template
-                       $mailHeader = loadEmailTemplate($prefix . 'header');
-               } else {
-                       // Append header
-                       $mailHeader .= loadEmailTemplate($prefix . 'header');
-               }
-       } // END - if
-
-       // Debug mode enabled?
-       if (isDebugModeEnabled()) {
-               // In debug mode we want to display the mail instead of sending it away so we can debug this part
-               outputHtml('<pre>
-Headers : ' . htmlentities(utf8_decode(trim($mailHeader))) . '
-To      : ' . htmlentities(utf8_decode($toEmail)) . '
-Subject : ' . htmlentities(utf8_decode($subject)) . '
-Message : ' . htmlentities(utf8_decode($message)) . '
-</pre>');
-
-               // This is always fine
-               return true;
-       } elseif (!empty($toEmail)) {
-               // Send Mail away
-               return sendRawEmail($toEmail, $subject, $message, $mailHeader);
-       } elseif ($isHtml != 'Y') {
-               // Problem detected while sending a mail, forward it to admin
-               return sendRawEmail(getWebmaster(), '[PROBLEM:]' . $subject, $message, $mailHeader);
-       }
-
-       // Why did we end up here? This should not happen
-       debug_report_bug(__FUNCTION__, __LINE__, 'Ending up: template=' . $template);
-}
-
-// Check to use wether legacy mail() command or PHPMailer class
-// @TODO Rewrite this to an extension 'smtp'
-// @private
-function checkPhpMailerUsage() {
-       return ((getConfig('SMTP_HOSTNAME') != '') && (getConfig('SMTP_USER') != ''));
-}
-
-// Send out a raw email with PHPMailer class or legacy mail() command
-function sendRawEmail ($toEmail, $subject, $message, $headers) {
-       // Just compile all to put out all configs, etc.
-       $eval  = '$toEmail = decodeEntities("' . escapeQuotes(doFinalCompilation(compileRawCode($toEmail), false)) . '"); ';
-       $eval .= '$subject = decodeEntities("' . escapeQuotes(doFinalCompilation(compileRawCode($subject), false)) . '"); ';
-       $eval .= '$headers = decodeEntities("' . escapeQuotes(doFinalCompilation(compileRawCode($headers), false)) . '"); ';
-
-       // Do not decode entities in the message because we also send HTML mails through this function
-       $eval .= '$message = "' . escapeQuotes(doFinalCompilation(compileRawCode($message), false)) . '";';
-
-       // Run the final eval() command
-       eval($eval);
-
-       // Shall we use PHPMailer class or legacy mode?
-       if (checkPhpMailerUsage()) {
-               // Use PHPMailer class with SMTP enabled
-               loadIncludeOnce('inc/phpmailer/class.phpmailer.php');
-               loadIncludeOnce('inc/phpmailer/class.smtp.php');
-
-               // get new instance
-               $mail = new PHPMailer();
-
-               // Set charset to UTF-8
-               $mail->CharSet = 'UTF-8';
-
-               // Path for PHPMailer
-               $mail->PluginDir  = sprintf("%sinc/phpmailer/", getPath());
-
-               $mail->IsSMTP();
-               $mail->SMTPAuth   = true;
-               $mail->Host       = getConfig('SMTP_HOSTNAME');
-               $mail->Port       = 25;
-               $mail->Username   = getConfig('SMTP_USER');
-               $mail->Password   = getConfig('SMTP_PASSWORD');
-               if (empty($headers)) {
-                       $mail->From = getWebmaster();
-               } else {
-                       $mail->From = $headers;
-               }
-               $mail->FromName   = getMainTitle();
-               $mail->Subject    = $subject;
-               if ((isExtensionActive('html_mail')) && (secureString($message) != $message)) {
-                       $mail->Body       = $message;
-                       $mail->AltBody    = decodeEntities($message);
-                       $mail->WordWrap   = 70;
-                       $mail->IsHTML(true);
-               } else {
-                       $mail->Body       = decodeEntities(strip_tags($message));
-               }
-
-               $mail->AddAddress($toEmail, '');
-               $mail->AddReplyTo(getWebmaster(), getMainTitle());
-               $mail->AddCustomHeader('Errors-To: ' . getWebmaster());
-               $mail->AddCustomHeader('X-Loop: ' . getWebmaster());
-               $mail->AddCustomHeader('Bounces-To: ' . getWebmaster());
-               $mail->Send();
-
-               // Has an error occured?
-               if (!empty($mail->ErrorInfo)) {
-                       // Log message
-                       logDebugMessage(__FUNCTION__, __LINE__, 'Error while sending mail: ' . $mail->ErrorInfo);
-
-                       // Raise an error
-                       return false;
-               } else {
-                       // All fine!
-                       return true;
-               }
-       } else {
-               // Use legacy mail() command
-               return mail($toEmail, $subject, decodeEntities($message), $headers);
-       }
-}
-
 // Generate a password in a specified length or use default password length
 function generatePassword ($length = '0', $exclude =  array()) {
        // Auto-fix invalid length of zero
 // Generate a password in a specified length or use default password length
 function generatePassword ($length = '0', $exclude =  array()) {
        // Auto-fix invalid length of zero
@@ -265,6 +114,12 @@ function generatePassword ($length = '0', $exclude =  array()) {
 
 // Generates a human-readable timestamp from the Uni* stamp
 function generateDateTime ($time, $mode = '0') {
 
 // Generates a human-readable timestamp from the Uni* stamp
 function generateDateTime ($time, $mode = '0') {
+       // Is there cache?
+       if (isset($GLOBALS[__FUNCTION__][$time][$mode])) {
+               // Return it instead
+               return $GLOBALS[__FUNCTION__][$time][$mode];
+       } // END - if
+
        // If the stamp is zero it mostly didn't "happen"
        if (($time == '0') || (is_null($time))) {
                // Never happend
        // If the stamp is zero it mostly didn't "happen"
        if (($time == '0') || (is_null($time))) {
                // Never happend
@@ -272,26 +127,20 @@ function generateDateTime ($time, $mode = '0') {
        } // END - if
 
        // Filter out numbers
        } // END - if
 
        // Filter out numbers
-       $time = bigintval($time);
-
-       // Is it cached?
-       if (isset($GLOBALS[__FUNCTION__][$time][$mode])) {
-               // Then use it
-               return $GLOBALS[__FUNCTION__][$time][$mode];
-       } // END - if
+       $timeSecured = bigintval($time);
 
        // Detect language
        switch (getLanguage()) {
                case 'de': // German date / time format
                        switch ($mode) {
 
        // Detect language
        switch (getLanguage()) {
                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;
-                               case '4': $ret = date('d.m.Y|H:i:s', $time); break;
-                               case '5': $ret = date('d-m-Y (l-F-T)', $time); break;
-                               case '6': $ret = date('Ymd', $time); break;
-                               case '7': $ret = date('Y-m-d H:i:s', $time); break; // Compatible with MySQL TIMESTAMP
+                               case '0': $ret = date("d.m.Y \u\m H:i \U\h\\r", $timeSecured); break;
+                               case '1': $ret = strtolower(date('d.m.Y - H:i', $timeSecured)); break;
+                               case '2': $ret = date('d.m.Y|H:i', $timeSecured); break;
+                               case '3': $ret = date('d.m.Y', $timeSecured); break;
+                               case '4': $ret = date('d.m.Y|H:i:s', $timeSecured); break;
+                               case '5': $ret = date('d-m-Y (l-F-T)', $timeSecured); break;
+                               case '6': $ret = date('Ymd', $timeSecured); break;
+                               case '7': $ret = date('Y-m-d H:i:s', $timeSecured); break; // Compatible with MySQL TIMESTAMP
                                default:
                                        logDebugMessage(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode));
                                        break;
                                default:
                                        logDebugMessage(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode));
                                        break;
@@ -300,14 +149,14 @@ function generateDateTime ($time, $mode = '0') {
 
                default: // Default is the US date / time format!
                        switch ($mode) {
 
                default: // Default is the US date / time format!
                        switch ($mode) {
-                               case '0': $ret = date('r', $time); break;
-                               case '1': $ret = strtolower(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;
-                               case '4': $ret = date('d.m.Y|H:i:s', $time); break;
-                               case '5': $ret = date('d-m-Y (l-F-T)', $time); break;
-                               case '6': $ret = date('Ymd', $time); break;
-                               case '7': $ret = date('Y-m-d H:i:s', $time); break; // Compatible with MySQL TIMESTAMP
+                               case '0': $ret = date('r', $timeSecured); break;
+                               case '1': $ret = strtolower(date('Y-m-d - g:i A', $timeSecured)); break;
+                               case '2': $ret = date('y-m-d|H:i', $timeSecured); break;
+                               case '3': $ret = date('y-m-d', $timeSecured); break;
+                               case '4': $ret = date('d.m.Y|H:i:s', $timeSecured); break;
+                               case '5': $ret = date('d-m-Y (l-F-T)', $timeSecured); break;
+                               case '6': $ret = date('Ymd', $timeSecured); break;
+                               case '7': $ret = date('Y-m-d H:i:s', $timeSecured); break; // Compatible with MySQL TIMESTAMP
                                default:
                                        logDebugMessage(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode));
                                        break;
                                default:
                                        logDebugMessage(__FUNCTION__, __LINE__, sprintf("Invalid date mode %s detected.", $mode));
                                        break;
@@ -332,7 +181,7 @@ function translateYesNo ($yn) {
                        case 'N': $GLOBALS[__FUNCTION__][$yn] = '{--NO--}'; break;
                        default:
                                // Log unknown value
                        case 'N': $GLOBALS[__FUNCTION__][$yn] = '{--NO--}'; break;
                        default:
                                // Log unknown value
-                               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown value %s. Expected Y/N!", $yn));
+                               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown value %s. Expected: Y/N", $yn));
                                break;
                } // END - switch
        } // END - if
                                break;
                } // END - switch
        } // END - if
@@ -342,6 +191,7 @@ function translateYesNo ($yn) {
 }
 
 // Translates the american decimal dot into a german comma
 }
 
 // Translates the american decimal dot into a german comma
+// OPPOMENT: convertCommaToDot()
 function translateComma ($dotted, $cut = true, $max = '0') {
        // First, cast all to double, due to PHP changes
        $dotted = (double) $dotted;
 function translateComma ($dotted, $cut = true, $max = '0') {
        // First, cast all to double, due to PHP changes
        $dotted = (double) $dotted;
@@ -398,12 +248,13 @@ function translateGender ($gender) {
                case 'M': // Male
                case 'F': // Female
                case 'C': // Company
                case 'M': // Male
                case 'F': // Female
                case 'C': // Company
-                       $ret = sprintf("{--GENDER_%s--}", $gender);
+                       // Use generic function
+                       $ret = translateGeneric('GENDER', $gender);
                        break;
 
                default:
                        // Please report bugs on unknown genders
                        break;
 
                default:
                        // Please report bugs on unknown genders
-                       debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown gender %s detected.", $gender));
+                       reportBug(__FUNCTION__, __LINE__, sprintf("Unknown gender %s detected.", $gender));
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -421,17 +272,17 @@ function translateUserStatus ($status) {
                case 'UNCONFIRMED':
                case 'CONFIRMED':
                case 'LOCKED':
                case 'UNCONFIRMED':
                case 'CONFIRMED':
                case 'LOCKED':
-                       $ret = sprintf("{--ACCOUNT_STATUS_%s--}", $status);
+                       // Use generic function for all "normal" cases"
+                       $ret = translateGeneric('ACCOUNT_STATUS', $status);
                        break;
 
                        break;
 
-               case '':
-               case null:
+               case '': // Account deleted
+               case NULL: // Account deleted
                        $ret = '{--ACCOUNT_STATUS_DELETED--}';
                        break;
 
                        $ret = '{--ACCOUNT_STATUS_DELETED--}';
                        break;
 
-               default:
-                       // Please report all unknown status
-                       debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown status %s(%s) detected.", $status, gettype($status)));
+               default: // Please report all unknown status
+                       reportBug(__FUNCTION__, __LINE__, sprintf("Unknown status %s(%s) detected.", $status, gettype($status)));
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -446,23 +297,31 @@ function translateMenuVisibleLocked ($content, $prefix = '') {
 
        // Translate 'visible' and keep an eye on the prefix
        switch ($content['visible']) {
 
        // Translate 'visible' and keep an eye on the prefix
        switch ($content['visible']) {
-               // Should be visible
-               case 'Y': $content['visible_css'] = $prefix . 'menu_visible'  ; break;
-               case 'N': $content['visible_css'] = $prefix . 'menu_invisible'; break;
-               default:
-                       // Please report this
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported visible value detected. content=<pre>' . print_r($content, true) . '</pre>');
+               case 'Y': // Should be visible
+                       $content['visible_css'] = $prefix . 'menu_visible';
+                       break;
+
+               case 'N': // Is invisible
+                       $content['visible_css'] = $prefix . 'menu_invisible';
+                       break;
+
+               default: // Please report this
+                       reportBug(__FUNCTION__, __LINE__, 'Unsupported visible value detected. content=<pre>' . print_r($content, true) . '</pre>');
                        break;
        } // END - switch
 
        // Translate 'locked' and keep an eye on the prefix
        switch ($content['locked']) {
                        break;
        } // END - switch
 
        // Translate 'locked' and keep an eye on the prefix
        switch ($content['locked']) {
-               // Should be locked
-               case 'Y': $content['locked_css'] = $prefix . 'menu_locked'  ; break;
-               case 'N': $content['locked_css'] = $prefix . 'menu_unlocked'; break;
-               default:
-                       // Please report this
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported locked value detected. content=<pre>' . print_r($content, true) . '</pre>');
+               case 'Y': // Should be locked, only admins can call this
+                       $content['locked_css'] = $prefix . 'menu_locked';
+                       break;
+
+               case 'N': // Is unlocked and visible to members/guests/sponsors
+                       $content['locked_css'] = $prefix . 'menu_unlocked';
+                       break;
+
+               default: // Please report this
+                       reportBug(__FUNCTION__, __LINE__, 'Unsupported locked value detected. content=<pre>' . print_r($content, true) . '</pre>');
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -498,7 +357,7 @@ function countSelection ($array) {
        // Integrity check
        if (!is_array($array)) {
                // Not an array!
        // Integrity check
        if (!is_array($array)) {
                // Not an array!
-               debug_report_bug(__FUNCTION__, __LINE__, 'No array provided.');
+               reportBug(__FUNCTION__, __LINE__, 'No array provided.');
        } // END - if
 
        // Init count
        } // END - if
 
        // Init count
@@ -507,7 +366,10 @@ function countSelection ($array) {
        // Count all entries
        foreach ($array as $key => $selected) {
                // Is it checked?
        // Count all entries
        foreach ($array as $key => $selected) {
                // Is it checked?
-               if (!empty($selected)) $ret++;
+               if (!empty($selected)) {
+                       // Yes, then count it
+                       $ret++;
+               } // END - if
        } // END - foreach
 
        // Return counted selections
        } // END - foreach
 
        // Return counted selections
@@ -535,7 +397,7 @@ function makeTime ($hours, $minutes, $seconds, $stamp) {
 // Redirects to an URL and if neccessarry extends it with own base URL
 function redirectToUrl ($url, $allowSpider = true) {
        // Is the output mode -2?
 // Redirects to an URL and if neccessarry extends it with own base URL
 function redirectToUrl ($url, $allowSpider = true) {
        // Is the output mode -2?
-       if (getScriptOutputMode() == -2) {
+       if (isAjaxOutputMode()) {
                // This is always (!) an AJAX request and shall not be redirected
                return;
        } // END - if
                // This is always (!) an AJAX request and shall not be redirected
                return;
        } // END - if
@@ -558,7 +420,7 @@ function redirectToUrl ($url, $allowSpider = true) {
        } // END - if
 
        // Three different ways to debug...
        } // END - if
 
        // Three different ways to debug...
-       //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'URL=' . $url);
+       //* DEBUG: */ reportBug(__FUNCTION__, __LINE__, 'URL=' . $url);
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'URL=' . $url);
        //* DEBUG: */ die($url);
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'URL=' . $url);
        //* DEBUG: */ die($url);
 
@@ -574,7 +436,7 @@ function redirectToUrl ($url, $allowSpider = true) {
        }
 
        // Shut the mailer down here
        }
 
        // Shut the mailer down here
-       shutdown();
+       doShutdown();
 }
 
 /************************************************************************
 }
 
 /************************************************************************
@@ -584,7 +446,7 @@ function redirectToUrl ($url, $allowSpider = true) {
  *                                                                      *
  * $array - Das 3-dimensionale Array, das paralell sortiert werden soll *
  * $a_sort - Array, das die Sortiereihenfolge der ersten Elementeben    *
  *                                                                      *
  * $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   *
+ * $primary_key - Primaerschl.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   *
  *                                                                      *
  * $order - Sortiereihenfolge: -1 = a-Z, 0 = keine, 1 = Z-a             *
  * $nums - true = Als Zahlen sortieren, false = Als Zeichen sortieren   *
  *                                                                      *
@@ -711,7 +573,7 @@ function bigintval ($num, $castValue = true, $abortOnMismatch = true) {
        // Has the whole value changed?
        if (('' . $ret . '' != '' . $num . '') && ($abortOnMismatch === true) && (!is_null($num))) {
                // Log the values
        // Has the whole value changed?
        if (('' . $ret . '' != '' . $num . '') && ($abortOnMismatch === true) && (!is_null($num))) {
                // Log the values
-               debug_report_bug(__FUNCTION__, __LINE__, 'Problem with number found. ret[' . gettype($ret) . ']=' . $ret . ', num[' . gettype($num) . ']='. $num);
+               reportBug(__FUNCTION__, __LINE__, 'Problem with number found. ret[' . gettype($ret) . ']=' . $ret . ', num[' . gettype($num) . ']='. $num);
        } // END - if
 
        // Return result
        } // END - if
 
        // Return result
@@ -787,17 +649,26 @@ function createFancyTime ($stamp) {
 
 // Taken from www.php.net isInStringIgnoreCase() user comments
 function isEmailValid ($email) {
 
 // Taken from www.php.net isInStringIgnoreCase() user comments
 function isEmailValid ($email) {
-       // Check first part of email address
-       $first = '[-a-z0-9!#$%&\'*+/=?^_<{|}~]+(\.[-a-zA-Z0-9!#$%&\'*+/=?^_<{|}~]+)*';
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'email=' . $email . ' - ENTERED!');
+
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__][$email])) {
+               // Check first part of email address
+               $first = '[-a-z0-9!#$%&\'*+/=?^_<{|}~]+(\.[-a-zA-Z0-9!#$%&\'*+/=?^_<{|}~]+)*';
 
 
-       //  Check domain
-       $domain = '[a-z0-9-]+(\.[a-z0-9-]{2,5})+';
+               //  Check domain
+               $domain = '[a-z0-9-]+(\.[a-z0-9-]{2,5})+';
 
 
-       // Generate pattern
-       $regex = '@^' . $first . '\@' . $domain . '$@iU';
+               // Generate pattern
+               $regex = '@^' . $first . '\@' . $domain . '$@iU';
+
+               // Determine it
+               $GLOBALS[__FUNCTION__][$email] = (($email != getMessage('DEFAULT_WEBMASTER')) && (preg_match($regex, $email)));
+       } // END - if
 
        // Return check result
 
        // Return check result
-       return preg_match($regex, $email);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'email=' . $email . ',isValid=' . intval($GLOBALS[__FUNCTION__][$email]) . ' - EXIT!');
+       return $GLOBALS[__FUNCTION__][$email];;
 }
 
 // Function taken from user comments on www.php.net / function isInStringIgnoreCase()
 }
 
 // Function taken from user comments on www.php.net / function isInStringIgnoreCase()
@@ -818,8 +689,10 @@ function isUrlValid ($url, $compile = true) {
                return FILTER_VALIDATE_URL($url, false);
        } // END - if
 
                return FILTER_VALIDATE_URL($url, false);
        } // END - if
 
-       // If not installed, perform a simple test. Just make it sure there is always a http:// or
-       // https:// in front of the URLs
+       /*
+        * If not installed, perform a simple test. Just make it sure there is always a
+        * http:// or https:// in front of the URLs.
+        */
        return isUrlValidSimple($url);
 }
 
        return isUrlValidSimple($url);
 }
 
@@ -844,7 +717,7 @@ function generateHash ($plainText, $salt = '', $hash = true) {
        // Do we miss an arry element here?
        if (!isConfigEntrySet('file_hash')) {
                // Stop here
        // Do we miss an arry element here?
        if (!isConfigEntrySet('file_hash')) {
                // Stop here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Missing file_hash in ' . __FUNCTION__ . '.');
+               reportBug(__FUNCTION__, __LINE__, 'Missing file_hash in ' . __FUNCTION__ . '.');
        } // END - if
 
        // When the salt is empty build a new one, else use the first x configured characters as the salt
        } // END - if
 
        // When the salt is empty build a new one, else use the first x configured characters as the salt
@@ -881,7 +754,7 @@ function generateHash ($plainText, $salt = '', $hash = true) {
                // Sanity check on salt
                if (strlen($salt) != getSaltLength()) {
                        // Not the same!
                // Sanity check on salt
                if (strlen($salt) != getSaltLength()) {
                        // Not the same!
-                       debug_report_bug(__FUNCTION__, __LINE__, 'salt length mismatch! (' . strlen($salt) . '/' . getSaltLength() . ')');
+                       reportBug(__FUNCTION__, __LINE__, 'salt length mismatch! (' . strlen($salt) . '/' . getSaltLength() . ')');
                } // END - if
        }
 
                } // END - if
        }
 
@@ -933,13 +806,17 @@ function scrambleString ($str) {
 // De-scramble a string scrambled by scrambleString()
 function descrambleString ($str) {
        // Scramble only 40 chars long strings
 // De-scramble a string scrambled by scrambleString()
 function descrambleString ($str) {
        // Scramble only 40 chars long strings
-       if (strlen($str) != 40) return $str;
+       if (strlen($str) != 40) {
+               return $str;
+       } // END - if
 
        // Load numbers from config
        $scrambleNums = explode(':', getPassScramble());
 
        // Validate numbers
 
        // Load numbers from config
        $scrambleNums = explode(':', getPassScramble());
 
        // Validate numbers
-       if (count($scrambleNums) != 40) return $str;
+       if (count($scrambleNums) != 40) {
+               return $str;
+       } // END - if
 
        // Begin descrambling
        $orig = str_repeat(' ', 40);
 
        // Begin descrambling
        $orig = str_repeat(' ', 40);
@@ -1049,15 +926,18 @@ function getCurrentTheme () {
        $ret = 'default';
 
        // Do we have ext-theme installed and active or is 'theme' in URL or POST data?
        $ret = 'default';
 
        // Do we have ext-theme installed and active or is 'theme' in URL or POST data?
-       if ((isPostRequestElementSet('theme')) && (isIncludeReadable(sprintf("theme/%s/theme.php", postRequestElement('theme'))))) {
+       if (isExtensionActive('theme')) {
+               // Call inner method
+               $ret = getActualTheme();
+       } elseif ((isPostRequestElementSet('theme')) && (isIncludeReadable(sprintf("theme/%s/theme.php", postRequestElement('theme'))))) {
                // Use value from POST data
                $ret = postRequestElement('theme');
        } elseif ((isGetRequestElementSet('theme')) && (isIncludeReadable(sprintf("theme/%s/theme.php", getRequestElement('theme'))))) {
                // Use value from GET data
                $ret = getRequestElement('theme');
                // Use value from POST data
                $ret = postRequestElement('theme');
        } elseif ((isGetRequestElementSet('theme')) && (isIncludeReadable(sprintf("theme/%s/theme.php", getRequestElement('theme'))))) {
                // Use value from GET data
                $ret = getRequestElement('theme');
-       } elseif (isExtensionActive('theme')) {
-               // Call inner method
-               $ret = getActualTheme();
+       } elseif ((isMailerThemeSet()) && (isIncludeReadable(sprintf("theme/%s/theme.php", getMailerTheme())))) {
+               // Use value from GET data
+               $ret = getMailerTheme();
        }
 
        // Return theme value
        }
 
        // Return theme value
@@ -1137,39 +1017,50 @@ function generateSeed () {
 
 // Converts a message code to a human-readable message
 function getMessageFromErrorCode ($code) {
 
 // Converts a message code to a human-readable message
 function getMessageFromErrorCode ($code) {
-       $message = '';
+       // Default is an unknown error code
+       $message = '{%message,UNKNOWN_ERROR_CODE=' . $code . '%}';
+
+       // Which code is provided?
        switch ($code) {
        switch ($code) {
-               case '': break;
-               case getCode('LOGOUT_DONE')        : $message = '{--LOGOUT_DONE--}'; break;
-               case getCode('LOGOUT_FAILED')      : $message = '<span class="bad">{--LOGOUT_FAILED--}</span>'; break;
-               case getCode('DATA_INVALID')       : $message = '{--MAIL_DATA_INVALID--}'; break;
-               case getCode('POSSIBLE_INVALID')   : $message = '{--MAIL_POSSIBLE_INVALID--}'; break;
-               case getCode('USER_404')           : $message = '{--USER_404--}'; break;
-               case getCode('STATS_404')          : $message = '{--MAIL_STATS_404--}'; break;
-               case getCode('ALREADY_CONFIRMED')  : $message = '{--MAIL_ALREADY_CONFIRMED--}'; break;
-               case getCode('WRONG_PASS')         : $message = '{--LOGIN_WRONG_PASS--}'; break;
-               case getCode('WRONG_ID')           : $message = '{--LOGIN_WRONG_ID--}'; break;
-               case getCode('ACCOUNT_LOCKED')     : $message = '{--LOGIN_STATUS_LOCKED--}'; break;
-               case getCode('ACCOUNT_UNCONFIRMED'): $message = '{--LOGIN_STATUS_UNCONFIRMED--}'; break;
-               case getCode('COOKIES_DISABLED')   : $message = '{--LOGIN_COOKIES_DISABLED--}'; break;
-               case getCode('BEG_SAME_AS_OWN')    : $message = '{--BEG_SAME_USERID_AS_OWN--}'; break;
-               case getCode('LOGIN_FAILED')       : $message = '{--GUEST_LOGIN_FAILED_GENERAL--}'; break;
-               case getCode('MODULE_MEMBER_ONLY') : $message = '{%message,MODULE_MEMBER_ONLY=' . getRequestElement('mod') . '%}'; break;
-               case getCode('OVERLENGTH')         : $message = '{--MEMBER_TEXT_OVERLENGTH--}'; break;
-               case getCode('URL_FOUND')          : $message = '{--MEMBER_TEXT_CONTAINS_URL--}'; break;
-               case getCode('SUBJECT_URL')        : $message = '{--MEMBER_SUBJECT_CONTAINS_URL--}'; break;
-               case getCode('BLIST_URL')          : $message = '{--MEMBER_URL_BLACK_LISTED--}<br />{--MEMBER_BLIST_TIME--}: ' . generateDateTime(getRequestElement('blist'), 0); break;
-               case getCode('NO_RECS_LEFT')       : $message = '{--MEMBER_SELECTED_MORE_RECS--}'; break;
-               case getCode('INVALID_TAGS')       : $message = '{--MEMBER_HTML_INVALID_TAGS--}'; break;
-               case getCode('MORE_POINTS')        : $message = '{--MEMBER_MORE_POINTS_NEEDED--}'; break;
-               case getCode('MORE_RECEIVERS1')    : $message = '{--MEMBER_ENTER_MORE_RECEIVERS--}'; break;
-               case getCode('MORE_RECEIVERS2')    : $message = '{--MEMBER_NO_MORE_RECEIVERS_FOUND--}'; break;
-               case getCode('MORE_RECEIVERS3')    : $message = '{--MEMBER_ENTER_MORE_MIN_RECEIVERS--}'; break;
-               case getCode('INVALID_URL')        : $message = '{--MEMBER_ENTER_INVALID_URL--}'; break;
-               case getCode('NO_MAIL_TYPE')       : $message = '{--MEMBER_NO_MAIL_TYPE_SELECTED--}'; break;
-               case getCode('UNKNOWN_ERROR')      : $message = '{--LOGIN_UNKNOWN_ERROR--}'; break;
-               case getCode('UNKNOWN_STATUS')     : $message = '{--LOGIN_UNKNOWN_STATUS--}'; break;
-               case getCode('PROFILE_UPDATED')    : $message = '{--MEMBER_PROFILE_UPDATED--}'; break;
+               case '':
+                       // No error code is bad coding practice
+                       reportBug(__FUNCTION__, __LINE__, 'Empty error code supplied. Please fix your code.');
+                       break;
+
+               // All error messages
+               case getCode('LOGOUT_DONE')         : $message = '{--LOGOUT_DONE--}'; break;
+               case getCode('LOGOUT_FAILED')       : $message = '<span class="bad">{--LOGOUT_FAILED--}</span>'; break;
+               case getCode('DATA_INVALID')        : $message = '{--MAIL_DATA_INVALID--}'; break;
+               case getCode('POSSIBLE_INVALID')    : $message = '{--MAIL_POSSIBLE_INVALID--}'; break;
+               case getCode('USER_404')            : $message = '{--USER_404--}'; break;
+               case getCode('STATS_404')           : $message = '{--MAIL_STATS_404--}'; break;
+               case getCode('ALREADY_CONFIRMED')   : $message = '{--MAIL_ALREADY_CONFIRMED--}'; break;
+               case getCode('BEG_SAME_AS_OWN')     : $message = '{--BEG_SAME_USERID_AS_OWN--}'; break;
+               case getCode('LOGIN_FAILED')        : $message = '{--GUEST_LOGIN_FAILED_GENERAL--}'; break;
+               case getCode('MODULE_MEMBER_ONLY')  : $message = '{%message,MODULE_MEMBER_ONLY=' . getRequestElement('mod') . '%}'; break;
+               case getCode('OVERLENGTH')          : $message = '{--MEMBER_TEXT_OVERLENGTH--}'; break;
+               case getCode('URL_FOUND')           : $message = '{--MEMBER_TEXT_CONTAINS_URL--}'; break;
+               case getCode('SUBJECT_URL')         : $message = '{--MEMBER_SUBJECT_CONTAINS_URL--}'; break;
+               case getCode('BLIST_URL')           : $message = '{--MEMBER_URL_BLACK_LISTED--}<br />{--MEMBER_BLIST_TIME--}: ' . generateDateTime(getRequestElement('blist'), 0); break;
+               case getCode('NO_RECS_LEFT')        : $message = '{--MEMBER_SELECTED_MORE_RECS--}'; break;
+               case getCode('INVALID_TAGS')        : $message = '{--MEMBER_HTML_INVALID_TAGS--}'; break;
+               case getCode('MORE_POINTS')         : $message = '{--MEMBER_MORE_POINTS_NEEDED--}'; break;
+               case getCode('MORE_RECEIVERS1')     : $message = '{--MEMBER_ENTER_MORE_RECEIVERS--}'; break;
+               case getCode('MORE_RECEIVERS2')     : $message = '{--MEMBER_NO_MORE_RECEIVERS_FOUND--}'; break;
+               case getCode('MORE_RECEIVERS3')     : $message = '{--MEMBER_ENTER_MORE_MIN_RECEIVERS--}'; break;
+               case getCode('INVALID_URL')         : $message = '{--MEMBER_ENTER_INVALID_URL--}'; break;
+               case getCode('NO_MAIL_TYPE')        : $message = '{--MEMBER_NO_MAIL_TYPE_SELECTED--}'; break;
+               case getCode('PROFILE_UPDATED')     : $message = '{--MEMBER_PROFILE_UPDATED--}'; break;
+               case getCode('UNKNOWN_REDIRECT')    : $message = '{--UNKNOWN_REDIRECT_VALUE--}'; break;
+               case getCode('WRONG_PASS')          : $message = '{--LOGIN_WRONG_PASS--}'; break;
+               case getCode('WRONG_ID')            : $message = '{--LOGIN_WRONG_ID--}'; break;
+               case getCode('ACCOUNT_LOCKED')      : $message = '{--LOGIN_STATUS_LOCKED--}'; break;
+               case getCode('ACCOUNT_UNCONFIRMED') : $message = '{--LOGIN_STATUS_UNCONFIRMED--}'; break;
+               case getCode('COOKIES_DISABLED')    : $message = '{--LOGIN_COOKIES_DISABLED--}'; break;
+               case getCode('UNKNOWN_ERROR')       : $message = '{--LOGIN_UNKNOWN_ERROR--}'; break;
+               case getCode('UNKNOWN_STATUS')      : $message = '{--LOGIN_UNKNOWN_STATUS--}'; break;
+               case getCode('LOGIN_EMPTY_ID')      : $message = '{--LOGIN_ID_IS_EMPTY--}'; break;
+               case getCode('LOGIN_EMPTY_PASSWORD'): $message = '{--LOGIN_PASSWORD_IS_EMPTY--}'; break;
 
                case getCode('ERROR_MAILID'):
                        if (isExtensionActive('mailid', true)) {
 
                case getCode('ERROR_MAILID'):
                        if (isExtensionActive('mailid', true)) {
@@ -1215,11 +1106,8 @@ function getMessageFromErrorCode ($code) {
                        break;
 
                default:
                        break;
 
                default:
-                       // Missing/invalid code
-                       $message = '{%message,UNKNOWN_MAILID_CODE=' . $code . '%}';
-
-                       // Log it
-                       logDebugMessage(__FUNCTION__, __LINE__, $message);
+                       // Log missing/invalid error codes
+                       logDebugMessage(__FUNCTION__, __LINE__, getMessage('UNKNOWN_MAILID_CODE', $code));
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -1229,8 +1117,9 @@ function getMessageFromErrorCode ($code) {
 
 // Function taken from user comments on www.php.net / function isInStringIgnoreCase()
 function isUrlValidSimple ($url) {
 
 // Function taken from user comments on www.php.net / function isInStringIgnoreCase()
 function isUrlValidSimple ($url) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'url=' . $url . ' - ENTERED!');
        // Prepare URL
        // Prepare URL
-       $url = secureString(str_replace("\\", '', compileRawCode(urldecode($url))));
+       $url = secureString(str_replace(chr(92), '', compileRawCode(urldecode($url))));
 
        // Allows http and https
        $http      = "(http|https)+(:\/\/)";
 
        // Allows http and https
        $http      = "(http|https)+(:\/\/)";
@@ -1292,6 +1181,7 @@ function isUrlValidSimple ($url) {
        } // END - foreach
 
        // Return true/false
        } // END - foreach
 
        // Return true/false
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'url=' . $url . ',reg=' . intval($reg) . ' - EXIT!');
        return $reg;
 }
 
        return $reg;
 }
 
@@ -1310,12 +1200,12 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $inserted, $seek=0
                $tmp = $FQFN . '.tmp';
 
                // Open the source file
                $tmp = $FQFN . '.tmp';
 
                // Open the source file
-               $fp = fopen($FQFN, 'r') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read. file=' . basename($FQFN));
+               $fp = fopen($FQFN, 'r') or reportBug(__FUNCTION__, __LINE__, 'Cannot read. file=' . basename($FQFN));
 
                // Is the resource valid?
                if (is_resource($fp)) {
                        // Open temporary file
 
                // Is the resource valid?
                if (is_resource($fp)) {
                        // Open temporary file
-                       $fp_tmp = fopen($tmp, 'w') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot write. tmp=' . basename($tmp) . ',file=' . $FQFN);
+                       $fp_tmp = fopen($tmp, 'w') or reportBug(__FUNCTION__, __LINE__, 'Cannot write. tmp=' . basename($tmp) . ',file=' . $FQFN);
 
                        // Is the resource again valid?
                        if (is_resource($fp_tmp)) {
 
                        // Is the resource again valid?
                        if (is_resource($fp_tmp)) {
@@ -1335,7 +1225,7 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $inserted, $seek=0
                                        if ($next > -1) {
                                                if ($next === $seek) {
                                                        $next = -1;
                                        if ($next > -1) {
                                                if ($next === $seek) {
                                                        $next = -1;
-                                                       $line = $prefix . $inserted . $suffix . "\n";
+                                                       $line = $prefix . $inserted . $suffix . chr(10);
                                                } else {
                                                        $next++;
                                                }
                                                } else {
                                                        $next++;
                                                }
@@ -1367,33 +1257,19 @@ function changeDataInFile ($FQFN, $comment, $prefix, $suffix, $inserted, $seek=0
                }
        } else {
                // File not found, not readable or writeable
                }
        } else {
                // File not found, not readable or writeable
-               debug_report_bug(__FUNCTION__, __LINE__, 'File not readable/writeable. file=' . basename($FQFN));
+               reportBug(__FUNCTION__, __LINE__, 'File not readable/writeable. file=' . basename($FQFN));
        }
 
        // An error was detected!
        return false;
 }
 
        }
 
        // An error was detected!
        return false;
 }
 
-// Send notification to admin
-function sendAdminNotification ($subject, $templateName, $content = array(), $userid = NULL) {
-       if ((isExtensionInstalledAndNewer('admins', '0.4.1')) && (function_exists('sendAdminsEmails'))) {
-               // Send new way
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'admins=Y,subject=' . $subject . ',templateName=' . $templateName . ' - OKAY!');
-               sendAdminsEmails($subject, $templateName, $content, $userid);
-       } else {
-               // Send out-dated way
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'admins=N,subject=' . $subject . ',templateName=' . $templateName . ' - OUT-DATED!');
-               $message = loadEmailTemplate($templateName, $content, $userid);
-               sendAdminEmails($subject, $message);
-       }
-}
-
 // Debug message logger
 function logDebugMessage ($funcFile, $line, $message, $force=true) {
        // Is debug mode enabled?
        if ((isDebugModeEnabled()) || ($force === true)) {
                // Remove CRLF
 // Debug message logger
 function logDebugMessage ($funcFile, $line, $message, $force=true) {
        // Is debug mode enabled?
        if ((isDebugModeEnabled()) || ($force === true)) {
                // Remove CRLF
-               $message = str_replace("\r", '', str_replace("\n", '', $message));
+               $message = str_replace(array(chr(13), chr(10)), array('', ''), $message);
 
                // Log this message away
                appendLineToFile(getPath() . getCachePath() . 'debug.log', generateDateTime(time(), '4') . '|' . getModule(false) . '|' . basename($funcFile) . '|' . $line . '|' . $message);
 
                // Log this message away
                appendLineToFile(getPath() . getCachePath() . 'debug.log', generateDateTime(time(), '4') . '|' . getModule(false) . '|' . basename($funcFile) . '|' . $line . '|' . $message);
@@ -1449,7 +1325,7 @@ function convertSelectionsToEpocheTime (array &$postData, array &$content, &$id,
                if ((isset($postData[$test . '_ye'])) && (isset($postData[$test . '_mo'])) && (isset($postData[$test . '_we'])) && (isset($postData[$test . '_da'])) && (isset($postData[$test . '_ho'])) && (isset($postData[$test . '_mi'])) && (isset($postData[$test . '_se'])) && ($test != $test2)) {
                        // Generate timestamp
                        $postData[$test] = createEpocheTimeFromSelections($test, $postData);
                if ((isset($postData[$test . '_ye'])) && (isset($postData[$test . '_mo'])) && (isset($postData[$test . '_we'])) && (isset($postData[$test . '_da'])) && (isset($postData[$test . '_ho'])) && (isset($postData[$test . '_mi'])) && (isset($postData[$test . '_se'])) && ($test != $test2)) {
                        // Generate timestamp
                        $postData[$test] = createEpocheTimeFromSelections($test, $postData);
-                       $content[] = sprintf("`%s`='%s'", $test, $postData[$test]);
+                       array_push($content, sprintf("`%s`='%s'", $test, $postData[$test]));
                        $GLOBALS['skip_config'][$test] = true;
 
                        // Remove data from array
                        $GLOBALS['skip_config'][$test] = true;
 
                        // Remove data from array
@@ -1466,6 +1342,7 @@ function convertSelectionsToEpocheTime (array &$postData, array &$content, &$id,
 }
 
 // Reverts the german decimal comma into Computer decimal dot
 }
 
 // Reverts the german decimal comma into Computer decimal dot
+// OPPOMENT: translateComma()
 function convertCommaToDot ($str) {
        // Default float is not a float... ;-)
        $float = false;
 function convertCommaToDot ($str) {
        // Default float is not a float... ;-)
        $float = false;
@@ -1481,10 +1358,10 @@ function convertCommaToDot ($str) {
                        break;
 
                default: // US and so on
                        break;
 
                default: // US and so on
-                       // Remove thousand dots first and cast
+                       // Remove thousand commatas first and cast
                        $float = (float)str_replace(',', '', $str);
                        break;
                        $float = (float)str_replace(',', '', $str);
                        break;
-       }
+       } // END - switch
 
        // Return float
        return $float;
 
        // Return float
        return $float;
@@ -1552,6 +1429,9 @@ function rebuildCache ($cache, $inc = '', $force = false) {
 
 // Determines the real remote address
 function determineRealRemoteAddress ($remoteAddr = false) {
 
 // Determines the real remote address
 function determineRealRemoteAddress ($remoteAddr = false) {
+       // Default is 127.0.0.1
+       $address = '127.0.0.1';
+
        // Is a proxy in use?
        if ((isset($_SERVER['HTTP_X_FORWARDED_FOR'])) && (!$remoteAddr)) {
                // Proxy was used
        // Is a proxy in use?
        if ((isset($_SERVER['HTTP_X_FORWARDED_FOR'])) && (!$remoteAddr)) {
                // Proxy was used
@@ -1559,7 +1439,7 @@ function determineRealRemoteAddress ($remoteAddr = false) {
        } elseif ((isset($_SERVER['HTTP_CLIENT_IP'])) && (!$remoteAddr)) {
                // Yet, another proxy
                $address = $_SERVER['HTTP_CLIENT_IP'];
        } elseif ((isset($_SERVER['HTTP_CLIENT_IP'])) && (!$remoteAddr)) {
                // Yet, another proxy
                $address = $_SERVER['HTTP_CLIENT_IP'];
-       } else {
+       } elseif (isset($_SERVER['REMOTE_ADDR'])) {
                // The regular address when no proxy was used
                $address = $_SERVER['REMOTE_ADDR'];
        }
                // The regular address when no proxy was used
                $address = $_SERVER['REMOTE_ADDR'];
        }
@@ -1615,6 +1495,12 @@ function addNewBonusMail ($data, $mode = '', $output = true) {
 
 // Determines referral id and sets it
 function determineReferralId () {
 
 // Determines referral id and sets it
 function determineReferralId () {
+       // Do we have it already detected?
+       if (isReferralIdValid()) {
+               // Do not determine it, just return it
+               return getReferralId();
+       } // END - if
+
        // Skip this in non-html-mode and outside ref.php
        if ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) {
                return false;
        // Skip this in non-html-mode and outside ref.php
        if ((!isHtmlOutputMode()) && (basename($_SERVER['PHP_SELF']) != 'ref.php')) {
                return false;
@@ -1644,7 +1530,7 @@ function determineReferralId () {
                // Set session refid as global
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from SESSION data (' . getSession('refid') . ')');
                setReferralId(bigintval(getSession('refid')));
                // Set session refid as global
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Using refid from SESSION data (' . getSession('refid') . ')');
                setReferralId(bigintval(getSession('refid')));
-       } elseif (isRandomReferralIdEnabled()) {
+       } elseif ((isExtensionInstalledAndNewer('user', '0.3.4')) && (isRandomReferralIdEnabled())) {
                // Select a random user which has confirmed enougth mails
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Checking random referral id');
                setReferralId(determineRandomReferralId());
                // Select a random user which has confirmed enougth mails
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Checking random referral id');
                setReferralId(determineRandomReferralId());
@@ -1723,10 +1609,10 @@ function doHourly () {
        runFilterChain('hourly');
 }
 
        runFilterChain('hourly');
 }
 
-// Our shutdown-function
-function shutdown () {
+// Shuts down the mailer (e.g. closing database link, flushing output/filters, etc.)
+function doShutdown () {
        // Call the filter chain 'shutdown'
        // Call the filter chain 'shutdown'
-       runFilterChain('shutdown', null);
+       runFilterChain('shutdown', NULL);
 
        // Check if not in installation phase and the link is up
        if ((!isInstallationPhase()) && (SQL_IS_LINK_UP())) {
 
        // Check if not in installation phase and the link is up
        if ((!isInstallationPhase()) && (SQL_IS_LINK_UP())) {
@@ -1734,7 +1620,7 @@ function shutdown () {
                SQL_CLOSE(__FUNCTION__, __LINE__);
        } elseif (!isInstallationPhase()) {
                // No database link
                SQL_CLOSE(__FUNCTION__, __LINE__);
        } elseif (!isInstallationPhase()) {
                // No database link
-               debug_report_bug(__FUNCTION__, __LINE__, 'Database link is already down, while shutdown is running.');
+               reportBug(__FUNCTION__, __LINE__, 'Database link is already down, while shutdown is running.');
        }
 
        // Stop executing here
        }
 
        // Stop executing here
@@ -1750,7 +1636,7 @@ function initMemberId () {
 function setMemberId ($memberid) {
        // We should not set member id to zero
        if ($memberid == '0') {
 function setMemberId ($memberid) {
        // We should not set member id to zero
        if ($memberid == '0') {
-               debug_report_bug(__FUNCTION__, __LINE__, 'Userid should not be set zero.');
+               reportBug(__FUNCTION__, __LINE__, 'Userid should not be set zero.');
        } // END - if
 
        // Set it secured
        } // END - if
 
        // Set it secured
@@ -1787,7 +1673,7 @@ function getExtraTitle () {
        // Is the extra title set?
        if (!isExtraTitleSet()) {
                // No, then abort here
        // Is the extra title set?
        if (!isExtraTitleSet()) {
                // No, then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'extra_title is not set!');
+               reportBug(__FUNCTION__, __LINE__, 'extra_title is not set!');
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
@@ -1806,28 +1692,25 @@ function isExtraTitleSet () {
  *
  * @param      $baseDir                        Relative base directory to PATH to scan from
  * @param      $prefix                         Prefix for all positive matches (which files should be found)
  *
  * @param      $baseDir                        Relative base directory to PATH to scan from
  * @param      $prefix                         Prefix for all positive matches (which files should be found)
- * @param      $fileIncludeDirs        Wether to include directories in the final output array
- * @param      $addBaseDir                     Wether to add $baseDir to all array entries
+ * @param      $fileIncludeDirs        whether to include directories in the final output array
+ * @param      $addBaseDir                     whether to add $baseDir to all array entries
  * @param      $excludeArray           Excluded files and directories, these must be full files names, e.g. 'what-' will exclude all files named 'what-' but won't exclude 'what-foo.php'
  * @param      $extension                      File extension for all positive matches
  * @param      $excludePattern         Regular expression to exclude more files (preg_match())
  * @param      $excludeArray           Excluded files and directories, these must be full files names, e.g. 'what-' will exclude all files named 'what-' but won't exclude 'what-foo.php'
  * @param      $extension                      File extension for all positive matches
  * @param      $excludePattern         Regular expression to exclude more files (preg_match())
- * @param      $recursive                      Wether to scan recursively
+ * @param      $recursive                      whether to scan recursively
  * @param      $suffix                         Suffix for positive matches ($extension will be appended, too)
  * @return     $foundMatches           All found positive matches for above criteria
  */
 function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $addBaseDir = true, $excludeArray = array(), $extension = '.php', $excludePattern = '@(\.|\.\.)$@', $recursive = true, $suffix = '') {
        // Add default entries we should always exclude
  * @param      $suffix                         Suffix for positive matches ($extension will be appended, too)
  * @return     $foundMatches           All found positive matches for above criteria
  */
 function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $addBaseDir = true, $excludeArray = array(), $extension = '.php', $excludePattern = '@(\.|\.\.)$@', $recursive = true, $suffix = '') {
        // Add default entries we should always exclude
-       $excludeArray[] = '.';         // Current directory
-       $excludeArray[] = '..';        // Parent directory
-       $excludeArray[] = '.svn';      // Directories created by Subversion
-       $excludeArray[] = '.htaccess'; // Directory protection files (mostly)
+       array_unshift($excludeArray, '.', '..', '.svn', '.htaccess');
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'baseDir=' . $baseDir . ',prefix=' . $prefix . ' - Entered!');
        // Init found includes
        $foundMatches = array();
 
        // Open directory
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'baseDir=' . $baseDir . ',prefix=' . $prefix . ' - Entered!');
        // Init found includes
        $foundMatches = array();
 
        // Open directory
-       $dirPointer = opendir(getPath() . $baseDir) or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read directory ' . basename($baseDir) . '.');
+       $dirPointer = opendir(getPath() . $baseDir) or reportBug(__FUNCTION__, __LINE__, 'Cannot read directory ' . basename($baseDir) . '.');
 
        // Read all entries
        while ($baseFile = readdir($dirPointer)) {
 
        // Read all entries
        while ($baseFile = readdir($dirPointer)) {
@@ -1876,6 +1759,10 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                        // Might be deprecated
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'File ' . $FQFN . ' is to small (' . filesize($FQFN) . ')!');
                        continue;
                        // Might be deprecated
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'File ' . $FQFN . ' is to small (' . filesize($FQFN) . ')!');
                        continue;
+               } elseif (($extension == '.php') && (filesize($FQFN) < 50)) {
+                       // This PHP script is deprecated
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'File ' . $FQFN . ' is a deprecated PHP script!');
+                       continue;
                }
 
                // Get file' extension (last 4 chars)
                }
 
                // Get file' extension (last 4 chars)
@@ -1892,18 +1779,18 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
                                // Add file with or without base path
                                if ($addBaseDir === true) {
                                        // With base path
                                // Add file with or without base path
                                if ($addBaseDir === true) {
                                        // With base path
-                                       $foundMatches[] = $fileName;
+                                       array_push($foundMatches, $fileName);
                                } else {
                                        // No base path
                                } else {
                                        // No base path
-                                       $foundMatches[] = $baseFile;
+                                       array_push($foundMatches, $baseFile);
                                }
                        } else {
                                // We found .php file but should not search for them, why?
                                }
                        } else {
                                // We found .php file but should not search for them, why?
-                               debug_report_bug(__FUNCTION__, __LINE__, 'We should find files with extension=' . $extension . ', but we found a PHP script. (baseFile=' . $baseFile . ')');
+                               reportBug(__FUNCTION__, __LINE__, 'We should find files with extension=' . $extension . ', but we found a PHP script. (baseFile=' . $baseFile . ')');
                        }
                } elseif ($fileExtension == $extension) {
                        // Other, generic file found
                        }
                } elseif ($fileExtension == $extension) {
                        // Other, generic file found
-                       $foundMatches[] = $fileName;
+                       array_push($foundMatches, $fileName);
                }
        } // END - while
 
                }
        } // END - while
 
@@ -1918,7 +1805,7 @@ function getArrayFromDirectory ($baseDir, $prefix, $fileIncludeDirs = false, $ad
        return $foundMatches;
 }
 
        return $foundMatches;
 }
 
-// Checks wether $prefix is found in $fileName
+// Checks whether $prefix is found in $fileName
 function isFilePrefixFound ($fileName, $prefix) {
        // @TODO Find a way to cache this
        return (substr($fileName, 0, strlen($prefix)) == $prefix);
 function isFilePrefixFound ($fileName, $prefix) {
        // @TODO Find a way to cache this
        return (substr($fileName, 0, strlen($prefix)) == $prefix);
@@ -1928,10 +1815,14 @@ function isFilePrefixFound ($fileName, $prefix) {
 function mapModuleToTable ($moduleName) {
        // Map only these, still lame code...
        switch ($moduleName) {
 function mapModuleToTable ($moduleName) {
        // Map only these, still lame code...
        switch ($moduleName) {
-               // 'index' is the guest's menu
-               case 'index': $moduleName = 'guest';  break;
-               // ... and 'login' the member's menu
-               case 'login': $moduleName = 'member'; break;
+               case 'index': // 'index' is the guest's menu
+                       $moduleName = 'guest'; 
+                       break;
+
+               case 'login': // ... and 'login' the member's menu
+                       $moduleName = 'member';
+                       break;
+
                // Anything else will not be mapped, silently.
        } // END - switch
 
                // Anything else will not be mapped, silently.
        } // END - switch
 
@@ -1972,7 +1863,7 @@ function addSqlToDebug ($result, $sqlString, $timing, $F, $L) {
        );
 
        // Add it
        );
 
        // Add it
-       $GLOBALS['debug_sqls'][] = $record;
+       array_push($GLOBALS['debug_sqls'], $record);
 }
 
 // Initializes the cache instance
 }
 
 // Initializes the cache instance
@@ -1980,7 +1871,7 @@ function initCacheInstance () {
        // Check for double-initialization
        if (isset($GLOBALS['cache_instance'])) {
                // This should not happen and must be fixed
        // Check for double-initialization
        if (isset($GLOBALS['cache_instance'])) {
                // This should not happen and must be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Double initialization of cache system detected. cache_instance[]=' . gettype($GLOBALS['cache_instance']));
+               reportBug(__FUNCTION__, __LINE__, 'Double initialization of cache system detected. cache_instance[]=' . gettype($GLOBALS['cache_instance']));
        } // END - if
 
        // Load include for CacheSystem class
        } // END - if
 
        // Load include for CacheSystem class
@@ -1992,7 +1883,7 @@ function initCacheInstance () {
        // Did it work?
        if ($GLOBALS['cache_instance']->getStatusCode() != 'done') {
                // Failed to initialize cache sustem
        // Did it work?
        if ($GLOBALS['cache_instance']->getStatusCode() != 'done') {
                // Failed to initialize cache sustem
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cache system returned with unexpected error. getStatusCode()=' . $GLOBALS['cache_instance']->getStatusCode());
+               reportBug(__FUNCTION__, __LINE__, 'Cache system returned with unexpected error. getStatusCode()=' . $GLOBALS['cache_instance']->getStatusCode());
        } // END - if
 }
 
        } // END - if
 }
 
@@ -2034,9 +1925,9 @@ function getModuleFromFileName ($file, $accessLevel) {
                        break;
 
                default: // Unsupported file name / access level
                        break;
 
                default: // Unsupported file name / access level
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported file name=' . basename($file) . '/access level=' . $accessLevel);
+                       reportBug(__FUNCTION__, __LINE__, 'Unsupported file name=' . basename($file) . '/access level=' . $accessLevel);
                        break;
                        break;
-       }
+       } // END - switch
 
        // Return result
        return $modCheck;
 
        // Return result
        return $modCheck;
@@ -2052,16 +1943,12 @@ function encodeUrl ($url, $outputMode = '0') {
 
        // Do we have a valid session?
        if (((!isset($GLOBALS['valid_session'])) || ($GLOBALS['valid_session'] === false) || (!isset($_COOKIE[session_name()]))) && (isSpider() === false)) {
 
        // Do we have a valid session?
        if (((!isset($GLOBALS['valid_session'])) || ($GLOBALS['valid_session'] === false) || (!isset($_COOKIE[session_name()]))) && (isSpider() === false)) {
-               // Invalid session
                // Determine right separator
                $separator = '&amp;';
                if (!isInString('?', $url)) {
                        // No question mark
                        $separator = '?';
                // Determine right separator
                $separator = '&amp;';
                if (!isInString('?', $url)) {
                        // No question mark
                        $separator = '?';
-               } elseif ((!isHtmlOutputMode()) || ($outputMode != '0')) {
-                       // Non-HTML mode (or forced non-HTML mode
-                       $separator = '&';
-               }
+               } // END - if
 
                // Add it to URL
                if (session_id() != '') {
 
                // Add it to URL
                if (session_id() != '') {
@@ -2075,7 +1962,16 @@ function encodeUrl ($url, $outputMode = '0') {
                $url = '{?URL?}/' . $url;
        } // END - if
 
                $url = '{?URL?}/' . $url;
        } // END - if
 
-       // Return the URL
+       // Do we have to decode entities?
+       if ((!isHtmlOutputMode()) || ($outputMode != '0')) {
+               // Decode them for e.g. JavaScript parts
+               $url = decodeEntities($url);
+       } // END - if
+
+       // Debug log
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'url=' . $url . ',outputMode=' . $outputMode);
+
+       // Return the encoded URL
        return $url;
 }
 
        return $url;
 }
 
@@ -2135,15 +2031,19 @@ function searchDirsRecursive ($dir, &$last_changed, $lookFor = 'Date') {
 function handleFieldWithBraces ($field) {
        // Are there braces [] at the end?
        if (substr($field, -2, 2) == '[]') {
 function handleFieldWithBraces ($field) {
        // Are there braces [] at the end?
        if (substr($field, -2, 2) == '[]') {
-               // Try to find one and replace it. I do it this way to allow easy
-               // extending of this code.
+               /*
+                * Try to find one and replace it. I do it this way to allow easy
+                * extending of this code.
+                */
                foreach (array('admin_list_builder_id_value') as $key) {
                foreach (array('admin_list_builder_id_value') as $key) {
+                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key);
                        // Is the cache entry set?
                        if (isset($GLOBALS[$key])) {
                                // Insert it
                                $field = str_replace('[]', '[' . $GLOBALS[$key] . ']', $field);
 
                                // And abort
                        // Is the cache entry set?
                        if (isset($GLOBALS[$key])) {
                                // Insert it
                                $field = str_replace('[]', '[' . $GLOBALS[$key] . ']', $field);
 
                                // And abort
+                               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key, 'field=' . $field);
                                break;
                        } // END - if
                } // END - foreach
                                break;
                        } // END - if
                } // END - foreach
@@ -2292,7 +2192,7 @@ function isHexadecimal ($hex) {
 }
 
 /**
 }
 
 /**
- * Replace "\r" with "[r]" and "\n" with "[n]" and add a final new-line to make
+ * Replace chr(13) with "[r]" and chr(10) with "[n]" and add a final new-line to make
  * them visible to the developer. Use this function to debug e.g. buggy HTTP
  * response handler functions.
  *
  * them visible to the developer. Use this function to debug e.g. buggy HTTP
  * response handler functions.
  *
@@ -2300,8 +2200,7 @@ function isHexadecimal ($hex) {
  * @return     $str    Overworked string
  */
 function replaceReturnNewLine ($str) {
  * @return     $str    Overworked string
  */
 function replaceReturnNewLine ($str) {
-       return str_replace("\r", '[r]', str_replace("\n", '[n]
-', $str));
+       return str_replace(array(chr(13), chr(10)), array('[r]', '[n]'), $str);
 }
 
 // Converts a given string by splitting it up with given delimiter similar to
 }
 
 // Converts a given string by splitting it up with given delimiter similar to
@@ -2313,7 +2212,7 @@ function stringToArray ($delimiter, $string) {
        // "Walk" through all entries
        foreach (explode($delimiter, $string) as $split) {
                //  Append the delimiter and add it to the array
        // "Walk" through all entries
        foreach (explode($delimiter, $string) as $split) {
                //  Append the delimiter and add it to the array
-               $strArray[] = $split . $delimiter;
+               array_push($strArray, $split . $delimiter);
        } // END - foreach
 
        // Return array
        } // END - foreach
 
        // Return array
@@ -2346,7 +2245,7 @@ function getArrayKeysFromSubStrArray ($heystack, $needles, $offset = 0) {
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'heystack='.$heystack.',key='.$key.',needle='.$needle.',offset='.$offset);
                if (strpos($heystack, $needle, $offset) !== false) {
                        // Add the found key
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'heystack='.$heystack.',key='.$key.',needle='.$needle.',offset='.$offset);
                if (strpos($heystack, $needle, $offset) !== false) {
                        // Add the found key
-                       $keys[] = $key;
+                       array_push($keys, $key);
                } // END - if
        } // END - foreach
 
                } // END - if
        } // END - foreach
 
@@ -2383,21 +2282,6 @@ function determinePointsColumnFromSubjectLocked ($subject, $locked) {
        return $pointsColumn;
 }
 
        return $pointsColumn;
 }
 
-// Setter for referral id (no bigintval, or nicknames will fail!)
-function setReferralId ($refid) {
-       $GLOBALS['refid'] = $refid;
-}
-
-// Checks if 'refid' is valid
-function isReferralIdValid () {
-       return ((isset($GLOBALS['refid'])) && (getReferralId() !== NULL) && (getReferralId() > 0));
-}
-
-// Getter for referral id
-function getReferralId () {
-       return $GLOBALS['refid'];
-}
-
 // Converts a boolean variable into 'Y' for true and 'N' for false
 function convertBooleanToYesNo ($boolean) {
        // Default is 'N'
 // Converts a boolean variable into 'Y' for true and 'N' for false
 function convertBooleanToYesNo ($boolean) {
        // Default is 'N'
@@ -2411,55 +2295,28 @@ function convertBooleanToYesNo ($boolean) {
        return $converted;
 }
 
        return $converted;
 }
 
-// Translates task type to a human-readable version
-function translateTaskType ($taskType) {
-       // Construct message id
-       $messageId = 'ADMIN_TASK_TYPE_' . strtoupper($taskType) . '';
-
-       // Is the message id there?
-       if (isMessageIdValid($messageId)) {
-               // Then construct message
-               $message = '{--' . $messageId . '--}';
-       } else {
-               // Else it is an unknown task type
-               $message = '{%message,ADMIN_TASK_TYPE_UNKNOWN=' . $taskType . '%}';
-       } // END - if
-
-       // Return message
-       return $message;
-}
-
-// Translates points subject to human-readable
-function translatePointsSubject ($subject) {
-       // Construct message id
-       $messageId = 'POINTS_SUBJECT_' . strtoupper($subject) . '';
-
-       // Is the message id there?
-       if (isMessageIdValid($messageId)) {
-               // Then construct message
-               $message = '{--' . $messageId . '--}';
-       } else {
-               // Else it is an unknown task type
-               $message = '{%message,POINTS_SUBJECT_UNKNOWN=' . $subject . '%}';
-       } // END - if
-
-       // Return message
-       return $message;
-}
-
 // "Translates" 'true' to true and 'false' to false
 function convertStringToBoolean ($str) {
 // "Translates" 'true' to true and 'false' to false
 function convertStringToBoolean ($str) {
-       // Trim it lower-case for validation
-       $str = trim(strtolower($str));
+       // Debug message (to measure how often this function is called)
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'str=' . $str);
 
 
-       // Is it valid?
-       if (!in_array($str, array('true', 'false'))) {
-               // Not valid!
-               debug_report_bug(__FUNCTION__, __LINE__, 'str=' . $str . ' is not true/false');
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$str])) {
+               // Trim it lower-case for validation
+               $strTrimmed = trim(strtolower($str));
+
+               // Is it valid?
+               if (!in_array($strTrimmed, array('true', 'false'))) {
+                       // Not valid!
+                       reportBug(__FUNCTION__, __LINE__, 'str=' . $str . '(' . $strTrimmed . ') is not true/false');
+               } // END - if
+
+               // Determine it
+               $GLOBALS[__FUNCTION__][$str] = (($strTrimmed == 'true') ? true : false);
        } // END - if
 
        } // END - if
 
-       // Return it
-       return (($str == 'true') ? true : false);
+       // Return cache
+       return $GLOBALS[__FUNCTION__][$str];
 }
 
 /**
 }
 
 /**
@@ -2473,19 +2330,112 @@ function makeParseableVariable ($varString) {
        // The first character must be a dollar sign
        if (substr($varString, 0, 1) != '$') {
                // Please report this
        // The first character must be a dollar sign
        if (substr($varString, 0, 1) != '$') {
                // Please report this
-               debug_report_bug(__FUNCTION__, __LINE__, 'varString=' . $varString . ' - No dollar sign detected, will not parse it.');
+               reportBug(__FUNCTION__, __LINE__, 'varString=' . $varString . ' - No dollar sign detected, will not parse it.');
        } // END - if
 
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$varString])) {
                // Snap them in, if [,] are there
        } // END - if
 
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$varString])) {
                // Snap them in, if [,] are there
-               $GLOBALS[__FUNCTION__][$varString] = str_replace('[', "['", str_replace(']', "']", $varString));
+               $GLOBALS[__FUNCTION__][$varString] = str_replace(array('[', ']'), array("['", "']"), $varString);
        } // END - if
 
        // Return cache
        return $GLOBALS[__FUNCTION__][$varString];
 }
 
        } // END - if
 
        // Return cache
        return $GLOBALS[__FUNCTION__][$varString];
 }
 
+// "Getter" for random TAN
+function getRandomTan () {
+       // Generate one
+       return mt_rand(0, 99999);
+}
+
+// Removes any : from subject
+function removeDoubleDotFromSubject ($subject) {
+       // Remove it
+       $subjectArray = explode(':', $subject);
+       $subject = $subjectArray[0];
+       unset($subjectArray);
+
+       // Return it
+       return $subject;
+}
+
+// Translates generically some data into a target string
+function translateGeneric ($messagePrefix, $data) {
+       // Is the method null or empty?
+       if (is_null($data)) {
+               // Is NULL
+               $data = 'NULL';
+       } elseif (empty($data)) {
+               // Is empty (string)
+               $data = 'EMPTY';
+       } // END - if
+
+       // Default column name is unknown
+       $return = '{%message,' . $messagePrefix . '_UNKNOWN=' . strtoupper($data) . '%}';
+
+       // Construct message id
+       $messageId = $messagePrefix . '_' . strtoupper($data);
+
+       // Is it there?
+       if (isMessageIdValid($messageId)) {
+               // Then use it as message string
+               $return = '{--' . $messageId . '--}';
+       } // END - if
+
+       // Return the column name
+       return $return;
+}
+
+// Translates task type to a human-readable version
+function translateTaskType ($taskType) {
+       // Return it
+       return translateGeneric('ADMIN_TASK_TYPE', $taskType);
+}
+
+// ----------------------------------------------------------------------------
+//              "Translatation" functions for points_data table
+// ----------------------------------------------------------------------------
+
+// Translates points subject to human-readable
+function translatePointsSubject ($subject) {
+       // Remove any :x
+       $subject = removeDoubleDotFromSubject($subject);
+
+       // Return it
+       return translateGeneric('POINTS_SUBJECT', $subject);
+}
+
+// "Translates" the given points account type
+function translatePointsAccountType ($accountType) {
+       // Return it
+       return translateGeneric('POINTS_ACCOUNT_TYPE', $accountType);
+}
+
+// "Translates" the given points "locked mode"
+function translatePointsLockedMode ($lockedMode) {
+       // Return it
+       return translateGeneric('POINTS_LOCKED_MODE', $lockedMode);
+}
+
+// "Translates" the given points payment method
+function translatePointsPaymentMethod ($paymentMethod) {
+       // Return it
+       return translateGeneric('POINTS_PAYMENT_METHOD', $paymentMethod);
+}
+
+// "Translates" the given points account provider
+function translatePointsAccountProvider ($accountProvider) {
+       // Return it
+       return translateGeneric('POINTS_ACCOUNT_PROVIDER', $accountProvider);
+}
+
+// "Translates" the given points notify recipient
+function translatePointsNotifyRecipient ($notifyRecipient) {
+       // Return it
+       return translateGeneric('POINTS_NOTIFY_RECIPIENT', $notifyRecipient);
+}
+
 //-----------------------------------------------------------------------------
 // Automatically re-created functions, all taken from user comments on www.php.net
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 // Automatically re-created functions, all taken from user comments on www.php.net
 //-----------------------------------------------------------------------------
index bc376e20cfd5f2cc03e0c294716e75ec0140e9ea..686808daca23514b925e6f16f240ccd9b8d8c79f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 12e3a617edcc50fc54b166f985658eed557506e0..2364c35972ff10f213b1ce2353a0f515fb9ba90a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7ef0c3be99f4bde673b03c769deeb754a0e8339c..8aa40ee08f7bb5446092fc257a6cd1812fb241c4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,7 +51,7 @@ function __errorHandler ($errno, $errstr, $errfile, $errline) {
        );
 
        // Output message to user and die
        );
 
        // Output message to user and die
-       debug_report_bug($errfile, $errline, $message);
+       reportBug($errfile, $errline, $message);
 }
 
 // Init error handler
 }
 
 // Init error handler
index ec433d059814d7d44eb8db719e265e58dce48b3e..1754cbf9b5b0638be15dc9d4d07629fd3fbb61e2 100644 (file)
@@ -18,7 +18,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,10 +43,10 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Init header
 } // END - if
 
 // Init header
-$GLOBALS['page_header'] = '';
+$GLOBALS['__page_header'] = '';
 
 // Is the header already sent?
 
 // Is the header already sent?
-if (($GLOBALS['header_sent'] != 1) && ($GLOBALS['header_sent'] != 2)) {
+if (($GLOBALS['__header_sent'] != 1) && ($GLOBALS['__header_sent'] != 2)) {
        // Set default HTTP status to "200 OK"
        setHttpStatus('200 OK');
 
        // Set default HTTP status to "200 OK"
        setHttpStatus('200 OK');
 
@@ -57,15 +57,16 @@ if (($GLOBALS['header_sent'] != 1) && ($GLOBALS['header_sent'] != 2)) {
        } // END - if
 
        // Closing HEAD tag
        } // END - if
 
        // Closing HEAD tag
-       if ($GLOBALS['header_sent'] == '0') {
-               $GLOBALS['header_sent'] = 1;
+       if ($GLOBALS['__header_sent'] == '0') {
+               $GLOBALS['__header_sent'] = 1;
        } // END - if
 } // END - if
 
 // Add BODY tag or not?
        } // END - if
 } // END - if
 
 // Add BODY tag or not?
-if ((!isCssOutputMode()) && (!isRawOutputMode()) && ($GLOBALS['header_sent'] == 1) && ((getModule() != 'frametester') || (isGetRequestElementSet('frame')))) {
+// @TODO Find a way to not use direct module comparison
+if ((!isCssOutputMode()) && (!isRawOutputMode()) && ($GLOBALS['__header_sent'] == 1) && (getModule() != 'frametester') && (!isFramesetModeEnabled())) {
        loadTemplate('page_body');
        loadTemplate('page_body');
-       $GLOBALS['header_sent'] = 2;
+       $GLOBALS['__header_sent'] = 2;
 } // END - if
 
 // [EOF]
 } // END - if
 
 // [EOF]
index b6426e1de731839507a9559e9b642c334ac7bd4d..51d3e9b79b3bf44a66eec3d18d3fec0c7700021e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c1518e2ed5c9d0c33de79181eee61ed49891685b..c8cdf7acf37d476c7529655a904a6f4c276b569b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -40,6 +40,12 @@ if (!defined('__SECURITY')) {
        die();
 } // END - if
 
        die();
 } // END - if
 
+// Initialize HTTP handling
+function initHttp () {
+       // Initialize array
+       $GLOBALS['http_header'] = array();
+}
+
 // Sends out all headers required for HTTP/1.1 reply
 function sendHttpHeaders () {
        // Used later
 // Sends out all headers required for HTTP/1.1 reply
 function sendHttpHeaders () {
        // Used later
@@ -54,17 +60,18 @@ function sendHttpHeaders () {
        addHttpHeader('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
        addHttpHeader('Pragma: no-cache'); // HTTP/1.0
        addHttpHeader('Connection: Close');
        addHttpHeader('Cache-Control: no-store, no-cache, must-revalidate, pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
        addHttpHeader('Pragma: no-cache'); // HTTP/1.0
        addHttpHeader('Connection: Close');
-       // There shall be no output mode in raw/AJAX mode
-       if ((!isRawOutputMode()) && (!isAjaxOutputMode())) {
-               // Send content-type only in CSS/HTML mode
+
+       // There shall be no output mode in raw output-mode
+       if (!isRawOutputMode()) {
+               // Send content-type not in raw output-mode
                addHttpHeader('Content-Type: ' . getContentType() . '; charset=UTF-8');
                addHttpHeader('Content-Type: ' . getContentType() . '; charset=UTF-8');
-       } else {
-               //
        } // END - if
        } // END - if
+
+       // Add language
        addHttpHeader('Content-Language: ' . getLanguage());
 }
 
        addHttpHeader('Content-Language: ' . getLanguage());
 }
 
-// Checks wether the URL is full-qualified (http[s]:// + hostname [+ request data])
+// Checks whether the URL is full-qualified (http[s]:// + hostname [+ request data])
 function isFullQualifiedUrl ($url) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$url])) {
 function isFullQualifiedUrl ($url) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$url])) {
@@ -156,7 +163,7 @@ function sendHttpRequest ($requestType, $baseUrl, $requestData = array(), $remov
                        break;
 
                default: // Unsupported HTTP request, this is really bad and needs fixing
                        break;
 
                default: // Unsupported HTTP request, this is really bad and needs fixing
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Unsupported request detected. requestType=' . $requestType . ',baseUrl=' . $baseUrl . ',requestData()=' . count($requestData));
+                       reportBug(__FUNCTION__, __LINE__, 'Unsupported request detected. requestType=' . $requestType . ',baseUrl=' . $baseUrl . ',requestData()=' . count($requestData));
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -248,8 +255,8 @@ function sendGetRequest ($baseUrl, $requestData = array(), $removeHeader = false
        return $response;
 }
 
        return $response;
 }
 
-// Send a POST request
-function sendPostRequest ($baseUrl, $requestData, $removeHeader = false) {
+// Send a POST request, sometimes even POST requests have no parameters
+function sendPostRequest ($baseUrl, $requestData = array(), $removeHeader = false) {
        // Copy baseUrl to getUrl
        $getUrl = $baseUrl;
 
        // Copy baseUrl to getUrl
        $getUrl = $baseUrl;
 
@@ -328,7 +335,7 @@ function sendRawRequest ($host, $request) {
                $port = $portArray[1];
        } elseif (count($portArray) > 2) {
                // This should not happen!
                $port = $portArray[1];
        } elseif (count($portArray) > 2) {
                // This should not happen!
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid ' . $host . '. Please report this to the Mailer-Project team.');
+               reportBug(__FUNCTION__, __LINE__, 'Invalid ' . $host . '. Please report this to the Mailer-Project team.');
        }
 
        // Get resolver instance
        }
 
        // Get resolver instance
@@ -417,7 +424,7 @@ function sendRawRequest ($host, $request) {
 
                // Add it to response
                //* DEBUG: */ print 'line='.$line.'<br />';
 
                // Add it to response
                //* DEBUG: */ print 'line='.$line.'<br />';
-               $response[] = $line;
+               array_push($response, $line);
        } // END - while
 
        // Close socket
        } // END - while
 
        // Close socket
@@ -544,7 +551,7 @@ function unchunkHttpResponse ($response) {
                //* DEBUG: */ die('tempResponse['.strlen($tempResponse).']=<pre>'.replaceReturnNewLine(htmlentities($tempResponse)).'</pre>');
 
                // Re-add the headers
                //* DEBUG: */ die('tempResponse['.strlen($tempResponse).']=<pre>'.replaceReturnNewLine(htmlentities($tempResponse)).'</pre>');
 
                // Re-add the headers
-               $response = merge_array($GLOBALS['http_headers'], stringToArray("\n", $tempResponse));
+               $response = merge_array($GLOBALS['http_headers'], stringToArray(chr(10), $tempResponse));
        } // END - if
 
        // Return the unchunked array
        } // END - if
 
        // Return the unchunked array
@@ -565,7 +572,7 @@ function removeHttpHeaderFromResponse ($response) {
                        array_shift($response2);
 
                        // Add full line to temporary global array
                        array_shift($response2);
 
                        // Add full line to temporary global array
-                       $GLOBALS['http_headers'][] = $line;
+                       array_push($GLOBALS['http_headers'], $line);
 
                        // Trim it for testing
                        $lineTest = trim($line);
 
                        // Trim it for testing
                        $lineTest = trim($line);
@@ -637,7 +644,7 @@ function extractHostnameFromUrl (&$script) {
 function addHttpHeader ($header) {
        // Send the header
        //* DEBUG: */ logDebugMessage(__FUNCTION__ . ': header=' . $header);
 function addHttpHeader ($header) {
        // Send the header
        //* DEBUG: */ logDebugMessage(__FUNCTION__ . ': header=' . $header);
-       $GLOBALS['http_header'][] = trim($header);
+       array_push($GLOBALS['http_header'], trim($header));
 }
 
 // Flushes all HTTP headers
 }
 
 // Flushes all HTTP headers
@@ -645,15 +652,17 @@ function flushHttpHeaders () {
        // Is the header already sent?
        if (headers_sent()) {
                // Then abort here
        // Is the header already sent?
        if (headers_sent()) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Headers already sent!');
-       } // END - if
+               reportBug(__FUNCTION__, __LINE__, 'Headers already sent!');
+       } elseif ((!isset($GLOBALS['http_header'])) || (!is_array($GLOBALS['http_header']))) {
+               // Not set or not an array
+               reportBug(__FUNCTION__, __LINE__, 'Headers not set or not an array, isset()=' . isset($GLOBALS['http_header']) . ', please report this.');
+       }
 
        // Flush all headers if found
 
        // Flush all headers if found
-       if ((isset($GLOBALS['http_header'])) && (is_array($GLOBALS['http_header']))) {
-               foreach ($GLOBALS['http_header'] as $header) {
-                       header($header);
-               } // END - foreach
-       } // END - if
+       foreach ($GLOBALS['http_header'] as $header) {
+               // Send a single header
+               header($header);
+       } // END - foreach
 
        // Mark them as flushed
        $GLOBALS['http_header'] = array();
 
        // Mark them as flushed
        $GLOBALS['http_header'] = array();
@@ -696,7 +705,7 @@ if (!function_exists('http_chunked_decode')) {
         * dechunk an HTTP 'transfer-encoding: chunked' message.
         *
         * @param       $chunk          The encoded message
         * dechunk an HTTP 'transfer-encoding: chunked' message.
         *
         * @param       $chunk          The encoded message
-        * @return      $dechunk        The decoded message. If $chunk wasn't encoded properly debug_report_bug() is being called
+        * @return      $dechunk        The decoded message. If $chunk wasn't encoded properly reportBug() is being called
         * @author      Marques Johansson (initial author)
         * @author      Roland Haeder (heavy modifications and simplification)
         * @link        http://php.net/manual/en/function.http-chunked-decode.php#89786
         * @author      Marques Johansson (initial author)
         * @author      Roland Haeder (heavy modifications and simplification)
         * @link        http://php.net/manual/en/function.http-chunked-decode.php#89786
@@ -735,7 +744,7 @@ next[offset,10]=<pre>'.replaceReturnNewLine(htmlentities(call_user_func_array($m
                        if (!isHexadecimal($chunkLenHex)) {
                                // Please help debugging this
                                //* DEBUG: */ die('ABORT:chunkLenHex=<pre>'.replaceReturnNewLine(htmlentities($chunkLenHex)).'</pre>');
                        if (!isHexadecimal($chunkLenHex)) {
                                // Please help debugging this
                                //* DEBUG: */ die('ABORT:chunkLenHex=<pre>'.replaceReturnNewLine(htmlentities($chunkLenHex)).'</pre>');
-                               debug_report_bug(__FUNCTION__, __LINE__, 'Value ' . $chunkLenHex . ' is no valid hexa-decimal string.');
+                               reportBug(__FUNCTION__, __LINE__, 'Value ' . $chunkLenHex . ' is no valid hexa-decimal string.');
 
                                // This won't be reached
                                return $chunk;
 
                                // This won't be reached
                                return $chunk;
@@ -809,5 +818,44 @@ next[100]=<pre>'.replaceReturnNewLine(htmlentities(call_user_func_array($mbPrefi
        }
 } // END - if
 
        }
 } // END - if
 
+// Getter for request method
+function getHttpRequestMethod () {
+       // Console is default
+       $requestMethod = 'console';
+
+       // Is it set?
+       if (isset($_SERVER['REQUEST_METHOD'])) {
+               // Get current request method
+               $requestMethod = $_SERVER['REQUEST_METHOD'];
+       } // END - if
+
+       // Return it
+       return $requestMethod;
+}
+
+// Checks if 'content_type' is set
+function isContentTypeSet () {
+       return isset($GLOBALS['content_type']);
+}
+
+// Setter for content type
+function setContentType ($contentType) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'contentType=' . $contentType);
+       $GLOBALS['content_type'] = (string) $contentType;
+}
+
+// Getter for content type
+function getContentType () {
+       // Is it there?
+       if (!isContentTypeSet()) {
+               // Please fix this
+               reportBug(__FUNCTION__, __LINE__, 'content_type not set in GLOBALS array.');
+       } // END - if
+
+       // Return it
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'content_type=' . $GLOBALS['content_type']);
+       return $GLOBALS['content_type'];
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 8d3a036efeb95760e53291464c958f3c96196fe6..7b33f373227ce3ff16b2a07f97855519803da402 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,49 +42,53 @@ if (!defined('__SECURITY')) {
 
 // Init INC_POOL
 function initIncludePool ($pool) {
 
 // Init INC_POOL
 function initIncludePool ($pool) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool);
        $GLOBALS['inc_pool'][$pool] = array();
 }
 
 // Setter for INC_POOL
 function setIncludePool ($pool, $includePool) {
        $GLOBALS['inc_pool'][$pool] = array();
 }
 
 // Setter for INC_POOL
 function setIncludePool ($pool, $includePool) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool);
        $GLOBALS['inc_pool'][$pool] = (array) $includePool;
 }
 
 // Getter for INC_POOL
 function getIncludePool ($pool) {
        $GLOBALS['inc_pool'][$pool] = (array) $includePool;
 }
 
 // Getter for INC_POOL
 function getIncludePool ($pool) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool);
+       // Default is empty pool
+       $poolArray = array();
+
+       // Is it set?
        if (isset($GLOBALS['inc_pool'][$pool])) {
                // Return found pool (array)
        if (isset($GLOBALS['inc_pool'][$pool])) {
                // Return found pool (array)
-               return $GLOBALS['inc_pool'][$pool];
-       } else {
-               // Return empty array if not found
-               return array();
-       }
+               $poolArray = $GLOBALS['inc_pool'][$pool];
+       } // END - if
+
+       // Return it
+       return $poolArray;
 }
 
 // Count INC_POOL
 function countIncludePool ($pool) {
 }
 
 // Count INC_POOL
 function countIncludePool ($pool) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool);
        return count($GLOBALS['inc_pool'][$pool]);
 }
 
 // Merge INC_POOL into given
 function mergeIncludePool ($pool, $includePool) {
        return count($GLOBALS['inc_pool'][$pool]);
 }
 
 // Merge INC_POOL into given
 function mergeIncludePool ($pool, $includePool) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool);
        setIncludePool($pool, merge_array(getIncludePool($pool), $includePool));
 }
 
 // Add single include file to INC_POOL
 function addIncludeToPool ($pool, $inc) {
        setIncludePool($pool, merge_array(getIncludePool($pool), $includePool));
 }
 
 // Add single include file to INC_POOL
 function addIncludeToPool ($pool, $inc) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool);
-       $GLOBALS['inc_pool'][$pool][] = (string) $inc;
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool);
+       array_push($GLOBALS['inc_pool'][$pool], $inc);
 }
 
 // Remove an include file from INC_POOL
 function removeIncludeFromPool ($pool, $inc) {
 }
 
 // Remove an include file from INC_POOL
 function removeIncludeFromPool ($pool, $inc) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool);
        // First look it up
        $key = array_search($inc, getIncludePool($pool));
 
        // First look it up
        $key = array_search($inc, getIncludePool($pool));
 
@@ -100,12 +104,12 @@ function removeIncludeFromPool ($pool, $inc) {
 
 // Load the whole include pool
 function loadIncludePool ($pool) {
 
 // Load the whole include pool
 function loadIncludePool ($pool) {
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool.' - START');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool.' - START');
        foreach (getIncludePool($pool) as $inc) {
                //* DEBUG: */ debugOutput(__FUNCTION__.':inc='.$inc);
                loadIncludeOnce($inc);
        } // END - foreach
        foreach (getIncludePool($pool) as $inc) {
                //* DEBUG: */ debugOutput(__FUNCTION__.':inc='.$inc);
                loadIncludeOnce($inc);
        } // END - foreach
-       //* DEBUG: */ debugOutput(__FUNCTION__.':pool='.$pool.' - END');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'pool=' . $pool.' - END');
 
        // Remove it
        initIncludePool($pool);
 
        // Remove it
        initIncludePool($pool);
@@ -115,14 +119,14 @@ function loadIncludePool ($pool) {
 function loadInclude ($inc) {
        // Do we have cache?
        if (!isset($GLOBALS['inc_loaded'][$inc])) {
 function loadInclude ($inc) {
        // Do we have cache?
        if (!isset($GLOBALS['inc_loaded'][$inc])) {
-               // Add the path. This is why we need a trailing slash in config.php
-               $GLOBALS['inc_loaded'][$inc] = getPath() . $inc;
-
                // Is the include file there?
                if (!isIncludeReadable($inc)) {
                        // Not there so log it
                // Is the include file there?
                if (!isIncludeReadable($inc)) {
                        // Not there so log it
-                       debug_report_bug(__FUNCTION__, __LINE__, sprintf("Include file %s not found or deprecated.", $inc));
+                       reportBug(__FUNCTION__, __LINE__, sprintf("Include file %s not found or deprecated.", $inc));
                } // END - if
                } // END - if
+
+               // Add the path. This is why we need a trailing slash in config.php
+               $GLOBALS['inc_loaded'][$inc] = getPath() . $inc;
        } // END - if
 
        // Try to load it
        } // END - if
 
        // Try to load it
@@ -141,7 +145,7 @@ function loadIncludeOnce ($inc) {
        } // END - if
 }
 
        } // END - if
 }
 
-// Checks wether an include file (non-FQFN better) is readable
+// Checks whether an include file (non-FQFN better) is readable
 function isIncludeReadable ($inc) {
        // Do we have cache?
        if (!isset($GLOBALS['inc_readable'][$inc])) {
 function isIncludeReadable ($inc) {
        // Do we have cache?
        if (!isset($GLOBALS['inc_readable'][$inc])) {
index 51596123fd73586c1cc7e3869ae02440ce1b1f94..003feec90f6457b511c12b33c8dde03ba430b6f6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  ************************************************************************/
 
 // Some security stuff...
  ************************************************************************/
 
 // Some security stuff...
-if (!defined('__SECURITY')) {
+if ((!defined('__SECURITY')) || (!isInstallationPhase())) {
        die();
 } // END - if
 
        die();
 } // END - if
 
+// Init installer
+function initInstaller () {
+       // Initialize installer group array
+       $GLOBALS['installer_groups'] = array(
+               // base_data
+               'base_path'       => 'base_data',
+               'base_url'        => 'base_data',
+               'main_title'      => 'base_data',
+               'slogan'          => 'base_data',
+               'webmaster'       => 'base_data',
+               // database_config
+               'mysql_host'      => 'database_config',
+               'mysql_dbase'     => 'database_config',
+               'mysql_prefix'    => 'database_config',
+               'mysql_type'      => 'database_config',
+               'mysql_login'     => 'database_config',
+               'mysql_password1' => 'database_config',
+               'mysql_password2' => 'database_config',
+               // smtp_config
+               'smtp_host'       => 'smtp_config',
+               'smtp_user'       => 'smtp_config',
+               'smtp_password1'  => 'smtp_config',
+               'smtp_password2'  => 'smtp_config',
+               // other_config
+               'output_mode'     => 'other_config',
+               'warn_no_pass'    => 'other_config',
+               'write_footer'    => 'other_config',
+               'enable_backlink' => 'other_config',
+       );
+}
+
 // Write the local config-local.php file from "template"
 // Write the local config-local.php file from "template"
-function doInstallWriteLocalConfig () {
+function doInstallWriteLocalConfigurationFile ($path) {
        // Copy the config template and verify it
        // Copy the config template and verify it
-       copyFileVerified(postRequestElement('spath') . 'inc/config-local.php.dist', getPath() . getCachePath() . 'config-local.php', 0644);
+       copyFileVerified(postRequestElement('spath') . 'inc/config-local.php.dist', postRequestElement('spath') . getCachePath() . 'config-local.php', 0644);
 
        // Ok, all done. So we can write the config data to the php files
 
        // Ok, all done. So we can write the config data to the php files
+       // Do only write these if they differ from auto-detected values
        if (postRequestElement('spath') != getPath()) changeDataInLocalConfigurationFile('SERVER-PATH', "setConfigEntry('PATH', '", "');", postRequestElement('spath'), 0);
        if (postRequestElement('burl')  != getUrl())  changeDataInLocalConfigurationFile('HOST-URL', "setConfigEntry('URL', '", "');", postRequestElement('burl'), 0);
        if (postRequestElement('spath') != getPath()) changeDataInLocalConfigurationFile('SERVER-PATH', "setConfigEntry('PATH', '", "');", postRequestElement('spath'), 0);
        if (postRequestElement('burl')  != getUrl())  changeDataInLocalConfigurationFile('HOST-URL', "setConfigEntry('URL', '", "');", postRequestElement('burl'), 0);
+
+       // Write more data
        changeDataInLocalConfigurationFile('MAIN-TITLE', "setConfigEntry('MAIN_TITLE', '", "');", postRequestElement('title'), 0);
        changeDataInLocalConfigurationFile('SLOGAN', "setConfigEntry('SLOGAN', '", "');", postRequestElement('slogan'), 0);
        changeDataInLocalConfigurationFile('WEBMASTER', "setConfigEntry('WEBMASTER', '", "');", postRequestElement('email'), 0);
        changeDataInLocalConfigurationFile('MAIN-TITLE', "setConfigEntry('MAIN_TITLE', '", "');", postRequestElement('title'), 0);
        changeDataInLocalConfigurationFile('SLOGAN', "setConfigEntry('SLOGAN', '", "');", postRequestElement('slogan'), 0);
        changeDataInLocalConfigurationFile('WEBMASTER', "setConfigEntry('WEBMASTER', '", "');", postRequestElement('email'), 0);
@@ -65,11 +99,8 @@ function doInstallWriteLocalConfig () {
        changeDataInLocalConfigurationFile('SMTP-USER', "setConfigEntry('SMTP_USER', '", "');", postRequestElement('smtp_user'), 0);
        changeDataInLocalConfigurationFile('SMTP-PASSWORD', "setConfigEntry('SMTP_PASSWORD', '", "');", postRequestElement('smtp_pass1'), 0);
 
        changeDataInLocalConfigurationFile('SMTP-USER', "setConfigEntry('SMTP_USER', '", "');", postRequestElement('smtp_user'), 0);
        changeDataInLocalConfigurationFile('SMTP-PASSWORD', "setConfigEntry('SMTP_PASSWORD', '", "');", postRequestElement('smtp_pass1'), 0);
 
-       // Generate a long site key
-       $siteKey = generatePassword(50);
-
-       // And write it
-       changeDataInLocalConfigurationFile('SITE-KEY', "setConfigEntry('SITE_KEY', '", "');", $siteKey, 0);
+       // Generate a long site-key and write it
+       changeDataInLocalConfigurationFile('SITE-KEY', "setConfigEntry('SITE_KEY', '", "');", generatePassword(50), 0);
 
        // Script is now installed
        changeDataInLocalConfigurationFile('INSTALLED', "setConfigEntry('MXCHANGE_INSTALLED', '", "');", 'Y', 0);
 
        // Script is now installed
        changeDataInLocalConfigurationFile('INSTALLED', "setConfigEntry('MXCHANGE_INSTALLED', '", "');", 'Y', 0);
@@ -117,12 +148,474 @@ function readSqlDump ($FQFN) {
        $content = readFromFile($FQFN);
 
        // Remove some unwanted chars
        $content = readFromFile($FQFN);
 
        // Remove some unwanted chars
-       $content = str_replace("\r", '', $content);
-       $content = str_replace("\n\n", "\n", $content);
+       $content = str_replace(chr(13), '', $content);
+       $content = str_replace("\n\n", chr(10), $content);
 
        // Return the content
        return $content;
 }
 
 
        // Return the content
        return $content;
 }
 
+// Generates the installer menu by simply loading another template
+function generateInstallerMenu () {
+       // Load installer menu template
+       $OUT = loadTemplate('install_menu', true);
+
+       // Return loaded content
+       return $OUT;
+}
+
+// Generate the install footer navigation by simply loading another template
+function generateInstallerFooterNavigation () {
+       // Load installer menu template
+       $OUT = loadTemplate('install_footer', true);
+
+       // Return loaded content
+       return $OUT;
+}
+
+// Generate an option list for database types for given default value
+function generateInstallerDatabaseTypeOptions () {
+       return generateOptions(
+               '/ARRAY/',
+               array('MyISAM', 'InnoDB'),
+               array('{--INSTALLER_TABLE_TYPE_MYISAM--}', '{--INSTALLER_TABLE_TYPE_INNODB--}'),
+               getSession('mysql_type')
+       );
+}
+
+// Generate an option list for output mode types for given default value
+function generateInstallerOutputModeOptions ($defaultValue) {
+       return generateOptions(
+               '/ARRAY/',
+               array('render', 'direct'),
+               array('{--INSTALLER_MODE_RENDER--}', '{--INSTALLER_MODE_DIRECT--}'),
+               $defaultValue
+       );
+}
+
+// Checks whether we have an AJAX-enabled installer which defaults to red pill
+function isAjaxInstaller () {
+       // Get the session data and compare it against 'ajax'
+       $isAjaxInstaller = (getSession('installer') == 'ajax');
+
+       // Return it
+       return $isAjaxInstaller;
+}
+
+// Checks whether we have an plain installer which defaults to red pill
+function isPlainInstaller () {
+       // Get the session data and compare it against 'plain'
+       $isPlainInstaller = (getSession('installer') == 'plain');
+
+       // Return it
+       return $isPlainInstaller;
+}
+
+// Checks given key/value pair if it is valid by a call-back
+function isInstallerDataValid (&$saveStatus, $key, $value) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ' - ENTERED!');
+       // Generate call-back function based on given key
+       $callbackName = 'isInstaller' . capitalizeUnderscoreString($key) . 'Valid';
+
+       // Is the function there?
+       if (!function_exists($callbackName)) {
+               // Not found, which is not bad, but it means this data is always valid
+               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callbackName . ' not found. saveStatus[status]=' . $saveStatus['status'] . ', key=' . $key . ', value=' . $value);
+
+               // All fine (CAREFULL!)
+               return true;
+       } // END - if
+
+       // Then call it back
+       $isValid = (bool) call_user_func($callbackName, $value);
+
+       // Is it not valid?
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ',isValid=' . intval($isValid));
+       if ($isValid === false) {
+               // Then add it to saveStatus
+               array_push($saveStatus['failed_fields'], $key);
+       } // END - if
+
+       // Return status
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',value=' . $value . ',isValid=' . intval($isValid) . ' - EXIT!');
+       return $isValid;
+}
+
+// Post-check on installer data
+function doInstallerPostCheck ($currentTab, &$saveStatus) {
+       // Debug message
+       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentTab=' . $currentTab . ',saveStatus[status]=' . $saveStatus['status'] . ' - ENTERED!');
+
+       // Create the call-back function on 'tab'
+       $callbackName = 'isInstallerPost' . capitalizeUnderscoreString($currentTab) . 'Valid';
+
+       // Is the function there?
+       if (!function_exists($callbackName)) {
+               // Not found, which is not bad, but it means the post-check won't be run
+               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callbackName . ' not found. saveStatus[status]=' . $saveStatus['status'] . ', currentTab=' . $currentTab);
+
+               // Abort here
+               return;
+       } // END - if
+
+       // Init 'tab-specific error message'
+       $GLOBALS['installer_post_error'][$currentTab]    = '';
+       $GLOBALS['installer_failed_fields'][$currentTab] = array();
+
+       // Debug message
+       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Calling function ' . $callbackName . ',currentTab=' . $currentTab . ',saveStatus[status]=' . $saveStatus['status']);
+
+       // Then call it back
+       $isValid = (bool) call_user_func($callbackName, $currentTab);
+
+       // Is it not valid?
+       if (($isValid === false) || (count($GLOBALS['installer_failed_fields'][$currentTab]) > 0)) {
+               // Then change status and message
+               $saveStatus['status']  = 'failed';
+               $saveStatus['message'] = '{%message,INSTALLER_POST_CHECK_' . strtoupper($currentTab) . '_FAILED=' . $GLOBALS['installer_post_error'][$currentTab] . '%}';
+
+               // Do we have failed fields?
+               if (count($GLOBALS['installer_failed_fields'][$currentTab]) > 0) {
+                       // Then merge both
+                       $saveStatus['failed_fields'] = merge_array($saveStatus['failed_fields'], $GLOBALS['installer_failed_fields'][$currentTab]);
+               } // END - if
+       } // END - if
+
+       // Debug message
+       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currentTab=' . $currentTab . ',saveStatus[status]=' . $saveStatus['status'] . ' - EXIT!');
+}
+
+// Determines an installer group by given key
+function determineInstallerGroupByKey ($key) {
+       // Try to look it up
+       if (!isset($GLOBALS['installer_groups'][$key])) {
+               // Log missing entry
+               logDebugMessage(__FUNCTION__, __LINE__, 'Cannot determine installer group, returning dummy group. key=' . $key);
+
+               // Return dummy group
+               return 'dummy';
+       } // END - if
+
+       // Return it
+       return $GLOBALS['installer_groups'][$key];
+}
+
+// Adds given key/value pair to an overview group
+function addKeyValueToInstallerOverviewGroup ($key, $value) {
+       // First determine the group by given key
+       $group = determineInstallerGroupByKey($key);
+
+       // Depending on the group, add it for later usage (to render the overview page)
+       $GLOBALS['installer_overview'][$group][$key] = $value;
+}
+
+//-----------------------------------------------------------------------------
+//                   Call-back functions to check validity
+//-----------------------------------------------------------------------------
+
+// ----------------- Base data -----------------
+
+// Call-back function to check validity of 'base_path'
+function isInstallerBasePathValid ($value) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' - ENTERED!');
+       // Is it a directory and if some typical files could be found
+       $isValid = (
+               // Is it a directory?
+               (isDirectory($value))
+       &&
+               // Is there a trailing slash?
+               (substr($value, -1, 1) == '/')
+       &&
+               // Is mysql-manager.php there?
+               (isFileReadable($value . 'inc/mysql-manager.php'))
+       &&
+               // What about gen_sql_patches.php?
+               (isFileReadable($value . 'inc/gen_sql_patches.php'))
+       );
+
+       // Return it
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ',isValid=' . intval($isValid) . ' - EXIT');
+       return $isValid;
+}
+
+// Call-back function to check validity of 'base_url'
+function isInstallerBaseUrlValid ($value) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' - ENTERED!');
+       // Is it same as URL
+       $isValid = (
+               // Same as URL?
+               ($value == getUrl())
+       || (
+               // Starts with http:// or https:// ?
+               ((substr($value, 0, 7) == 'http://') || (substr($value, 0, 8) == 'https://'))
+       &&
+               // Has no trailing slash?
+               (substr($value, -1, 1) != '/')
+       &&
+               // And total length is at least 6+8=14 chars long? (https://foo.ba)
+               (strlen($value) >= 14)
+       &&
+               // Is the URL valid?
+               (isUrlValid($value))
+       ));
+
+       // Return it
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ',isValid=' . intval($isValid) . ' - EXIT');
+       return $isValid;
+}
+
+// Call-back function to check validity of 'webmaster'
+function isInstallerWebmasterValid ($value) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' - ENTERED!');
+       // Is it a valid email address?
+       $isValid = (
+               // Is it a valid email address?
+               (isEmailValid($value))
+       ||
+               // Or do we have 'localhost/127.0.0.1' as hostname? Then don't check email address (e.g. you@localhost)
+               (in_array(detectServerName(), array('localhost', '127.0.0.1')))
+       );
+
+       // Return it
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ',isValid=' . intval($isValid) . ' - EXIT');
+       return $isValid;
+}
+
+// ----------------- Database configuration -----------------
+
+// Call-back function to check validity of 'mysql_host'
+function isInstallerMysqlHostValid ($value) {
+       // This value must match a hostname or IP address
+       $isValid = (
+               // Is localhost/127.0.0.1? (mostly the case)
+               (in_array($value, array('localhost', '127.0.0.1')))
+       ||
+               // IP number match (this regex was taken from www.regexlib.com)
+               (preg_match('/((25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9]))/', $value))
+       ||
+               // Host name match
+               (preg_match('/([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}/', $value))
+       );
+
+       // Return it
+       return $isValid;
+}
+
+// Call-back function to check validity of 'mysql_type'
+function isInstallerMysqlTypeValid ($value) {
+       // This value must be 'MyISAM' or 'InnoDB'
+       $isValid = in_array($value, array('MyISAM', 'InnoDB'));
+
+       // Return it
+       return $isValid;
+}
+
+// ----------------- SMTP configuration -----------------
+
+// ----------------- Other configuration -----------------
+
+//-----------------------------------------------------------------------------
+//                 Call-back functions to post-check validity
+//-----------------------------------------------------------------------------
+
+// Call-back function to check if database configuration in POST is valid
+function isInstallerPostDatabaseConfigValid ($currentTab) {
+       // By default nothing is valid
+       $isValid       = false;
+       $engineValid   = false;
+       $missingTables = 0;
+
+       // Do both passwords match?
+       if ((!isPostRequestElementSet('mysql_password1')) && (isPostRequestElementSet('mysql_password2'))) {
+               // Password 1 not set
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_PASSWORD1_EMPTY--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_password1');
+               return false;
+       } elseif ((isPostRequestElementSet('mysql_password1')) && (!isPostRequestElementSet('mysql_password2'))) {
+               // Password 2 not set
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_PASSWORD2_EMPTY--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_password2');
+               return false;
+       } elseif (postRequestElement('mysql_password1') != postRequestElement('mysql_password2')) {
+               // Passwords mismatch
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_PASSWORDS_MISMATCH--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_password1', 'mysql_password2');
+               return false;
+       } // END - if
+
+       // Restore PHP's own error handler
+       if (!restore_error_handler()) {
+               // This is fatal
+               reportBug(__FUNCTION__, __LINE__, 'Could not unregister error handler.');
+       } // END - if
+
+       // Try to connect to the database
+       $linkResource = SQL_CONNECT(postRequestElement('mysql_host'), postRequestElement('mysql_login'), postRequestElement('mysql_password1'), __FUNCTION__, __LINE__);
+
+       // Is the link up
+       if (!is_resource($linkResource)) {
+               // Restore own error handler again
+               set_error_handler('__errorHandler');
+
+               // Cannot connect to database
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_CONNECT_ERROR--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_login', 'mysql_password1', 'mysql_password2');
+               return false;
+       } // END - if
+
+       // Then attempt to select the database
+       if (!SQL_SELECT_DB(postRequestElement('mysql_dbase'), __FUNCTION__, __LINE__)) {
+               // Restore own error handler again
+               set_error_handler('__errorHandler');
+
+               // Could not find database
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_SELECT_FAILED--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_dbase');
+               return false;
+       } // END - if
+
+       // Set database name and prefix
+       setConfigEntry('__DB_NAME'    , postRequestElement('mysql_dbase'));
+       setConfigEntry('_MYSQL_PREFIX', postRequestElement('mysql_prefix'));
+
+       // Restore own error handler again
+       set_error_handler('__errorHandler');
+
+       // Get an array of all supported engines
+       $engines = getArrayFromSupportedSqlEngines();
+
+       // Is this an array?
+       if (!is_array($engines)) {
+               // Restore own error handler again
+               set_error_handler('__errorHandler');
+
+               // Something bad happened
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_ENGINES_SQL_ERROR--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_type');
+               return false;
+       } elseif (count($engines) == 0) {
+               // Restore own error handler again
+               set_error_handler('__errorHandler');
+
+               // No engine is active
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_NO_ENGINES_ACTIVE--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_type');
+               return false;
+       }
+
+       // Then check all, if the requested is working
+       foreach ($engines as $engineArray) {
+               // By default the selected engine is not valid
+               $engineValid = false;
+
+               // Is the engine there?
+               if (strtolower($engineArray['Engine']) == strtolower(postRequestElement('mysql_type'))) {
+                       // Okay, engine is found
+                       $engineValid = true;
+                       break;
+               } // END - if
+       } // END - foreach
+
+       // So, is the engine found?
+       if ($engineValid === false) {
+               // Restore own error handler again
+               set_error_handler('__errorHandler');
+
+               // Requested engine is not active
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_ENGINE_UNSUPPORTED--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_type');
+               return false;
+       } // END - if
+
+       // Init some known tables
+       $tables = array(
+               // Admins
+               'admins'      => true,
+               // Admin menu
+               'admin_menu'  => true,
+               // Categories
+               'cats'        => true,
+               // Configuration
+               'config'      => true,
+               // Extensions
+               'extensions'  => true,
+               // Guest menu
+               'guest_menu'  => true,
+               // Max receive
+               'max_receive' => true,
+               // Member menu
+               'member_menu' => true,
+               // Module registry
+               'mod_reg'     => true,
+               // Payments
+               'payments'    => true,
+               // Sending pool
+               'pool'        => true,
+               // Referral banner
+               'refbanner'   => true,
+               // Referral levels
+               'refdepths'   => true,
+               // Referral system
+               'refsystem'   => true,
+               // Task system
+               'task_system' => true,
+       );
+
+       // So check if all tables are not there
+       foreach ($tables as $tableName => $isFound) {
+               // Check it out
+               $tables[$tableName] = isSqlTableCreated($tableName);
+
+               // Is it (hopefully not) there?
+               if ($tables[$tableName] === false) {
+                       // This does not exist
+                       $missingTables++;
+               } // END - if
+       } // END - foreach
+
+       // Determine final status (simply compare both counts
+       $isValid = (count($tables) == $missingTables);
+
+       // Disconnect here, we don't need idle database connections laying around
+       SQL_CLOSE(__FUNCTION__, __LINE__);
+
+       // Restore own error handler again
+       set_error_handler('__errorHandler');
+
+       // If the status is true, disconnect the database
+       if ($isValid === false) {
+               // Still something bad happened (e.g. tables found)
+               $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_IN_USE--}';
+               array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_dbase');
+       } // END - if
+
+       // Return status
+       return $isValid;
+}
+
+// Call-back function to check if enable_backlink is Y/N
+function isInstallerEnableBacklinkValid ($currentTab) {
+       // Check and return it
+       return in_array($currentTab, array('Y', 'N'));
+}
+
+// Call-back function to check if warn_no_pass is Y/N
+function isInstallerWarnNoPassValid ($currentTab) {
+       // Check and return it
+       return in_array($currentTab, array('Y', 'N'));
+}
+
+// Call-back function to check if write_footer is Y/N
+function isInstallerWriteFooterValid ($currentTab) {
+       // Check and return it
+       return in_array($currentTab, array('Y', 'N'));
+}
+
+// Call-back function to check if output_mode is Y/N
+function isInstallerOutputModeValid ($currentTab) {
+       // Check and return it
+       return in_array($currentTab, array('render', 'direct'));
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 0f4244cbf64d80d830f5327c294d6bd23d1e415d..28db1db9a3087b9639cc8186125a1ca15c562fd0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * MA  02110-1301  USA                                                  *
  ************************************************************************/
 
  * MA  02110-1301  USA                                                  *
  ************************************************************************/
 
-/************************************************************************
- *      YOU MAY ALSO WANT TO REMOVE THIS FILE AFTER INSTALLTION!        *
- ************************************************************************/
-
 // Some security stuff...
 // Some security stuff...
-if (!defined('__SECURITY')) {
+if ((!defined('__SECURITY')) || (!isInstallationPhase())) {
        die();
 } // END - if
 
        die();
 } // END - if
 
@@ -55,43 +51,43 @@ FILTER_INIT_TIMEZONE(array());
 
 // Init variables
 $GLOBALS['install_mysql'] = array();
 
 // Init variables
 $GLOBALS['install_mysql'] = array();
-if ((isPostRequestElementSet('mysql')) && (is_array(postRequestElement('mysql')))) {
+if ((isPostRequestElementSet('mysql')) && (ifPostContainsSelections('mysql'))) {
        // Transfer 'mysql' array
        $GLOBALS['install_mysql'] = postRequestElement('mysql');
 } // END - if
 
 // Check if both passwords from SMTP are matching
        // Transfer 'mysql' array
        $GLOBALS['install_mysql'] = postRequestElement('mysql');
 } // END - if
 
 // Check if both passwords from SMTP are matching
-if ((isGetRequestElementSet('page') && (getRequestElement('page') == 5))) {
+if ((isGetRequestElementSet('install_page') && (getRequestElement('install_page') == 5))) {
        // Okay, we have to check it
        if (isPostRequestElementSet('smtp_user') && (!isPostRequestElementSet('smtp_host'))) {
                // Hostname not set
        // Okay, we have to check it
        if (isPostRequestElementSet('smtp_user') && (!isPostRequestElementSet('smtp_host'))) {
                // Hostname not set
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_HOSTNAME_EMPTY--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_HOSTNAME_EMPTY--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 
        if ((!isPostRequestElementSet('smtp_pass1')) && (isPostRequestElementSet('smtp_pass2'))) {
                // Password is empty
        } // END - if
 
        if ((!isPostRequestElementSet('smtp_pass1')) && (isPostRequestElementSet('smtp_pass2'))) {
                // Password is empty
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_PASSWORD1_EMPTY--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASSWORD1_EMPTY--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 
        if ((isPostRequestElementSet('smtp_pass1')) && (!isPostRequestElementSet('smtp_pass2'))) {
                // Password repeat is empty
        } // END - if
 
        if ((isPostRequestElementSet('smtp_pass1')) && (!isPostRequestElementSet('smtp_pass2'))) {
                // Password repeat is empty
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_PASSWORD2_EMPTY--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASSWORD2_EMPTY--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 
        if (postRequestElement('smtp_pass1') != postRequestElement('smtp_pass1')) {
                // Passwords are not matching
        } // END - if
 
        if (postRequestElement('smtp_pass1') != postRequestElement('smtp_pass1')) {
                // Passwords are not matching
-               addToInstallContent('<div class="para">{--INSTALL_SMTP_PASS_MISMATCH--}</div>');
-               setGetRequestElement('page', 3);
+               addToInstallContent('<div class="para">{--INSTALLER_SMTP_PASS_MISMATCH--}</div>');
+               setGetRequestElement('install_page', 3);
        } // END - if
 } // END - if
 
 // Is the mailer installed or no admin registered so far?
 if ((!isInstalled()) || (!isAdminRegistered())) {
        // Output page for entered value
        } // END - if
 } // END - if
 
 // Is the mailer installed or no admin registered so far?
 if ((!isInstalled()) || (!isAdminRegistered())) {
        // Output page for entered value
-       switch (getRequestElement('page')) {
+       switch (getRequestElement('install_page')) {
                case 'welcome': // Welcome to the installation!
                        addTemplateToInstallContent('install_welcome');
                        break;
                case 'welcome': // Welcome to the installation!
                        addTemplateToInstallContent('install_welcome');
                        break;
@@ -217,15 +213,16 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                                // Check for dumps
                                                if ((!isFileReadable(postRequestElement('spath') . 'install/tables.sql')) || (!isFileReadable(postRequestElement('spath') . 'install/menu-'.getLanguage().'.sql'))) {
                                                        // Installation area not found
                                                // Check for dumps
                                                if ((!isFileReadable(postRequestElement('spath') . 'install/tables.sql')) || (!isFileReadable(postRequestElement('spath') . 'install/menu-'.getLanguage().'.sql'))) {
                                                        // Installation area not found
-                                                       debug_report_bug(__FILE__, __LINE__, 'SQL dumps not found. Please extract ALL files from the archive or checkout all files out from SVN.');
+                                                       reportBug(__FILE__, __LINE__, 'SQL dumps not found. Please extract ALL files from the archive or checkout all files out from SVN.');
                                                        return;
                                                } // END - if
 
                                                // Any errors detected?
                                                if (!ifFatalErrorsDetected()) {
                                                        return;
                                                } // END - if
 
                                                // Any errors detected?
                                                if (!ifFatalErrorsDetected()) {
-                                                       // Set type and prefix from POST data
+                                                       // Set type, prefix from POST data and database name for later queries
                                                        setConfigEntry('_TABLE_TYPE'  , postRequestElement('mysql', 'type'));
                                                        setConfigEntry('_MYSQL_PREFIX', postRequestElement('mysql', 'prefix'));
                                                        setConfigEntry('_TABLE_TYPE'  , postRequestElement('mysql', 'type'));
                                                        setConfigEntry('_MYSQL_PREFIX', postRequestElement('mysql', 'prefix'));
+                                                       setConfigEntry('__DB_NAME'    , $GLOBALS['install_mysql']['dbase']);
 
                                                        // Both exists so import them
                                                        foreach (array('tables', 'menu-'.getLanguage()) as $dump) {
 
                                                        // Both exists so import them
                                                        foreach (array('tables', 'menu-'.getLanguage()) as $dump) {
@@ -241,7 +238,7 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                                                        mergeSqls(explode(";\n", $fileContent), 'install');
                                                                } else {
                                                                        // Not readable!
                                                                        mergeSqls(explode(";\n", $fileContent), 'install');
                                                                } else {
                                                                        // Not readable!
-                                                                       debug_report_bug(__FILE__, __LINE__, sprintf("SQL dump %s is not readable!", $dump));
+                                                                       reportBug(__FILE__, __LINE__, sprintf("SQL dump %s is not readable.", $dump));
                                                                }
                                                        } // END - foreach
                                                        //* DEBUG: */ die(__FUNCTION__.'['.__LINE__.']:'<pre>'.print_r(getSqls(), true).'</pre>');
                                                                }
                                                        } // END - foreach
                                                        //* DEBUG: */ die(__FUNCTION__.'['.__LINE__.']:'<pre>'.print_r(getSqls(), true).'</pre>');
@@ -249,19 +246,20 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                                        // Are some SQLs found?
                                                        if (countSqls() == 0) {
                                                                // Abort here
                                                        // Are some SQLs found?
                                                        if (countSqls() == 0) {
                                                                // Abort here
-                                                               addFatalMessage(__FILE__, __LINE__, '{--INSTALL_SQL_IMPORT_FAILED--}');
+                                                               addFatalMessage(__FILE__, __LINE__, '{--INSTALLER_SQL_IMPORT_FAILED--}');
                                                                return;
                                                        } // END - if
 
                                                                return;
                                                        } // END - if
 
-                                                       // Now run all queries through and try to keep out empty or comment queries
+                                                       // Now run all queries through
                                                        runFilterChain('run_sqls');
 
                                                        // Copy the config template and verify it
                                                        runFilterChain('run_sqls');
 
                                                        // Copy the config template and verify it
-                                                       doInstallWriteLocalConfig();
+                                                       doInstallWriteLocalConfigurationFile(postRequestElement('spath'));
                                                } // END - if
                                        } // END - if
                                } // END - if
 
                                                } // END - if
                                        } // END - if
                                } // END - if
 
+                               // Are some fatal errors there?
                                if (ifFatalErrorsDetected()) {
                                        $OUT = '';
                                        foreach (getFatalArray() as $value) {
                                if (ifFatalErrorsDetected()) {
                                        $OUT = '';
                                        foreach (getFatalArray() as $value) {
@@ -286,12 +284,18 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                                        // We have handled all fatal errors here
                                        initFatalMessages();
                                } else {
                                        // We have handled all fatal errors here
                                        initFatalMessages();
                                } else {
-                                       // Installation is done!
-                                       redirectToUrl('install.php?page=finished');
+                                       // Register ext-sql_patches
+                                       if ((registerExtension('sql_patches', NULL)) && (registerExtension('task', NULL))) {
+                                               // Installation is done!
+                                               redirectToUrl('install.php?install_page=finished');
+                                       } else {
+                                               // Something goes wrong on registration of ext-sql_patches
+                                               addFatalMessage(__FILE__, __LINE__, '{--INSTALLER_FINALIZER_CANNOT_REGISTER_SQL_PATCHES--}');
+                                       }
                                }
                        } else {
                                // Something goes wrong during installation! :-(
                                }
                        } else {
                                // Something goes wrong during installation! :-(
-                               addFatalMessage(__FILE__, __LINE__, '{--INSTALL_FINALIZER_FAILED--}');
+                               addFatalMessage(__FILE__, __LINE__, '{--INSTALLER_FINALIZER_FAILED--}');
                        }
                        break;
 
                        }
                        break;
 
@@ -306,7 +310,7 @@ if ((!isInstalled()) || (!isAdminRegistered())) {
                        break;
 
                default:
                        break;
 
                default:
-                       logDebugMessage(__FILE__, __LINE__, sprintf("Wrong page %s detected", getRequestElement('page')));
+                       logDebugMessage(__FILE__, __LINE__, sprintf("Wrong install_page=%s detected", getRequestElement('install_page')));
                        addTemplateToInstallContent('admin_settings_unsaved', '{--WRONG_PAGE--}');
                        break;
        } // END - switch
                        addTemplateToInstallContent('admin_settings_unsaved', '{--WRONG_PAGE--}');
                        break;
        } // END - switch
index 129a73d8dc962abc7687b107bec0aa04da07bd65..568b9fce55f3bd3490761e47a50bc9b3763b6e03 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
diff --git a/inc/js/js-admin_ajax.php b/inc/js/js-admin_ajax.php
new file mode 100644 (file)
index 0000000..b1bc377
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 06/24/2012 *
+ * ===================                          Last change: 06/24/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : js-admin_ajax.php                                *
+ * -------------------------------------------------------------------- *
+ * Short description : JavaScript tag for ext-                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : JavaScript-Tag fuer ext-                         *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} elseif (!isAdmin()) {
+       return;
+}
+
+// Init content
+$content = array(
+       'admin_page' => getRequestElement('admin_page')
+);
+
+// Simply load the JavaScript here
+loadTemplate('js_admin_ajax', false, $content);
+
+// [EOF]
+?>
index 15dd459f3c7b9298ad71f59d7f2154ef01491d9b..53aa1213b51f2e77b7bce539e73fab354e1e12b4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
diff --git a/inc/js/js-install_ajax.php b/inc/js/js-install_ajax.php
new file mode 100644 (file)
index 0000000..39c54a6
--- /dev/null
@@ -0,0 +1,54 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 09/19/2011 *
+ * ===================                          Last change: 09/19/2011 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : js-install_ajax.php                              *
+ * -------------------------------------------------------------------- *
+ * Short description : JavaScript tag for ext-                          *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : JavaScript-Tag fuer ext-                         *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} elseif (!isInstallationPhase()) {
+       return;
+}
+
+// Init content
+$content = array(
+       'install_page' => getRequestElement('install_page')
+);
+
+// Simply load the JavaScript here
+loadTemplate('js_install_ajax', false, $content);
+
+// [EOF]
+?>
index 8d664239921f94237fdc9798bd3de96f68fdbfc7..32579458c7e05ba5c44034a792a6df125bc12049 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index cc9c63e55c73cad143e55c238f62312db75362b9..2013426452398db8242bdf715504dc3f72f5fa7a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,19 +43,19 @@ if (!defined('__SECURITY')) {
 }
 
 // Init surfbar
 }
 
 // Init surfbar
-SURFBAR_INIT();
+initSurfbar();
 
 // Init data
 
 // Init data
-SURFBAR_DETERMINE_NEXT_ID(getRequestElement('url_id'));
+determineSurfbarNextId(getRequestElement('url_id'));
 
 // Check reload-locks
 
 // Check reload-locks
-SURFBAR_CHECK_RELOAD_FULL();
+isSurfbarReloadFull();
 
 // Prepare content
 $content = array(
        'url_id' => bigintval(getRequestElement('url_id')),
 
 // Prepare content
 $content = array(
        'url_id' => bigintval(getRequestElement('url_id')),
-       'check'  => SURFBAR_GENERATE_VALIDATION_CODE(getRequestElement('url_id'), SURFBAR_GET_LAST_SALT()),
-       'salt'   => SURFBAR_GET_LAST_SALT(),
+       'check'  => generateSurfbarValidationCode(getRequestElement('url_id'), gerSurfbarLastSalt()),
+       'salt'   => gerSurfbarLastSalt(),
 );
 
 // Load template
 );
 
 // Load template
index ffd0027307af4fbca06c1401052b320a628ff1de..9f923e59e955b123a7f59e0b7835e519abcb9ed7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 669ce13d8f69bd7cd3447d75c418f0439816f372..88b66423fbbc2961ce4ce7e4e5d6d0696dbdb7b3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index f9f06636ad580cabacda15d4c1d729a77410ea81..035cef0da0cc6825e2a8e16f1c4c14b87d75e737 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 0dcf30a0855076ae05f15f74ec43dc3c4f4a783e..f552e4fa9c9525e987a629020a1376ea579ee17f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2f3486d033ebcfdae41da4d92aa964eb46cbb4cb..3d716d966fad60481d27654dbcf188a3c7f5eda8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -96,7 +96,7 @@ function addMessages ($messages) {
        }
 }
 
        }
 }
 
-// Checks wether given message id is valid
+// Checks whether given message id is valid
 function isMessageIdValid ($messageId) {
        return (isset($GLOBALS['messages'][getCurrentLanguage()][$messageId]));
 }
 function isMessageIdValid ($messageId) {
        return (isset($GLOBALS['messages'][getCurrentLanguage()][$messageId]));
 }
@@ -111,7 +111,7 @@ function setCurrentLanguage ($language) {
        $GLOBALS['language'] = (string) $language;
 }
 
        $GLOBALS['language'] = (string) $language;
 }
 
-// Checks wether current language is set
+// Checks whether current language is set
 function isCurrentLanguageSet () {
        return (isset($GLOBALS['language']));
 }
 function isCurrentLanguageSet () {
        return (isset($GLOBALS['language']));
 }
@@ -162,7 +162,7 @@ function setLanguage ($lang) {
        setSession('mailer_lang', $lang);
 }
 
        setSession('mailer_lang', $lang);
 }
 
-// Checks wether a language file is there for optional extension
+// Checks whether a language file is there for optional extension
 function isLanguageIncludeReadable ($ext_name = 'none') {
        // Do we have array element?
        if (!isset($GLOBALS['lang_inc'][$ext_name])) {
 function isLanguageIncludeReadable ($ext_name = 'none') {
        // Do we have array element?
        if (!isset($GLOBALS['lang_inc'][$ext_name])) {
@@ -280,13 +280,13 @@ function ifLanguageFilesCompares ($source, $target, $targetLanguage) {
        // Is one not readable?
        if (!isIncludeReadable($source)) {
                // Please report this bug!
        // Is one not readable?
        if (!isIncludeReadable($source)) {
                // Please report this bug!
-               debug_report_bug(__FUNCTION__, __LINE__, 'Source file ' . $source . ' is not readable.');
+               reportBug(__FUNCTION__, __LINE__, 'Source file ' . $source . ' is not readable.');
        } elseif (!isIncludeReadable($target)) {
                // Please report this bug!
        } elseif (!isIncludeReadable($target)) {
                // Please report this bug!
-               debug_report_bug(__FUNCTION__, __LINE__, 'Target file ' . $target . ' is not readable.');
+               reportBug(__FUNCTION__, __LINE__, 'Target file ' . $target . ' is not readable.');
        } elseif ($targetLanguage == getCurrentLanguage()) {
                // Must be different
        } elseif ($targetLanguage == getCurrentLanguage()) {
                // Must be different
-               debug_report_bug(__FUNCTION__, __LINE__, 'Target language ' . $targetLanguage . ' is same as current.');
+               reportBug(__FUNCTION__, __LINE__, 'Target language ' . $targetLanguage . ' is same as current.');
        }
 
        // Backup current messages/language
        }
 
        // Backup current messages/language
@@ -347,16 +347,16 @@ function getLanguageComparisonDifference ($target) {
        return $GLOBALS['lang_diff_count'][$target];
 }
 
        return $GLOBALS['lang_diff_count'][$target];
 }
 
-// Checks wether the given message is masked
-function isMessageMasked ($messageId) {
+// Checks whether the given message is masked
+function isMessageMasked ($messageId, $strict = true) {
        // Is the message id valid?
        // Is the message id valid?
-       if (!isMessageIdValid($messageId)) {
+       if (($strict === true) && (!isMessageIdValid($messageId))) {
                // No, then abort here
                // No, then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid message id ' . $messageId . ' detected.');
+               reportBug(__FUNCTION__, __LINE__, 'Invalid message id ' . $messageId . ' detected.');
        } // END - if
 
        // Now simply check it
        } // END - if
 
        // Now simply check it
-       $masked = isInString('%', $GLOBALS['messages'][getCurrentLanguage()][$messageId]);
+       $masked = isInString('%', getMessage($messageId));
 
        // Return result
        return $masked;
 
        // Return result
        return $masked;
index e5f8f682536562caffc31b9ee8ebdfcc1223d6fb..5b04e058058f08002ebfe4a6444f27d91c8f1edf 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 9e34cafdf8086a2c9beb76615cfbadc521d833bf..5c3904ca28d4a434a54c724fa6a0a2430b420f29 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7308af471c742a7d5bffc15ff40b502da8a0e02a..fb12cc299155e3633483621dea00a172735304d6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8d3d8711d3717f0e00d31a2869cc499ae46ab390..f5cde475e377dcee7fa52bd2edb0e2bcb75983c0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 11a40df1ed4fd91629ecf430fae53b9172c812c2..4dc8ca6d96eab88bc01ac973c11a7bebdfb61bda 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5d2ceaa29b9fb5d0d28eaa6b45a9c045c0276b02..bf51d393b832ab921d9d5a43b96c732a10f003b3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -83,6 +83,9 @@ addMessages(array(
        'ADMIN_CONFIG_AUTOPURGE_ACTIVE' => "Auto-L&ouml;schung von Best&auml;tigungslink ist aktiviert?",
        'ADMIN_CONFIG_MAIL_LIFETIME' => "G&uuml;tigkeitsdauer der Best&auml;tigungslinks (0 = Best&auml;tigungslinks laufen nie ab)",
        'ADMIN_CONFIG_AUTOPURGE_MAILID_TITLE' => "Mailbest&auml;tigungslinks l&ouml;schen",
        'ADMIN_CONFIG_AUTOPURGE_ACTIVE' => "Auto-L&ouml;schung von Best&auml;tigungslink ist aktiviert?",
        'ADMIN_CONFIG_MAIL_LIFETIME' => "G&uuml;tigkeitsdauer der Best&auml;tigungslinks (0 = Best&auml;tigungslinks laufen nie ab)",
        'ADMIN_CONFIG_AUTOPURGE_MAILID_TITLE' => "Mailbest&auml;tigungslinks l&ouml;schen",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_AUTOPURGE_ADD' => "Mailr&uuml;ckverg&uuml;tung durch Autol&ouml;schung",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 42954d95bea9fe2a87cf64d57c1889e2d81711c3..2f80824e93c5bd4f51636cd64e514d6c7490f93d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 593e54528d2f4635d97426fa73e11dbcbca02f3e..15fe28557a043e00874d477cf122071ed1f33927 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -76,20 +76,20 @@ addMessages(array(
        'BEG_SAME_USERID_AS_OWN' => "Mitglied-Id des Webmasters benutzt.",
        'MEMBER_BEG_LINK_TITLE' => "Ihr Bettellink zum Bewerben",
 
        'BEG_SAME_USERID_AS_OWN' => "Mitglied-Id des Webmasters benutzt.",
        'MEMBER_BEG_LINK_TITLE' => "Ihr Bettellink zum Bewerben",
 
-// Pay modes
+       // Pay modes
        'ADMIN_CONFIG_BEG_PAY_MODE' => "Wie sollen {?POINTS?} verg&uuml;tet werden?",
        'ADMIN_CONFIG_BEG_PAY_MODE_IMG' => "Abgesichert durch ein 1x1-Pixel",
        'ADMIN_CONFIG_BEG_PAY_MODE_JS' => "Abgesichert durch ein Fake-JavaScript",
        'ADMIN_CONFIG_BEG_PAY_MODE_BOTH' => "Durch beides obriges absichern",
        'ADMIN_CONFIG_BEG_PAY_MODE_NONE' => "Keine Absicherung (unsicher)",
 
        'ADMIN_CONFIG_BEG_PAY_MODE' => "Wie sollen {?POINTS?} verg&uuml;tet werden?",
        'ADMIN_CONFIG_BEG_PAY_MODE_IMG' => "Abgesichert durch ein 1x1-Pixel",
        'ADMIN_CONFIG_BEG_PAY_MODE_JS' => "Abgesichert durch ein Fake-JavaScript",
        'ADMIN_CONFIG_BEG_PAY_MODE_BOTH' => "Durch beides obriges absichern",
        'ADMIN_CONFIG_BEG_PAY_MODE_NONE' => "Keine Absicherung (unsicher)",
 
-// More strings for beg link
+       // More strings for beg link
        'BEG_LINK_PAY_BOTH_1' => "Das Mitglied <strong>",
        'BEG_LINK_PAY_BOTH_2' => "</strong> hat bei Ihnen gerade <strong>",
        'BEG_LINK_PAY_BOTH_3' => " {?POINTS?}</strong> erbettelt. Dies war der <strong>",
        'BEG_LINK_PAY_BOTH_4' => ".</strong> Klick auf seinen Bettellink. Vielen Dank f&uuml;r Ihre Spende.",
 
        'BEG_LINK_PAY_BOTH_1' => "Das Mitglied <strong>",
        'BEG_LINK_PAY_BOTH_2' => "</strong> hat bei Ihnen gerade <strong>",
        'BEG_LINK_PAY_BOTH_3' => " {?POINTS?}</strong> erbettelt. Dies war der <strong>",
        'BEG_LINK_PAY_BOTH_4' => ".</strong> Klick auf seinen Bettellink. Vielen Dank f&uuml;r Ihre Spende.",
 
-// Begging rallye
+       // Begging rallye
        'BEG_RANK' => "Bettel-Rank",
        'BEG_TOTAL' => "Gesamt erbettelt",
        'BEG_POINTS' => "Erbettelt",
        'BEG_RANK' => "Bettel-Rank",
        'BEG_TOTAL' => "Gesamt erbettelt",
        'BEG_POINTS' => "Erbettelt",
@@ -97,9 +97,9 @@ addMessages(array(
        'ADMIN_BEG_TIMEOUT' => "Es werden nur Mitglieder ausgewertet und hier aufgelistet, die sp&auml;testens am <span class=\"data\">%s</span> noch aktiv waren. Alle anderen Mitglieder erhalten die Verg&uuml;tung nicht.",
        'ADMIN_CONFIG_BEG_RALLYE_TITLE' => "Einstellungen an der Bettel-Rallye",
        'ADMIN_CONFIG_BEG_RALLYE_ACTIVE' => "Ist die Bettel-Rallye aktiv? (Mails k&ouml;nnen optional versendet werden!)",
        'ADMIN_BEG_TIMEOUT' => "Es werden nur Mitglieder ausgewertet und hier aufgelistet, die sp&auml;testens am <span class=\"data\">%s</span> noch aktiv waren. Alle anderen Mitglieder erhalten die Verg&uuml;tung nicht.",
        'ADMIN_CONFIG_BEG_RALLYE_TITLE' => "Einstellungen an der Bettel-Rallye",
        'ADMIN_CONFIG_BEG_RALLYE_ACTIVE' => "Ist die Bettel-Rallye aktiv? (Mails k&ouml;nnen optional versendet werden!)",
-       'ADMIN_CONFIG_BEG_RALLYE_ONLY_ACTIVE' => "Nur aktive Mitglieder nehmen dran?<br /><div class=\"notice\">(Nur in Verbindung mit der Erweiterung <strong>autopurge</strong>!)</div>",
+       'ADMIN_CONFIG_BEG_RALLYE_ONLY_ACTIVE' => "Nur aktive Mitglieder nehmen dran Teil?<br /><div class=\"notice\">(Nur in Verbindung mit der Erweiterung <strong>ext-autopurge</strong>!)</div>",
        'ADMIN_BEG_NO_RALLYE' => "Niemand nimmt an der Bettel-Rallye dran teil.",
        'ADMIN_BEG_NO_RALLYE' => "Niemand nimmt an der Bettel-Rallye dran teil.",
-       'ADMIN_BEG_WITHDRAW_NOW' => "Jetzt Verg&uuml;tung Bettel-Rallye verg&uuml;ten",
+       'ADMIN_BEG_WITHDRAW_NOW' => "Jetzt die Verg&uuml;tung Bettel-Rallye vorbereiten",
        'ADMIN_BEG_WITHDRAW_NOTICE' => "Es wird nur die Verg&uuml;tung vorbereitet. Die eigentliche Verg&uuml;tung erfolgt beim T&auml;glichen Reset um 00:00 Uhr.",
        'ADMIN_BEG_WITHDRAW_PREPARED' => "Verg&uuml;tung der Bettel-Rallye vorbereitet.",
        'ADMIN_BEG_WINNER_HIGLIGHTED' => "M&ouml;gliche Gewinner der Bettel-Rallye sind dick marktiert.",
        'ADMIN_BEG_WITHDRAW_NOTICE' => "Es wird nur die Verg&uuml;tung vorbereitet. Die eigentliche Verg&uuml;tung erfolgt beim T&auml;glichen Reset um 00:00 Uhr.",
        'ADMIN_BEG_WITHDRAW_PREPARED' => "Verg&uuml;tung der Bettel-Rallye vorbereitet.",
        'ADMIN_BEG_WINNER_HIGLIGHTED' => "M&ouml;gliche Gewinner der Bettel-Rallye sind dick marktiert.",
@@ -126,13 +126,31 @@ addMessages(array(
        'ADMIN_CONFIG_BEG_INCLUDE_OWN' => "Soll Ihre Mitglied-Id an der Bettel-Rallye dran teilnehmen?",
        'ADMIN_LIST_BEG_TITLE' => "Alle Teilnehmer der Bettel-Rallye auflisten",
 
        'ADMIN_CONFIG_BEG_INCLUDE_OWN' => "Soll Ihre Mitglied-Id an der Bettel-Rallye dran teilnehmen?",
        'ADMIN_LIST_BEG_TITLE' => "Alle Teilnehmer der Bettel-Rallye auflisten",
 
-// Task overview
+       // Task overview
        'ADMIN_TASK_LIST_BEG' => "Bettel-Rallye-Teilnehmer",
        'ADMIN_TASK_LIST_BEG_TITLE' => "Es nehmen Mitglieder an der Bettel-Rallye dran teil.",
 
        'ADMIN_TASK_LIST_BEG' => "Bettel-Rallye-Teilnehmer",
        'ADMIN_TASK_LIST_BEG_TITLE' => "Es nehmen Mitglieder an der Bettel-Rallye dran teil.",
 
-// Subject lines
-       'BEG_RALLYE_ENABLE_SUBJECT' => "HINWEIS: Eine Bettel-Rallye ist am Laufen.",
+       // Subject lines
+       'BEG_RALLYE_ENABLE_SUBJECT'  => "HINWEIS: Eine Bettel-Rallye ist am Laufen.",
        'BEG_RALLYE_DISABLE_SUBJECT' => "HINWEIS: Eine Bettel-Rallye wurde gestoppt.",
        'BEG_RALLYE_DISABLE_SUBJECT' => "HINWEIS: Eine Bettel-Rallye wurde gestoppt.",
+
+       // Point account subjects
+       'POINTS_SUBJECT_BEG'             => "Bettellinkaufruf verg&uuml;tet",
+       'POINTS_SUBJECT_BEG_REF'         => "Bettellinkaufruf anteilig verg&uuml;tet",
+       'POINTS_SUBJECT_MONTHLY_BEG'     => "Aussch&uuml;ttung aus monatl. Bettelrallye",
+       'POINTS_SUBJECT_MONTHLY_BEG_REF' => "Anteilige Aussch&uuml;ttung aus monatl. Bettelrallye",
+
+       // Admin - subject lines
+       'ADMIN_DIRECT_BEG_SUBJECT' => "Mitglied hat {?POINTS?} per Direktgutschrift beim Betteln erhalten",
+       'ADMIN_REFERRAL_BEG_SUBJECT' => "Mitglied hat {?POINTS?} per Referralgutchrift beim Betteln erhalten",
+       'ADMIN_REFERRAL_BEG_REF_SUBJECT' => "Mitglied hat anteilig {?POINTS?} per Referralgutchrift beim Betteln erhalten",
+       'ADMIN_REFERRAL_MONTHLY_BEG_SUBJECT' => "Mitglied hat {?POINTS?} in der monatl. Bettelrallye per Referralgutschrift erhalten",
+
+       // Member - subject lines
+       'MEMBER_DIRECT_BEG_SUBJECT' => "Sie haben anteilig {?POINTS?} beim Betteln erhalten",
+       'MEMBER_REFERRAL_BEG_SUBJECT' => "Sie haben anteilig {?POINTS?} beim Betteln erhalten",
+       'MEMBER_REFERRAL_BEG_REF_SUBJECT' => "Sie haben {?POINTS?} beim Betteln erhalten",
+       'MEMBER_REFERRAL_MONTHLY_BEG_SUBJECT' => "{?POINTS?} in der monatl. Bettelrallye per Referralgutschrift erhalten",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 99f6346fddf05cf490ccafb0c13270c15e37e94c..3a03fb31f07efadcd1f9930c7972d7bd7cb42220 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,13 +42,20 @@ if (!defined('__SECURITY')) {
 
 // Language definitions
 addMessages(array(
 
 // Language definitions
 addMessages(array(
-       'MEMBER_HAPPY_BIRTHDAY_SUBJECT' => "Herzlichen Gl&uuml;ckwunsch zum Geburtstag.",
+       // Admin config
        'ADMIN_CONFIG_BIRTHDAY_TITLE' => "Einstellungen zu Geburtstagsmails",
        'ADMIN_CONFIG_BIRTHDAY_POINTS' => "{?POINTS?} als &quot;Geburtstagsgeschenk&quot;",
        'ADMIN_CONFIG_BIRTHDAY_POINTS_NOTICE' => "Wert <strong>0</strong> deaktiviert die Extragutschrift.",
        'ADMIN_CONFIG_BIRTHDAY_TITLE' => "Einstellungen zu Geburtstagsmails",
        'ADMIN_CONFIG_BIRTHDAY_POINTS' => "{?POINTS?} als &quot;Geburtstagsgeschenk&quot;",
        'ADMIN_CONFIG_BIRTHDAY_POINTS_NOTICE' => "Wert <strong>0</strong> deaktiviert die Extragutschrift.",
+       'ADMIN_CONFIG_BIRTHDAY_ONLY_ACTIVE' => "Sollen nur aktive Mitglieder Geburtsgr&uml;&szlig;e erhalten?",
+       'ADMIN_CONFIG_BIRTHDAY_NOTICE' => "Aktive Mitglieder k&ouml;nnen nur erkannt werden, wenn <strong>ext-autopurge</strong> installiert ist.",
+
+       // Member messages
+       'MEMBER_HAPPY_BIRTHDAY_SUBJECT' => "Herzlichen Gl&uuml;ckwunsch zum Geburtstag.",
        'MEMBER_BIRTHDAY_CANNOT_STATUS' => "Kann keine {?POINTS?} gutschreiben! Status Ihres Accounts: <span class=\"data\">{%%pipe,translateUserStatus=%s%%}</span>",
        'MEMBER_BIRTHDAY_CANNOT_LOAD_DATA' => "Entweder haben Sie bereits Ihr Geburtsgeschenk erhalten oder Sie haben heute keinen Geburtstag.",
        'MEMBER_BIRTHDAY_CANNOT_STATUS' => "Kann keine {?POINTS?} gutschreiben! Status Ihres Accounts: <span class=\"data\">{%%pipe,translateUserStatus=%s%%}</span>",
        'MEMBER_BIRTHDAY_CANNOT_LOAD_DATA' => "Entweder haben Sie bereits Ihr Geburtsgeschenk erhalten oder Sie haben heute keinen Geburtstag.",
-       'ADMIN_CONFIG_BIRTHDAY_ONLY_ACTIVE' => "Nur aktive Mitglieder erhalten die Geburtstagsgutschrift?<br /><div class=\"notice\">(Nur in Verbindung mit der Erweiterung <strong>ext-autopurge</strong>!)</div>",
+
+       // Points account subject
+       'POINTS_SUBJECT_BIRTHDAY_CONFIRM' => "Geburtstagsgutschrift durch Best&auml;tigung",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index f7436a48bef21aed0db9b6fa0b4be69bef37f14a..6359959e20dc221d61f6f9cadd8cb037c5e23b0a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -75,7 +75,7 @@ addMessages(array(
        'MEMBER_BONUS_HERE_IS_THE_LIST' => "Hier finden Sie die aktuelle Liste mit den m&ouml;glichen Gewinnern.",
        'MEMBER_MONTHLY_BONUS_WON_SUBJECT' => "Gewonnen: Monatliche Aktiv-Rallye",
        'ADMIN_BONUS_TURBO_TOTAL' => "Aktiv-Bonus",
        'MEMBER_BONUS_HERE_IS_THE_LIST' => "Hier finden Sie die aktuelle Liste mit den m&ouml;glichen Gewinnern.",
        'MEMBER_MONTHLY_BONUS_WON_SUBJECT' => "Gewonnen: Monatliche Aktiv-Rallye",
        'ADMIN_BONUS_TURBO_TOTAL' => "Aktiv-Bonus",
-       'ADMIN_BONUS_WITHDRAW_NOW' => "Jetzt Aktiv-Bonus verg&uuml;ten",
+       'ADMIN_BONUS_WITHDRAW_NOW' => "Jetzt die Verg&uuml;tung der Aktiv-Bonus vorbereiten",
        'ADMIN_BONUS_WITHDRAW_NOTICE' => "Es wird nur die Verg&uuml;tung vorbereitet. Die eigentliche Verg&uuml;tung erfolgt beim T&auml;glichen Reset um 00:00 Uhr.",
        'ADMIN_BONUS_WITHDRAW_PREPARED' => "Verg&uuml;tung des Aktiv-Bonuses vorbereitet.",
        'ADMIN_BONUS_WINNER_HIGLIGHTED' => "M&ouml;gliche Gewinner der Aktiv-Rallye sind dick marktiert.",
        'ADMIN_BONUS_WITHDRAW_NOTICE' => "Es wird nur die Verg&uuml;tung vorbereitet. Die eigentliche Verg&uuml;tung erfolgt beim T&auml;glichen Reset um 00:00 Uhr.",
        'ADMIN_BONUS_WITHDRAW_PREPARED' => "Verg&uuml;tung des Aktiv-Bonuses vorbereitet.",
        'ADMIN_BONUS_WINNER_HIGLIGHTED' => "M&ouml;gliche Gewinner der Aktiv-Rallye sind dick marktiert.",
@@ -122,7 +122,7 @@ addMessages(array(
        'ADMIN_NO_NOTIFICATIONS' => "Keine Benachrichtigungen gefunden.",
        'ADMIN_LINKS_BONUS_MAIL_TITLE' => "Bonus-Mail <span class=\"data\">%s</span>:",
        'ADMIN_EDIT_BONUS_EMAIL_TITLE' => "Daten der Bonus-Mail Nr. <span class=\"data\">%s</span> &auml;ndern",
        'ADMIN_NO_NOTIFICATIONS' => "Keine Benachrichtigungen gefunden.",
        'ADMIN_LINKS_BONUS_MAIL_TITLE' => "Bonus-Mail <span class=\"data\">%s</span>:",
        'ADMIN_EDIT_BONUS_EMAIL_TITLE' => "Daten der Bonus-Mail Nr. <span class=\"data\">%s</span> &auml;ndern",
-       'MONTHLY_BONUS_RALLYE_GOOD_LUCK' => "Wir w&uuml;nschen allen Mitgliedern viel Gl&uuml;ck bei der monatlichen Aktiv-Rallye!",
+       'MONTHLY_BONUS_RALLYE_GOOD_LUCK' => "Wir w&uuml;nschen allen Mitgliedern viel Gl&uuml;ck bei der monatlichen Aktiv-Rallye.",
        'MONTHLY_BONUS_RALLYE_RANKS_NOTICE' => "Es k&ouml;nnen nur die ersten <span class=\"data\">{?bonus_ranks?}</span> die Aktiv-Rallye gewinnen. Der Rechtsweg ist ausgeschlossen.",
        'ADMIN_SEND_BONUS_MAIL_TITLE' => "Bonus-{?POINTS?}-Mail versenden:",
 
        'MONTHLY_BONUS_RALLYE_RANKS_NOTICE' => "Es k&ouml;nnen nur die ersten <span class=\"data\">{?bonus_ranks?}</span> die Aktiv-Rallye gewinnen. Der Rechtsweg ist ausgeschlossen.",
        'ADMIN_SEND_BONUS_MAIL_TITLE' => "Bonus-{?POINTS?}-Mail versenden:",
 
@@ -144,6 +144,16 @@ addMessages(array(
        // Admin 'bonus' mail actions
        'ADMIN_EDIT_BONUS_MAIL_LINK' => "Bonus-Mail bearbeiten",
        'ADMIN_DELETE_BONUS_MAIL_LINK' => "Bonus-Mail SOFORT l&ouml;schen",
        // Admin 'bonus' mail actions
        'ADMIN_EDIT_BONUS_MAIL_LINK' => "Bonus-Mail bearbeiten",
        'ADMIN_DELETE_BONUS_MAIL_LINK' => "Bonus-Mail SOFORT l&ouml;schen",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_MONTHLY_BONUS' => "Aussch&uuml;ttung aus monatl. Aktivrallye",
+       'POINTS_SUBJECT_MONTHLY_BONUS_REF' => "Anteilige Aussch&uuml;ttung aus monatl. Aktivrallye",
+
+       // Admin - subject lines
+       'ADMIN_REFERRAL_MONTHLY_BONUS_SUBJECT' => "Aktiv-Rallye als Referralgutschrift verg&uuml;tet",
+
+       // Member - subject lines
+       'MEMBER_REFERRAL_MONTHLY_BONUS_SUBJECT' => "Aktiv-Rallye als Referralgutschrift erhalten",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index eff7c6641ceaf77bb5eae4c66b23304115e91a3a..8f1bd6eb31c0442619266c695b6a5db3927f353e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index b892c99891a2374dd92a1d837a16f76ea9dffa19..00cef4c12d9df2c5854a905f0796f21d72b28426 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,12 +42,12 @@ if (!defined('__SECURITY')) {
 
 // Language definitions
 addMessages(array(
 
 // Language definitions
 addMessages(array(
-// Administrative settings
+       // Administrative settings
        'ADMIN_CACHE_STATS_TITLE' => "Statistiken des Caching-Systems",
        'ADMIN_CACHE_DB_HITS' => "Zugriffe auf die Datenbank",
        'ADMIN_CACHE_HITS' => "Zugriffe auf den Cache",
        'ADMIN_CACHE_PERCENTS' => "Prozentual (*)",
        'ADMIN_CACHE_STATS_TITLE' => "Statistiken des Caching-Systems",
        'ADMIN_CACHE_DB_HITS' => "Zugriffe auf die Datenbank",
        'ADMIN_CACHE_HITS' => "Zugriffe auf den Cache",
        'ADMIN_CACHE_PERCENTS' => "Prozentual (*)",
-       'ADMIN_CACHE_NOTICE' => "(*): Sollten bei Ihnen die Prozente unter 50&#37; liegen und Sie nicht vor September 2008 das Script *neu* installiert haben, so ist dies kein Grund zur Besorgnis. Im Normalfall sollten die Prozente seit eigenen Revisionen im September 2008 (R300+) &uuml;ber 50&#37; liegen.",
+       'ADMIN_CACHE_STATS_NOTICE' => "(*): Sollten bei Ihnen die Prozente unter 50&#37; liegen und Sie nicht vor September 2008 das Script *neu* installiert haben, so ist dies kein Grund zur Besorgnis. Im Normalfall sollten die Prozente seit eigenen Revisionen im September 2008 (R300+) &uuml;ber 50&#37; liegen.",
        'ADMIN_TOTAL_HITS' => "Gesamtzugriffe",
        'ADMIN_CACHE_DB_STATS_DEACTIVATED' => "Datenbank-/Cache-Statistiken sind deaktiviert. Dies ist gut f&uuml;r die Performance.",
 ));
        'ADMIN_TOTAL_HITS' => "Gesamtzugriffe",
        'ADMIN_CACHE_DB_STATS_DEACTIVATED' => "Datenbank-/Cache-Statistiken sind deaktiviert. Dies ist gut f&uuml;r die Performance.",
 ));
index ea3688205b4ee9968f618b86fb463cc61e368538..0cd90d1fd604e7cd324d8a13f67586e452855933 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 767cb4901056795eca699e97ca0546aff913439a..2f7625386b5543e7f1f7dd0895c57385082fb4af 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -57,7 +57,7 @@ addMessages(array(
        'ADMIN_SEND_COUPON' => "Gutschein versenden",
        'ADMIN_SEND_COUPON_POINTS_NOT_ENTERED' => "Bitte geben Sie eine Verg&uuml;tung (in {?POINTS?}) ein.",
        'ADMIN_SEND_COUPON_DESCRIPTION_NOT_ENTERED' => "Bitte geben Sie eine kurze Beschreibung (oder einen Hinweis an Ihre Mitglieder) ein.",
        'ADMIN_SEND_COUPON' => "Gutschein versenden",
        'ADMIN_SEND_COUPON_POINTS_NOT_ENTERED' => "Bitte geben Sie eine Verg&uuml;tung (in {?POINTS?}) ein.",
        'ADMIN_SEND_COUPON_DESCRIPTION_NOT_ENTERED' => "Bitte geben Sie eine kurze Beschreibung (oder einen Hinweis an Ihre Mitglieder) ein.",
-       'ADMIN_SEND_COUPON_USER_404' => "Es wurden keine empfangsbereiten Mitglieder gefunden!",
+       'ADMIN_SEND_COUPON_USER_404' => "Es wurden keine empfangsbereiten Mitglieder gefunden.",
        'ADMIN_SEND_COUPON_DONE' => "Es wurde ein Gutschein an alle empfangsbereiten Mitglieder versendet.",
 
        // Admin - More
        'ADMIN_SEND_COUPON_DONE' => "Es wurde ein Gutschein an alle empfangsbereiten Mitglieder versendet.",
 
        // Admin - More
@@ -98,6 +98,9 @@ addMessages(array(
        'COUPON_TOTAL_CREATED' => "Erstellt",
        'COUPON_TOTAL_CASHED' => "Eingel&ouml;st",
        'COUPON_DESCRIPTION' => "Hinweistext",
        'COUPON_TOTAL_CREATED' => "Erstellt",
        'COUPON_TOTAL_CASHED' => "Eingel&ouml;st",
        'COUPON_DESCRIPTION' => "Hinweistext",
+
+       // Point account subjects
+       'POINTS_SUBJECT_COUPON_CASHED' => "Einl&ouml;sung eines Gutscheins",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 34efbc7ab32b2d1b4f284966b874e5feacf801f8..3e57c4a8ed1735551337c831dd83a2ec3a1d0c4b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,12 +44,13 @@ if (!defined('__SECURITY')) {
 addMessages(array(
 // Language constants
        'MODULE_REGISTRY_404' => "Modul <span class=\"data\">{%pipe,getModule%}</span> existiert nicht.",
 addMessages(array(
 // Language constants
        'MODULE_REGISTRY_404' => "Modul <span class=\"data\">{%pipe,getModule%}</span> existiert nicht.",
+       'MODULE_REGISTRY_LOCKED_404' => "Gsperrtes Modul <span class=\"data\">{%pipe,getModule%}</span> existiert nicht.",
        'MODULE_REGISTRY_IS_LOCKED' => "Das Modul <span class=\"data\">{%pipe,getModule%}</span> wurde gesperrt.",
        'MODULE_ERROR_404' => "Fehler: Modul nicht gefunden",
        'UNKNOWN_MODULE_DETECTED_TITLE' => "Unbekanntes Modul &#39;%s&#39;",
        'MAILER_WARNING' => "Warnung",
        'DIE_CONFIG_CHANGED_YOU' => "Sie haben Ihre Config-Datei editiert! Auf Wiedersehen...",
        'MODULE_REGISTRY_IS_LOCKED' => "Das Modul <span class=\"data\">{%pipe,getModule%}</span> wurde gesperrt.",
        'MODULE_ERROR_404' => "Fehler: Modul nicht gefunden",
        'UNKNOWN_MODULE_DETECTED_TITLE' => "Unbekanntes Modul &#39;%s&#39;",
        'MAILER_WARNING' => "Warnung",
        'DIE_CONFIG_CHANGED_YOU' => "Sie haben Ihre Config-Datei editiert! Auf Wiedersehen...",
-       'DIE_RUN_INSTALL_MYSQL' => "Bitte rufen Sie http://your-domain.com/install.php auf, damit die Konfigurationsdaten zur Datenbank eingerichtet werden k&ouml;nnen.",
+       'DIE_RUN_INSTALLER_MYSQL' => "Bitte rufen Sie {?URL?}/install.php auf, damit die Konfigurationsdaten zur Datenbank eingerichtet werden k&ouml;nnen.",
        'WARN_NULL_PASSWORD' => "Sie haben kein Passwort eingegeben! Bitte lesen Sie in der <strong>{?CACHE_PATH?}config-local.php</strong> nach, wie Sie diese Warnung abschalten k&ouml;nnen.",
        'FATAL_CONFIG_WRITABLE' => "Ihre Datei {?CACHE_PATH?}config-local.php ist beschreibbar! Dies ist ein m&ouml;gliches Sicherheitsrisiko.",
        'FATAL_CANNOT_WRITE_CONFIG' => "Kann Konfigurationsdaten nicht speichern, da ich keinen Schreibzugriff auf {?CACHE_PATH?}config-local.php habe.",
        'WARN_NULL_PASSWORD' => "Sie haben kein Passwort eingegeben! Bitte lesen Sie in der <strong>{?CACHE_PATH?}config-local.php</strong> nach, wie Sie diese Warnung abschalten k&ouml;nnen.",
        'FATAL_CONFIG_WRITABLE' => "Ihre Datei {?CACHE_PATH?}config-local.php ist beschreibbar! Dies ist ein m&ouml;gliches Sicherheitsrisiko.",
        'FATAL_CANNOT_WRITE_CONFIG' => "Kann Konfigurationsdaten nicht speichern, da ich keinen Schreibzugriff auf {?CACHE_PATH?}config-local.php habe.",
@@ -71,7 +72,7 @@ addMessages(array(
        'ADMIN_ACCOUNT_FIRST_CREATION_LOGIN' => "Geben Sie einen Administrator-Loginnamen ein",
        'ADMIN_ACCOUNT_FIRST_CREATION_PASSWORD1' => "Vergeben Sie dazu ein Passwort",
        'ADMIN_ACCOUNT_FIRST_CREATION_PASSWORD2' => "Das Passwort erneut eingeben",
        'ADMIN_ACCOUNT_FIRST_CREATION_LOGIN' => "Geben Sie einen Administrator-Loginnamen ein",
        'ADMIN_ACCOUNT_FIRST_CREATION_PASSWORD1' => "Vergeben Sie dazu ein Passwort",
        'ADMIN_ACCOUNT_FIRST_CREATION_PASSWORD2' => "Das Passwort erneut eingeben",
-       'ADMIN_NO_PASS' => "Kein Passwort eingegeben!",
+       'ADMIN_NO_PASS' => "Kein Passwort eingegeben.",
        'CLEAR_FORM' => "Nochmal eingeben",
        'ADMIN_ACCOUNT_FIRST_CREATION_SUBMIT' => "Admin-Account erstellen",
        'ADMIN_NO_LOGIN' => "Sie haben keinen Loginnamen eingegeben.",
        'CLEAR_FORM' => "Nochmal eingeben",
        'ADMIN_ACCOUNT_FIRST_CREATION_SUBMIT' => "Admin-Account erstellen",
        'ADMIN_NO_LOGIN' => "Sie haben keinen Loginnamen eingegeben.",
@@ -183,11 +184,12 @@ addMessages(array(
        'ADMIN_MAX_VALUE' => "Maximal zu empfangene Mails",
        'ADMIN_MAX_COMMENT' => "Hinweis zum Maximal-Wert",
        'NO_MAX_VALUES' => "Derzeit klappt die Anmeldung nicht, da Sie keine maximal zu empfangenen Mails einstellen k&ouml;nnen.",
        'ADMIN_MAX_VALUE' => "Maximal zu empfangene Mails",
        'ADMIN_MAX_COMMENT' => "Hinweis zum Maximal-Wert",
        'NO_MAX_VALUES' => "Derzeit klappt die Anmeldung nicht, da Sie keine maximal zu empfangenen Mails einstellen k&ouml;nnen.",
-       'MAX_PER_DAY' => "Maximale Anzahl an Klick-Mails pro Tag",
+       'MAX_MAILS_PER_DAY' => "Maximale Anzahl an Klick-Mails pro Tag",
+       'ADMIN_MAX_MAILS_PER_DAY' => "Maximale Anzahl an Klick-Mails pro Tag einstellen:",
        'PER_DAY' => "Mails",
        'REFID_BY' => "Sie wurden geworben von",
        'PER_DAY' => "Mails",
        'REFID_BY' => "Sie wurden geworben von",
-       'TERMS_OF_USAGE' => "AGBs zustimmen und absenden",
-       'AGREE_TO_THIS' => "Stimmen Sie unseren [<a href=\"{%url=modules.php?module=index&amp;what=agb%}\" target=\"_blank\">AGBs</a>] zu?",
+       'TERMS_OF_USAGE' => "<a href=\"{%template,GetTermsConditionsLink%}\" target=\"_blank\">AGBs</a> zustimmen und absenden",
+       'AGREE_TO_THIS' => "Stimmen Sie unseren [<a href=\"{%template,GetTermsConditionsLink%}\" target=\"_blank\">AGBs</a>] zu?",
        'SUBMIT_REGISTER' => "Anmeldedaten abschicken",
        'HAVE_TO_AGREE' => "Sie m&uuml;ssen unseren AGBs zustimmen, damit Sie an diesem {?mt_word?} teilnehmen k&ouml;nnen.",
        'ENTER_BOTH_PASSWORDS' => "Bitte geben Sie ein Passwort und das selbe Passwort noch einmal ein.",
        'SUBMIT_REGISTER' => "Anmeldedaten abschicken",
        'HAVE_TO_AGREE' => "Sie m&uuml;ssen unseren AGBs zustimmen, damit Sie an diesem {?mt_word?} teilnehmen k&ouml;nnen.",
        'ENTER_BOTH_PASSWORDS' => "Bitte geben Sie ein Passwort und das selbe Passwort noch einmal ein.",
@@ -246,29 +248,21 @@ addMessages(array(
        'GUEST_MAY_LOGIN_HERE' => "Sie k&ouml;nnen sich nun hier einloggen:",
        'GUEST_THANX_CONFIRM' => "Email-Adresse best&auml;tigt",
        'GOTO_TOP' => "Nach oben",
        'GUEST_MAY_LOGIN_HERE' => "Sie k&ouml;nnen sich nun hier einloggen:",
        'GUEST_THANX_CONFIRM' => "Email-Adresse best&auml;tigt",
        'GOTO_TOP' => "Nach oben",
-       'YOUR_LOGIN' => "Ihre Login-Id lautet",
+       'YOUR_LOGIN' => "Ihre Mitglieds-Id lautet",
        'LOGIN_URL' => "URL zum Login",
        'GUEST_LOGIN_MEMBER' => "Einloggen zum Mitgliederbereich",
        'LOGIN_URL' => "URL zum Login",
        'GUEST_LOGIN_MEMBER' => "Einloggen zum Mitgliederbereich",
-       'GUEST_ENTER_LOGIN' => "Login-Id",
+       'GUEST_ENTER_LOGIN' => "Mitglieds-Id",
        'GUEST_ENTER_PASSWORD' => "Passwort",
        'LOGIN_SUBMIT' => "Einloggen",
        'GUEST_GET_NEW_PASS' => "Neues Passwort zuschicken",
        'GUEST_ENTER_EMAIL' => "Angemeldete Email-Adresse",
        'NEW_PASSWD' => "Jetzt zuschicken",
        'GUEST_ENTER_PASSWORD' => "Passwort",
        'LOGIN_SUBMIT' => "Einloggen",
        'GUEST_GET_NEW_PASS' => "Neues Passwort zuschicken",
        'GUEST_ENTER_EMAIL' => "Angemeldete Email-Adresse",
        'NEW_PASSWD' => "Jetzt zuschicken",
-       'GUEST_WRONG_ID_EMAIL' => "Konnte Account-Daten nicht auffinden! Vermutlich haben Sie eine falsche Login-Id oder Email-Adresse eingegeben! Bitte probieren Sie es nochmal.",
+       'GUEST_WRONG_ID_EMAIL' => "Konnte Account-Daten nicht auffinden! Vermutlich haben Sie eine falsche Mitglieds-Id oder Email-Adresse eingegeben! Bitte probieren Sie es nochmal.",
        'GUEST_NEW_PASS_1' => "Sie oder ein anderes Mitglied",
        'GUEST_NEW_PASS_2' => "haben soben ein neues Passwort angefordert. Hier ist Ihr neues Passwort:",
        'YOUR_NEW_PASS' => "Neues Passwort",
        'GUEST_NOT_THIS_REPORT' => "Sollten Sie dies nicht gewesen sein, so melden Sie sich bitte bei uns!\n\nMit freundlichen Gr&uuml;&szlig;en,",
        'GUEST_NEW_PASSWORD' => "Ihre Passwortanfrage",
        'GUEST_NEW_PASS_1' => "Sie oder ein anderes Mitglied",
        'GUEST_NEW_PASS_2' => "haben soben ein neues Passwort angefordert. Hier ist Ihr neues Passwort:",
        'YOUR_NEW_PASS' => "Neues Passwort",
        'GUEST_NOT_THIS_REPORT' => "Sollten Sie dies nicht gewesen sein, so melden Sie sich bitte bei uns!\n\nMit freundlichen Gr&uuml;&szlig;en,",
        'GUEST_NEW_PASSWORD' => "Ihre Passwortanfrage",
-       'LOGIN_UNKNOWN_CODE' => "Unbekannter R&uuml;ckgabewert.",
-       'LOGIN_WRONG_PASS' => "Falsches Passwort eingegben.",
-       'LOGIN_WRONG_ID' => "Es wurde kein Account unter Ihren eingegebenen Logindaten gefunden.",
-       'LOGIN_STATUS_LOCKED' => "Ihr Account wurde gesperrt. Sperrgrund: <span class=\"data\">{%user,lock_reason%}</span>, Sperrzeitpunkt: <span class=\"data\">{%user,lock_timestamp,generateDateTime%}</span>",
-       'LOGIN_STATUS_UNCONFIRMED' => "Bitte best&auml;tigen Sie erst Ihre Email-Adresse! Haben Sie den Best&auml;tigungslink verloren? Links im Men&uuml; unter &quot;Best&auml;tigungslink&quot; k&ouml;nnen Sie ihn erneut anfordern.",
-       'LOGIN_COOKIES_DISABLED' => "Sie haben in Ihrem Browser entweder die Cookies ausgeschaltet, oder die Sicherheitsstufe ist zu hoch eingestellt.",
-       'LOGIN_UNKNOWN_ERROR' => "Es ist ein unerwarteter Account-Status aufgetreten. Bitte melden Sie sich beim Support dieses {?mt_word2?}.",
-       'LOGIN_UNKNOWN_STATUS' => "Ihr Account weisst einen unbekannten Status auf. Bitte melden Sie sich beim Support dieses {?mt_word2?}.",
        'GUEST_SELECT_LIFETIME' => "Wie lange soll Auto-Login aktiv sein?",
        'LIFE_CLOSE_BROWSER' => "Browser wurde geschlossen",
        'LIFE_HOURS' => "Stunde(n)",
        'GUEST_SELECT_LIFETIME' => "Wie lange soll Auto-Login aktiv sein?",
        'LIFE_CLOSE_BROWSER' => "Browser wurde geschlossen",
        'LIFE_HOURS' => "Stunde(n)",
@@ -283,13 +277,10 @@ addMessages(array(
        'USERNAME_UNKNOWN' => "Name ist nicht ladbar",
        'USERNAME_ADMIN' => "Administrator",
        'USERNAME_ADMIN_SHORT' => "Admin",
        'USERNAME_UNKNOWN' => "Name ist nicht ladbar",
        'USERNAME_ADMIN' => "Administrator",
        'USERNAME_ADMIN_SHORT' => "Admin",
-       'LAST_ONLINE' => "Sie waren als letztes Online am",
-       'LAST_MODULE' => "Ihr zuletzt ausgew&auml;hltes Modul",
+       'USERNAME_AJAXJ' => "AJAX",
+       'MEMBER_LAST_ONLINE' => "Sie waren als letztes Online am",
+       'MEMBER_LAST_WHAT' => "Ihr zuletzt ausgew&auml;hltes Modul",
        'MEMBER_EDIT_PROFILE' => "Profildaten &auml;ndern",
        'MEMBER_EDIT_PROFILE' => "Profildaten &auml;ndern",
-       'GENDER' => "Anrede",
-       'GENDER_M' => "Herr",
-       'GENDER_F' => "Frau",
-       'GENDER_C' => "&quot;Firma&quot;",
        'SAVE_CHANGES' => "&Auml;nderungen speichern",
        'MEMBER_MYDATA_NOTICE' => "Geben Sie nur bei <strong>Passwort</strong> Ihr aktuelles Passwort ein, wenn Sie nur Daten &auml;ndern wollen. Geben Sie bei <strong>Passwortbest&auml;tigung</strong> das neue Passwort erneut ein, wenn Sie Ihr aktuelles Passwort &auml;ndern wollen.",
        'MEMBER_UPDATE_PWD_WRONG' => "Bitte geben Sie Ihr aktuelles Passwort zum &Auml;ndern Ihrer Einstellungen ein. Wir haben dies zur Sicherheit unserer Mitglieder eingebaut.",
        'SAVE_CHANGES' => "&Auml;nderungen speichern",
        'MEMBER_MYDATA_NOTICE' => "Geben Sie nur bei <strong>Passwort</strong> Ihr aktuelles Passwort ein, wenn Sie nur Daten &auml;ndern wollen. Geben Sie bei <strong>Passwortbest&auml;tigung</strong> das neue Passwort erneut ein, wenn Sie Ihr aktuelles Passwort &auml;ndern wollen.",
        'MEMBER_UPDATE_PWD_WRONG' => "Bitte geben Sie Ihr aktuelles Passwort zum &Auml;ndern Ihrer Einstellungen ein. Wir haben dies zur Sicherheit unserer Mitglieder eingebaut.",
@@ -304,7 +295,7 @@ addMessages(array(
        'MEMBER_MYDATA_MAIL_SENT' => "Es ist eine Email zu Ihnen unterwegs.",
        'ADMIN_CHANGED_DATA' => "Profildaten ge&auml;ndert",
        'ADMIN_MEMBER_CHANGED_PROFILE' => "Eines Ihrer Mitglieder hat seine Profildaten ge&auml;ndert.",
        'MEMBER_MYDATA_MAIL_SENT' => "Es ist eine Email zu Ihnen unterwegs.",
        'ADMIN_CHANGED_DATA' => "Profildaten ge&auml;ndert",
        'ADMIN_MEMBER_CHANGED_PROFILE' => "Eines Ihrer Mitglieder hat seine Profildaten ge&auml;ndert.",
-       'MEMBER_USERID' => "Seine Login-Id lautet",
+       'MEMBER_USERID' => "Seine Mitglieds-Id lautet",
        'LOGOUT_DONE' => "Ausloggen abgeschlossen.",
        'LOGOUT_FAILED' => "Ausloggen fehlgeschlagen.",
        'MEMBER_NO_CATEGORIES' => "Es wurden bis jetzt noch keine Kategorien eingerichtet.",
        'LOGOUT_DONE' => "Ausloggen abgeschlossen.",
        'LOGOUT_FAILED' => "Ausloggen fehlgeschlagen.",
        'MEMBER_NO_CATEGORIES' => "Es wurden bis jetzt noch keine Kategorien eingerichtet.",
@@ -341,17 +332,17 @@ addMessages(array(
        'REFERRAL_IS_ACTIVE' => "Aktiv?",
        'POINTS_USED' => "Verbrauchte {?POINTS?}",
        'MEMBER_POINTS_LEFT' => "{?POINTS?}-Guthaben zum Mailversand &uuml;brig",
        'REFERRAL_IS_ACTIVE' => "Aktiv?",
        'POINTS_USED' => "Verbrauchte {?POINTS?}",
        'MEMBER_POINTS_LEFT' => "{?POINTS?}-Guthaben zum Mailversand &uuml;brig",
-       'SELECT_MAIL_TYPE' => "Mailart ausw&auml;hlen",
+       'MEMBER_SELECT_MAIL_TYPE' => "Mailart ausw&auml;hlen:",
        'PLEASE_SELECT' => "Bitte ausw&auml;hlen",
        'PER_MAIL' => "{?POINTS?} / Mail",
        'PAYMENT' => "{?POINTS?} Verg&uuml;tung",
        'PLEASE_SELECT' => "Bitte ausw&auml;hlen",
        'PER_MAIL' => "{?POINTS?} / Mail",
        'PAYMENT' => "{?POINTS?} Verg&uuml;tung",
-       'SELECT_CATEGORY' => "Zielkategorie",
-       'USER_IN_CAT' => "Empf&auml;nger",
-       'ENTER_RECEIVER' => "Empf&auml;ngeranzahl",
-       'ENTER_SUBJECT' => "Betreffzeile",
-       'ENTER_TEXT' => "Werbetext",
+       'SELECT_CATEGORY' => "Zielkategorie ausw&auml;hlen:",
+       'USERS_IN_CATEGORY' => "Empf&auml;nger",
+       'ENTER_RECEIVER' => "Empf&auml;ngeranzahl:",
+       'ENTER_SUBJECT' => "Betreffzeile:",
+       'ENTER_TEXT' => "Werbetext:",
        'MEMBER_PLEASE_NOTICE' => "Bitte beachten Sie vor dem Absenden:",
        'MEMBER_PLEASE_NOTICE' => "Bitte beachten Sie vor dem Absenden:",
-       'MEMBER_ENTER_URL' => "URL",
+       'MEMBER_ENTER_URL' => "URL eingeben:",
        'CONTINUE_FRAMETESTER' => "Weiter zum Framekiller-Test",
        'MEMBER_URL_TIME_LOCK' => "Sie hatten bereits die selbe URL gebucht:",
        'MEMBER_LAST_TIME_LOCK' => "Ihre letzte Buchung war am",
        'CONTINUE_FRAMETESTER' => "Weiter zum Framekiller-Test",
        'MEMBER_URL_TIME_LOCK' => "Sie hatten bereits die selbe URL gebucht:",
        'MEMBER_LAST_TIME_LOCK' => "Ihre letzte Buchung war am",
@@ -365,7 +356,7 @@ addMessages(array(
        'MEMBER_BLIST_TIME' => "Datum der Sperrung war",
        'MEMBER_SELECTED_MORE_RECS' => "Sie haben f&uuml;r diese Kategorie zu viele Empf&auml;nger eingegeben.",
        'MEMBER_GO_BACK' => "Zur&uuml;ck zum Buchungsformular",
        'MEMBER_BLIST_TIME' => "Datum der Sperrung war",
        'MEMBER_SELECTED_MORE_RECS' => "Sie haben f&uuml;r diese Kategorie zu viele Empf&auml;nger eingegeben.",
        'MEMBER_GO_BACK' => "Zur&uuml;ck zum Buchungsformular",
-       'MEMBER_DO_ORDER' => "Mailbuchung so aufgeben.",
+       'MEMBER_DO_ORDER' => "Mailbuchung so aufgeben",
        'LOADER_NOT_WORKING' => "Falls die Weiterleitung nicht automatisch in einer Sekunde klappen sollte,",
        'LOADER_CLICK_HERE' => "so kommen Sie hier zur externen Seite weiter",
        'CLICK_HERE' => "Klick.",
        'LOADER_NOT_WORKING' => "Falls die Weiterleitung nicht automatisch in einer Sekunde klappen sollte,",
        'LOADER_CLICK_HERE' => "so kommen Sie hier zur externen Seite weiter",
        'CLICK_HERE' => "Klick.",
@@ -382,7 +373,8 @@ addMessages(array(
        'ADMIN_NEW_QUEUE' => "Mailbuchung in Ihrem {?mt_word?}",
        'MEMBER_NEW_QUEUE' => "Vielen Dank f&uuml;r die Mailbuchung.",
        'MEMBER_CONTINUE_AREA' => "Weiter zum Mitgliedsbereich",
        'ADMIN_NEW_QUEUE' => "Mailbuchung in Ihrem {?mt_word?}",
        'MEMBER_NEW_QUEUE' => "Vielen Dank f&uuml;r die Mailbuchung.",
        'MEMBER_CONTINUE_AREA' => "Weiter zum Mitgliedsbereich",
-       'MEMBER_THANX_ORDER' => "Vielen Dank f&uuml;r Ihre Mailbuchung! Es ist eine Mail zu Ihnen unterwegs.",
+       'MEMBER_THANX_ORDER_TITLE' => "Vielen Dank f&uuml;r Ihre Mailbuchung!",
+       'MEMBER_THANX_ORDER' => "Es ist eine Mail mit weiteren Details zu Ihnen unterwegs.",
        'ADMIN_NO_MAILS_IN_POOL' => "Es wurden noch keine Mailbuchungen aufgegeben, kann somit keine Mails anzeigen.",
        'ADMIN_POOL_CONTENT' => "Mailbuchungen im Sende-Pool",
        'POOL_TYPE_UNKNOWN' => "Unbekannt (%s)",
        'ADMIN_NO_MAILS_IN_POOL' => "Es wurden noch keine Mailbuchungen aufgegeben, kann somit keine Mails anzeigen.",
        'ADMIN_POOL_CONTENT' => "Mailbuchungen im Sende-Pool",
        'POOL_TYPE_UNKNOWN' => "Unbekannt (%s)",
@@ -457,7 +449,7 @@ addMessages(array(
        'ADMIN_NO_NONE_REGISTERED' => "Ihre Suchkriterieren ergaben keine Treffer in der Mitgliederliste. ",
        'ADMIN_MEMBER_404' => "Mitglieds-Account <span class=\"data\">%s</span> existiert nicht.",
        'LAST_ONLINE_SHORT' => "Zuletzt Online",
        'ADMIN_NO_NONE_REGISTERED' => "Ihre Suchkriterieren ergaben keine Treffer in der Mitgliederliste. ",
        'ADMIN_MEMBER_404' => "Mitglieds-Account <span class=\"data\">%s</span> existiert nicht.",
        'LAST_ONLINE_SHORT' => "Zuletzt Online",
-       'ADMIN_LAST_MODULE' => "Letzte Aktion",
+       'ADMIN_LAST_WHAT' => "Letzte Aktion",
        'RECEIVE_MAILS' => "Kann Mails empfangen",
        'REFERRAL_CLICKS' => "Klicks auf Ref-Link",
        'TOTAL_LOGINS' => "Logins gesamt",
        'RECEIVE_MAILS' => "Kann Mails empfangen",
        'REFERRAL_CLICKS' => "Klicks auf Ref-Link",
        'TOTAL_LOGINS' => "Logins gesamt",
@@ -526,7 +518,7 @@ addMessages(array(
        'USERS_LINKS' => "Unbest&auml;tigte Mails",
        'USERS_STATS' => "Werbebuchungen",
        'USERS_SENT_MAILS' => "Gesendete Mails",
        'USERS_LINKS' => "Unbest&auml;tigte Mails",
        'USERS_STATS' => "Werbebuchungen",
        'USERS_SENT_MAILS' => "Gesendete Mails",
-       'USERS_MAX_PER_DAY' => "Versendbare Mails pro Tag",
+       'USERS_MAX_MAILS_PER_DAY' => "Versendbare Mails pro Tag",
        'USERS_MAX_REC' => "Heute versendbare Mails",
        'ADMIN_EDIT_CATEGORIES_TITLE' => "Kategorien &auml;ndern",
        'ADMIN_CATEGORY_ID' => "Kategorie-Id",
        'USERS_MAX_REC' => "Heute versendbare Mails",
        'ADMIN_EDIT_CATEGORIES_TITLE' => "Kategorien &auml;ndern",
        'ADMIN_CATEGORY_ID' => "Kategorie-Id",
@@ -559,7 +551,6 @@ addMessages(array(
        'REFERRALS' => "Referrals",
        'MEMBER_PART_POINTS' => "Teilsummen",
        'KBYTES' => "KBytes",
        'REFERRALS' => "Referrals",
        'MEMBER_PART_POINTS' => "Teilsummen",
        'KBYTES' => "KBytes",
-       'DEFAULT_SUBJECT_LINE' => "Klick-Mail von {?MAIN_TITLE?}",
        'MEBER_UPDATE_PWD_WRONG' => "Sie haben das falsche Passwort eingegeben! Bitte nochmal versuchen.",
        'ADMIN_MEMBER_NO_CATEGORIES' => "Das Mitglied <span class=\"data\">{%%pipe,generateUserProfileLink=%s%%}</span> hat keine Kategorien ausgew&auml;hlt.",
        'USER_ID' => "Mitglied",
        'MEBER_UPDATE_PWD_WRONG' => "Sie haben das falsche Passwort eingegeben! Bitte nochmal versuchen.",
        'ADMIN_MEMBER_NO_CATEGORIES' => "Das Mitglied <span class=\"data\">{%%pipe,generateUserProfileLink=%s%%}</span> hat keine Kategorien ausgew&auml;hlt.",
        'USER_ID' => "Mitglied",
@@ -628,7 +619,6 @@ addMessages(array(
        'ADMIN_IS_VISIBLE' => "Wird angezeigt",
        'ADMIN_IS_ACTIVE' => "Aktiviert",
        'ADMIN_CHANGE_ENTRIES' => "&Auml;nderungen durchf&uuml;hren",
        'ADMIN_IS_VISIBLE' => "Wird angezeigt",
        'ADMIN_IS_ACTIVE' => "Aktiviert",
        'ADMIN_CHANGE_ENTRIES' => "&Auml;nderungen durchf&uuml;hren",
-       'BASE_URL_NOTICE' => "Ohne abschliessendem /.",
        'ADMIN_WRONG_CALL' => "Falscher Aufruf einer Aktion oder des Scriptes. Bitte navigieren Sie links weiter.",
        'ADMIN_IS_SYSTEM_TASK' => "System-Task",
        'ADMIN_NEW_EXTENSION_SUBJECT' => "Neue Erweiterung gefunden",
        'ADMIN_WRONG_CALL' => "Falscher Aufruf einer Aktion oder des Scriptes. Bitte navigieren Sie links weiter.",
        'ADMIN_IS_SYSTEM_TASK' => "System-Task",
        'ADMIN_NEW_EXTENSION_SUBJECT' => "Neue Erweiterung gefunden",
@@ -636,8 +626,9 @@ addMessages(array(
        'ADMIN_TASK_TEXT' => "Aufgabentext",
        'ADMIN_REGISTER_EXTENSION' => "Installieren",
        'ADMIN_REGISTER_EXTENSION_TITLE' => "Erweiterung sofort installieren",
        'ADMIN_TASK_TEXT' => "Aufgabentext",
        'ADMIN_REGISTER_EXTENSION' => "Installieren",
        'ADMIN_REGISTER_EXTENSION_TITLE' => "Erweiterung sofort installieren",
+       'ADMIN_EXTENSION_IS_DEPRECATED_TITLE' => "Erweiterung wird nicht mehr verwendet (deprecated).",
        'ADMIN_SELECTED_TASKS_ASSIGN' => "Zum Bearbeiten ausgew&auml;hlte Aufgaben",
        'ADMIN_SELECTED_TASKS_ASSIGN' => "Zum Bearbeiten ausgew&auml;hlte Aufgaben",
-       'ADMIN_EXTENSION_REGISTRATION_FAILED_INVALID' => "Registrierung fehlgeschlagen: Ung&uuml;tige id &uuml;bermittelt.",
+       'ADMIN_EXTENSION_REGISTRATION_FAILED_INVALID' => "Registrierung fehlgeschlagen: Ung&uuml;ltige id &uuml;bermittelt.",
        'ADMIN_EXTENSION_REGISTRATION_FAILED_ID_404' => "Registrierung fehlgeschlagen: Erweiterung-Id nicht auffindbar.",
        'ADMIN_EXTENSION_REGISTRATION_FAILED_404' => "Registrierung fehlgeschlagen: Erweiterung <span class=\"data\">%s</span> nicht auffindbar.",
        'ADMIN_EXTENSION_REGISTRATION_FAILED_ASSIGED' => "Registrierung fehlgeschlagen: Sie sind nicht zugewiesen oder die Aufgabe ist veraltet.",
        'ADMIN_EXTENSION_REGISTRATION_FAILED_ID_404' => "Registrierung fehlgeschlagen: Erweiterung-Id nicht auffindbar.",
        'ADMIN_EXTENSION_REGISTRATION_FAILED_404' => "Registrierung fehlgeschlagen: Erweiterung <span class=\"data\">%s</span> nicht auffindbar.",
        'ADMIN_EXTENSION_REGISTRATION_FAILED_ASSIGED' => "Registrierung fehlgeschlagen: Sie sind nicht zugewiesen oder die Aufgabe ist veraltet.",
@@ -687,11 +678,11 @@ addMessages(array(
        'ADMIN_CONFIG_REFERRAL_PAYOUT' => "Wie viele Mails m&uuml;ssen die Mitglieder mindestens best&auml;tigen, um den Willkommensbonus, einmaliger Referral-Bonus usw. gutgeschrieben zu bekommen?",
        'ADMIN_EXTENSION_UPDATED' => "Erweiterung aktualisiert.",
        'ADMIN_UPDATE_EXTENSION_SUBJECT' => "Erweiterung-Update installiert",
        'ADMIN_CONFIG_REFERRAL_PAYOUT' => "Wie viele Mails m&uuml;ssen die Mitglieder mindestens best&auml;tigen, um den Willkommensbonus, einmaliger Referral-Bonus usw. gutgeschrieben zu bekommen?",
        'ADMIN_EXTENSION_UPDATED' => "Erweiterung aktualisiert.",
        'ADMIN_UPDATE_EXTENSION_SUBJECT' => "Erweiterung-Update installiert",
-       'MEMBER_ORDER_PAGE1_INTRO' => "Mailbuchung - Schritt 1 von 4: PLZ eingeben",
-       'MEMBER_ORDER_PAGE2_INTRO' => "Mailbuchung - Schritt 2 von 4: Daten eingeben",
-       'MEMBER_ORDER_PAGE3_INTRO' => "Mailbuchung - Schritt 3 von 4: Frame-Killer Test und Absenden",
-       'MEMBER_ORDER_PAGE4_INTRO' => "Mailbuchung - Schritt 4 von 4: Vielen Dank.",
-       'MEMBER_ENTER_ZIP_CODE' => "PLZ eingeben",
+       'MEMBER_ORDER_PAGE1_TITLE' => "Mailbuchung - Schritt 1 von 4: PLZ eingeben",
+       'MEMBER_ORDER_PAGE2_TITLE' => "Mailbuchung - Schritt 2 von 4: Daten eingeben",
+       'MEMBER_ORDER_PAGE3_TITLE' => "Mailbuchung - Schritt 3 von 4: Frame-Killer Test und Absenden",
+       'MEMBER_ORDER_PAGE4_TITLE' => "Mailbuchung - Schritt 4 von 4: Vielen Dank.",
+       'MEMBER_ENTER_ZIP_CODE' => "PLZ eingeben:",
        'ORDER_PAGE_2' => "Weiter zur Seite 2",
        'UNCONFIRMED_USERIDS' => "Unbest./Gesperrte Accounts",
        'LOCKED_POINTS' => "Nicht verg&uuml;tete {?POINTS?}",
        'ORDER_PAGE_2' => "Weiter zur Seite 2",
        'UNCONFIRMED_USERIDS' => "Unbest./Gesperrte Accounts",
        'LOCKED_POINTS' => "Nicht verg&uuml;tete {?POINTS?}",
@@ -751,7 +742,7 @@ addMessages(array(
        'ADMIN_REMOVING_THESE_EXTENSIONS' => "Diese Erweiterungen werden deinstalliert",
        'ADMIN_REMOVE_EXTENSIONS' => "Erweiterungen jetzt entfernen",
        'ADMIN_SQLS_EXECUTED_ON_REMOVAL' => "Beim Entfernen ausgef&uuml;hrte SQL-Anweisungen",
        'ADMIN_REMOVING_THESE_EXTENSIONS' => "Diese Erweiterungen werden deinstalliert",
        'ADMIN_REMOVE_EXTENSIONS' => "Erweiterungen jetzt entfernen",
        'ADMIN_SQLS_EXECUTED_ON_REMOVAL' => "Beim Entfernen ausgef&uuml;hrte SQL-Anweisungen",
-       'ADMIN_NO_ADDITIONAL_SQLS' => "Keine weiteren SQL-Anweisungen zum Ausf&uuml;hren.",
+       'ADMIN_EXTENSION_VERBOSE_SQLS_404' => "Die Erweiterung hat keine SQL-Anweisungen zum Ausf&uuml;hren.",
        'ADMIN_SQLS_EXECUTED_ON_UPDATE' => "Beim Aktualisieren ausgef&uuml;hrte SQL-Anweisungen",
        'ADMIN_SQLS_EXECUTED_ON_REGISTER' => "SQL-Anweisungen, die beim Installieren/Updaten ausgef&uuml;hrt werden",
        'ADMIN_SELECT_ADMIN' => "Administrator ausw&auml;hlen:",
        'ADMIN_SQLS_EXECUTED_ON_UPDATE' => "Beim Aktualisieren ausgef&uuml;hrte SQL-Anweisungen",
        'ADMIN_SQLS_EXECUTED_ON_REGISTER' => "SQL-Anweisungen, die beim Installieren/Updaten ausgef&uuml;hrt werden",
        'ADMIN_SELECT_ADMIN' => "Administrator ausw&auml;hlen:",
@@ -762,7 +753,7 @@ addMessages(array(
        'ADMIN_CALL_NOT_DIRECTLY' => "Bitte diesen Men&uuml;punkt nicht direkt aufrufen.",
        'ADMIN_UNCONFIRMED_POOL_MISSING' => "Es fehlen Daten im Sende-Pool zur Mail-Id <span class=\"data\">%s</span> .",
        'ADMIN_UNCONFIRMED_STATS_MISSING' => "Es fehlen Daten in der Mitglieder-Statistik zur Mail-Id <span class=\"data\">%s</span> .",
        'ADMIN_CALL_NOT_DIRECTLY' => "Bitte diesen Men&uuml;punkt nicht direkt aufrufen.",
        'ADMIN_UNCONFIRMED_POOL_MISSING' => "Es fehlen Daten im Sende-Pool zur Mail-Id <span class=\"data\">%s</span> .",
        'ADMIN_UNCONFIRMED_STATS_MISSING' => "Es fehlen Daten in der Mitglieder-Statistik zur Mail-Id <span class=\"data\">%s</span> .",
-       'ADMIN_UNCONFIRMED_INVALID_LINK' => "Ung&uuml;tigen Link aufgerufen oder Mail ist nicht mehr vorhanden.",
+       'ADMIN_UNCONFIRMED_INVALID_LINK' => "Ung&uuml;ltigen Link aufgerufen oder Mail ist nicht mehr vorhanden.",
        'ADMIN_UNCONFIRMED_NO_LINK_LEFT' => "Diese Mailbuchung wurde komplett best&auml;tigt.",
        'ADMIN_HEADER_LOCK_ACCOUNT' => "Mitgliedsaccount <span class=\"data\">%s</span> sperren",
        'ADMIN_HEADER_UNLOCK_ACCOUNT' => "Mitgliedsaccount <span class=\"data\">%s</span> freigeben",
        'ADMIN_UNCONFIRMED_NO_LINK_LEFT' => "Diese Mailbuchung wurde komplett best&auml;tigt.",
        'ADMIN_HEADER_LOCK_ACCOUNT' => "Mitgliedsaccount <span class=\"data\">%s</span> sperren",
        'ADMIN_HEADER_UNLOCK_ACCOUNT' => "Mitgliedsaccount <span class=\"data\">%s</span> freigeben",
@@ -784,14 +775,14 @@ addMessages(array(
        'ADMIN_ENTRY_ADDED' => "Der Eintrag wurde der Datenbank hinzugef&uuml;gt.",
        'ADMIN_ENTRY_NOT_ADDED' => "Der Eintrag wurde der Datenbank NICHT hinzugef&uuml;gt.",
        'BONUS_EXTENSION_UPGRADE' => "Bitte aktualisieren Sie Ihre Bonus-Erweiterung auf Version <span class=\"data\">v0.2.2</span> oder neuer.",
        'ADMIN_ENTRY_ADDED' => "Der Eintrag wurde der Datenbank hinzugef&uuml;gt.",
        'ADMIN_ENTRY_NOT_ADDED' => "Der Eintrag wurde der Datenbank NICHT hinzugef&uuml;gt.",
        'BONUS_EXTENSION_UPGRADE' => "Bitte aktualisieren Sie Ihre Bonus-Erweiterung auf Version <span class=\"data\">v0.2.2</span> oder neuer.",
-       'WHAT_IS_OVERVIEW' => "Willkommen",
+       'WHAT_IS_WELCOME' => "Willkommen",
        '_ON' => "an",
        'MEMBER_CLICK_STATISTICS' => "Mail-Statistik",
        'ADMIN_CONFIG_SELECT_DEFAULT_REFID' => "Standard Referral-Id bei Anmeldung &uuml;ber <strong>keinen</strong> Ref-Link",
        'ADMIN_CONFIG_SELECT_REFID_TARGRT' => "Ziel-Seite des Referral-Linkes",
        'ADMIN_CONFIG_REFERRAL_TARGET_REGISTER' => "Zur Anmeldeseite",
        'ADMIN_CONFIG_REFERRAL_TARGET_INDEX' => "Zur Eingangsseite",
        '_ON' => "an",
        'MEMBER_CLICK_STATISTICS' => "Mail-Statistik",
        'ADMIN_CONFIG_SELECT_DEFAULT_REFID' => "Standard Referral-Id bei Anmeldung &uuml;ber <strong>keinen</strong> Ref-Link",
        'ADMIN_CONFIG_SELECT_REFID_TARGRT' => "Ziel-Seite des Referral-Linkes",
        'ADMIN_CONFIG_REFERRAL_TARGET_REGISTER' => "Zur Anmeldeseite",
        'ADMIN_CONFIG_REFERRAL_TARGET_INDEX' => "Zur Eingangsseite",
-       'ADMIN_INSTALL_THEME' => "Theme importieren",
+       'ADMIN_INSTALLER_THEME' => "Theme importieren",
        'ADMIN_NO_THEMES_FOUND' => "Keine Themes gefunden.",
        'THEME_UNIX' => "Uni*-Name",
        'THEME_NAME' => "Theme-Titel",
        'ADMIN_NO_THEMES_FOUND' => "Keine Themes gefunden.",
        'THEME_UNIX' => "Uni*-Name",
        'THEME_NAME' => "Theme-Titel",
@@ -813,7 +804,8 @@ addMessages(array(
        'ADMIN_THEME_NEW_DEFAULT_THEME' => "Durch Anklicken des Uni*-Names wird das jeweilige Theme als Standard-Theme gesetzt, welches Ihre Besucher sofort sehen werden.",
        'ADMIN_ENTRY_DELETE' => "Eintrag l&ouml;schen",
        'ADMIN_NO_MENUS_FOUND' => "Keine Men&uuml;s gefunden.",
        'ADMIN_THEME_NEW_DEFAULT_THEME' => "Durch Anklicken des Uni*-Names wird das jeweilige Theme als Standard-Theme gesetzt, welches Ihre Besucher sofort sehen werden.",
        'ADMIN_ENTRY_DELETE' => "Eintrag l&ouml;schen",
        'ADMIN_NO_MENUS_FOUND' => "Keine Men&uuml;s gefunden.",
-       'ADMIN_CONFIG_TITLE_SETTINGS' => "Einstellungen am Seitentitel",
+       'ADMIN_CONFIG_TITLE_SETTINGS' => "Einstellungen und Dekorationen am Browsertitel",
+       'ADMIN_CONFIG_TITLE_LEGEND' => "Einstellungen am Browsertitel",
        'ADMIN_CONFIG_TITLE_NOTICE' => "Die Einstellungen <strong>{--ADMIN_CONFIG_TITLE_ENABLE_MODULE_TITLE--}</strong> und <strong>{--ADMIN_CONFIG_TITLE_ENABLE_WHAT_TITLE--}</strong> wirken sich nur auf den Gast-, Mitglieds-, und Sponsorbereich aus. Im Administratorbereich werden die Einstellungen ignoriert und es werden immer Modul- und der Men&uuml;punkttitel angezeigt, damit der Administrator (also Sie) immer erkennen kann, welche Aktion gerade ausgew&auml;hlt ist.",
        'ADMIN_CONFIG_TITLE_DECORATIONS' => "Titeldekorationen",
        'ADMIN_CONFIG_TITLE_ENABLE_DECORATIONS' => "Dekorationen aktivieren",
        'ADMIN_CONFIG_TITLE_NOTICE' => "Die Einstellungen <strong>{--ADMIN_CONFIG_TITLE_ENABLE_MODULE_TITLE--}</strong> und <strong>{--ADMIN_CONFIG_TITLE_ENABLE_WHAT_TITLE--}</strong> wirken sich nur auf den Gast-, Mitglieds-, und Sponsorbereich aus. Im Administratorbereich werden die Einstellungen ignoriert und es werden immer Modul- und der Men&uuml;punkttitel angezeigt, damit der Administrator (also Sie) immer erkennen kann, welche Aktion gerade ausgew&auml;hlt ist.",
        'ADMIN_CONFIG_TITLE_DECORATIONS' => "Titeldekorationen",
        'ADMIN_CONFIG_TITLE_ENABLE_DECORATIONS' => "Dekorationen aktivieren",
@@ -828,6 +820,7 @@ addMessages(array(
        'CLICK_NOW' => "Hier best&auml;tigen",
        'MAILID_LINK' => "Best.-Link",
        'UNKNOWN_MAILID_CODE' => "Unbekannter Fehler-Code <span class=\"data\">%s</span> erkannt.",
        'CLICK_NOW' => "Hier best&auml;tigen",
        'MAILID_LINK' => "Best.-Link",
        'UNKNOWN_MAILID_CODE' => "Unbekannter Fehler-Code <span class=\"data\">%s</span> erkannt.",
+       'UNKNOWN_REDIRECT_VALUE' => "Ung&uuml;ltiger Konfigurationswert erkannt. Bitte benachrichtigen Sie den Support und nennen Sie dabei den genauen Zeitpunkt.",
        'ADMIN_MENU_IS_LOCKED' => "Ist gesperrt",
        'ADMIN_REMOVE_STATS_ENTRY' => "Hier klicken, um Mitgliederstatistik zu entfernen.",
        'ADMIN_USER_STATS_REMOVED' => "Mitgliederstatistiken entfernt.",
        'ADMIN_MENU_IS_LOCKED' => "Ist gesperrt",
        'ADMIN_REMOVE_STATS_ENTRY' => "Hier klicken, um Mitgliederstatistik zu entfernen.",
        'ADMIN_USER_STATS_REMOVED' => "Mitgliederstatistiken entfernt.",
@@ -863,17 +856,9 @@ addMessages(array(
        'ADMIN_TASK_NO_SQL_TITLE' => "Aufgabe ohne SQL-Anweisungen",
        'MEMBER_UNCONFIRMED_LOCKED' => "Anzahl zu best. Mails f&uuml;r Willkommensgutschrift",
        'MEMBER_CONFIRMED_MAILS' => "Bereits best. Mails",
        'ADMIN_TASK_NO_SQL_TITLE' => "Aufgabe ohne SQL-Anweisungen",
        'MEMBER_UNCONFIRMED_LOCKED' => "Anzahl zu best. Mails f&uuml;r Willkommensgutschrift",
        'MEMBER_CONFIRMED_MAILS' => "Bereits best. Mails",
-       'TIME_UNIT' => "Zeiteinheit",
-       'TIME_UNIT_YEAR'   => "Jahr(e)",
-       'TIME_UNIT_MONTH'  => "Monat(e)",
-       'TIME_UNIT_WEEK'   => "Woche(n)",
-       'TIME_UNIT_DAY'    => "Tag(e)",
-       'TIME_UNIT_HOUR'   => "Stunde(n)",
-       'TIME_UNIT_MINUTE' => "Minute(n)",
-       'TIME_UNIT_SECOND' => "Sekunde(n)",
        'SORT_ASCENDING' => "Aufsteigend",
        'SORT_DESCENDING' => "Absteigend",
        'SORT_ASCENDING' => "Aufsteigend",
        'SORT_DESCENDING' => "Absteigend",
-       'INVALID_EMAIL_ENTERED' => "Ung&uuml;tige EMail-Adresse eingegeben.",
+       'INVALID_EMAIL_ENTERED' => "Ung&uuml;ltige EMail-Adresse eingegeben.",
        'NEVER_HAPPENED' => "Nie",
        'NO_CONFIG_FOUND_TITLE' => "Keine Konfigurationsdaten gefunden.",
        'SORTING_KEY' => "Sortierung",
        'NEVER_HAPPENED' => "Nie",
        'NO_CONFIG_FOUND_TITLE' => "Keine Konfigurationsdaten gefunden.",
        'SORTING_KEY' => "Sortierung",
@@ -890,11 +875,6 @@ addMessages(array(
        'NO_UPDATE_NOTICES' => "Keine Update-Hinweise gefunden.",
        'MYSQL_QUERY_STRING' => "SQL-Abfragebefehl war:",
        'MEMBER_NO_MAILS_IN_POOL' => "Sie haben noch keine Mailbuchungen aufgegeben! Es k&ouml;nnen somit Ihnen auch keine angezeigt werden.",
        'NO_UPDATE_NOTICES' => "Keine Update-Hinweise gefunden.",
        'MYSQL_QUERY_STRING' => "SQL-Abfragebefehl war:",
        'MEMBER_NO_MAILS_IN_POOL' => "Sie haben noch keine Mailbuchungen aufgegeben! Es k&ouml;nnen somit Ihnen auch keine angezeigt werden.",
-       'ADMIN_CONFIG_ADMIN_MENU_TITLE' => "Einstellungen am Adminmen&uuml;",
-       'ADMIN_CONFIG_SELECT_MENU_TYPE' => "Men&uuml;typ ausw&auml;hlen",
-       'ADMIN_CONFIG_ADMIN_MENU_NEW' => "Neues Men&uuml;system mit &quot;logischen Bereichen&quot;",
-       'ADMIN_CONFIG_ADMIN_MENU_OLD' => "Herk&ouml;mliches Men&uuml;system links im Browser",
-       'ADMIN_CONFIG_ADMIN_MENU_JAVASCRIPT_ENABLED' => "Soll das mit JavaScript (&quot;interaktiv&quot;) gesteuerte Adminmen&uuml; eingeschaltet werden? (Dies ist noch sehr experimentell.)",
        'ADMIN_BACK_TO_GUEST_MENU' => "Zum Gastmen&uuml; zur&uuml;ck...",
        'ADMIN_LOGOUT_NOW' => "Aus dem Admin-Bereich ausloggen",
        'ADMIN_LOGOUT_NOTICE' => "Loggen Sie sich immer aus dem Admin-Bereich aus, wenn Sie beabsichten, ihn nicht mehr zu benutzen. Auch sollten Sie dies <strong>auf jedem Fall</strong> in einem Internet-Cafe vor Verlassen des Platzes tun.",
        'ADMIN_BACK_TO_GUEST_MENU' => "Zum Gastmen&uuml; zur&uuml;ck...",
        'ADMIN_LOGOUT_NOW' => "Aus dem Admin-Bereich ausloggen",
        'ADMIN_LOGOUT_NOTICE' => "Loggen Sie sich immer aus dem Admin-Bereich aus, wenn Sie beabsichten, ihn nicht mehr zu benutzen. Auch sollten Sie dies <strong>auf jedem Fall</strong> in einem Internet-Cafe vor Verlassen des Platzes tun.",
@@ -907,10 +887,14 @@ addMessages(array(
        'ADMIN_PASS_SALTED' => "Admin-Password wegen Update ge&auml;ndert",
        'ADMIN_CONFIG_SALT_LENGTH_NOTICE' => "Um f&uuml;r alle Accounts (Mitglieder/Admins derzeit) neue Passw&ouml;rter zu generieren, lassen Sie das Eingabefeld <strong>{--ADMIN_CONFIG_SALT_LENGTH--}</strong> leer oder geben Sie eine <strong>0</strong> ein! <strong>Vorsicht!</strong> Sie m&uuml;ssen sich dann anschliessend erneut einloggen.",
        'GUEST_LOGIN_FAILED_GENERAL' => "Genereller Loginfehler! Bitte kontaktieren Sie den Webmaster.",
        'ADMIN_PASS_SALTED' => "Admin-Password wegen Update ge&auml;ndert",
        'ADMIN_CONFIG_SALT_LENGTH_NOTICE' => "Um f&uuml;r alle Accounts (Mitglieder/Admins derzeit) neue Passw&ouml;rter zu generieren, lassen Sie das Eingabefeld <strong>{--ADMIN_CONFIG_SALT_LENGTH--}</strong> leer oder geben Sie eine <strong>0</strong> ein! <strong>Vorsicht!</strong> Sie m&uuml;ssen sich dann anschliessend erneut einloggen.",
        'GUEST_LOGIN_FAILED_GENERAL' => "Genereller Loginfehler! Bitte kontaktieren Sie den Webmaster.",
+       'DEFAULT_SUBJECT_LINE' => "Klick-Mail von {?MAIN_TITLE?}",
        'DEFAULT_MT_WORD' => "Mailtausch",
        'DEFAULT_MT_WORD2' => "Mailtausches",
        'DEFAULT_MT_WORD3' => "Mailtauscher",
        'DEFAULT_POINTS' => "Punkte",
        'DEFAULT_MT_WORD' => "Mailtausch",
        'DEFAULT_MT_WORD2' => "Mailtausches",
        'DEFAULT_MT_WORD3' => "Mailtauscher",
        'DEFAULT_POINTS' => "Punkte",
+       'DEFAULT_MAIN_TITLE' => "Titel Ihres {--DEFAULT_MT_WORD2--} hier",
+       'DEFAULT_SLOGAN' => "Ihr Werbespruch hier",
+       'DEFAULT_WEBMASTER' => "ihre@email-addresse.example",
        'PROBLEM_POINTS_OVERVIEW_UNAVAILABLE' => "{?POINTS?}-&Uuml;bersicht derzeit nicht verf&uuml;gbar.",
        'ADMIN_NOTHING_SELECTED_CHANGE' => "Sie haben nichts zum &Auml;ndern des Status ausgew&auml;hlt.",
        'TEMPLATE_CONTENT' => "Template-Daten",
        'PROBLEM_POINTS_OVERVIEW_UNAVAILABLE' => "{?POINTS?}-&Uuml;bersicht derzeit nicht verf&uuml;gbar.",
        'ADMIN_NOTHING_SELECTED_CHANGE' => "Sie haben nichts zum &Auml;ndern des Status ausgew&auml;hlt.",
        'TEMPLATE_CONTENT' => "Template-Daten",
@@ -949,7 +933,7 @@ addMessages(array(
        'EXTENSION_PROBLEM_UNSET_EXT' => "Skriptfehler: Parameter <strong>ext</strong> nicht gesetzt.",
        'EXTENSION_PROBLEM_EXTENSION_OUTDATED' => "Kann nicht fortfahren! Fehler Eine Erweiterung ist veraltet. Bitte benachrichten Sie den Support.",
        'EXTENSION_WARNING_EXTENSION_INACTIVE' => "Die Erweiterung <span class=\"data\">%s</span> ist nicht aktiv. Dies kann zu St&ouml;rungen f&uuml;hren.<br />\nBitte aktivieren Sie diese unter <span class=\"bad\">Verschiedenes-&gt;Erweiterungen</span>.",
        'EXTENSION_PROBLEM_UNSET_EXT' => "Skriptfehler: Parameter <strong>ext</strong> nicht gesetzt.",
        'EXTENSION_PROBLEM_EXTENSION_OUTDATED' => "Kann nicht fortfahren! Fehler Eine Erweiterung ist veraltet. Bitte benachrichten Sie den Support.",
        'EXTENSION_WARNING_EXTENSION_INACTIVE' => "Die Erweiterung <span class=\"data\">%s</span> ist nicht aktiv. Dies kann zu St&ouml;rungen f&uuml;hren.<br />\nBitte aktivieren Sie diese unter <span class=\"bad\">Verschiedenes-&gt;Erweiterungen</span>.",
-       'EXTENSION_WARNING_USER_LIMIT' => "Die Erweiterung <u>user</u> ist nicht aktiv. Die Anzahl Mitglieder pro Seite wurde auf 100 gesetzt. Bitte aktivieren Sie diese unter <span class=\"bad\">Verschiedenes-&gt;Erweiterungen</span>.",
+       'EXTENSION_WARNING_USER_LIMIT' => "Die Erweiterung <strong>ext-user</strong> ist nicht aktiv. Die Anzahl Mitglieder pro Seite wurde auf 100 gesetzt. Bitte aktivieren Sie diese unter <span class=\"bad\">Verschiedenes-&gt;Erweiterungen</span>.",
        'ADMIN_PROXY_SETTINGS_INVALID' => "Ihre Proxy-Einstellungen scheinen ung&uuml;ltig zu sein.",
        'ADMIN_EDIT_PROXY_SETTINGS' => "Proxy-Einstellungen &auml;ndern",
        'ADMIN_CONFIG_PROXY_HOST' => "Hostname oder IP-Nummer:",
        'ADMIN_PROXY_SETTINGS_INVALID' => "Ihre Proxy-Einstellungen scheinen ung&uuml;ltig zu sein.",
        'ADMIN_EDIT_PROXY_SETTINGS' => "Proxy-Einstellungen &auml;ndern",
        'ADMIN_CONFIG_PROXY_HOST' => "Hostname oder IP-Nummer:",
@@ -963,7 +947,7 @@ addMessages(array(
        'EMAIL_DELETE_COUNT' => "Buchungseintr&auml;ge gel&ouml;scht",
        'MAILER_HAS_DIED' => "{?TITLE?} ist in Script/Funktion <span class=\"data\">%s</span>, Zeile <span class=\"data\">%s</span> mit folgender Meldung abgebrochen: <span class=\"data\">%s</span>",
        'ADMIN_CONFIG_POINTS_TITLE' => "Einstellungen f&uuml;r {?POINTS?}",
        'EMAIL_DELETE_COUNT' => "Buchungseintr&auml;ge gel&ouml;scht",
        'MAILER_HAS_DIED' => "{?TITLE?} ist in Script/Funktion <span class=\"data\">%s</span>, Zeile <span class=\"data\">%s</span> mit folgender Meldung abgebrochen: <span class=\"data\">%s</span>",
        'ADMIN_CONFIG_POINTS_TITLE' => "Einstellungen f&uuml;r {?POINTS?}",
-       'APP_DIE_TITLE' => "Bug im Script erkannt!",
+       'APP_DIE_TITLE' => "Bug im Script erkannt.",
        'ADMIN_CONTACT_LINK_TITLE' => "Kontakt zum Administrator",
        'ADMIN_MAIL_NOTHING_DELETED' => "Die Mail mit der Id <span class=\"data\">%s</span> weisst keine Mitglieder auf.",
 
        'ADMIN_CONTACT_LINK_TITLE' => "Kontakt zum Administrator",
        'ADMIN_MAIL_NOTHING_DELETED' => "Die Mail mit der Id <span class=\"data\">%s</span> weisst keine Mitglieder auf.",
 
@@ -1022,13 +1006,6 @@ addMessages(array(
        'ADMIN_RESET_PASSWORD' => "Passwort vergessen?",
        'EMAIL_DETAILS' => "Email-Details",
        'EMAIL_DETAILS_LINK' => "Details anzeigen",
        'ADMIN_RESET_PASSWORD' => "Passwort vergessen?",
        'EMAIL_DETAILS' => "Email-Details",
        'EMAIL_DETAILS_LINK' => "Details anzeigen",
-       'ADMIN_CONFIG_REFID_TITLE' => "Einstellungen zum Referral-Link",
-       'ADMIN_CONFIG_RANDOM_ZERO_REFID' => "Soll per Zufall ein Mitglied ausgw&auml;hlt werden oder soll die oben eingestellte Standard-Refid verwendet werden?",
-       'ADMIN_CONFIG_RANDOM_REFID_ENABLED' => "Mitglieder per Zufall w&auml;hlen",
-       'ADMIN_CONFIG_RANDOM_REFID_DISABLED' => "Voreingestellte Referral-Id setzen",
-       'ADMIN_CONFIG_RANDOM_REFID_TITLE' => "Kriterien wonach ein Mitglied als Zufallsreferral ausgew&auml;hlt wird:",
-       'ADMIN_CONFIG_RANDOM_MIN_CONFIRMED' => "Wie viele Mails muss ein Mitglied mindestens best&auml;tigt haben, um per Zufall ausgew&auml;hlt zu werden?",
-       'ADMIN_CONFIG_REFID_NOTICE' => "Sobald ein Mitglied ausgew&auml;hlt wurde, werden die Z&auml;hler aller Mitglieder auf Null gesetzt. Dies soll Chancengleichheit bringen und dass die Mitglieder mehr Mails abklicken.",
        'EMAILS_RECEIVED' => "Emails empfangen",
        'MAILS_CONFIRMED' => "Emails best&auml;tigt",
        'RAND_CONFIRMED' => "Best&auml;tigt f. Zufalls-Ref",
        'EMAILS_RECEIVED' => "Emails empfangen",
        'MAILS_CONFIRMED' => "Emails best&auml;tigt",
        'RAND_CONFIRMED' => "Best&auml;tigt f. Zufalls-Ref",
@@ -1047,11 +1024,11 @@ addMessages(array(
        'GUEST_STATS_NO_CLICKS' => "Keine Klicks in Ihrem {?mt_word?} verzeichnet.",
        'ADMIN_EXTENSIONS_REMOVED' => "Es wurden <span class=\"data\">%s</span> Erweiterungen aus Ihrem {?mt_word?} entfernt.",
        'ADMIN_WARNING_SQL_PATCHES_MISSING' => "Eine essentielle Erweiterung <span class=\"data\">sql_patches</span> ist noch nicht installiert. Bitte erledigen Sie dies bald, da Ihr {?mt_word?} sonst nicht funktioniert.",
        'GUEST_STATS_NO_CLICKS' => "Keine Klicks in Ihrem {?mt_word?} verzeichnet.",
        'ADMIN_EXTENSIONS_REMOVED' => "Es wurden <span class=\"data\">%s</span> Erweiterungen aus Ihrem {?mt_word?} entfernt.",
        'ADMIN_WARNING_SQL_PATCHES_MISSING' => "Eine essentielle Erweiterung <span class=\"data\">sql_patches</span> ist noch nicht installiert. Bitte erledigen Sie dies bald, da Ihr {?mt_word?} sonst nicht funktioniert.",
-       'ADMIN_EXTENSION_IS_NON_PRODUCTIVE' => "Die von Ihnen ausgew&auml;hlte Erweiterung <span class=\"data\">%s</span> ist noch nicht f&uuml;r den produktiven Betrieb freigegeben und befindet sich somit noch in der Entwicklung. Bitte nur verwenden, wenn Sie wissen, was Sie tun.",
+       'ADMIN_EXTENSION_IS_NON_PRODUCTIVE' => "Die von Ihnen ausgew&auml;hlte Erweiterung <span class=\"data\">%s</span> ist nicht f&uuml;r den produktiven Betrieb geeignet und befindet sich somit in der Entwicklung. Bitte verwenden Sie diese nur, wenn Sie daran mitenwickeln wollen. Auch k&ouml;nnen die angegebenen Funktionalit&auml;ten nicht fertig implementiert sein. N&auml;here Informationen zum Umgang mit Entwickler-Versionen von Erweiterungen erhalten Sie im <a rel=\"external\" target=\"blank\" href=\"http://forum.mxchange.org/topic-post2351.html#post2351\" title=\"Wichtiger Hinweis zu Entwickler-Versionen\">Forum</a>.",
        'ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK' => "Entwickler-Version",
        'ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK_TITLE' => "Die Erweiterung &#39;%s&#39; sollten Sie nur installieren, wenn Sie daran mitentwickeln wollen. Produktiv ist diese nicht einsatzbereit.",
        'ADMIN_ENTRIES_404' => "Es wurden keine Eintr&auml;ge gefunden.",
        'ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK' => "Entwickler-Version",
        'ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK_TITLE' => "Die Erweiterung &#39;%s&#39; sollten Sie nur installieren, wenn Sie daran mitentwickeln wollen. Produktiv ist diese nicht einsatzbereit.",
        'ADMIN_ENTRIES_404' => "Es wurden keine Eintr&auml;ge gefunden.",
-       'DEBUG_REPORT_BUG_SUBJECT' => "[BUG!] Es wurde ein Bug im Script erkannt:",
+       'REPORT_BUG_SUBJECT' => "[BUG!] Es wurde ein Bug im Script erkannt:",
        'ADMIN_EXTENSION_ALWAYS_ACTIVE' => "Die Erweiterung <span class=\"data\">{%%pipe,getExtensionName=%s%%}</span> kann nicht deaktiviert werden, da sie immer aktiv bleiben muss.",
        'MEMBER_REFERRAL_LINKS_FOOTER' => "Ihr Referral-Link eingebaut in Ihrer Homepage bringt Ihnen passiv mehr Referrals. (Aber Ihren Referral-Link bewerben schadet auch nicht... ;-) )",
        'POINTS_ORDER' => "Werbeguthaben",
        'ADMIN_EXTENSION_ALWAYS_ACTIVE' => "Die Erweiterung <span class=\"data\">{%%pipe,getExtensionName=%s%%}</span> kann nicht deaktiviert werden, da sie immer aktiv bleiben muss.",
        'MEMBER_REFERRAL_LINKS_FOOTER' => "Ihr Referral-Link eingebaut in Ihrer Homepage bringt Ihnen passiv mehr Referrals. (Aber Ihren Referral-Link bewerben schadet auch nicht... ;-) )",
        'POINTS_ORDER' => "Werbeguthaben",
@@ -1061,12 +1038,61 @@ addMessages(array(
        'ADMIN_EMAIL_CHANGES_SAVED' => "Die Maildaten wurden aktualisiert.",
        'ADMIN_EMAIL_CHANGES_NOT_SAVED' => "Keine &Auml;nderungen an der Mail vorgenommen. Maildaten wurden NICHT ge&auml;ndert.",
        'MEMBER_REFLINK_CENTER_TITLE' => "Alle Informationen zu Ihrem Werbelink",
        'ADMIN_EMAIL_CHANGES_SAVED' => "Die Maildaten wurden aktualisiert.",
        'ADMIN_EMAIL_CHANGES_NOT_SAVED' => "Keine &Auml;nderungen an der Mail vorgenommen. Maildaten wurden NICHT ge&auml;ndert.",
        'MEMBER_REFLINK_CENTER_TITLE' => "Alle Informationen zu Ihrem Werbelink",
-       'MEMBER_RANDOM_REFID_ENABLED' => "Ist die Auswahl eines Referrals per Zufall aktiviert?",
-       'MEMBER_RANDOM_REFID_CONFIRMED' => "Anzahl Mails best&auml;tigt, damit Ihr Account per Zufall selektiert wird",
+       'MEMBER_RANDOM_REFID_ENABLED' => "Ist die Auswahl eines Referrals per Zufall aktiviert? Dies tritt nur ein, wenn kein Referral-Link zur Anmeldung verwendet wurde",
+       'MEMBER_RANDOM_REFID_CONFIRMED' => "Anzahl Mails best&auml;tigt, damit Ihr Account per Zufall ausgew&auml;hlt wird",
        'MEMBER_YOUR_REFID_IS' => "Sie wurden geworben von",
        'ADMIN_CONFIG_ADMIN_MENU_NOTICE' => "Das Men&uuml;system mit &quot;logischen Bereichen&quot; ist noch nicht fertig und f&uuml;hrt zu Fehlern. Bitte dieses nur im Template aktivieren, wenn Sie daran mitprogrammieren wollen.",
        'MEMBER_YOUR_REFID_IS' => "Sie wurden geworben von",
        'ADMIN_CONFIG_ADMIN_MENU_NOTICE' => "Das Men&uuml;system mit &quot;logischen Bereichen&quot; ist noch nicht fertig und f&uuml;hrt zu Fehlern. Bitte dieses nur im Template aktivieren, wenn Sie daran mitprogrammieren wollen.",
+       'UNKNOWN_ERROR_CODE' => "Unbekannter Fehlercode <span class=\"data\">0x{%%pipe,getHexErrorCode=%s%%}</span> erkannt.",
+
+       // Time units
+       'TIME_UNIT'         => "Zeiteinheit",
+       'TIME_UNIT_UNKNOWN' => "Unbekannte Zeiteinheit %s erkannt.",
+       'TIME_UNIT_YEAR'    => "Jahr(e)",
+       'TIME_UNIT_MONTH'   => "Monat(e)",
+       'TIME_UNIT_WEEK'    => "Woche(n)",
+       'TIME_UNIT_DAY'     => "Tag(e)",
+       'TIME_UNIT_HOUR'    => "Stunde(n)",
+       'TIME_UNIT_MINUTE'  => "Minute(n)",
+       'TIME_UNIT_SECOND'  => "Sekunde(n)",
 
 
-       // Member mails
+       // Genders
+       'GENDER' => "Anrede",
+       'GENDER_UNKNOWN' => "Unbekannte Anrede %s erkannt.",
+       'GENDER_M' => "Herr",
+       'GENDER_F' => "Frau",
+       'GENDER_C' => "&quot;Firma&quot;",
+
+       // Login error messages
+       'LOGIN_UNKNOWN_CODE' => "Unbekannter R&uuml;ckgabewert.",
+       'LOGIN_WRONG_PASS' => "Falsches Passwort eingegben.",
+       'LOGIN_WRONG_ID' => "Es wurde kein Account unter Ihren eingegebenen Logindaten gefunden.",
+       'LOGIN_STATUS_LOCKED' => "Ihr Account wurde gesperrt. Sperrgrund: <span class=\"data\">{%user,lock_reason%}</span>, Sperrzeitpunkt: <span class=\"data\">{%user,lock_timestamp,generateDateTime%}</span>",
+       'LOGIN_STATUS_UNCONFIRMED' => "Bitte best&auml;tigen Sie erst Ihre Email-Adresse! Haben Sie den Best&auml;tigungslink verloren? Links im Men&uuml; unter &quot;Best&auml;tigungslink&quot; k&ouml;nnen Sie ihn erneut anfordern.",
+       'LOGIN_COOKIES_DISABLED' => "Sie haben in Ihrem Browser entweder die Cookies ausgeschaltet, oder die Sicherheitsstufe ist zu hoch eingestellt.",
+       'LOGIN_UNKNOWN_ERROR' => "Es ist ein unerwarteter Account-Status aufgetreten. Bitte melden Sie sich beim Support dieses {?mt_word2?}.",
+       'LOGIN_UNKNOWN_STATUS' => "Ihr Account weisst einen unbekannten Status auf. Bitte melden Sie sich beim Support dieses {?mt_word2?}.",
+       'LOGIN_ID_IS_EMPTY' => "Sie haben Ihre Mitglieds-Id nicht eingegeben. Dies ist Ihre Mitglieds-Id.",
+       'LOGIN_PASSWORD_IS_EMPTY' => "Sie haben kein Passwort eingegeben. Falls Sie Ihres vergessen haben, k&ouml;nnen Sie mit unterem Formular ein neues sich zuschicken lassen.",
+
+       // Admin config - admin menu
+       'ADMIN_CONFIG_ADMIN_MENU_TITLE' => "Einstellungen am Adminmen&uuml;",
+       'ADMIN_CONFIG_ADMIN_MENU_TYPE_LEGEND' => "Men&uuml;typ ausw&auml;hlen",
+       'ADMIN_CONFIG_ADMIN_MENU_MISC_LEGEND' => "Interaktives Adminmen&uuml;",
+       'ADMIN_CONFIG_ADMIN_MENU_NEW' => "Neues Men&uuml;system mit &quot;logischen Bereichen&quot;",
+       'ADMIN_CONFIG_ADMIN_MENU_OLD' => "Herk&ouml;mliches Men&uuml;system links im Browser",
+       'ADMIN_CONFIG_ADMIN_MENU_JAVASCRIPT_ENABLED' => "Soll das mit JavaScript (&quot;interaktiv&quot;) gesteuerte Adminmen&uuml; eingeschaltet werden? (Dies ist noch sehr experimentell.)",
+
+       // Admin config - refid
+       'ADMIN_CONFIG_REFID_TITLE' => "Einstellungen zum Referral-Link",
+       'ADMIN_CONFIG_REFID_GENERAL_LEGEND' => "Standard-Refid, Weiterleitungsziel",
+       'ADMIN_CONFIG_RANDOM_REFID_LEGEND' => "Zufallsreferral",
+       'ADMIN_CONFIG_RANDOM_ZERO_REFID' => "Soll per Zufall ein Mitglied ausgw&auml;hlt werden oder soll die oben eingestellte Standard-Refid verwendet werden?",
+       'ADMIN_CONFIG_RANDOM_REFID_ENABLED' => "Mitglieder per Zufall w&auml;hlen",
+       'ADMIN_CONFIG_RANDOM_REFID_DISABLED' => "Voreingestellte Referral-Id setzen",
+       'ADMIN_CONFIG_RANDOM_MIN_CONFIRMED' => "Wie viele Mails muss ein Mitglied mindestens best&auml;tigt haben, um per Zufall ausgew&auml;hlt zu werden?",
+       'ADMIN_CONFIG_REFID_NOTICE' => "Sobald ein Mitglied ausgew&auml;hlt wurde, werden die Z&auml;hler aller Mitglieder auf Null gesetzt. Dies soll Chancengleichheit bringen und dass die Mitglieder mehr Mails abklicken. Ist <strong>{--ADMIN_CONFIG_RANDOM_REFID_ENABLED--}</strong> ausgew&auml;hlt, wird die Einstellung <strong>Standard-Referral Id</strong> ignoriert.",
+
+       // Member mails: bonus/normal (click)
        'MEMBER_MAIL_BONUS_CONFIRMED_ON' => "Sie haben diese Bonusmail am|um <span class=\"data\">%s</span> best&auml;tigt.",
        'MEMBER_MAIL_BONUS_CONFIRMED_UNKNOWN' => "Es konnte nicht festgestellt werden, wann Sie die Bonus-Mail <span class=\"data\">%s</span> best&auml;tigt hatten.",
        'MEMBER_MAIL_BONUS_NEVER_CONFIRMED' => "Sie haben diese Bonusmail <span class=\"data\">%s</span> noch nicht best&auml;tigt.",
        'MEMBER_MAIL_BONUS_CONFIRMED_ON' => "Sie haben diese Bonusmail am|um <span class=\"data\">%s</span> best&auml;tigt.",
        'MEMBER_MAIL_BONUS_CONFIRMED_UNKNOWN' => "Es konnte nicht festgestellt werden, wann Sie die Bonus-Mail <span class=\"data\">%s</span> best&auml;tigt hatten.",
        'MEMBER_MAIL_BONUS_NEVER_CONFIRMED' => "Sie haben diese Bonusmail <span class=\"data\">%s</span> noch nicht best&auml;tigt.",
@@ -1100,13 +1126,14 @@ addMessages(array(
        'MEMBER_REFLIST_ACTIVITY' => "Mitglied aktiv?",
 
        // Special user lists (what=list_user)
        'MEMBER_REFLIST_ACTIVITY' => "Mitglied aktiv?",
 
        // Special user lists (what=list_user)
-       'ADMIN_LIST_ALL_ACCOUNTS' => "Alle Mitglieder-Accounts auflisten",
+       'ADMIN_LIST_ALL_ACCOUNTS' => "Alle Benutzeraccounts (auch Testaccounts) auflisten",
        'ADMIN_LIST_STATUS_LOCKED_ACCOUNTS' => "Alle gesperrten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_STATUS_CONFIRMED_ACCOUNTS' => "Alle best&auml;tigten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_STATUS_UNCONFIRMED_ACCOUNTS' => "Alle unbest&auml;tigten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_DO_CONFIRMED_ACCOUNTS' => "Alle best&auml;tigten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_DO_NOREFS_ACCOUNTS' => "Alle Mitglieder-Accounts ohne Referrals auflisten",
        'ADMIN_LIST_DO_RANDOM_REFID_ACCOUNTS' => "Alle Mitglieder-Accounts f&uuml;r Zufallsreferral auflisten",
        'ADMIN_LIST_STATUS_LOCKED_ACCOUNTS' => "Alle gesperrten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_STATUS_CONFIRMED_ACCOUNTS' => "Alle best&auml;tigten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_STATUS_UNCONFIRMED_ACCOUNTS' => "Alle unbest&auml;tigten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_DO_CONFIRMED_ACCOUNTS' => "Alle best&auml;tigten Mitglieder-Accounts auflisten",
        'ADMIN_LIST_DO_NOREFS_ACCOUNTS' => "Alle Mitglieder-Accounts ohne Referrals auflisten",
        'ADMIN_LIST_DO_RANDOM_REFID_ACCOUNTS' => "Alle Mitglieder-Accounts f&uuml;r Zufallsreferral auflisten",
+       'ADMIN_LIST_DO_TESTERS_ACCOUNTS' => "Alle Testbenutzer auflisten",
 
        // Admin task lines
        'ADMIN_TASK_TYPE_MEMBER_SUPPORT' => "Support-Anfrage eines Mitgliedes",
 
        // Admin task lines
        'ADMIN_TASK_TYPE_MEMBER_SUPPORT' => "Support-Anfrage eines Mitgliedes",
@@ -1125,8 +1152,8 @@ addMessages(array(
        'ADMIN_STATUS_CHANGED' => "Es wurden <span class=\"data\">%s</span> von <span class=\"data\">%s</span> Eintr&auml;gen ge&auml;ndert.",
 
        // Missing menu entries
        'ADMIN_STATUS_CHANGED' => "Es wurden <span class=\"data\">%s</span> von <span class=\"data\">%s</span> Eintr&auml;gen ge&auml;ndert.",
 
        // Missing menu entries
-       'ADMIN_MENU_ACTION_404_TITLE' => "Hauptmen&uuml; &#39;%s&#39; deaktiviert, da keine Scriptdatei auf dem Server gefunden wurde.",
-       'ADMIN_MENU_WHAT_404_TITLE' => "Untermen&uuml; &#39;%s&#39; deaktiviert, da keine Scriptdatei auf dem Server gefunden wurde.",
+       'ADMIN_MENU_ACTION_404_TITLE' => "Hauptmen&uuml; &#39;%s&#39; deaktiviert, da die dazugeh&ouml;rige Scriptdatei auf dem Server nicht gefunden wurde.",
+       'ADMIN_MENU_WHAT_404_TITLE' => "Untermen&uuml; &#39;%s&#39; deaktiviert, da die dazugeh&ouml;rige Scriptdatei auf dem Server nicht gefunden wurde.",
 
        // Cache messages
        'CACHE_CANNOT_LOAD' => "Kann nicht Cache-Datei <strong><span class=\"data\">%s</span></strong> laden.",
 
        // Cache messages
        'CACHE_CANNOT_LOAD' => "Kann nicht Cache-Datei <strong><span class=\"data\">%s</span></strong> laden.",
@@ -1172,23 +1199,117 @@ addMessages(array(
        'ADMIN_ACTION_DELETE_SUBMIT' => "L&ouml;schen",
        'ADMIN_ACTION_REMOVE_SUBMIT' => "Eintr&auml;ge l&ouml;schen",
        'ADMIN_ACTION_EDIT_SELECT_SUBMIT' => "Ausgew&auml;hlten Eintrag bearbeiten",
        'ADMIN_ACTION_DELETE_SUBMIT' => "L&ouml;schen",
        'ADMIN_ACTION_REMOVE_SUBMIT' => "Eintr&auml;ge l&ouml;schen",
        'ADMIN_ACTION_EDIT_SELECT_SUBMIT' => "Ausgew&auml;hlten Eintrag bearbeiten",
-       'ADMIN_ACTION_LOCK_SUBMIT' => "Ent-/sperren",
+       'ADMIN_ACTION_UNLOCK_SUBMIT' => "Ent-/sperren",
+       'ADMIN_ACTION_ACTIVATE_SUBMIT' => "Freischalten",
 
        // Admin 'pool' mail actions
        'ADMIN_EDIT_POOL_MAIL_LINK' => "Klick-Mail bearbeiten",
        'ADMIN_DELETE_POOL_MAIL_LINK' => "Klick-Mail l&ouml;schen",
 
        // Generic points subjects
 
        // Admin 'pool' mail actions
        'ADMIN_EDIT_POOL_MAIL_LINK' => "Klick-Mail bearbeiten",
        'ADMIN_DELETE_POOL_MAIL_LINK' => "Klick-Mail l&ouml;schen",
 
        // Generic points subjects
-       'POINTS_SUBJECT_UNKNOWN'      => "??? (%s)",
-       'POINTS_SUBJECT_ADMIN_ADD_ALL'    => "Gutschrift f&uuml;r alle durch den Administrator",
-       'POINTS_SUBJECT_ADMIN_ADD_SINGLE' => "Einzelgutschrift durch den Administrator",
-       'POINTS_SUBJECT_ADMIN_SUB_ALL'    => "Abzug aller Accounts durch den Administrator",
-       'POINTS_SUBJECT_ADMIN_SUB_SINGLE' => "Einzelabzug durch den Administrator",
+       'POINTS_SUBJECT_UNKNOWN'              => "??? (%s)",
+       'POINTS_SUBJECT_ADMIN_ADD_ALL'        => "Gutschrift f&uuml;r alle durch den Administrator",
+       'POINTS_SUBJECT_ADMIN_ADD_SINGLE'     => "Einzelgutschrift durch den Administrator",
+       'POINTS_SUBJECT_ADMIN_SUB_ALL'        => "Abzug aller Accounts durch den Administrator",
+       'POINTS_SUBJECT_ADMIN_SUB_SINGLE'     => "Einzelabzug durch den Administrator",
+       'POINTS_SUBJECT_MAIL_DELETED'         => "L&ouml;schung einer Mailbuchung",
+       'POINTS_SUBJECT_POOL_PAYBACK'         => "R&uuml;ckverg&uuml;tung aus Sendepool",
+       'POINTS_SUBJECT_ADMIN_ADD_ALL_REF'    => "Anteilige Gutschrift f&uuml;r alle durch den Administrator",
+       'POINTS_SUBJECT_ADMIN_ADD_SINGLE_REF' => "Anteilige Einzelgutschrift durch den Administrator",
 
        // Admin - List referrals
        'ADMIN_LIST_USER_NO_REFERRALS' => "Das Mitglied <span class=\"data\">%s</span> hat in dieser Referral-Ebene keine Mitglieder geworben.",
        'ADMIN_NO_REFERRAL_LEVELS' => "In Ihrem {?mt_word?} sind keine Referral-Ebenen eingerichtet! Ihre Mitglieder erhalten <u>keine</u> {?POINTS?} gutgeschrieben. Richten Sie mindestens Referral-Ebene 0 mit 100% Verg&uuml;tung ein.",
        'ADMIN_LIST_USER_NODATA' => "Das Mitglied <span class=\"data\">%s</span> wurde bereits gel&ouml;scht.",
 
        // Admin - List referrals
        'ADMIN_LIST_USER_NO_REFERRALS' => "Das Mitglied <span class=\"data\">%s</span> hat in dieser Referral-Ebene keine Mitglieder geworben.",
        'ADMIN_NO_REFERRAL_LEVELS' => "In Ihrem {?mt_word?} sind keine Referral-Ebenen eingerichtet! Ihre Mitglieder erhalten <u>keine</u> {?POINTS?} gutgeschrieben. Richten Sie mindestens Referral-Ebene 0 mit 100% Verg&uuml;tung ein.",
        'ADMIN_LIST_USER_NODATA' => "Das Mitglied <span class=\"data\">%s</span> wurde bereits gel&ouml;scht.",
+
+       // Footer navigation (e.g. installer)
+       'PAGE_PREVIOUS_SUBMIT' => "Zur&uuml;ck",
+       'PAGE_NEXT_SUBMIT' => "Weiter",
+       'SAVE_CHANGES_SUBMIT' => "&Auml;nderungen speichern",
+       'NEXT_SAVE_CHANGES_SUBMIT' => "&Auml;nderungen speichern und zum n&auml;chsten Schritt",
+       'PREVIOUS_SAVE_CHANGES_SUBMIT' => "&Auml;nderungen speichern und zum verherigen Schritt",
+       'TAB_SAVE_CHANGES_SUBMIT' => "&Auml;nderungen speichern und weiter zu &#39;%s&#39;",
+       'PAGE_FINISH_SUBMIT' => "Fertigstellen",
+
+       // Admin - points_data "config"
+       'ADMIN_ENTER_POINTS_DATA_SUBJECT_LINE' => "Verwendungszweck eingeben:",
+       'ADMIN_ENTER_POINTS_DATA_COLUMN_NAME' => "Tabellenspalte eingeben:",
+       'ADMIN_SELECT_POINTS_DATA_LOCKED_MODE' => "Verhalten bei {?POINTS?}-Sperre einstellen:",
+       'ADMIN_SELECT_POINTS_DATA_PAYMENT_METHOD' => "Verg&uuml;tungsmethode einstellen:",
+       'ADMIN_SELECT_POINTS_DATA_NOTIFY_RECIPIENT' => "Soll das Mitglied benachrichtigt werden?",
+       'ADMIN_ADD_POINTS_DATA_USAGE_TITLE' => "Kleine Nutzungsanleitung:",
+       'ADMIN_ADD_POINTS_DATA_NOTICE' => "Achten Sie bei der Verwendung dieses Formulars darauf, dass der Verwendungszweck nicht mehrfach aufgef&uuml;hrt ist, sollte die eingegebene Tabellenspalte nicht existieren, wird sie automatisch angelegt. Sollte das Guthabenkonto wieder gel&ouml;scht werden, werden die dort angesammelten {?POINTS?} auf das eingestellbare Guthabenkonto (aktuell: <strong>{%config,translatePointsAccountType=points_remove_account%}</strong> umgebucht. Es k&ouml;nnen mit diesem Formular nur benutzerdefinierte Guthabenkonten angelegt oder gel&ouml;scht werden, die Konten durch Erweiterungen angelegt sind dieses nicht.",
+       'ADMIN_ADD_POINTS_DATA_SUBJECT_NOTICE' => "Der Verwendungszweck ist stets klein zu schreiben und sollte auch im Programmcode verwendet werden und muss mit dem ersten Parameter von den Funktionen <strong>addPointsThroughReferralSystem()</strong>, <strong>subtractPoints()</strong> und somit auch <strong>addBookingRecord()</strong> &uuml;bereinstimmen.",
+       'ADMIN_ADD_POINTS_DATA_COLUMN_NAME_NOTICE' => "Die Tabellenspalte ist stets klein zu schreiben, ist diese in der Tabelle <strong>{?_MYSQL_PREFIX?}_user_points</strong> nicht vorhanden, wird diese plus der selbe Spaltenname mit dem Pr&auml;fix <strong>locked_</strong> automatisch dort erzeugt. Der Spaltenname sollte das Stichwort <strong>points</strong> enthalten und darf <strong><u>NIEMALS</u></strong> <strong>id</strong>, <strong>userid</strong> oder <strong>ref_depth</strong> heissen oder <strong>locked</strong> enthalten.",
+       'ADMIN_ADD_POINTS_DATA_LOCKED_MODE_NOTICE' => "Bei der {?POINTS?}-Sperre werden dem Mitglied die {?POINTS?} auf sein so genanntes &quot;gesperrtes Guthaben&quot; gutgeschrieben. Auf dieses hat das Mitglied solange keinen Zugriff, bis es die Mindestanzahl zu best&auml;tigender Mails erreicht hat. Die Einstellung <strong>{--POINTS_LOCKED_MODE_LOCKED--}</strong> bewirkt, dass das Mitglied ebenfalls auf dieses Guthaben hinarbeiten muss. <strong>{--POINTS_LOCKED_MODE_UNLOCKED--}</strong> bewirkt hingegen, dass das Mitglied die Gutschrift sofort erh&auml;lt, ohne Mails best&auml;tigen zu m&uuml;ssen.",
+       'ADMIN_ADD_POINTS_DATA_PAYMENT_METHOD_NOTICE' => "Mit der Verg&uuml;tungsmethode k&ouml;nnen Sie beeinflussen, ob Ihre Mitglieder Referral-Gutschriften erhalten oder nur das eigentliche Mitglied (also das, was die Gutschrift erhalten soll) diese &quot;direkt&quot; gutgeschrieben werden soll. Stellen Sie dies z.B. beim Verwendungszweck <strong>mailid_okay</strong> auf &quot;{--POINTS_PAYMENT_METHOD_DIRECT--}&quot; um, erh&auml;t das werbende Mitglied (das als Referral-Id eingetragen ist) keine Gutschriften bei der Mailbest&auml;tigung mehr. Seien Sie also auch mit dieser Einstellung nicht leichtsinnig.",
+       'ADMIN_POINT_ACCOUNT_ADDED' => "Das Guthabenkonto wurde soeben angelegt. Bitte bauen Sie dies nun in Ihren PHP-Code ein.",
+       'ADMIN_POINT_ACCOUNT_NOT_ADDED' => "Das Guthabenkonto konnte nicht angelegt werden. Vielleicht ist es bereits vorhanden oder von einer Erweiterung bereits angelegt?",
+       'ADMIN_POINTS_ACCOUNT_SUBJECT' => "Verwendungszweck",
+       'ADMIN_POINTS_ACCOUNT_COLUMN_NAME' => "Tabellenspalte",
+       'ADMIN_POINTS_ACCOUNT_LOCKED_MODE' => "Sperrverhalten",
+       'ADMIN_POINTS_ACCOUNT_PAYMENT_METHOD' => "Verg&uuml;tungsmethode",
+       'ADMIN_POINTS_ACCOUNT_NOTIFY_RECIPIENT' => "Empf&auml;nger benachrichtigen?",
+       'ADMIN_POINTS_ACCOUNT_PROVIDER' => "Anbieter:",
+       'ADMIN_CHANGE_POINTS_NOTIFY_RECIPIENT' => "&Auml;ndern von Empfangsbenachrichtigung aussenden:",
+       'ADMIN_CHANGE_POINTS_LOCKED_MODE' => "&Auml;ndern vom Verhalten bei unzureichend best&auml;tigten Mails:",
+       'ADMIN_CHANGE_POINTS_PAYMENT_METHOD' => "&Auml;ndern von Verg&uuml;tungsmethode:",
+
+       // Admin points data config - title
+       'ADMIN_ADD_POINTS_DATA_TITLE' => "Benutzerdefiniertes Guthabenkonto erstellen",
+       'ADMIN_EDIT_POINTS_DATA_TITLE' => "&Auml;ndern von Guthabenhonten",
+       'ADMIN_LIST_POINTS_ACCOUNTS_TITLE' => "Alle Guthabenkonten auflisten",
+
+       // Admin points data config - submit buttons
+       'ADMIN_ADD_POINTS_DATA_SUBMIT' => "Guthabenkonto anlegen",
+       'ADMIN_POINTS_DATA_CHANGE_SUBMIT' => "Guthabenkonten &auml;ndern",
+
+       // Generic: points account types (in fact: column names)
+       'POINTS_ACCOUNT_TYPE_UNKNOWN'       => "Unbekannter Guthabenkontotyp <span class=\"data\">%s</span> erkannt.",
+       'POINTS_ACCOUNT_TYPE_POINTS'        => "Allgemeinguthaben",
+       'POINTS_ACCOUNT_TYPE_LOCKED_POINTS' => "Gesperrtes Allgemeinguthaben",
+
+       // Generic: points "locked mode"
+       'POINTS_LOCKED_MODE_UNKNOWN'  => "Unbekannter Guthabensperrmodus <span class=\"data\">%s</span> erkannt.",
+       'POINTS_LOCKED_MODE_LOCKED'   => "Auf gesperrtes Guthaben",
+       'POINTS_LOCKED_MODE_UNLOCKED' => "Auf ungesperrtes Guthaben",
+
+       // Generic: points payment method
+       'POINTS_PAYMENT_METHOD_UNKNOWN'  => "Unbekannte Gutschriftmethode <span class=\"data\">%s</span> erkannt.",
+       'POINTS_PAYMENT_METHOD_DIRECT'   => "Dem Mitglied direkt gutschreiben",
+       'POINTS_PAYMENT_METHOD_REFERRAL' => "&Uuml;ber das Referral-System",
+
+       // Generic: points account provider
+       'POINTS_ACCOUNT_PROVIDER_UNKNOWN'   => "Unbekannten Anbieter <span class=\"data\">%s</span> erkannt.",
+       'POINTS_ACCOUNT_PROVIDER_EXTENSION' => "Erweiterung",
+       'POINTS_ACCOUNT_PROVIDER_CUSTOM'    => "Benutzerdefiniert",
+
+       // Generic: points notify recipient
+       'POINTS_NOTIFY_RECIPIENT_UNKNOWN' => "Unbekannte Benachrichtigungsoption <span class=\"data\">%s</span> erkannt.",
+       'POINTS_NOTIFY_RECIPIENT_Y' => "An Mitglied aussenden",
+       'POINTS_NOTIFY_RECIPIENT_N' => "An Mitglied NICHT aussenden",
+
+       // Admin - subject lines
+       'ADMIN_DIRECT_ADMIN_ADD_SINGLE_SUBJECT' => "Einzeldirektgutschrift durch Administrator",
+       'ADMIN_DIRECT_ADMIN_ADD_ALL_SUBJECT' => "Sammeldirektgutschrift durch Administrator",
+       'ADMIN_REFERRAL_ADMIN_ADD_SINGLE_SUBJECT' => "Einzelreferralgutschrift durch Administrator",
+       'ADMIN_REFERRAL_ADMIN_ADD_ALL_SUBJECT' => "Sammelreferralgutschrift durch Administrator",
+       'ADMIN_REFERRAL_ADMIN_ADD_SINGLE_REF_SUBJECT' => "Anteilige Einzelreferralgutschrift durch Administrator",
+       'ADMIN_REFERRAL_ADMIN_ADD_ALL_REF_SUBJECT' => "Anteilige Sammelreferralgutschrift durch Administrator",
+       'ADMIN_EDIT_POINTS_DATA_SUBJECT' => "Guthabenkonto ge&auml;ndert",
+
+       // Member - subject lines
+       'MEMBER_DIRECT_ADMIN_ADD_SINGLE_SUBJECT' => "Einzeldirektgutschrift vom Administrator erhalten",
+       'MEMBER_DIRECT_ADMIN_ADD_ALL_SUBJECT' => "Sammeldirektgutschrift vom Administrator erhalten",
+       'MEMBER_REFERRAL_ADMIN_ADD_SINGLE_SUBJECT' => "Einzelreferralgutschrift vom Administrator erhalten",
+       'MEMBER_REFERRAL_ADMIN_ADD_ALL_SUBJECT' => "Sammelreferralgutschrift vom Administrator erhalten",
+       'MEMBER_REFERRAL_ADMIN_ADD_SINGLE_REF_SUBJECT' => "Anteilige Einzelreferralgutschrift vom Administrator erhalten",
+       'MEMBER_REFERRAL_ADMIN_ADD_ALL_REF_SUBJECT' => "Anteilige Sammelreferralgutschrift vom Administrator erhalten",
+
+       // AJAX admin menu
+       'ADMIN_AJAX_MENU_IS_LOADING' => "Das Adminmen&uuml; wird geladen, bitte etwas Geduld .&nbsp;.&nbsp;.",
+       'ADMIN_AJAX_ERROR_TITLE' => "AJAX-Abfrage im Adminmen&uuml; fehlgeschlagen",
+       'ADMIN_AJAX_WARNING_TITLE' => "Warnung: Es sind ungespeicherte &Auml;nderungen vorhanden",
 ));
 
 // Description of all months
 ));
 
 // Description of all months
index 81ee0741b329411e9718fcbc9f9088318c58c108..a9877dc76167f60e0c9317a8c4aeb9dd1bbf857e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 6c777c94b6fbc356d8b05c89904de26ab1e74ecb..8ec9c8bb0e8c292dc06cf1d93f828639d17576de 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -82,7 +82,7 @@ addMessages(array(
        'DOUBLER_ENTER_LOGIN_DATA' => "Geben Sie hier Ihre Zugangsdaten ein",
        'DOUBLER_NOTICE_FOR_PASSWORD' => "Das Passwort wird nicht gespeichert.",
        'DOUBLER_ENTER_POINTS' => "{?POINTS?} zum Verdoppeln",
        'DOUBLER_ENTER_LOGIN_DATA' => "Geben Sie hier Ihre Zugangsdaten ein",
        'DOUBLER_NOTICE_FOR_PASSWORD' => "Das Passwort wird nicht gespeichert.",
        'DOUBLER_ENTER_POINTS' => "{?POINTS?} zum Verdoppeln",
-       'DOUBLER_NOW' => "Verdoppeln.",
+       'DOUBLER_NOW_SUBMIT' => "Verdoppeln.",
        'DOUBLER_ALREADY_PAYED' => "Es wurden bereits <strong>{%config,translateComma=doubler_points%} {?POINTS?}</strong> ausgezahlt.",
        'DOUBLER_MINIMUM_IS' => "Mindestens",
        'DOUBLER_MAXIMUM_IS' => "verdoppeln, maximal",
        'DOUBLER_ALREADY_PAYED' => "Es wurden bereits <strong>{%config,translateComma=doubler_points%} {?POINTS?}</strong> ausgezahlt.",
        'DOUBLER_MINIMUM_IS' => "Mindestens",
        'DOUBLER_MAXIMUM_IS' => "verdoppeln, maximal",
index c7ef3c18bb203cf1a69334c92516154b0b02bc16..727968eb445a9f34e48b70ad303a7fac370176ef 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -60,8 +60,8 @@ addMessages(array(
 
        // Titles/notes for displaying earning data
        'MEMBER_EARNING_TITLE' => "Zusatzverdienste bei {?MAIN_TITLE?}",
 
        // Titles/notes for displaying earning data
        'MEMBER_EARNING_TITLE' => "Zusatzverdienste bei {?MAIN_TITLE?}",
-       'MEMBER_EARNING_NOTICE' => "Das Team von {?MAIN_TITLE?} w&uuml;nscht Ihnen gute Verdienste!",
-       'MEMBER_EARNING_DATA_INVALID_TITLE' => "Ung&uuml;ltigen Zusatzverdienst oder Scriptefehler!",
+       'MEMBER_EARNING_NOTICE' => "Das Team von {?MAIN_TITLE?} w&uuml;nscht Ihnen gute Verdienste.",
+       'MEMBER_EARNING_DATA_INVALID_TITLE' => "Ung&uuml;ltigen Zusatzverdienst oder Scriptefehler.",
        'MEMBER_EARNING_DATA_INVALID_NOTICE' => "Es liegt vermutlich ein Scriptefehler vor. Bitte teilen Sie die oben stehenden Daten dem Support mit.",
 
        // Earning groups
        'MEMBER_EARNING_DATA_INVALID_NOTICE' => "Es liegt vermutlich ein Scriptefehler vor. Bitte teilen Sie die oben stehenden Daten dem Support mit.",
 
        // Earning groups
index 33f69baf54c7acd73fe8af2501828b9b4c155333..d502ee830de62fcb3360c0c4b5ede41028abe309 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index dea261aa664dfc7aeba2ca161085c65baaa3b891..48d9f5e400e1421de58245bd853c56719040f6d7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,8 +44,6 @@ if (!defined('__SECURITY')) {
 addMessages(array(
        // Admin - forced ads
        'ADMIN_FORCED_ADS_404' => "Es wurden keine Forced-Werbemittel gefunden.",
 addMessages(array(
        // Admin - forced ads
        'ADMIN_FORCED_ADS_404' => "Es wurden keine Forced-Werbemittel gefunden.",
-       'ADMIN_ADD_FORCED_AD_TITLE' => "Hinzuf&uuml;gen eines Forced-Werbemittels:",
-       'ADMIN_ADD_FORCED_ADD_SUBMIT' => "Forced-Werbemittel hinzuf&uuml;gen",
        'ADMIN_ENTER_FORCED_AD_CLICK_URL' => "Klick-URL des Forced-Werbemittels eingeben:",
        'ADMIN_SELECT_FORCED_AD_TYPE' => "Forced-Werbemittelart ausw&auml;hlen:",
        'ADMIN_SELECT_FORCED_HAS_FRAMEBREAKER' => "Hat das Forced-Werbemittel einen Framekiller?",
        'ADMIN_ENTER_FORCED_AD_CLICK_URL' => "Klick-URL des Forced-Werbemittels eingeben:",
        'ADMIN_SELECT_FORCED_AD_TYPE' => "Forced-Werbemittelart ausw&auml;hlen:",
        'ADMIN_SELECT_FORCED_HAS_FRAMEBREAKER' => "Hat das Forced-Werbemittel einen Framekiller?",
@@ -57,38 +55,129 @@ addMessages(array(
        'ADMIN_ENTER_FORCED_ALTERNATE_TEXT' => "Alternativen Text/Titel des Forced-Werbemittels eingeben:",
        'ADMIN_ENTER_FORCED_AD_WIDTH' => "Breite (in Pixel) des Forced-Werbemittels eingeben:",
        'ADMIN_ENTER_FORCED_AD_HEIGHT' => "H&ouml;he (in Pixel) des Forced-Werbemittels eingeben:",
        'ADMIN_ENTER_FORCED_ALTERNATE_TEXT' => "Alternativen Text/Titel des Forced-Werbemittels eingeben:",
        'ADMIN_ENTER_FORCED_AD_WIDTH' => "Breite (in Pixel) des Forced-Werbemittels eingeben:",
        'ADMIN_ENTER_FORCED_AD_HEIGHT' => "H&ouml;he (in Pixel) des Forced-Werbemittels eingeben:",
-       'ADMIN_FORCED_ADS_TYPE_UNKNOWN' => "Unbekanntes Forced-Werbemittel %s erkannt.",
-       'ADMIN_FORCED_ADS_TYPE_BANNER' => "Forced-Banner",
-       'ADMIN_FORCED_ADS_TYPE_TEXTLINK' => "Forced-Textlink",
-       'ADMIN_FORCED_ADS_TYPE_POPUP' => "Forced-PopUp",
-       'ADMIN_LIST_FORCED_ADS_TITLE' => "Auflisten aller Forced-Werbemittel",
+       'ADMIN_FORCED_ADS_CLICK_URL' => "Klick-URL",
+       'ADMIN_FORCED_ADS_WIDTH' => "Breite (in Pixel) bei PopUp/Banner",
+       'ADMIN_FORCED_ADS_HEIGHT' => "H&ouml;he (in Pixel) bei PopUp/Banner",
+       'ADMIN_FORCED_ADS_USERID' => "Verkn&uuml;pfte Mitglieds-Id",
+       'ADMIN_FORCED_ADS_AD_URL' => "URL des Forced-Banners",
+       'ADMIN_FORCED_ADS_ALTERNATE_TEXT' => "Alternativen Text",
        'ADMIN_FORCED_ADS_TYPE' => "Forced-Werbemittel",
        'ADMIN_FORCED_ADS_VIEWS_COUNTER' => "Anzahl Forced-Views",
        'ADMIN_FORCED_ADS_CLICKS_COUNTER' => "Anzahl Forced-Klicks",
        'ADMIN_FORCED_ADS_HAS_FRAMEBREAKER' => "Framekiller?",
        'ADMIN_FORCED_ADS_TYPE' => "Forced-Werbemittel",
        'ADMIN_FORCED_ADS_VIEWS_COUNTER' => "Anzahl Forced-Views",
        'ADMIN_FORCED_ADS_CLICKS_COUNTER' => "Anzahl Forced-Klicks",
        'ADMIN_FORCED_ADS_HAS_FRAMEBREAKER' => "Framekiller?",
-       'ADMIN_FORCED_ADS_ADDED' => "Hinzugef&uuml;gt:",
+       'ADMIN_FORCED_ADS_ADDED' => "Hinzugef&uuml;gt",
        'ADMIN_CHANGE_FORCED_ADS_AD_URL' => "Banner-URL &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_CLICK_URL' => "Klick-URL &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_AD_URL' => "Banner-URL &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_CLICK_URL' => "Klick-URL &auml;ndern:",
-       'ADMIN_CHANGE_FORCED_ADS_ALT_TEXT' => "Alternativen Text &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_ADS_ALTERNATE_TEXT' => "Alternativen Text &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_WIDTH' => "Breite &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_HEIGHT' => "H&ouml;he &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_USERID' => "Zugewiesenes Mitglied &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_TYPE' => "Art &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_FRAMEBREAKER' => "&Auml;ndern ob ein Framekiller vorhanden ist:",
        'ADMIN_CHANGE_FORCED_ADS_WIDTH' => "Breite &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_HEIGHT' => "H&ouml;he &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_USERID' => "Zugewiesenes Mitglied &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_TYPE' => "Art &auml;ndern:",
        'ADMIN_CHANGE_FORCED_ADS_FRAMEBREAKER' => "&Auml;ndern ob ein Framekiller vorhanden ist:",
-       'ADMIN_EDIT_FORCED_ADS_TITLE' => "&Auml;ndern von Forced-Werbemitteln:",
 
        // Admin - forced campaigns
 
        // Admin - forced campaigns
-       'ADMIN_FORCED_CAMPAIGNS_404' => "Es wurde keine Forced-Kampagnen gefunden.",
+       'ADMIN_FORCED_CAMPAIGNS_404' => "Es wurden keine Forced-Kampagnen gefunden.",
+       'ADMIN_ENTER_FORCED_CAMPAIGN_ORDERED_CLICKS' => "Anzahl Klicks/Einblendungen eingeben:",
+       'ADMIN_SELECT_FORCED_CAMPAIGN_RELOAD_LOCK' => "Reload-Sperre einstellen:",
+       'ADMIN_ENTER_FORCED_CAMPAIGN_MINIMUM_STAY' => "Mindestauffenthalt in Sekunden eingeben:",
+       'ADMIN_SELECT_FORCED_AD' => "Forced-Werbemittel ausw&auml;hlen:",
+       'ADMIN_SELECT_FORCED_CAMPAIGN_USERID' => "Mitgliedsaccount ausw&auml;hlen, dass dieser Kampagne zugewiesen werden soll:",
+       'ADMIN_SELECT_FORCED_COSTS' => "Forced-Preis ausw&auml;hlen:",
+       'ADMIN_FORCED_CAMPAIGN_STATUS' => "Kampagnen-Status",
+       'ADMIN_FORCED_CAMPAIGN_ORDERED_CLICKS' => "Klicks &uuml;brig",
+       'ADMIN_FORCED_CAMPAIGN_PAYMENT_API' => "Verg&uuml;tung von API",
+       'ADMIN_FORCED_CAMPAIGN_RELOAD_LOCK' => "Reload-Sperre",
+       'ADMIN_FORCED_CAMPAIGN_MINIMUM_STAY' => "Mindestauffenthalt (Sekunden)",
+       'ADMIN_FORCED_CAMPAIGN_LAST_LOCKED' => "Zuletzt gesperrt",
+       'ADMIN_FORCED_CAMPAIGN_LOCK_REASON' => "Sperrgrund",
+       'ADMIN_FORCED_CAMPAIGN_EXPIRED' => "Abgelaufen",
+       'ADMIN_FORCED_CAMPAIGN_CREATED' => "Erstellt",
+       'ADMIN_FORCED_CAMPAIGNS_ACTIVATED_DONE' => "Es wurden alle ausgew&auml;hlten Forced-Kampagnen aktiviert.",
+       'ADMIN_CHANGE_FORCED_CAMPAIGN_ORDERED_CLICKS' => "Bestellte/&Uuml;brige Klicks &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_CAMPAIGN_PAYMENT_API' => "Verg&uuml;tung von API &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_CAMPAIGN_RELOAD_LOCK' => "Reload-Sperre &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_CAMPAIGN_MINIMUM_STAY' => "Mindestauffenthalt (Sekunden) &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_CAMPAIGN_ADS_ID' => "Verkn&uuml;pftes Forced-Werbemittel &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_CAMPAIGN_USERID' => "Verkn&uuml;pftes Mitgliedsaccount &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_CAMPAIGN_COSTS_ID' => "Verkn&uuml;pfte Kosten/Verg&uuml;tung &auml;ndern:",
 
        // Admin - forced costs
 
        // Admin - forced costs
-       'ADMIN_FORCED_COSTS_404' => "Es wurden keine Forced-Kosten gefunden.",
+       'ADMIN_FORCED_COSTS_404' => "Es wurden keine Forced-Preise gefunden.",
+       'ADMIN_ENTER_FORCED_COSTS_PRICE_PER_CLICK' => "Preis in {?POINTS?} pro Klick eingeben:",
+       'ADMIN_ENTER_FORCED_COSTS_PAYMENT_PER_CLICK' => "Verg&uuml;tung in {?POINTS?} pro Klick eingeben:",
+       'ADMIN_SELECT_FORCED_COSTS_VISIBILITY' => "F&uuml;r wen soll dieser Eintrag sichtbar sein?",
+       'ADMIN_FORCED_COSTS_PRICE_CLICK' => "Preis ({?POINTS?})",
+       'ADMIN_FORCED_COSTS_PAYMENT_CLICK' => "Verg&uuml;tung ({?POINTS?})",
+       'ADMIN_FORCED_COSTS_VISIBILITY' => "Sichtbarkeit",
+       'ADMIN_CHANGE_FORCED_COSTS_PRICE_CLICK' => "Preis pro Klick &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_COSTS_PAYMENT_CLICK' => "Verg&uuml;tung pro Klick &auml;ndern:",
+       'ADMIN_CHANGE_FORCED_COSTS_VISIBILITY' => "Preis-Sichtbarkeit &auml;ndern:",
+       'ADMIN_FORCED_COSTS_SELECTION_NOTICE' => "Erster {?POINTS?}-Wert ist zu zahlender Preis, zweiter die Verg&uuml;tung.",
 
 
-       // Earning names
-       'EARNING_PROVIDER_FORCED_POPUP' => "Forced-PopUp",
+       // Admin - forced ads types
+       'ADMIN_FORCED_ADS_TYPE_UNKNOWN'  => "Unbekanntes Forced-Werbemittel %s erkannt.",
+       'ADMIN_FORCED_ADS_TYPE_BANNER'   => "Forced-Banner",
+       'ADMIN_FORCED_ADS_TYPE_TEXTLINK' => "Forced-Textlink",
+       'ADMIN_FORCED_ADS_TYPE_POPUP'    => "Forced-PopUp",
+
+       // Admin - forced campaign status
+       'ADMIN_FORCED_CAMPAIGN_TYPE_UNKNOWN' => "Unbekannter Kampagnenstatus %s erkannt.",
+       'ADMIN_FORCED_CAMPAIGN_TYPE_ACTIVE'  => "Aktiv",
+       'ADMIN_FORCED_CAMPAIGN_TYPE_PENDING' => "Wartend",
+       'ADMIN_FORCED_CAMPAIGN_TYPE_EXPIRED' => "Abgelaufen",
+       'ADMIN_FORCED_CAMPAIGN_TYPE_LOCKED'  => "Gesperrt",
+
+       // Admin - forced costs visibility
+       'ADMIN_FORCED_ADS_VISIBILITY_UNKNOWN' => "Unbekannte Preissichtbarkeit %s erkannt.",
+       'ADMIN_FORCED_ADS_VISIBILITY_MEMBER'  => "Nur Mitglieder",
+       'ADMIN_FORCED_ADS_VISIBILITY_SPONSOR' => "Nur Sponsoren",
+       'ADMIN_FORCED_ADS_VISIBILITY_ALL'     => "Alle",
+       'ADMIN_FORCED_ADS_VISIBILITY_NONE'    => "Nur Administratoren",
+
+       // Admin - notices
+       'ADMIN_ADD_FORCED_COSTS_NOTICE' => "Administratoren k&ouml;nnen immer alle Forced-Preise verwenden!",
+       'ADMIN_LIST_FORCED_CAMPAIGN_NOTICE' => "Das Zuweisen eines Mitgliedsaccounts bewirkt, dass dieses Mitglied das Forced-Werbemittel nicht mehr anklicken kann (da es somit &quot;seines&quot; geworden ist).",
+       'ADMIN_EDIT_FORCED_CAMPAIGN_NOTICE' => "{--ADMIN_LIST_FORCED_CAMPAIGN_NOTICE--}",
 
 
-       // Submit buttons
+       // Admin - titles
+       'ADMIN_ADD_FORCED_AD_TITLE' => "Hinzuf&uuml;gen eines Forced-Werbemittels",
+       'ADMIN_LIST_FORCED_ADS_TITLE' => "Auflisten aller Forced-Werbemittel",
+       'ADMIN_EDIT_FORCED_ADS_TITLE' => "&Auml;ndern von Forced-Werbemitteln",
+       'ADMIN_DELETE_FORCED_ADS_TITLE' => "L&ouml;schen von Forced-Webemitteln",
+       'ADMIN_ADD_FORCED_CAMPAIGN_TITLE' => "Hinzuf&uuml;gen einer Forced-Kampagne",
+       'ADMIN_LIST_FORCED_CAMPAIGNS_TITLE' => "Auflisten aller Forced-Kampagnen",
+       'ADMIN_EDIT_FORCED_CAMPAIGN_TITLE' => "&Auml;ndern von Forced-Kampagnen",
+       'ADMIN_ADD_FORCED_COSTS_TITLE' => "Hinzuf&uuml;gen von Forced-Preisen",
+       'ADMIN_LIST_FORCED_COSTS_TITLE' => "Auflisten aller Forced-Preise",
+       'ADMIN_EDIT_FORCED_COSTS_TITLE' => "&Auml;ndern von Forced-Preisen",
+       'ADMIN_DELETE_FORCED_COSTS_TITLE' => "L&ouml;schen von Forced-Preisen",
+
+       // Admin - submit buttons
+       'ADMIN_ADD_FORCED_AD_SUBMIT' => "Forced-Werbemittel hinzuf&uuml;gen",
        'ADMIN_FORCED_ADS_CHANGE_SUBMIT' => "Forced-Werbemittel &auml;ndern",
        'ADMIN_FORCED_ADS_CHANGE_SUBMIT' => "Forced-Werbemittel &auml;ndern",
+       'ADMIN_FORCED_ADS_REMOVE_SUBMIT' => "Forced-Werbemittel l&ouml;schen",
+       'ADMIN_ADD_FORCED_CAMPAIGN_SUBMIT' => "Forced-Kampagne hinzuf&uuml;gen",
+       'ADMIN_FORCED_CAMPAIGN_CHANGE_SUBMIT' => "Forced-Kampagnen &auml;ndern",
+       'ADMIN_ADD_FORCED_COSTS_ADD_SUBMIT' => "Preis hinzuf&uuml;gen",
+       'ADMIN_FORCED_COSTS_CHANGE_SUBMIT' => "Preise &auml;ndern",
+       'ADMIN_FORCED_COSTS_REMOVE_SUBMIT' => "Preise l&ouml;schen",
+
+       // Admin - error messages
+       'ADMIN_FORCED_ADS_NO_SELECTIONS' => "Es wurde keine Auswahl getroffen, bitte w&auml;hlen Sie mindestens ein Forced-Werbemittel aus!",
+       'ADMIN_FORCED_CAMPAIGNS_NO_SELECTIONS' => "Es wurde keine Auswahl getroffen, bitte w&auml;hlen Sie mindestens eine Forced-Kampagne aus!",
+       'ADMIN_FORCED_COSTS_NO_SELECTIONS' => "Es wurde keine Auswahl getroffen, bitte w&auml;hlen Sie mindestens einen Forced-Preis aus!",
+       'ADMIN_FORCED_CAMPAIGNS_ACTIVATED_FAILED' => "Bei der Aktivierung von Forced-Kampagnen ist ein Fehler unterlaufen, haben Sie auch nur Kampagnen mit dem Status <u>{--ADMIN_FORCED_CAMPAIGN_TYPE_PENDING--}</u> ausgew&auml;hlt?",
 
 
+       // Admin - subject lines
+       'ADMIN_EDIT_FORCED_ADS_SUBJECT' => "&Auml;nderungen an Forced-Werbemitteln",
+       'ADMIN_EDIT_FORCED_COSTS_SUBJECT' => "&Auml;nderung an Forced-Preisen",
+       'ADMIN_FORCED_NOTIFY_CAMPAIGN_PENDING_ACTIVE_SUBJECT' => "Eine Forced-Kampagne wurde freigeschaltet",
+
+       // Member - subject lines
+       'MEMBER_FORCED_NOTIFY_CAMPAIGN_PENDING_ACTIVE_SUBJECT' => "Ihre Forced-Kampagne wurde freigeschaltet",
+
+       // All - earning names
+       'EARNING_PROVIDER_FORCED_POPUP' => "Forced-PopUp",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index a2511d830b0aa569e7e3c12d6a6d208b218b5cf6..917a27163fd5b670bde913b5bbcb9a1d822adee2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 27d7b7b69942e641931922d40a5aae078c9e44dc..a3fe913a11d9d6b7164131f5b76b73bfd0ce245a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,13 +43,13 @@ if (!defined('__SECURITY')) {
 // Language definitions
 addMessages(array(
        'ADMIN_HTML_DOWNLOAD_CLASS' => "Bitte laden Sie sich die Klasse <a href=\"{%pipe,generateDerefererUrl=https://sourceforge.net/projects/phpmailer/%}\" target=\"_blank\">PHPMailer</a> herunter, um diese Funktion nutzen zu k&ouml;nnen.",
 // Language definitions
 addMessages(array(
        'ADMIN_HTML_DOWNLOAD_CLASS' => "Bitte laden Sie sich die Klasse <a href=\"{%pipe,generateDerefererUrl=https://sourceforge.net/projects/phpmailer/%}\" target=\"_blank\">PHPMailer</a> herunter, um diese Funktion nutzen zu k&ouml;nnen.",
-       'MEMBER_HTML_INTRO' => "HTML-Emfpang - Einstellung",
+       'MEMBER_HTML_TITLE' => "HTML-Emfpang - Einstellung",
        'MEMBER_HTML_TEXT' => "In unserem {?mt_word?} ist das Empfangen von HTML-Mails nun m&ouml;glich. Gleichzeitig k&ouml;nnen Sie auch selber HTML-Mails versenden. M&ouml;chten Sie dies beides nutzen?",
        'MEMBER_HTML_TEXT' => "In unserem {?mt_word?} ist das Empfangen von HTML-Mails nun m&ouml;glich. Gleichzeitig k&ouml;nnen Sie auch selber HTML-Mails versenden. M&ouml;chten Sie dies beides nutzen?",
-       'MEMBER_HTML_ORDER_INTRO' => "HTML- oder normale Text-Mails versenden?",
-       'MEMBER_HTML_MSG' => "HTML-Mail",
-       'MEMBER_NORMAL_MSG' => "Normale Text-Mail",
-       'MEMBER_HTML_VALID_TAGS' => "G&uuml;tige HTML-Codes sind",
-       'MEMBER_HTML_INVALID_TAGS' => "Ung&uuml;tige HTML-Tags im HTML-Code gefunden.",
+       'MEMBER_HTML_ORDER_TITLE' => "HTML- oder normale Text-Mails versenden?",
+       'MEMBER_HTML_MESSAGE' => "HTML-Mail:",
+       'MEMBER_NORMAL_MESSAGE' => "Normale Text-Mail:",
+       'MEMBER_HTML_VALID_TAGS' => "G&uuml;ltige HTML-Codes sind",
+       'MEMBER_HTML_INVALID_TAGS' => "Ung&uuml;ltige HTML-Tags im HTML-Code gefunden.",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 7cf63760514efb30d0d2c03dfcb6a15ad8eae4ec..8ec9289a9ee54b91afa0d6f27a8ed42c4d050261 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8cbd6b543b17b4ca9b9d342dd71b5a7ffd1b5049..403ec712e7501ba5088d3b270773f097e7ce018a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,72 +42,179 @@ if (!defined('__SECURITY')) {
 
 // Language definitions
 addMessages(array(
 
 // Language definitions
 addMessages(array(
+       // General language strings
        'ALREADY_INSTALLED' => "{?TITLE?} ist bereits auf diesem Server installiert worden Bitte l&ouml;schen Sie install.php, inc/install-inc.php und das Verzeichnis install/ von Ihrem Server! (Keine Sorge, Sie k&ouml;nnen es tun...)",
        'INSTALLER_OF_MAILER' => "Installation von {?mt_word?}-Projekt-Script",
        'INSTALLER_OF_MAILER_NO_ADMIN' => "Installation von {?mt_word?}-Projekt-Script - {?MAIN_TITLE?}",
        'ALREADY_INSTALLED' => "{?TITLE?} ist bereits auf diesem Server installiert worden Bitte l&ouml;schen Sie install.php, inc/install-inc.php und das Verzeichnis install/ von Ihrem Server! (Keine Sorge, Sie k&ouml;nnen es tun...)",
        'INSTALLER_OF_MAILER' => "Installation von {?mt_word?}-Projekt-Script",
        'INSTALLER_OF_MAILER_NO_ADMIN' => "Installation von {?mt_word?}-Projekt-Script - {?MAIN_TITLE?}",
+       'INSTALLER_OF_MAILER' => "Installation von {?TITLE?}-Script",
+       'INSTALLER_OF_MAILER_NO_ADMIN' => "Installation von {?TITLE?}-Script - {?MAIN_TITLE?}",
+       'INSTALLER_WARN_NO_PASSWORD' => "Warnen, wenn kein Passwort angegeben wurde?",
+       'INSTALLER_CONFIG_WRITE_FOOTER' => "Scriptname, -version und -author anzeigen?",
+       'INSTALLER_MAIN_TITLE' => "Installation des Scriptes {?TITLE?}",
+       'INSTALLER_SELECTOR_TITLE' => "Auswahl der Installationsvarriante",
+       'INSTALLER_MAYBE_DONE' => "Die Installation ist m&ouml;glicherweise abgeschlossen oder es ist ein unerwarteter Fehler aufgetreten.",
+       'INSTALLER_FINISHED' => "Die Installation ist abgeschlossen.",
+       'INSTALLER_FIN_SECU' => "Sie sollten jetzt die Dateien <u>install.php</u> und <u>inc/install-inc.php</u> von Ihrem Server l&ouml;schen. Dies ist zwar normalerweise nicht erforderlich, Sie sollten es aber dennoch tun, um die Sicherheit zus&auml;tzlich zu erh&ouml;hen.",
+       'INSTALLER_CONTINUE_ADMIN' => "Weiter zum Administrationsbereich...",
+
+       // Plain installer - general
+       'INSTALLER_SQL_IMPORT_FAILED' => "Konnte die SQL-Dateien aus <strong>install/</strong> nicht nachladen. Bitte Zugriffsrechte (CHMOD) auf die Dateien &uuml;berpr&uuml;fen. Diese sollten 644 mindestens aufweisen.",
+       'INSTALLER_PROBLEMS_DETECTED' => "Es wurden bei der Initialisierung des Installationsvorganges Probleme festgestellt.",
+       'INSTALLER_CONTENT_404' => "Es wurde kein Content gefunden. Bitte melden Sie dies im <a href=\"http://bugs.mxchange.org\" rel=\"external\" target=\"_blank\">Bug-Tracker</a> und nennen Sie alle relevanten Informationen.",
+       'INSTALLER_RETURN_MYSQL_PAGE' => "Zur&uuml;ck zu den Datenbank-Einstellungen",
+       'INSTALLER_FINALIZER_FAILED' => "W&auml;hrend der Installation ist ein unerwarteter Fehler aufgetreten. Der Finalizer konnte die Installation nicht abschliessen.",
+       'INSTALLER_FINALIZER_CANNOT_REGISTER_SQL_PATCHES' => "W&auml;hren der Registrierung von <strong>ext-sql_patches</strong> ist ein unerwarteter Fehler entstanden.",
        'INSTALLER_MISSING_DUMPS' => "Die SQL-Dumps wurden nicht gefunden! Diese sollten auch mit hochgeladen werden und lesbar sein (CHMOD 644).",
        'INSTALLER_MISSING_DUMPS' => "Die SQL-Dumps wurden nicht gefunden! Diese sollten auch mit hochgeladen werden und lesbar sein (CHMOD 644).",
-       'INSTALLER_ENABLE_BACKLINK' => "Backlink (=R&uuml;ckverlinkung zu mxchange.org setzen?) <span class=\"notice\">rel=&quot;external&quot;</span> ist gesetzt. Bitte nicht den Backlink einbauen, und <strong>nofollow</strong> verwenden! Das schadet allen.",
        'INSTALLER_WRONG_PAGE' => "Sie oder dieses Script haben eine falsche Seite ausgew&auml;hlt.",
        'INSTALLER_NEXT_PAGE' => "Weiter zur n&auml;chsten Seite...",
        'INSTALLER_WRONG_PAGE' => "Sie oder dieses Script haben eine falsche Seite ausgew&auml;hlt.",
        'INSTALLER_NEXT_PAGE' => "Weiter zur n&auml;chsten Seite...",
-       'INSTALLER_HEADER_TEXT_PAGE1' => "Server-Pfad, Basis-URL und Webseitentitel",
-       'INSTALLER_HEADER_TEXT_PAGE2' => "Datenbankzugangsdaten: Hostname, Login, Passwort, Tabellentyp usw.",
-       'INSTALLER_HEADER_TEXT_PAGE3' => "SMTP-Server Einstellungen",
-       'INSTALLER_HEADER_TEXT_PAGE4' => "Cascading Stylesheet-Datei",
-       'INSTALLER_HEADER_TEXT_PAGE5' => "Verschiedene Einstellungen",
-       'INSTALLER_HEADER_MYSQL_ERRORS' => "Fehler beim Verbinden zur Datenbank.",
-       'INSTALLER_TEXT_PAGE_1' => "Geben Sie hier den absoluten Server-Pfad (/ihr/server/pfad/) <strong>mit</strong> abschliessendem Slash (/), die Basis-URL (vorgegebene Werte stimmen meistens) und den Titel Ihres {?mt_word2?} ein.",
-       'INSTALLER_TEXT_PAGE_2' => "Geben Sie hier die Daten vom Datenbankserver ein, die Ihnen vom Hoster mitgeteilt wurden. Es wird dann anschliessend versucht, eine Testverbindung aufzubauen.",
-       'INSTALLER_TEXT_PAGE_3' => "Geben Sie hier die Ihre Zugangsdaten zum SMTP-Server (ausgehender Mailserver) ein, wenn der mail()-Befehl auf Ihrem Server deaktiviert sein sollte. Oder lassen Sie alle Felder leer f&uuml;r Standard-Einstellungen.",
-       'INSTALLER_TEXT_PAGE_4' => "Geben Sie hier die URL Ihrer hochgeladenen CSS-Datei an. Wenn Sie die bestehende Standard-Datei verwenden m&ouml;chten, so klicken Sie einfach auf Weiter.",
-       'INSTALLER_TEXT_PAGE_5' => "Hier k&ouml;nnen Sie weitere Einstellungen vornehmen, wie zum Beispiel den Ausgabe-Modus festlegen, in der der HTML-Code ausgegeben werden soll, usw.",
-       'INSTALLER_TEXT_MYSQL_ERRORS' => "Es konnte keine Verbindung zur Datenbank aufgebaut werden! Ist das Login richtig? Ist auch die UMSCHALT-Taste nicht bet&auml;tigt? (zweite gr&uuml;ne Lampe leuchtet!) Ist somit das Passwort richtig?<br /><br />Hier sind / ist alle Fehler aufgelistet:",
-       'INSTALLER_SERVER_PATH' => "Absoluter Server-Pfad",
-       'INSTALLER_BASE_URL' => "Basis-URL",
-       'INSTALLER_HP_TITLE' => "{?mt_word?}-Titel",
-       'INSTALLER_HP_SLOGAN' => "Werbespruch",
-       'INSTALLER_HP_EMAIL' => "E-Mail-Adresse",
-       'INSTALLER_MYSQL_HOST' => "Server-Hostname",
-       'INSTALLER_MYSQL_DBASE' => "Datenbank",
-       'INSTALLER_MYSQL_PREFIX' => "Pr&auml;fix f&uuml;r alle Tabellen",
-       'INSTALLER_MYSQL_TABLE_TYPE' => "Tabellentyp: (MyISAM ist meistens ausreichend)",
-       'INSTALLER_TABLE_TYPE_MYISAM' => "MyISAM (langsamer, da Tabelle gelockt wird)",
-       'INSTALLER_TABLE_TYPE_INNODB' => "InnoDB (schneller, da zweilenweis gelockt wird)",
-       'INSTALLER_MYSQL_LOGIN' => "Ihr Loginname",
-       'INSTALLER_MYSQL_PASSWORD1' => "Ihr Passwort",
-       'INSTALLER_MYSQL_PASSWORD2' => "Passwortwiederholung",
-       'INSTALLER_CSS_URL' => "URL zur CSS-Datei (relativ)",
+       'INSTALLER_MYSQL_ERRORS_TITLE' => "Fehler beim Verbinden zur Datenbank.",
+       'INSTALLER_MYSQL_ERRORS' => "Es konnte keine Verbindung zur Datenbank aufgebaut werden! Ist das Login richtig? Ist auch die UMSCHALT-Taste nicht bet&auml;tigt? (zweite gr&uuml;ne Lampe leuchtet!) Ist somit das Passwort richtig?<br /><br />Hier sind / ist alle Fehler aufgelistet:",
+
+       // Plain installer: fatal error messages
        'INSTALLER_FATAL_NO' => "Fataler Fehler im Installer Nr. #",
        'INSTALLER_FATAL_NO_MHOST' => "Sie haben keinen Hostnamen eingeben.",
        'INSTALLER_FATAL_NO_MDBASE' => "Bitte geben Sie einen Datenbankname ein.",
        'INSTALLER_FATAL_NO_MLOGIN' => "Bitte geben Sie Ihr Loginname zum Datenbank-Server ein.",
        'INSTALLER_FATAL_NO_MPASSWORD1' => "Sie haben kein Passwort eingegeben! Dies ist sehr unsicher und wird daher als Fehler gewertet.",
        'INSTALLER_FATAL_NO_MPASSWORD2' => "Bitte geben Sie noch die Passwortbest&auml;tigung ein.",
        'INSTALLER_FATAL_NO' => "Fataler Fehler im Installer Nr. #",
        'INSTALLER_FATAL_NO_MHOST' => "Sie haben keinen Hostnamen eingeben.",
        'INSTALLER_FATAL_NO_MDBASE' => "Bitte geben Sie einen Datenbankname ein.",
        'INSTALLER_FATAL_NO_MLOGIN' => "Bitte geben Sie Ihr Loginname zum Datenbank-Server ein.",
        'INSTALLER_FATAL_NO_MPASSWORD1' => "Sie haben kein Passwort eingegeben! Dies ist sehr unsicher und wird daher als Fehler gewertet.",
        'INSTALLER_FATAL_NO_MPASSWORD2' => "Bitte geben Sie noch die Passwortbest&auml;tigung ein.",
-       'INSTALLER_FATAL_MPASSWORD1_MPASSWORD2' => "Ihre beiden Passw&ouml;rter sind nicht identisch.",
+
+       // Installation pages titles
+       'INSTALLER_PAGE_INIT_TITLE' => "Installationsroute initialisiert gerade",
+       'INSTALLER_PAGE_WELCOME_TITLE' => "Willkommen zur Installation von {?TITLE?}, dem freien {?mt_word?}-Script.",
+       'INSTALLER_BASE_DATA_TITLE' => "Server-Pfad, Basis-URL und Webseitentitel",
+       'INSTALLER_DATABASE_CONFIG_TITLE' => "Datenbankzugangsdaten: Hostname, Login, Passwort, Tabellentyp usw.",
+       'INSTALLER_SMTP_CONFIG_TITLE' => "SMTP-Server Einstellungen",
+       'INSTALLER_OTHER_CONFIG_TITLE' => "Verschiedene Einstellungen",
+
+       // Installation pages descriptions
+       'INSTALLER_BASE_DATA_DESCRIPTION' => "Geben Sie hier den absoluten Server-Pfad (/ihr/server/pfad/) <strong>mit</strong> abschliessendem Slash (/), die Basis-URL (vorgegebene Werte stimmen meistens) und den Titel Ihres {?mt_word2?} ein.",
+       'INSTALLER_DATABASE_CONFIG_DESCRIPTION' => "Geben Sie hier die Daten vom Datenbankserver ein, die Ihnen vom Hoster mitgeteilt wurden. Es wird dann anschliessend versucht, eine Testverbindung aufzubauen.",
+       'INSTALLER_SMTP_CONFIG_DESCRIPTION' => "Geben Sie hier die Ihre Zugangsdaten zum SMTP-Server (ausgehender Mailserver) ein, wenn der mail()-Befehl auf Ihrem Server deaktiviert sein sollte. Oder lassen Sie alle Felder leer f&uuml;r Standard-Einstellungen.",
+       'INSTALLER_OTHER_CONFIG_DESCRIPTION' => "Hier k&ouml;nnen Sie weitere Einstellungen vornehmen, wie zum Beispiel den Ausgabe-Modus festlegen, in der der HTML-Code ausgegeben werden soll, usw.",
+
+       // Installation page - Base data
+       'INSTALLER_LABEL_BASE_PATH' => "Absoluter Server-Pfad:",
+       'INSTALLER_LABEL_BASE_URL' => "Basis-URL:",
+       'INSTALLER_LABEL_MAIN_TITLE' => "{?mt_word?}-Titel:",
+       'INSTALLER_LABEL_SLOGAN' => "Werbespruch:",
+       'INSTALLER_LABEL_WEBMASTER' => "E-Mail-Adresse:",
+
+       // Installation page - database configuration
+       'INSTALLER_MYSQL_HOST' => "Server-Hostname:",
+       'INSTALLER_MYSQL_DBASE' => "Datenbank:",
+       'INSTALLER_MYSQL_PREFIX' => "Pr&auml;fix f&uuml;r alle Tabellen:",
+       'INSTALLER_MYSQL_TABLE_TYPE' => "Tabellentyp:",
+       'INSTALLER_MYSQL_TABLE_TYPE_NOTICE' => "MyISAM ist meistens ausreichend.",
+       'INSTALLER_TABLE_TYPE_MYISAM' => "MyISAM (langsamer, da Tabelle gelockt wird)",
+       'INSTALLER_TABLE_TYPE_INNODB' => "InnoDB (schneller, da zweilenweis gelockt wird)",
+       'INSTALLER_MYSQL_LOGIN' => "Ihr Loginname:",
+       'INSTALLER_MYSQL_PASSWORD1' => "Ihr Passwort:",
+       'INSTALLER_MYSQL_PASSWORD2' => "Passwortwiederholung:",
+
+       // Installation page - Other settings
        'INSTALLER_OUTPUT_MODE' => "Ausgabemodus des HTML-Codes",
        'INSTALLER_OUTPUT_MODE' => "Ausgabemodus des HTML-Codes",
-       'INSTALLER_MODE_RENDER' => "HTML-Code wird vom Server komplett erzeugt und dann ausgegeben",
-       'INSTALLER_MODE_DIRECT' => "HTML-Code wird sofort ausgegegeben. (Langsam)",
-       'INSTALLER_WARN_NO_PASSWORD' => "Warnen, wenn kein Passwort angegeben wurde?",
-       'INSTALLER_SQL_IMPORT_FAILED' => "Konnte die SQL-Dateien aus <strong>install/</strong> nicht nachladen. Bitte Zugriffsrechte (CHMOD) auf die Dateien &uuml;berpr&uuml;fen. Diese sollten 644 mindestens aufweisen.",
-       'INSTALLER_CONFIG_WRITE_FOOTER' => "Scriptname, -version und -author anzeigen?",
-       'INSTALLER_PROBLEMS_DETECTED' => "Es wurden bei der Initialisierung des Installationsvorganges Probleme festgestellt.",
-       'INSTALLER_MAIN_HEADER' => "Installation des Scriptes {?TITLE?}",
-       'INSTALLER_RETURN_MYSQL_PAGE' => "Zur&uuml;ck zu den Datenbank-Einstellungen",
-       'INSTALLER_FINALIZER_FAILED' => "W&auml;hrend der Installation ist ein unerwarteter Fehler aufgetreten. Der Finalizer konnte die Installation nicht abschliessen.",
-       'INSTALLER_MAYBE_DONE' => "Die Installation ist m&ouml;glicherweise abgeschlossen oder es ist ein unerwarteter Fehler aufgetreten.",
-       'INSTALLER_FINISHED' => "Die Installation ist abgeschlossen.",
-       'INSTALLER_FIN_SECU' => "Sie sollten jetzt die Dateien <u>install.php</u> und <u>inc/install-inc.php</u> von Ihrem Server l&ouml;schen. Dies ist zwar normalerweise nicht erforderlich, Sie sollten es aber dennoch tun, um die Sicherheit zus&auml;tzlich zu erh&ouml;hen.",
-       'INSTALLER_CONTINUE_ADMIN' => "Weiter zum Administrationsbereich...",
-       'INSTALLER_CONTENT_404' => "Es wurde kein Content gefunden. Bitte melden Sie dies im <a href=\"http://bugs.mxchange.org\" rel=\"external\" target=\"_blank\">Bug-Tracker</a> und nennen Sie alle relevanten Informationen.",
+       'INSTALLER_MODE_RENDER' => "In &#36;GLOBALS &quot;rendern&quot;",
+       'INSTALLER_MODE_DIRECT' => "Im Ausgabebuffer cachen",
+       'INSTALLER_ENABLE_BACKLINK' => "Backlink zu {?SERVER_URL?} setzen?",
+       'INSTALLER_ENABLE_BACKLINK_NOTICE' => "Derzeit ist <span class=\"notice\">rel=&quot;external&quot;</span> f&uuml;r den Backlink gesetzt. Bitte nicht den Backlink eingebaut lassen und <strong>rel=&quot;nofollow&quot;</strong> verwenden. Das schadet allen.",
+
+       // Installation notes
+       'INSTALLER_BASE_PATH_NOTICE' => "Mit abschlie&szlig;endem &#47.",
+       'INSTALLER_BASE_URL_NOTICE' => "Ohne abschlie&szlig;endem &#47.",
+       'INSTALLER_SMTP_HOST_NOTICE' => "Zum Beispiel <strong>mail.ihre-domain.example</strong>",
+
+       // AJAX title
+       'INSTALLER_AJAX_ERROR_TITLE' => "AJAX-Abfrage im Installer fehlgeschlagen",
+       'INSTALLER_AJAX_WARNING_TITLE' => "Warnung: Es sind ungespeicherte &Auml;nderungen vorhanden",
+       'INSTALLER_AJAX_TEST_TITLE' => "AJAX-Testergebnis positiv",
 
 
-// SMTP input
-       'INSTALLER_TEXT_SMTP_HOST' => "SMTP-Servername (z.B. mail.provider.tld)",
-       'INSTALLER_TEXT_SMTP_USER' => "SMTP-Benutzername",
-       'INSTALLER_TEXT_SMTP_PASSWORD1' => "SMTP-Kennwort",
-       'INSTALLER_TEXT_SMTP_PASSWORD2' => "SMTP-Kennwortwiederholung",
+       // Installer switches
+       'INSTALLER_SWITCH_PLAIN' => "Kompatiblit&auml;tsmodus",
+       'INSTALLER_SWITCH_START' => "Zur Startseite zur&uuml;ckkehren ...",
+       'INSTALLER_SWITCH_AJAX' => "Zur &quot;interaktiven&quot; AJAX-Version ...",
+
+       // SMTP input
+       // @TODO Move this to e.g. ext-smtp
+       'INSTALLER_SMTP_HOST' => "SMTP-Servername:",
+       'INSTALLER_SMTP_USER' => "SMTP-Benutzername:",
+       'INSTALLER_SMTP_PASSWORD1' => "SMTP-Kennwort:",
+       'INSTALLER_SMTP_PASSWORD2' => "SMTP-Kennwortwiederholung:",
        'INSTALLER_SMTP_HOSTNAME_EMPTY' => "SMTP-Servername leer gelassen.",
        'INSTALLER_SMTP_PASSWORD1_EMPTY' => "SMTP-Passwort leer gelassen.",
        'INSTALLER_SMTP_PASSWORD2_EMPTY' => "SMTP-Passwortwiederholung leer gelassen.",
        'INSTALLER_SMTP_PASS_MISMATCH' => "SMTP-Passwort und -wiederholung stimmen nicht &uuml;berein.",
        'INSTALLER_SMTP_HOSTNAME_EMPTY' => "SMTP-Servername leer gelassen.",
        'INSTALLER_SMTP_PASSWORD1_EMPTY' => "SMTP-Passwort leer gelassen.",
        'INSTALLER_SMTP_PASSWORD2_EMPTY' => "SMTP-Passwortwiederholung leer gelassen.",
        'INSTALLER_SMTP_PASS_MISMATCH' => "SMTP-Passwort und -wiederholung stimmen nicht &uuml;berein.",
+
+       // Tab-navigation links
+       'INSTALLER_TAB_NAVIGATION_WELCOME_TITLE' => "Zur Willkommensseite",
+       'INSTALLER_TAB_NAVIGATION_WELCOME_LINK' => "Willkommen",
+       'INSTALLER_TAB_NAVIGATION_BASE_DATA_TITLE' => "Seite 1: Basis-Pfad, Titel und Slogan",
+       'INSTALLER_TAB_NAVIGATION_BASE_DATA_LINK' => "Grunddaten",
+       'INSTALLER_TAB_NAVIGATION_DATABASE_CONFIG_TITLE' => "Seite 2: Datenbank-Konfiguration",
+       'INSTALLER_TAB_NAVIGATION_DATABASE_CONFIG_LINK' => "Datenbankzugang",
+       'INSTALLER_TAB_NAVIGATION_SMTP_CONFIG_TITLE' => "Seite 3: SMTP-Daten konfigurieren",
+       'INSTALLER_TAB_NAVIGATION_SMTP_CONFIG_LINK' => "SMTP-Daten",
+       'INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_TITLE' => "Seite 5: Sonstige Grundeinstellungen",
+       'INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_LINK' => "Sonstiges",
+       'INSTALLER_TAB_NAVIGATION_OVERVIEW_TITLE' => "Installationszusammenfassung",
+       'INSTALLER_TAB_NAVIGATION_OVERVIEW_LINK' => "Zusammenfassung",
+
+       // Changed elements - base data
+       'INSTALLER_CHANGED_ELEMENT_BASE_PATH' => "Sie haben den Basis-Pfad zu allen Scripten ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_BASE_URL'  => "Sie haben die Basis-URL f&uuml;r alle URLs ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_MAIN_TITLE' => "Sie haben den {?mt_word?}-Titel ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_SLOGAN' => "Sie haben den Werbespruch ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_WEBMASTER' => "Sie haben die Email-Adresse f&uuml;r den Webmaster ge&auml;ndert.",
+
+       // Changed elements - database configuration
+       'INSTALLER_CHANGED_ELEMENT_MYSQL_HOST' => "Sie haben den Hostnamen f&uuml;r die Datenbankverbindung ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_MYSQL_DBASE' => "Sie haben den Datenbanknamen f&uuml;r die Datenbankverbindung ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_MYSQL_PREFIX' => "Sie haben den Tabellenpr&auml;fix f&uuml;r die Datenbankverbindung ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_MYSQL_TYPE' => "Sie haben den Tabellentyp f&uuml;r die Datenbankverbindung ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_MYSQL_LOGIN' => "Sie haben den Login f&uuml;r die Datenbankverbindung ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_MYSQL_PASSWORD1' => "Sie haben das Passwort f&uuml;r die Datenbankverbindung ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_MYSQL_PASSWORD2' => "Sie haben die Passwortwiederholung f&uuml;r die Datenbankverbindung ge&auml;ndert.",
+
+       // Changed elements - SMTP configuration
+       'INSTALLER_CHANGED_ELEMENT_SMTP_HOST' => "Sie haben den SMTP-Hostnamen ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_SMTP_USER' => "Sie haben den SMTP-Benutzernamen ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_SMTP_PASSWORD1' => "Sie haben das SMTP-Passwort ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_SMTP_PASSWORD2' => "Sie haben die Wiederholung f&uuml;r das SMTP-Passwort ge&auml;ndert.",
+
+       // Changed elements - other configuration
+       'INSTALLER_CHANGED_ELEMENT_OUTPUT_MODE' => "Sie haben den Ausgabemodus ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_WARN_NO_PASS' => "Sie haben die Warnung f&uuml;r ein leeres Datenbankpasswort ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_WRITE_FOOTER' => "Sie haben die Einstellung f&uuml;r das Ausgeben der Fusszeile ge&auml;ndert.",
+       'INSTALLER_CHANGED_ELEMENT_ENABLE_BACKLINK' => "Sie haben die Einstellung f&uuml;r den Backlink zu {?SERVER_URL?} ge&auml;ndert.",
+
+       // Fieldset legends
+       'INSTALLER_BASE_DATA_LEGEND_BASE_URL_PATH' => "Basis-Pfad und -URL:",
+       'INSTALLER_BASE_DATA_LEGEND_TITLE_SLOGAN' => "{?mt_word?}-Titel und Werbespruch:",
+       'INSTALLER_DATABASE_LEGEND_HOST_DBASE_PREFIX_TYPE' => "Hostname, Datenbankname, Pr&auml;fix und Tabellentyp:",
+       'INSTALLER_DATABASE_LEGEND_LOGIN_PASSWORD' => "Datenbanklogin und -passwort:",
+       'INSTALLER_SMTP_LEGEND_OPTIONAL_CONFIG' => "Optionale SMTP-Daten:",
+       'INSTALLER_OTHER_CONFIG_LEGEND_ET_CETERA' => "Sonstige Einstellungen:",
+
+       // Save changes
+       'INSTALLER_SAVE_CHANGES_FAILED' => "Die &Auml;nderungen konnten leider nicht gespeichert werden, da einige fehlerhaft sind. Bitte korregieren Sie die rot hervorgehobenen Eintr&auml;ge und probieren Sie es erneut.",
+       'INSTALLER_SAVE_CHANGES_DONE'   => "&Auml;nderungen gespeichert.",
+
+       // Post-Check - General failure messages
+       'INSTALLER_POST_CHECK_DATABASE_CONFIG_FAILED' => "Beim testweisen Aufbauen einer Datenbankverbindung ist ein Fehler entstanden: %s",
+
+       // Post-Check - Database connection
+       'INSTALLER_POST_DATABASE_PASSWORD1_EMPTY' => "Das Passwort zur Datenbank ist leer, jedoch ist die Passwortwiederholung gesetzt.",
+       'INSTALLER_POST_DATABASE_PASSWORD2_EMPTY' => "Das Passwort zur Datenbank ist gesetzt, jedoch ist die Passwortwiederholung leer.",
+       'INSTALLER_POST_DATABASE_PASSWORDS_MISMATCH' => "Die von Ihnen eingegebenen Passw&ouml;rter stimmen nicht &uuml;berein.",
+       'INSTALLER_POST_DATABASE_CONNECT_ERROR' => "Verbindung zur Datenbank fehlgeschlagen. <strong>mysql_error():</strong> <span class='data'>{%pipe,getLastSqlError%}</span>",
+       'INSTALLER_POST_DATABASE_SELECT_FAILED' => "Auswahl der Datenbank klappte nicht. <strong>mysql_error():</strong> <span class='data'>{%pipe,getLastSqlError%}</span>",
+       'INSTALLER_POST_DATABASE_ENGINES_SQL_ERROR' => "SQL-Fehler beim Abfragen der Storage-Engines. <strong>mysql_error():</strong> <span class='data'>{%pipe,getLastSqlError%}</span>",
+       'INSTALLER_POST_DATABASE_NO_ENGINES_ACTIVE' => "Es konnten keine aktiven Storage-Engines gefunden werden. Bitte kontaktieren Sie Ihren Hoster.",
+       'INSTALLER_POST_DATABASE_ENGINE_UNSUPPORTED' => "Die von Ihnen ausgew&auml;hlte Storage-Engine wird nicht unterst&uuml;tzt. Meistens gilt dies f&uuml;r InnoDB, dann m&uuml;ssen Sie einfach MyISAM nehmen.",
+       'INSTALLER_POST_DATABASE_IN_USE' => "Die von Ihnen ausgew&auml;hlte Datenbank weist Tabellen auf, die von einer &auml;lteren Installation stammen. Damit keine Datenverluste entstehen, wurde die Installation abgebrochen. Bitte verwenden Sie eine neue Datenbank oder leeren Sie die alte.",
+
+       // Final check on 'overview' page
+       'INSTALLER_OVERVIEW_FINAL_CHECK_FAILED' => "Leider kann die Installation nicht abgeschlossen werden, da nicht alle Angaben vollst&auml;ndig und korrekt sind.",
+       'INSTALLER_OVERVIEW_FINAL_CHECK_DONE' => "Die Installation kann nun abgeschlossen werden.",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 8aaff21bc6404fce2d5fc27adc6e7c8537051e8c..6c8cb3d487e9371a4234e397651c5d4ac40d33ec 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index bf94ffe72e3b6f0258a9ed5983ea09fc13354563..fce79a7a1d8ef5d3b28d6c300fedd4353afa739a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,6 +54,21 @@ addMessages(array(
        'MEMBER_SUBMIT_CODE' => "Abschicken",
        'MEMBER_MAILID_TOTAL_POINTS' => "Ihr Kontostand betr&auml;gt jetzt <span class=\"data\">{%%pipe,translateComma=%s%%} {?POINTS?}</span>.",
        'MEMBER_MAILID_CLICK_BUTTON' => "Einmal den Button anklicken",
        'MEMBER_SUBMIT_CODE' => "Abschicken",
        'MEMBER_MAILID_TOTAL_POINTS' => "Ihr Kontostand betr&auml;gt jetzt <span class=\"data\">{%%pipe,translateComma=%s%%} {?POINTS?}</span>.",
        'MEMBER_MAILID_CLICK_BUTTON' => "Einmal den Button anklicken",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_MAILID_OKAY'     => "Verg&uuml;tung einer Mailbest&auml;tigung",
+       'POINTS_SUBJECT_MAILID_OKAY_REF' => "Referralverg&uuml;tung einer Mailbest&auml;tigung",
+       'POINTS_SUBJECT_MAILID_PAYBACK'  => "Best&auml;tungscode falsch",
+
+       // Admin - subject lines
+       'ADMIN_DIRECT_MAILID_OKAY_SUBJECT' => "Direktgutschrift von korrekte Mailbest&auml;tigung aufgebucht",
+       'ADMIN_REFERRAL_MAILID_OKAY_SUBJECT' => "Referralgutschrift von korrekte Mailbest&auml;tigung aufgebucht",
+       'ADMIN_REFERRAL_MAILID_OKAY_REF_SUBJECT' => "Anteilige Referralgutschrift von korrekte Mailbest&auml;tigung aufgebucht",
+
+       // Member - subject lines
+       'MEMBER_DIRECT_MAILID_OKAY_SUBJECT' => "Direktgutschrift durch korrekte Mailbest&auml;tigung erhalten",
+       'MEMBER_REFERRAL_MAILID_OKAY_SUBJECT' => "Referralgutschrift durch korrekte Mailbest&auml;tigung erhalten",
+       'MEMBER_REFERRAL_MAILID_OKAY_REF_SUBJECT' => "Anteilige Referralgutschrift durch korrekte Mailbest&auml;tigung erhalten",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 76541172b9fdb33c02873896fa44a4f7d253267b..697da8c6d903024cf22192347d69bb1b9b098d34 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index f64a8bf28d415a4e6e087fb67086d6b0ff2b452e..c00390dc6cbe15cfcd70f150497808f113bd30e2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 156309f8c80cada46010348a39a4d1aaade2a450..3c008b3f0d6fce01822d8feedbfbfd7c2fef2332 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e42f52342115dc7d740b604fef5c895d646c5cae..27546c2e157dbffdd7e6ae855cac00279f35fa28 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5293a5f233685af8cec5730375d421c01f8484aa..339acdb82c4060eac076fa1b791bc7f926535b03 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2aff468c8fd790bdd2c99e14b4ca624342a43c7e..77f466a2d56bed092b3b11deb316ba81584fef8a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -131,10 +131,10 @@ addMessages(array(
        'ADMIN_NETWORK_TYPE_HANDLER_REMOVED' => "Es wurden <span class=\"data\">%s</span> Werbeart-Handler gel&ouml;scht.",
        'ADMIN_NETWORK_REQUEST_PARAMETER_REMOVED' => "Es wurden <span class=\"data\">%s</span> Abfrageparameter gel&ouml;scht.",
        // - Form notes
        'ADMIN_NETWORK_TYPE_HANDLER_REMOVED' => "Es wurden <span class=\"data\">%s</span> Werbeart-Handler gel&ouml;scht.",
        'ADMIN_NETWORK_REQUEST_PARAMETER_REMOVED' => "Es wurden <span class=\"data\">%s</span> Abfrageparameter gel&ouml;scht.",
        // - Form notes
-       'ADMIN_ADD_NETWORK_NOTICE' => "Mehr Datenschutz bei POST-Abfragen bedeutet, dass die von den Internetanbietern betriebenen Caches (Proxy) die POST-Daten nicht mitloggen (so eine Art Kodex). Der Zeichensatz ist meistens ISO-8859-1 oder WINDOWS-1252.",
+       'ADMIN_ADD_NETWORK_NOTICE' => "Besserer Datenschutz bei POST-Abfragen bedeutet, dass die von den Internetanbietern betriebenen Caches (Proxy) die POST-Daten nicht mitloggen (so eine Art Kodex). Der Zeichensatz ist meistens ISO-8859-1 oder WINDOWS-1252.",
        'ADMIN_LIST_NETWORK_NOTICE' => "Seien Sie mit dem L&ouml;schen und Editieren vonallgemeinen Daten der Werbenetzwerke sehr vorsichtig. Sie sollten hierzu R&uuml;cksprache <a href=\"http://forum.mxchange.org/forum-43.html\" target=\"_blank\" title=\"Direktlink zum Forum\">im Forum</a> halten.",
        'ADMIN_LIST_NETWORK_REFERRAL_LINK_NOTICE' => "Wenn Sie Ihren Referral-Link eingeben, verwenden Sie bitte nicht dieses Formular, sondern das unter [<a href=\"{%url=modules.php?module=admin&amp;what=config_network_api%}\">API-Zugangsdaten</a>]. Sollten Sie hier Ihren Referral-Link eingetragen haben, ist dies nicht weiter schlimm, er wird jedoch nicht ver&ouml;ffentlicht.",
        'ADMIN_LIST_NETWORK_NOTICE' => "Seien Sie mit dem L&ouml;schen und Editieren vonallgemeinen Daten der Werbenetzwerke sehr vorsichtig. Sie sollten hierzu R&uuml;cksprache <a href=\"http://forum.mxchange.org/forum-43.html\" target=\"_blank\" title=\"Direktlink zum Forum\">im Forum</a> halten.",
        'ADMIN_LIST_NETWORK_REFERRAL_LINK_NOTICE' => "Wenn Sie Ihren Referral-Link eingeben, verwenden Sie bitte nicht dieses Formular, sondern das unter [<a href=\"{%url=modules.php?module=admin&amp;what=config_network_api%}\">API-Zugangsdaten</a>]. Sollten Sie hier Ihren Referral-Link eingetragen haben, ist dies nicht weiter schlimm, er wird jedoch nicht ver&ouml;ffentlicht.",
-       'ADMIN_ADD_NETWORK_HANDLER_TYPE_NOTICE' => "F&uuml;gen Sie hier weitere Werbearten-Handler dem ausgw&auml;hlten Werbenetzwerk hinzu. Die Klick- und Banner-URL m&uuml;ssen dabei Platzhalter enthalten, die Sie der Dokumentation und <a href=\"http://forum.mxchange.org/forum-43.html\" rel=\"external\" title=\"Direkt-Link zur Forumkategorie Werbenetzwerke\" target=\"_blank\">dem Forum</a> entnehmen k&ouml;nnen. Die API-URL muss nur bis zum Fragezeichen eingegeben werden. Richtig: <strong>http://www.some-sponsor.invalid/inteface/script.php</strong>, falsch: <strike>http://www.some-sponsor.invalid/inteface/script.php?uid=123&amp;pw=xyzxyzxyz</strike>",
+       'ADMIN_ADD_NETWORK_HANDLER_TYPE_NOTICE' => "F&uuml;gen Sie hier weitere Werbearten-Handler dem ausgw&auml;hlten Werbenetzwerk hinzu. Die Klick- und Banner-URL m&uuml;ssen dabei Platzhalter enthalten, die Sie der Dokumentation und <a href=\"http://forum.mxchange.org/forum-43.html\" rel=\"external\" title=\"Direkt-Link zur Forumkategorie Werbenetzwerke\" target=\"_blank\">dem Forum</a> entnehmen k&ouml;nnen. Die API-URL muss nur bis zum Fragezeichen eingegeben werden. Richtig: <strong>http://www.some-sponsor.example/inteface/script.php</strong>, falsch: <strike>http://www.some-sponsor.example/inteface/script.php?uid=123&amp;pw=xyzxyzxyz</strike>",
        'ADMIN_NETWORK_TYPE_HANDLER_LIST_NOTICE' => "Seien Sie mit dem L&ouml;schen und Editieren von Werbeart-Handlern sehr vorsichtig. Sie sollten hierzu R&uuml;cksprache <a href=\"http://forum.mxchange.org/forum-43.html\" target=\"_blank\" title=\"Direktlink zum Forum\">im Forum</a> halten. Dokumentation zu den Platzhaltern (&#37;FOO&#37;, &#37;BAR&#37; usw.) finden Sie in der Dokumentation DOCs/de/network/README.txt.",
        'ADMIN_ADD_NETWORK_REQUEST_PARAMETER_NOTICE' => "F&uuml;gen Sie hier weitere Abfrageparameter dem ausgw&auml;hlten Werbenetzwerk hinzu. Geben Sie keine Werte an, wie z.B. 5 Sekunden oder 30 Mails, geben Sie bei Abfrageparameter den GET- bzw. POST-Parameternamen an.",
        'ADMIN_NETWORK_REQUEST_PARAMETER_LIST_NOTICE' => "Seien Sie mit dem L&ouml;schen und Editieren von Abfrageparameter sehr vorsichtig. Sie sollten hierzu R&uuml;cksprache <a href=\"http://forum.mxchange.org/forum-43.html\" target=\"_blank\" title=\"Direktlink zum Forum\">im Forum</a> halten. Dokumentation zu den Abfragenamen (&#37;FOO&#37;, &#37;BAR&#37; usw.) finden Sie in der Dokumentation DOCs/de/network/README.txt.",
        'ADMIN_NETWORK_TYPE_HANDLER_LIST_NOTICE' => "Seien Sie mit dem L&ouml;schen und Editieren von Werbeart-Handlern sehr vorsichtig. Sie sollten hierzu R&uuml;cksprache <a href=\"http://forum.mxchange.org/forum-43.html\" target=\"_blank\" title=\"Direktlink zum Forum\">im Forum</a> halten. Dokumentation zu den Platzhaltern (&#37;FOO&#37;, &#37;BAR&#37; usw.) finden Sie in der Dokumentation DOCs/de/network/README.txt.",
        'ADMIN_ADD_NETWORK_REQUEST_PARAMETER_NOTICE' => "F&uuml;gen Sie hier weitere Abfrageparameter dem ausgw&auml;hlten Werbenetzwerk hinzu. Geben Sie keine Werte an, wie z.B. 5 Sekunden oder 30 Mails, geben Sie bei Abfrageparameter den GET- bzw. POST-Parameternamen an.",
        'ADMIN_NETWORK_REQUEST_PARAMETER_LIST_NOTICE' => "Seien Sie mit dem L&ouml;schen und Editieren von Abfrageparameter sehr vorsichtig. Sie sollten hierzu R&uuml;cksprache <a href=\"http://forum.mxchange.org/forum-43.html\" target=\"_blank\" title=\"Direktlink zum Forum\">im Forum</a> halten. Dokumentation zu den Abfragenamen (&#37;FOO&#37;, &#37;BAR&#37; usw.) finden Sie in der Dokumentation DOCs/de/network/README.txt.",
@@ -190,7 +190,7 @@ addMessages(array(
        'ADMIN_NETWORK_ROW_SEPARATOR' => "Trennzeichen f. Zeilen:",
        'ADMIN_NETWORK_REQUEST_TYPE' => "HTTP-Abfragetyp:",
        'ADMIN_NETWORK_REQUEST_TYPE_GET' => "GET (meistens richtig)",
        'ADMIN_NETWORK_ROW_SEPARATOR' => "Trennzeichen f. Zeilen:",
        'ADMIN_NETWORK_REQUEST_TYPE' => "HTTP-Abfragetyp:",
        'ADMIN_NETWORK_REQUEST_TYPE_GET' => "GET (meistens richtig)",
-       'ADMIN_NETWORK_REQUEST_TYPE_POST' => "POST (mehr Datenschutz)",
+       'ADMIN_NETWORK_REQUEST_TYPE_POST' => "POST (besserer Datenschutz)",
        'ADMIN_NETWORK_CHARSET' => "Zeichensatz:",
        'ADMIN_NETWORK_REQUIRE_ID_CARD' => "ID verlangt?",
        'ADMIN_NETWORK_SEPARATOR' => "Trennzeichen:",
        'ADMIN_NETWORK_CHARSET' => "Zeichensatz:",
        'ADMIN_NETWORK_REQUIRE_ID_CARD' => "ID verlangt?",
        'ADMIN_NETWORK_SEPARATOR' => "Trennzeichen:",
index e36fc912e7991bdd4d7c64ab2d8a65c429176596..f42384f95b501213ef6a2f82572a11cd4d7c7e8e 100644 (file)
@@ -19,7 +19,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ea6e65994bb41b618b4de8bf1f2114e0a26a3130..ed02ab9ef2b0f593d4f1d0436c42b0c0dae2bcf7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -48,9 +48,9 @@ addMessages(array(
        'MEMBER_NICKNAME_CHANGE_SUBMIT' => "Nickname &auml;ndern",
        'MEMBER_NICKNAME_ALREADY_IN_USE' => "Der von Ihnen eingegebene Nickname wird bereits verwendet.",
        'MEMBER_NICKNAME_SAVED' => "Nickname wurde gespeichert.",
        'MEMBER_NICKNAME_CHANGE_SUBMIT' => "Nickname &auml;ndern",
        'MEMBER_NICKNAME_ALREADY_IN_USE' => "Der von Ihnen eingegebene Nickname wird bereits verwendet.",
        'MEMBER_NICKNAME_SAVED' => "Nickname wurde gespeichert.",
-       'GUEST_ENTER_LOGIN_NICKNAME' => "Nickname o. Login-Id",
+       'GUEST_ENTER_LOGIN_NICKNAME' => "Nickname o. Mitglieds-Id",
        'MEMBER_NICKNAME_ALLOWED_CHARS' => "Erlaubte Zeichen:",
        'MEMBER_NICKNAME_ALLOWED_CHARS' => "Erlaubte Zeichen:",
-       'MEMBER_NICKNAME_IS_INVALID' => "Ung&uuml;tige Zeichen im Nicknamen gefunden oder ist zu kurz.",
+       'MEMBER_NICKNAME_IS_INVALID' => "Ung&uuml;ltige Zeichen im Nicknamen gefunden oder ist zu kurz.",
        'MEMBER_NICKNAME_YOUR_REFERRAL_LINK' => "Ihr Nickname-Reflink",
        'MEMBER_NO_NICKNAME_SET' => "Sie haben noch keinen Nickname eingerichtet! Damit k&ouml;nnen Sie sich alternativ zur Mitglied-Id einloggen.",
        'MEMBER_PLEASE_CLICK_NICKNAME_FORM' => "Hier k&ouml;nnen Sie sich nun einen einrichten...",
        'MEMBER_NICKNAME_YOUR_REFERRAL_LINK' => "Ihr Nickname-Reflink",
        'MEMBER_NO_NICKNAME_SET' => "Sie haben noch keinen Nickname eingerichtet! Damit k&ouml;nnen Sie sich alternativ zur Mitglied-Id einloggen.",
        'MEMBER_PLEASE_CLICK_NICKNAME_FORM' => "Hier k&ouml;nnen Sie sich nun einen einrichten...",
index d6be1bd161d59060d7e2ed850ea51c06313c7fd5..3eaf6d456bb1fff773ee5899f140da13cbef85d8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5102b35e3715ca349a8912f6da646c03530e8c04..9395238042b28e645c35ef113de12f1278b3be66 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 80590346f1b9cd199cdd5330780b3d441759f3f4..7bb0e639c204658cc625987048654c724c84f213 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,57 +42,67 @@ if (!defined('__SECURITY')) {
 
 // Language definitions
 addMessages(array(
 
 // Language definitions
 addMessages(array(
-       'ADMIN_CONFIG_ORDER_TITLE' => "Einstellungen - Mailbuchung",
-       'ADMIN_CONFIG_ORDER_MISC_TITLE' => "Weitere Einstellungen",
+       // Admin configuration
+       'ADMIN_CONFIG_ORDER_TITLE' => "Einstellungen an der Mailbuchung",
        'ADMIN_CONFIG_ORDER_SELECT_MAX' => "Wie viele Mailbuchungen k&ouml;nnen die Mitglieder maximal pro Tag versenden?",
        'ADMIN_CONFIG_ORDER_SELECT_MAX' => "Wie viele Mailbuchungen k&ouml;nnen die Mitglieder maximal pro Tag versenden?",
-       'ADMIN_CONFIG_ORDER_OPTION_MAX' => "Die Mitglieder k&ouml;nnen so viele Mailbuchungen wie m&ouml;glich t&auml;tigen.",
+       'ADMIN_CONFIG_ORDER_OPTION_MAX' => "Die Mitglieder k&ouml;nnen so viele Mailbuchungen wie m&ouml;glich t&auml;tigen (bis alle Empf&auml;nger aufgebraucht sind).",
        'ADMIN_CONFIG_ORDER_OPTION_ORDER' => "Die Mitglieder k&ouml;nen nur so viele Mailbuchungen t&auml;tigen, wie sie den Mailempfang eingestellt haben.",
        'ADMIN_CONFIG_ORDER_MIN_RECEIVER_PER_ORDER' => "Minimale Anzahl Empf&auml;nger pro Mailbuchung",
        'ADMIN_CONFIG_ORDER_OPTION_ORDER' => "Die Mitglieder k&ouml;nen nur so viele Mailbuchungen t&auml;tigen, wie sie den Mailempfang eingestellt haben.",
        'ADMIN_CONFIG_ORDER_MIN_RECEIVER_PER_ORDER' => "Minimale Anzahl Empf&auml;nger pro Mailbuchung",
-       'ADMIN_ORDER_SELECTION_COLUMN' => "Tabellenspalte, nach der umsortiert werden soll",
-       'ADMIN_ORDER_SELECTION_MODE' => "Sortierreihenfolge",
-       'ADMIN_ORDER_SELECTION_SETTINGS' => "Auswahlverfahren der Empf&auml;nger",
+       'ADMIN_CONFIG_ORDER_SELECTION_COLUMN' => "Tabellenspalte, nach der umsortiert werden soll",
+       'ADMIN_CONFIG_ORDER_SELECTION_MODE' => "Sortierreihenfolge",
        'ADMIN_CONFIG_MAX_TEXT_LENGTH' => "Maximale L&auml;nge des Werbetextes",
        'ADMIN_CONFIG_MAX_TEXT_LENGTH' => "Maximale L&auml;nge des Werbetextes",
-       'ADMIN_CONFIG_MAX_UNCONFIRMED_MAILS' => "Maximale Anzahl unbest. Mails (Mailbuchung)",
+       'ADMIN_CONFIG_MAX_UNCONFIRMED_MAILS' => "Maximale erlaubter Anzahl unbest. Mails um eine Mailbuchung durchzuf&uuml;hren",
        'ADMIN_CONFIG_CHECK_EMAIL_TEXT' => "Sind URLs im Werbetext erlaubt?",
        'ADMIN_CONFIG_CHECK_EMAIL_SUBJECT' => "Sind URLs in der Betreffzeile erlaubt?",
        'ADMIN_CONFIG_URL_BLACKLIST' => "Black-Liste f&uuml;r gebuchte URLs aktivieren?",
        'ADMIN_CONFIG_CHECK_EMAIL_TEXT' => "Sind URLs im Werbetext erlaubt?",
        'ADMIN_CONFIG_CHECK_EMAIL_SUBJECT' => "Sind URLs in der Betreffzeile erlaubt?",
        'ADMIN_CONFIG_URL_BLACKLIST' => "Black-Liste f&uuml;r gebuchte URLs aktivieren?",
+       'ADMIN_CONFIG_ORDER_NOTICE' => "Das Auswahlverfahren von Mailempf&auml;ngern wirkt sich nur auf kleinere Buchungen - mit weniger Empf&auml;nger als maximal m&ouml;glich - aus.",
 
 
+       // Admin config - repay options
+       'ADMIN_CONFIG_REPAY_POINTS_REPAY' => "Dem Mitglied wieder gutschreiben",
+       'ADMIN_CONFIG_REPAY_POINTS_JACKPOT' => "In den Jackpot legen",
+       'ADMIN_CONFIG_REPAY_POINTS_SHRED' => "Nicht gutschreiben (verf&auml;llt dann)",
+       'ADMIN_REPAY_ON_DELETE_MODE' => "Wenn Sie eine Mailbuchung l&ouml;schen, wie sollen die ausgegebenen {?POINTS?} gehandhabt werden?",
+
+       // Admin config - legends
+       'ADMIN_CONFIG_ORDER_SELECTION_LEGEND' => "Auswahlverfahren der Empf&auml;nger",
+       'ADMIN_CONFIG_ORDER_MISC_LEGEND' => "Sonstige Einstellungen",
+       'ADMIN_CONFIG_ORDER_SELECT_MAX_LEGEND' => "Maximale Buchungen pro Tag, pro Mitglied",
+       // @TODO Find better text
+       'ADMIN_CONFIG_ORDER_MEMBER_LEGEND' => "Weitere Einstellungen",
+
+       // Admin config - columns
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_USERID' => "Mitgliedsnummer",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_ZIP' => "Postleitzahl",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_COUNTRY' => "Land",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_EMAIL' => "EMail-Adresse",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_BIRTH_YEAR' => "Geburtsjahr",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_LAST_ONLINE' => "Als letztes Online",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_REFERRAL_CLICKS' => "Klicks auf Ref-Link",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_TOTAL_LOGINS' => "Gesamtlogins",
+       'ADMIN_CONFIG_ORDER_SELECT_COLUMN_MAIL_ORDERS' => "Heutige Mailbuchungen",
+
+       // Member strings
        'MEMBER_ORDER_ALLOWED_RECEIVE' => "Sie k&ouml;nnen heute noch <span class=\"data\">%s</span> von <span class=\"data\">%s</span> Mailbuchungen aufgeben.",
        'MEMBER_ORDER_ALLOWED_MAX' => "Sie k&ouml;nnen solange Mailbuchungen aufgeben, bis alle Mitglieder nicht mehr empfangsbereit sind.",
        'MEMBER_ORDER_ALLOWED_UNKNOWN' => "Fehler in Konfiguration erkannt! cfg=<span class=\"data\">{?order_max_full?}</span> Bitte den Administrator benachrichtigen.",
        'MEMBER_ORDER_MAX_ALLOWED' => "Maximale Mailbuchungen",
        'MEMBER_ORDER_ALLOWED_EXHAUSTED' => "Sie k&ouml;nnen keine weiteren Mails mehr versenden, oder stellen Sie bitte den Empfang h&ouml;her ein.",
        'MEMBER_ORDER_ALLOWED_RECEIVE' => "Sie k&ouml;nnen heute noch <span class=\"data\">%s</span> von <span class=\"data\">%s</span> Mailbuchungen aufgeben.",
        'MEMBER_ORDER_ALLOWED_MAX' => "Sie k&ouml;nnen solange Mailbuchungen aufgeben, bis alle Mitglieder nicht mehr empfangsbereit sind.",
        'MEMBER_ORDER_ALLOWED_UNKNOWN' => "Fehler in Konfiguration erkannt! cfg=<span class=\"data\">{?order_max_full?}</span> Bitte den Administrator benachrichtigen.",
        'MEMBER_ORDER_MAX_ALLOWED' => "Maximale Mailbuchungen",
        'MEMBER_ORDER_ALLOWED_EXHAUSTED' => "Sie k&ouml;nnen keine weiteren Mails mehr versenden, oder stellen Sie bitte den Empfang h&ouml;her ein.",
-       'MEMBER_ENTER_INVALID_URL' => "Ung&uuml;tige URL eingegeben.",
+       'MEMBER_ENTER_INVALID_URL' => "Ung&uuml;ltige URL eingegeben.",
        'MEMBER_NO_MAIL_TYPE_SELECTED' => "Bitte w&auml;hlen Sie eine Mailart aus.",
        'MEMBER_ORDER_NO_POINTS' => "Sie haben keine {?POINTS?} mehr zum Versenden &uuml;brig.",
        'MEMBER_ORDER_NO_PAYMENTS' => "Der Admin dieses {?mt_word3?} hat noch keine Mailarten definiert.",
        'MEMBER_ORDER_LINKS_LEFT' => "Sie haben <span class=\"data\">%s</span> unbest&auml;tigte Mails. Bitte best&auml;tigen Sie diese zuerst. Wenn Sie weniger als <span class=\"data\">{?unconfirmed?}</span> Mails im Account haben, k&ouml;nnen Sie auch wieder buchen.",
 
        'MEMBER_NO_MAIL_TYPE_SELECTED' => "Bitte w&auml;hlen Sie eine Mailart aus.",
        'MEMBER_ORDER_NO_POINTS' => "Sie haben keine {?POINTS?} mehr zum Versenden &uuml;brig.",
        'MEMBER_ORDER_NO_PAYMENTS' => "Der Admin dieses {?mt_word3?} hat noch keine Mailarten definiert.",
        'MEMBER_ORDER_LINKS_LEFT' => "Sie haben <span class=\"data\">%s</span> unbest&auml;tigte Mails. Bitte best&auml;tigen Sie diese zuerst. Wenn Sie weniger als <span class=\"data\">{?unconfirmed?}</span> Mails im Account haben, k&ouml;nnen Sie auch wieder buchen.",
 
-       'ADMIN_ORDER_SELECT_COLUMN_USERID' => "Mitgliedsnummer",
-       'ADMIN_ORDER_SELECT_COLUMN_ZIP' => "Postleitzahl",
-       'ADMIN_ORDER_SELECT_COLUMN_COUNTRY' => "Land",
-       'ADMIN_ORDER_SELECT_COLUMN_EMAIL' => "EMail-Adresse",
-       'ADMIN_ORDER_SELECT_COLUMN_BIRTH_YEAR' => "Geburtsjahr",
-       'ADMIN_ORDER_SELECT_COLUMN_LAST_ONLINE' => "Als letztes Online",
-       'ADMIN_ORDER_SELECT_COLUMN_REFERRAL_CLICKS' => "Klicks auf Ref-Link",
-       'ADMIN_ORDER_SELECT_COLUMN_TOTAL_LOGINS' => "Gesamtlogins",
-       'ADMIN_ORDER_SELECT_COLUMN_MAIL_ORDERS' => "Heutige Mailbuchungen",
-
-       'ORDER_DEFAULT_SUBJECT' => "Betreffzeile in allen Mails",
-       'ORDER_DEFAULT_TEXT'    => "Geben Sie hier Ihren Werbetext ein.",
        'ADMIN_AUTOSEND_INACTIVE' => "Der Auto-Versand ist in Ihrem {?mt_word?} derzeit deaktiviert. Bitte loggen Sie sich in den Admin-Bereich ein und schalten Sie diese Mailbuchung frei.",
        'ADMIN_AUTOSEND_ACTIVE' => "Der Auto-Versand ist in Ihrem {?mt_word?} derzeit aktiviert. Die Mailbuchung wird aktiviert und dann automatisch versand.",
        'MEMBER_AUTOSEND_INACTIVE' => "Der Auto-Versand ist in unserem {?mt_word?} derzeit deaktiviert. Ihre Mailbuchung wird bald von einem Administrator &uuml;berpr&uuml;ft und dann freigegeben.",
        'MEMBER_AUTOSEND_ACTIVE' => "Der Auto-Versand ist in unserem {?mt_word?} derzeit aktiviert. Ihr Mailbuchung wurde aktiviert und wird bald automatisch versant.",
 
        'ADMIN_AUTOSEND_INACTIVE' => "Der Auto-Versand ist in Ihrem {?mt_word?} derzeit deaktiviert. Bitte loggen Sie sich in den Admin-Bereich ein und schalten Sie diese Mailbuchung frei.",
        'ADMIN_AUTOSEND_ACTIVE' => "Der Auto-Versand ist in Ihrem {?mt_word?} derzeit aktiviert. Die Mailbuchung wird aktiviert und dann automatisch versand.",
        'MEMBER_AUTOSEND_INACTIVE' => "Der Auto-Versand ist in unserem {?mt_word?} derzeit deaktiviert. Ihre Mailbuchung wird bald von einem Administrator &uuml;berpr&uuml;ft und dann freigegeben.",
        'MEMBER_AUTOSEND_ACTIVE' => "Der Auto-Versand ist in unserem {?mt_word?} derzeit aktiviert. Ihr Mailbuchung wurde aktiviert und wird bald automatisch versant.",
 
-// Repay deleted mails constants
-       'ADMIN_CONFIG_REPAY_POINTS_REPAY' => "Dem Mitglied wieder gutschreiben",
-       'ADMIN_CONFIG_REPAY_POINTS_JACKPOT' => "In den Jackpot legen",
-       'ADMIN_CONFIG_REPAY_POINTS_SHRED' => "Nicht gutschreiben (verf&auml;llt dann)",
-       'ADMIN_REPAY_ON_DELETE_MODE' => "Wenn Sie eine Mailbuchung l&ouml;schen, wie sollen die ausgegebenen {?POINTS?} gehandhabt werden?",
-
        'ADMIN_TASK_TYPE_MEMBER_ORDER' => "Mailbuchung vom Mitglied",
        'ADMIN_UNLOCK_EMAIL_LINK' => "Mailbuchung ansehen",
        'ADMIN_TASK_TYPE_MEMBER_ORDER' => "Mailbuchung vom Mitglied",
        'ADMIN_UNLOCK_EMAIL_LINK' => "Mailbuchung ansehen",
+
+       // Points accounts
+       'POINTS_ACCOUNT_TYPE_ORDER_POINTS' => "Werbeguthaben",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index f031df28de8b29edfcbec769efeb20e5c6fdde64..cbecbe7e72a8ea2c1db271f437af046ef5ed15eb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -78,7 +78,7 @@ addMessages(array(
        'ADMIN_CONFIG_MINIMUM_AGE' => "Ab welchem Mindestalter d&uuml;rfen sich Ihre Mitglieder anmelden?",
        'ADMIN_CONFIG_SQL_TITLE' => "SQL-Einstellungen",
        'ADMIN_CONFIG_DISPLAY_DEBUG_SQLS' => "Sollen die SQL-Abfragen f&uuml;r Administratoren zu Debug-Zwecken angezeigt werden?.  Das Einschalten dieser Einstellung kann enorme Performanceverluste bedeuten.",
        'ADMIN_CONFIG_MINIMUM_AGE' => "Ab welchem Mindestalter d&uuml;rfen sich Ihre Mitglieder anmelden?",
        'ADMIN_CONFIG_SQL_TITLE' => "SQL-Einstellungen",
        'ADMIN_CONFIG_DISPLAY_DEBUG_SQLS' => "Sollen die SQL-Abfragen f&uuml;r Administratoren zu Debug-Zwecken angezeigt werden?.  Das Einschalten dieser Einstellung kann enorme Performanceverluste bedeuten.",
-       'ADMIN_CONFIG_INTERNAL_STATS_TITLE' => "Interne Statistik Einstellungen",
+       'ADMIN_CONFIG_INTERNAL_STATS_TITLE' => "Interne Statistik-Einstellungen",
        'ADMIN_CONFIG_INTERNAL_STATS_ENABLED' => "Sollen die internen Statistiken eingeschaltet sein? Das Abschalten dieser Statistiken kann etwas Performance bringen, ist aber f&uuml;r Performancemessungen vorraussetzend.",
 ));
 
        'ADMIN_CONFIG_INTERNAL_STATS_ENABLED' => "Sollen die internen Statistiken eingeschaltet sein? Das Abschalten dieser Statistiken kann etwas Performance bringen, ist aber f&uuml;r Performancemessungen vorraussetzend.",
 ));
 
index 0ccc2cfc331a450e9bbfaeb4ede45b1d86449e05..0defc12a60bdb255fbf07fe84564e9a05c6ec307 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -100,7 +100,7 @@ addMessages(array(
        'MEMBER_PAYOUT_ID_INVALID' => "Auszahlungs-Id ist ung&uuml;ltig. Bitte Support benachrichtigen.",
        'MEMBER_PAYOUT_POINTS_NOT_ENOUGTH' => "Sie haben nicht ausreichend {?POINTS?} angesammelt.",
        'MEMBER_PAYOUT_NOW_TITLE' => "Auszahlungsanforderung an uns senden:",
        'MEMBER_PAYOUT_ID_INVALID' => "Auszahlungs-Id ist ung&uuml;ltig. Bitte Support benachrichtigen.",
        'MEMBER_PAYOUT_POINTS_NOT_ENOUGTH' => "Sie haben nicht ausreichend {?POINTS?} angesammelt.",
        'MEMBER_PAYOUT_NOW_TITLE' => "Auszahlungsanforderung an uns senden:",
-       'MEMBER_PAYOUT_SEND_NOW' => "Auszahlung anfordern",
+       'MEMBER_PAYOUT_SEND_SUBMIT' => "Auszahlung anfordern",
        'MEMBER_PAYOUT_SELECTED_TYPE' => "Auszahlungstyp",
        'MEMBER_PAYOUT_MAXIMUM_POSSIBLE' => "Maximal auszahlbar",
        'MEMBER_PAYOUT_REQUESTED_AMOUNT' => "Auszuzahlender Betrag",
        'MEMBER_PAYOUT_SELECTED_TYPE' => "Auszahlungstyp",
        'MEMBER_PAYOUT_MAXIMUM_POSSIBLE' => "Maximal auszahlbar",
        'MEMBER_PAYOUT_REQUESTED_AMOUNT' => "Auszuzahlender Betrag",
index d916ce1ef5ed07bf59d78c14b6ab2fa0995ba5a6..c8c667e215442c410861e020c7eca46cf410c3a0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4e29715476f54de09b626826d104d819a6a7644c..e38abaf048bbb577e4a24cd896a335d5383ff9e1 100644 (file)
@@ -18,7 +18,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,108 +44,121 @@ if (!defined('__SECURITY')) {
 
 // Language definitions
 addMessages(array(
 
 // Language definitions
 addMessages(array(
-       'ADMIN_RALLYE_ADD_NEW_TITLE' => "Neue Ref-Rallye hinzuf&uuml;gen",
-       'ADD_RALLYE' => "Rallye hinzuf&uuml;gen",
-       'ADD_RALLYE_PRICE' => "Preis hinzuf&uuml;gen",
-       'RALLYE_START_DAY' => "Beginn der Referral-Rallye",
-       'RALLYE_END_DAY' => "Ende der Referral-Rallye",
-       'RALLYE_AUTO_ADD_USER' => "Neue Mitglieder nehmen automatisch dran teil",
-       'RALLYE_IS_ACTIVE' => "Rallye ist aktiv",
-       'RALLYE_SEND_NOTIFY' => "Autom. Benachrichtigung an Mitglieder senden",
-       'RALLYE_OVERLAP_TIMES' => "Rallyes d&uuml;rfen nicht zeitgleich laufen.",
-       'RALLYE_TITLE' => "Rallye-Titel",
-       'RALLYE_DESCR' => "Kurze Beschreibung / Freier HTML-Code der Referral-Rallye",
-       'RALLYE_TEMPLATE' => "Template (anstelle freien HTML-Codes)",
-       'RALLYE_PROBLEM_CREATE' => "Problem beim Erzeugen der Referral-Rallye.",
-       'RALLYE_NO_RALLYES_SETUP' => "Bitte f&uuml;gen Sie zuerst eine neue Referral-Rallye hinzu.",
-       'RALLYE_CONFIG_PRICES' => "Preise einrichten f&uuml;r Referral-Rallye <span class=\"data\">%s</span>",
-       'RALLYE_PRICE_LEVEL' => "Platz eingeben (1, 2, 3, usw.)",
-       'RALLYE_PRICE_POINTS' => "Preis in {?POINTS?}",
-       'RALLYE_PRICE_INFOS' => "Preisbeschreibung (<span class=\"tiny\">Sie k&ouml;nnen auch nur die Beschreibung eingeben!</span>)",
-       'RALLYE_PRICE_ALREADY_FOUND' => "Sie haben bereits f&uuml;r diesen Platz einen Preis vergeben oder ist identisch mit anderen Preisen.",
-       'RALLYE_PRICE_LEVEL_SAVED' => "Preis wurde hinzugef&uuml;gt.",
-       'RALLYE_EDIT_DELETE_PRICES' => "&Auml;ndern und L&ouml;schen von Referral-Rallye-Preisen",
+       'ADMIN_RALLYE_START_DAY' => "Beginn der Referral-Rallye",
+       'ADMIN_RALLYE_END_DAY' => "Ende der Referral-Rallye",
+       'ADMIN_SELECT_RALLYE_AUTO_ADD_USERS' => "Neue Mitglieder nehmen automatisch dran teil",
+       'ADMIN_RALLYE_IS_ACTIVE' => "Rallye ist aktiv",
+       'ADMIN_SELECT_RALLYE_SEND_NOTIFY' => "Autom. Benachrichtigung an Mitglieder senden",
+       'ADMIN_RALLYE_OVERLAP_TIMES' => "Rallyes d&uuml;rfen nicht zeitgleich laufen.",
+       'ADMIN_ENTER_RALLYE_DESCRIPTION' => "Kurze Beschreibung / Freier HTML-Code der Referral-Rallye",
+       'ADMIN_SELECT_RALLYE_TEMPLATE' => "Template (anstelle freien HTML-Codes)",
+       'ADMIN_RALLYE_PROBLEM_CREATE' => "Problem beim Erzeugen der Referral-Rallye.",
+       'ADMIN_RALLYE_NO_RALLYES_SETUP' => "Bitte f&uuml;gen Sie zuerst eine neue Referral-Rallye hinzu.",
+       'ADMIN_RALLYE_PRICE_POINTS' => "Preis in {?POINTS?}",
+       'ADMIN_RALLYE_PRICE_INFOS' => "Preisbeschreibung (<span class=\"tiny\">Sie k&ouml;nnen auch nur die Beschreibung eingeben!</span>)",
+       'ADMIN_RALLYE_PRICE_ALREADY_FOUND' => "Sie haben bereits f&uuml;r diesen Platz einen Preis vergeben oder ist identisch mit anderen Preisen.",
+       'ADMIN_RALLYE_PRICE_LEVEL_SAVED' => "Preis wurde hinzugef&uuml;gt.",
        'RALLYE_LEVEL' => "Platz",
        'RALLYE_LEVEL' => "Platz",
-       'RALLYE_PRICE_INFO' => "Infos",
-       'RALLYE_EDIT_SELECTED_PRICES' => "Preise/Pl&auml;tze &auml;ndern",
-       'RALLYE_CHANGE_PRICES' => "&Auml;ndern",
+       'ADMIN_RALLYE_PRICE_INFO' => "Infos",
        'RALLYE_ID' => "Rallye-Id",
        'RALLYE_ID' => "Rallye-Id",
-       'RALLYE_EDIT_DELETE_RALLYES' => "&Auml;ndern / L&ouml;schen von Referral-Rallyes (Grunddaten)",
-       'RALLYE_ADMIN_ID' => "Admin-Login",
-       'RALLYE_TSTART' => "Anfang",
-       'RALLYE_TEND' => "Ende",
-       'RALLYE_EDIT_DELETE_NOTICE' => "Wenn Sie die Grunddaten der ausgew&auml;hlten Referral-Rallyes &auml;ndern / l&ouml;schen wollen, markieren Sie diese per K&auml;stchen. Wollen Sie die Preise &auml;ndern, klicken Sie den Referral-Rallye-Titel an. Aktive Referral-Rallyes k&ouml;nnen nicht ge&auml;ndert werden, sondern m&uuml;ssen erst deaktiviert werden.",
+       'ADMIN_RALLYE_TITLE' => "Rallye-Titel",
+       'ADMIN_RALLYE_ADMIN_LOGIN' => "Admin-Login",
+       'ADMIN_RALLYE_STARTED' => "Anfang",
+       'ADMIN_RALLYE_ENDED' => "Ende",
+       'ADMIN_LIST_RALLYES_NOTICE' => "Wenn Sie die Grunddaten der ausgew&auml;hlten Referral-Rallyes &auml;ndern / l&ouml;schen wollen, markieren Sie diese per K&auml;stchen. Wollen Sie die Preise &auml;ndern, klicken Sie den Referral-Rallye-Titel oder die Anzahl eingerichteter Preise an.",
        'ADMIN_RALLYE_PRICES_NOTICE' => "Wenn Sie die Referral-Rallye-Preise hinzuf&uuml;gen, &auml;ndern oder l&ouml;schen wollen, klicken Sie einfach den Referral-Rallye-Titel an.",
        'ADMIN_RALLYE_PRICES_NOTICE' => "Wenn Sie die Referral-Rallye-Preise hinzuf&uuml;gen, &auml;ndern oder l&ouml;schen wollen, klicken Sie einfach den Referral-Rallye-Titel an.",
-       'RALLYE_ENTRIES_DELETED' => "Eintr&auml;ge gel&ouml;scht.",
-       'RALLYE_ENTRIES_CHANGED' => "Eintr&auml;ge ge&auml;ndert.",
-       'RALLYE_ENTRIES_NOT_DELETED' => "Bitte w&auml;hlen Sie mindestens einen Eintrag zum L&ouml;schen aus.",
-       'RALLYE_DESCR2' => "Kurzbeschreibung",
-       'RALLYE_TEMPLATE2' => "Template",
-       'RALLYE_AUTO_ADD' => "Autom. Teilnahme",
+       'ADMIN_RALLYE_PRICES_DELETED' => "Rallye-Preise gel&ouml;scht.",
+       'ADMIN_RALLYE_PRICES_CHANGED' => "Rallye-Preise ge&auml;ndert.",
+       'ADMIN_RALLYE_PRICES_NOT_DELETED' => "Bitte w&auml;hlen Sie mindestens einen Eintrag zum L&ouml;schen aus.",
+       'ADMIN_RALLYE_DESCRIPTION' => "Kurzbeschreibung",
+       'ADMIN_RALLYE_TEMPLATE' => "Template",
+       'ADMIN_RALLYE_AUTO_ADD_USERS' => "Autom. Teilnahme",
        'RALLYE_ACTIVE' => "Aktiviert",
        'RALLYE_NOTIFY' => "Benachrichtigen",
        'RALLYE_NOTIFIED' => "Benachrichtigt",
        'RALLYE_ASSIGNED_PRICES' => "Bereits eingerichtete Preise",
        'RALLYE_ASSIGNED_USERS' => "Teilnehmende Mitglieder",
        'RALLYE_ACTIVE' => "Aktiviert",
        'RALLYE_NOTIFY' => "Benachrichtigen",
        'RALLYE_NOTIFIED' => "Benachrichtigt",
        'RALLYE_ASSIGNED_PRICES' => "Bereits eingerichtete Preise",
        'RALLYE_ASSIGNED_USERS' => "Teilnehmende Mitglieder",
-       'RALLYE_LIST_OVERVIEW_TITLE' => "Datenbl&auml;tter der Referral-Rallyes",
-       'RALLYE_NO_RALLYES_SELECTED' => "Sie haben keine <a href=\"{%url=modules.php?module=admin&amp;what=list_rallyes%}\">Rallyes zum Editieren</a> ausgew&auml;hlt.",
-       'RALLYE_DEACTIVATE_NOW' => "Rallye deaktivieren",
-       'RALLYE_ACTIVATE_NOW' => "Rallye aktivieren",
-       'RALLYE_STOP_NOTIFY_NOW' => "Nicht mehr benachrichtigen",
-       'RALLYE_START_NOTIFY_NOW' => "Mitglieder autom. benachrichtigen",
-       'RALLYE_EDIT_ONLY_INACTIVE_NOTICE' => "Es k&ouml;nnen nur deaktivierte Referral-Rallyes bearbeitet bzw. gel&ouml;scht werden. Beim L&ouml;schen werden alle dazu verkn&uuml;pften Daten ebenfalls ohne Vorwarnung gel&ouml;scht.",
-       'RALLYE_DELETE_NOTHING_SELECTED' => "Keine Referral-Rallye(s) zum L&ouml;schen ausgew&auml;hlt.",
-       'RALLYE_DELETED' => "Rallye(s) wurde(n) gel&ouml;scht.",
+       'ADMIN_RALLYE_NO_RALLYES_SELECTED' => "Sie haben keine <a href=\"{%url=modules.php?module=admin&amp;what=list_rallyes%}\">Rallyes zum Editieren</a> ausgew&auml;hlt.",
+       'ADMIN_RALLYE_DEACTIVATE_NOW' => "Rallye deaktivieren",
+       'ADMIN_RALLYE_ACTIVATE_NOW' => "Rallye aktivieren",
+       'ADMIN_RALLYE_STOP_NOTIFY_NOW' => "Nicht mehr benachrichtigen",
+       'ADMIN_RALLYE_START_NOTIFY_NOW' => "Mitglieder autom. benachrichtigen",
+       'ADMIN_RALLYE_EDIT_ONLY_INACTIVE_NOTICE' => "Es k&ouml;nnen nur deaktivierte Referral-Rallyes bearbeitet bzw. gel&ouml;scht werden. Beim L&ouml;schen werden alle dazu verkn&uuml;pften Daten ebenfalls ohne Vorwarnung gel&ouml;scht.",
+       'ADMIN_RALLYE_DELETE_NOTHING_SELECTED' => "Keine Referral-Rallye(s) zum L&ouml;schen ausgew&auml;hlt.",
+       'ADMIN_RALLYE_NO_PRICES_SELECTED' => "Sie haben keine Rallye-Preise ausgew&auml;hlt! <a href=\"{%%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=%s%%}\">Zur&uuml;ck zu den Preisen</a>",
+       'ADMIN_RALLYE_DELETED' => "Rallye(s) wurde(n) gel&ouml;scht.",
        'RALLYE_MEMBER_NO_PRICES' => "--> Keine Preise  f&uuml;r Modus <span class=\"data\">%s</span> ausgesetzt! <--",
        'RALLYE_MEMBER_PRICES_ADDED' => "Die Preise",
        'RALLYE_PRICE' => ". Platz",
        'RALLYE_MEMBER_NO_PRICES' => "--> Keine Preise  f&uuml;r Modus <span class=\"data\">%s</span> ausgesetzt! <--",
        'RALLYE_MEMBER_PRICES_ADDED' => "Die Preise",
        'RALLYE_PRICE' => ". Platz",
-       'RALLYE_MEMBER_NOTIFY' => "REF-RALLYE GESTARTET: <span class=\"data\">%s</span>",
-       'RALLYE_ADMIN_NOTIFY' => "Neue Ref-Rallye: <span class=\"data\">%s</span>",
-       'RALLYE_ADMIN_USERS_404' => "Zur ausgew&auml;hlten Referral-Rallye sind noch keine Mitglieder hinzugef&uuml;gt worden.",
-       'RALLYE_LIST_USERS' => "Teilnehmende Mitglieder an der Referral-Rallye <span class=\"data\">%s</span>",
+       'ADMIN_RALLYE_USERS_404' => "Zur ausgew&auml;hlten Referral-Rallye sind noch keine Mitglieder hinzugef&uuml;gt worden.",
+       'ADMIN_LIST_RALLYE_USERS_TITLE2' => "Teilnehmende Mitglieder an der Referral-Rallye <span class=\"data\">%s</span>",
        'RALLYE_OLD_REFS' => "Refs vor Referral-Rallye",
        'RALLYE_NEW_REFS' => "Neue Refs",
        'RALLYE_OLD_REFS' => "Refs vor Referral-Rallye",
        'RALLYE_NEW_REFS' => "Neue Refs",
-       'RALLYE_STOP_AUTO_ADD_NOW' => "Auto-Beitreten neuer Mitglieder deaktivieren",
-       'RALLYE_START_AUTO_ADD_NOW' => "Auto-Beitreten neuer Mitglieder aktivieren",
+       'ADMIN_RALLYE_STOP_AUTO_ADD_NOW' => "Auto-Beitreten neuer Mitglieder deaktivieren",
+       'ADMIN_RALLYE_START_AUTO_ADD_NOW' => "Auto-Beitreten neuer Mitglieder aktivieren",
        'RALLYE_REFS' => "Geworbene Mitglieder",
        '_RALLYE_PRICE' => "Platz",
        'RALLYE_EXPIRE_ONE_DAY' => "Rallye endet in weniger als 24 Stunden.",
        'RALLYE_HAS_EXPIRED' => "Diese Referral-Rallye ist beendet.",
        'RALLYE_REFS' => "Geworbene Mitglieder",
        '_RALLYE_PRICE' => "Platz",
        'RALLYE_EXPIRE_ONE_DAY' => "Rallye endet in weniger als 24 Stunden.",
        'RALLYE_HAS_EXPIRED' => "Diese Referral-Rallye ist beendet.",
-       'RALLYE_ADMIN_EXPIRED' => "Rallye beendet",
-       'RALLYE_ADMIN_EXPIRED_SUBJECT' => "Rallye beendet: <span class=\"data\">%s</span>",
-       'RALLYE_MEMBER_EXPIRED_SUBJECT' => "REF-RALLYE BEENDET: %s. Platz",
+       'ADMIN_RALLYE_EXPIRED_TASK' => "Rallye beendet",
        'RALLYE_YOU_CAN_WIN' => "Was Sie gewinnen k&ouml;nnen",
        'RALLYE_OUR_WINNERS_ARE' => "Unsere Gewinner sind dieses Mal",
        'RALLYE_PRICE_IS' => "Hat gewonnen",
        'RALLYE_YOU_CAN_WIN' => "Was Sie gewinnen k&ouml;nnen",
        'RALLYE_OUR_WINNERS_ARE' => "Unsere Gewinner sind dieses Mal",
        'RALLYE_PRICE_IS' => "Hat gewonnen",
-       'RALLYE_HAPPY_WINNERS' => "Wir gratulieren allen Gewinnern.",
-       'RALLYE_ADMIN_PURGED_SUBJECT' => "[HINWEIS:] Referral-Rallye '%s' entfernt",
-       'RALLYE_ADMIN_EXPIRED_TEXT' => "Eine Referral-Rallye ist beendet worden. Bitte kontrollieren Sie diese und f&uuml;hren Sie ggf. weitere Schritte durch.",
-       'RALLYE_ADMIN_PURGED_TEXT' => "Eine oder mehr Referral-Rallye(s) ist/sind gel&ouml;scht worden.",
-       'RALLYE_EDIT_RALLYES' => "Rallye-Grunddaten &auml;ndern",
-       'RALLYE_CHANGE_ADMIN' => "&Auml;nderungen speichern",
-       'RALLYE_CHANGED' => "&Auml;nderungen gespeichert.",
+       'ADMIN_RALLYE_PURGED_TASK' => "Referral-Rallye bereinigt",
+       'ADMIN_RALLYE_EXPIRED_TEXT' => "Eine Referral-Rallye ist beendet worden. Bitte kontrollieren Sie diese und f&uuml;hren Sie ggf. weitere Schritte durch.",
+       'ADMIN_RALLYE_PURGED_TEXT' => "Eine oder mehr Referral-Rallye(s) ist/sind gel&ouml;scht worden.",
+       'ADMIN_RALLYE_CHANGED' => "&Auml;nderungen gespeichert.",
        'RALLYE_REFERRAL_POINTS' => "Verdienst durch Refs",
        'RALLYE_REGISTER_NOW' => "Jetzt kostenlos und unverbindlich anmelden.",
        'RALLYE_GET_REFERRAL_LINK' => "Jetzt dran teilnehmen.",
        'ADMIN_TASK_TYPE_RALLYE_EXPIRED' => "Rallye wurde beendet",
        'ADMIN_TASK_TYPE_RALLYE_PURGED' => "Rallye wurde gel&ouml;scht",
        'RALLYE_REFERRAL_POINTS' => "Verdienst durch Refs",
        'RALLYE_REGISTER_NOW' => "Jetzt kostenlos und unverbindlich anmelden.",
        'RALLYE_GET_REFERRAL_LINK' => "Jetzt dran teilnehmen.",
        'ADMIN_TASK_TYPE_RALLYE_EXPIRED' => "Rallye wurde beendet",
        'ADMIN_TASK_TYPE_RALLYE_PURGED' => "Rallye wurde gel&ouml;scht",
-       'RALLYE_LIST_USERS_TITLE' => "Alle teilnehmenden Mitglieder auflisten.",
-       'RALLYE_REFERRAL_POINTS_NOTICE' => "Die {?POINTS?} in der Spalte <u>Verdienst durch Refs</u> geben den Verdienst in erster Ebene vor der Referral-Rallye an und wird sich bis Ende der Referral-Rallye nicht ver&auml;ndern.",
-       'RALLYE_MIN_USERS' => "Gesamtzahl der Mitglieder, ab der Referral-Rallye automatisch endet.",
-       'RALLYE_MIN_PRICES' => "Mindestens zu belegende Pl&auml;tze",
-       'RALLYE_MIN_USERS_MINI' => "Mitgliederanzahl erreicht",
-       'RALLYE_MIN_PRICES_MINI' => "Minimum Pl&auml;tze",
+       'ADMIN_RALLYE_REFERRAL_POINTS_NOTICE' => "Die {?POINTS?} in der Spalte <u>Verdienst durch Refs</u> geben den Verdienst in erster Ebene vor der Referral-Rallye an und wird sich bis Ende der Referral-Rallye nicht ver&auml;ndern.",
+       'ADMIN_RALLYE_MIN_USERS' => "Gesamtzahl der Mitglieder, ab der Referral-Rallye automatisch endet.",
+       'ADMIN_RALLYE_MIN_PRICES' => "Mindestens zu belegende Pl&auml;tze",
+       'ADMIN_RALLYE_MIN_USERS_MINI' => "Mitgliederanzahl erreicht",
+       'ADMIN_RALLYE_MIN_PRICES_MINI' => "Minimum Pl&auml;tze",
        'RALLYE_END_NO_USER_LIMITATION' => "Die Referral-Rallye endet ohne Mitgliederbegrenzung.",
        'RALLYE_END_NO_PRICE_LIMITATION' => "Die Referral-Rallye endet ohne Platzbelegungsbegrenzung.",
        'RALLYE_END_USERS' => "Die Referral-Rallye endet, wenn wir <span class=\"data\">%s</span> Mitglieder in unserem {?mt_word?} haben.",
        'RALLYE_END_PRICES' => "Die Referral-Rallye endet, wenn mindestens <span class=\"data\">%s</span> Pl&auml;tze belegt sind.",
        'RALLYE_LIMITATIONS' => "Einschr&auml;nkungen an der Dauer der Referral-Rallye",
        'RALLYE_END_NO_USER_LIMITATION' => "Die Referral-Rallye endet ohne Mitgliederbegrenzung.",
        'RALLYE_END_NO_PRICE_LIMITATION' => "Die Referral-Rallye endet ohne Platzbelegungsbegrenzung.",
        'RALLYE_END_USERS' => "Die Referral-Rallye endet, wenn wir <span class=\"data\">%s</span> Mitglieder in unserem {?mt_word?} haben.",
        'RALLYE_END_PRICES' => "Die Referral-Rallye endet, wenn mindestens <span class=\"data\">%s</span> Pl&auml;tze belegt sind.",
        'RALLYE_LIMITATIONS' => "Einschr&auml;nkungen an der Dauer der Referral-Rallye",
-       'RALLYE_REMOVE_PRICES' => "Rallye-Preis(e) entfernen",
-       'RALLYE_NO_TEMPLATES_FOUND' => "Keine Templates gefunden.",
-       'ADMIN_LIST_RALLYES_PRICING' => "Auflisten von Referral-Rallyes - Preise einrichten",
+       'ADMIN_RALLYE_TEMPLATES_404' => "Keine Templates gefunden.",
+       'RALLYE_NONE_ACTIVE' => "Derzeit ist noch keine Rallye im Gange. Bitte kommen Sie sp&auml;ter noch einmal wieder.",
+
+       // Title lines
+       'ADMIN_RALLYE_ADD_NEW_TITLE' => "Neue Ref-Rallye hinzuf&uuml;gen",
+       'ADMIN_LIST_RALLYE_PRICES_TITLE' => "Preise einrichten f&uuml;r Referral-Rallye <span class=\"data\">%s</span>",
+       'ADMIN_ENTER_RALLYE_PRICE_LEVEL' => "Platz eingeben (1, 2, 3, usw.)",
+       'ADMIN_LIST_RALLYE_PRICES_SIMPLE_TITLE' => "&Auml;ndern und L&ouml;schen von Referral-Rallye-Preisen",
+       'ADMIN_EDIT_RALLYE_PRICES_TITLE' => "Preise/Pl&auml;tze &auml;ndern",
+       'ADMIN_LIST_RALLYES_TITLE' => "&Auml;ndern / L&ouml;schen von Referral-Rallyes (Grunddaten)",
+       'ADMIN_LIST_RALLYE_DATA_OVERVIEW_TITLE' => "Datenbl&auml;tter der Referral-Rallyes",
+       'ADMIN_EDIT_RALLYES_TITLE' => "Rallye-Grunddaten &auml;ndern",
+       'ADMIN_DELETE_RALLYES_TITLE' => "Rallye komplett l&ouml;schen",
+       'ADMIN_LIST_RALLYE_USERS_TITLE' => "Alle teilnehmenden Mitglieder auflisten",
+       'ADMIN_DELETE_RALLYE_PRICES_TITLE' => "Ausgew&auml;hle Rallye-Preis(e) l&ouml;schen",
+       'ADMIN_LIST_RALLYES_PRICES_TITLE' => "Auflisten von Referral-Rallyes - Preise einrichten",
        'GUEST_RALLYE_HAS_STARTED_TITLE' => "{?MAIN_TITLE?} - Referral-Rallye gestartet",
        'RALLYE_NONE_ACTIVE_TITLE' => "Keine Referral-Rallyes aktiv",
        'GUEST_RALLYE_HAS_STARTED_TITLE' => "{?MAIN_TITLE?} - Referral-Rallye gestartet",
        'RALLYE_NONE_ACTIVE_TITLE' => "Keine Referral-Rallyes aktiv",
-       'RALLYE_NONE_ACTIVE' => "Derzeit ist noch keine Rallye im Gange. Bitte kommen Sie sp&auml;ter noch einmal wieder.",
+
+       // Admin - submit buttons
+       'ADMIN_ADD_RALLYE_SUBMIT' => "Rallye hinzuf&uuml;gen",
+       'ADMIN_ADD_RALLYE_PRICE_SUBMIT' => "Preis hinzuf&uuml;gen",
+       'ADMIN_CHANGE_RALLYE_SUBMIT' => "&Auml;nderungen speichern",
+       'ADMIN_REMOVE_RALLYE_SUBMIT' => "Rallyes l&ouml;schen",
+       'ADMIN_REMOVE_RALLYE_PRICES_SUBMIT' => "Rallye-Preis(e) l&ouml;schen",
+       'ADMIN_CHANGE_RALLYE_PRICES_SUBMIT' => "&Auml;ndern",
+
+       // Subject lines
+       'MEMBER_RALLYE_NOTIFY_SUBJECT' => "REF-RALLYE GESTARTET: %s",
+       'ADMIN_RALLYE_NOTIFY_SUBJECT' => "Neue Ref-Rallye: %s",
+       'ADMIN_RALLYE_EXPIRED_SUBJECT' => "Rallye beendet: %s",
+       'RALLYE_MEMBER_EXPIRED_SUBJECT' => "REF-RALLYE BEENDET: %s. Platz",
+       'ADMIN_RALLYE_PURGED_SUBJECT' => "[HINWEIS:] Referral-Rallye '%s' entfernt",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_RALLYE_WINNER' => "Gewinnaussch&uuml;ttung der Referral-Rallye",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 9bc94ebf2bc19ed67cc0dd5dff30ad946c4ba757..11ba35942186d9964a87eaa12b95a7f0c21fce5f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -61,7 +61,7 @@ addMessages(array(
        'MEMBER_REFBACK_LEVEL_REFID' => "Werber",
        'MEMBER_REFBACK_STATUS' => "Referral-Status",
        'MEMBER_REFBACK_PERCENTS' => "Refback-Prozente",
        'MEMBER_REFBACK_LEVEL_REFID' => "Werber",
        'MEMBER_REFBACK_STATUS' => "Referral-Status",
        'MEMBER_REFBACK_PERCENTS' => "Refback-Prozente",
-       'MEMBER_REFBACK_POINTS' => "Refback Verg&uuml;tung",
+       'MEMBER_REFBACK_POINTS' => "Refback-Verg&uuml;tung",
        'MEMBER_REFBACK_EDIT' => "Einstellen",
        'MEMBER_REFBACK_EDIT_TITLE' => "Refback f&uuml;r ausgew&auml;hltes Mitglied einstellen:",
        'MEMBER_REFBACK_DELETED_SUBMIT' => "Nicht m&ouml;glich",
        'MEMBER_REFBACK_EDIT' => "Einstellen",
        'MEMBER_REFBACK_EDIT_TITLE' => "Refback f&uuml;r ausgew&auml;hltes Mitglied einstellen:",
        'MEMBER_REFBACK_DELETED_SUBMIT' => "Nicht m&ouml;glich",
@@ -86,6 +86,20 @@ addMessages(array(
        // Subject lines
        'ADMIN_REFBACK_SUBJECT' => "Es wurde Refback eingestellt",
        'MEMBER_REFBACK_SUBJECT' => "F&uuml;r Sie wurde Refback eingestellt",
        // Subject lines
        'ADMIN_REFBACK_SUBJECT' => "Es wurde Refback eingestellt",
        'MEMBER_REFBACK_SUBJECT' => "F&uuml;r Sie wurde Refback eingestellt",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_REFBACK' => "Refback-Gutschrift",
+       'POINTS_SUBJECT_REFBACK_REF' => "Anteilige Refback-Gutschrift",
+
+       // Admin - Subject lines for points_data
+       'ADMIN_DIRECT_REFBACK_SUBJECT' => "Refbackgutschrift durch Direktgutschrift von Mitglied %s erhalten",
+       'ADMIN_REFERRAL_REFBACK_SUBJECT' => "Refbackgutschrift durch Referralgutschrift von Mitglied %s erhalten",
+       'ADMIN_REFERRAL_REFBACK_REF_SUBJECT' => "Anteilige Refbackgutschrift durch Referralgutschrift von Mitglied %s erhalten",
+
+       // Member - Subject lines for points_data
+       'MEMBER_DIRECT_REFBACK_SUBJECT' => "Refbackgutschrift durch Direktgutschrift von Mitglied %s erhalten",
+       'MEMBER_REFERRAL_REFBACK_SUBJECT' => "Refbackgutschrift durch Referralgutschrift von Mitglied %s erhalten",
+       'MEMBER_REFERRAL_REFBACK_REF_SUBJECT' => "Anteilige Refbackgutschrift durch Referralgutschrift von Mitglied %s erhalten",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index f3f2a864f78d175f670cdeb3b300186f2f3f987b..a91837b5bb9e2d4b3c02eb2a9a322a85d0502e2c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -57,6 +57,25 @@ addMessages(array(
        'ADMIN_CONFIG_REGISTER_GENERATE_PASSWORD_EMPTY' => "Soll bei leergelassenem Passwort in der Anmeldung eines per Zufall generiert werden?",
        'ADMIN_CONFIG_REJECT_DOUBLE_EMAIL' => "Doppelt angemeldete Email-Adressen ablehnen?",
        'GUEST_EMAIL_IS_ALREADY_REGISTERED' => "Sie haben sich bereits mit dieser Email-Adresse angemeldet, oder jemand anderes verwendet Ihre. Doppelte Anmeldungen sind bei uns verboten.",
        'ADMIN_CONFIG_REGISTER_GENERATE_PASSWORD_EMPTY' => "Soll bei leergelassenem Passwort in der Anmeldung eines per Zufall generiert werden?",
        'ADMIN_CONFIG_REJECT_DOUBLE_EMAIL' => "Doppelt angemeldete Email-Adressen ablehnen?",
        'GUEST_EMAIL_IS_ALREADY_REGISTERED' => "Sie haben sich bereits mit dieser Email-Adresse angemeldet, oder jemand anderes verwendet Ihre. Doppelte Anmeldungen sind bei uns verboten.",
+       'PRE_USER_REGISTRATION_FAILED' => "Anmeldung fehlgeschlagen: Pre-Filterkette nicht gelaufen! Bitte melden Sie dies beim zust&auml;ndigen Webmaster.",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_REGISTER_WELCOME' => "Anmeldegutschrift",
+       'POINTS_SUBJECT_REGISTER_WELCOME_REF' => "Anteilige Anmeldegutschrift",
+       'POINTS_SUBJECT_REFERRAL_BONUS' => "Einmalige Werbepr&auml;mie",
+       'POINTS_SUBJECT_REFERRAL_BONUS_REF' => "Anteilige einml. Werbepr&auml;mie",
+
+       // Admin - subject lines
+       'ADMIN_DIRECT_REGISTER_WELCOME_SUBJECT' => "Willkommensgutschrift Mitglied gutgeschrieben",
+       'ADMIN_DIRECT_REFERRAL_BONUS_SUBJECT' => "Werbepr&auml;mie per Direktgutschrift gutgeschrieben",
+       'ADMIN_REFERRAL_REFERRAL_BONUS_SUBJECT' => "Werbepr&auml;mie per Referralgutschrift gutgeschrieben",
+       'ADMIN_REFERRAL_REFERRAL_BONUS_REF_SUBJECT' => "Anteilige Werbepr&auml;mie per Referralgutschrift gutgeschrieben",
+
+       // Member - subject lines
+       'MEMBER_DIRECT_REGISTER_WELCOME_SUBJECT' => "Willkommensgutschrift erhalten",
+       'MEMBER_DIRECT_REFERRAL_BONUS_SUBJECT' => "Werbepr&auml;mie per Direktgutschrift erhalten",
+       'MEMBER_REFERRAL_REFERRAL_BONUS_SUBJECT' => "Werbepr&auml;mie per Referralgutschrift erhalten",
+       'MEMBER_REFERRAL_REFERRAL_BONUS_REF_SUBJECT' => "Anteilige Werbepr&auml;mie per Referralgutschrift erhalten",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 3b4f260f2cfb7b493ba0c5d3d324d381e326f670..78ab9ab2fee2ba03e55bad374faaa3f5b1f63793 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5a92ba742ef7fb8e2599ad47428e17bcfae23866..11240ffde4a3c00991f9d7858b759ac1575a55c3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 75d71bcf234acb60254f26ff938265cc0150e14b..529965e6922aa839b993edd961b6237ddd240b9c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 67a675a8f7844fab844f77a5dc56340194d0e8b0..9815409cf1bac67917a61048933013c2d36b005f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,6 +42,7 @@ if (!defined('__SECURITY')) {
 
 // Language definitions
 addMessages(array(
 
 // Language definitions
 addMessages(array(
+       // Unsorted
        'SPONSOR_NOT_INITIALIZED' => "Sponsorenbereich noch nicht eingerichtet.",
        'ADMIN_CONFIG_SPONSOR_TITLE' => "Allgemeine Einstellungen",
        'ADMIN_CONFIG_SPONSOR_MIN_POINTS' => "Minimum buchbare {?POINTS?}",
        'SPONSOR_NOT_INITIALIZED' => "Sponsorenbereich noch nicht eingerichtet.",
        'ADMIN_CONFIG_SPONSOR_TITLE' => "Allgemeine Einstellungen",
        'ADMIN_CONFIG_SPONSOR_MIN_POINTS' => "Minimum buchbare {?POINTS?}",
@@ -102,7 +103,7 @@ addMessages(array(
        'SPONSOR_ID' => "Sponsor-Id",
        'SPONSOR_STATUS' => "Sponsor-Status",
        'SPONSOR_REFERRALS' => "Sponsoren geworben",
        'SPONSOR_ID' => "Sponsor-Id",
        'SPONSOR_STATUS' => "Sponsor-Status",
        'SPONSOR_REFERRALS' => "Sponsoren geworben",
-       'ADMIN_SPONSOR_INVALID_MODE' => "Ung&uuml;tiger Modus <span class=\"data\">%s</span> angegeben.",
+       'ADMIN_SPONSOR_INVALID_MODE' => "Ung&uuml;ltiger Modus <span class=\"data\">%s</span> angegeben.",
        'ADMIN_SPONSOR_MODUS_TPL_404' => "Modus-Template <span class=\"data\">%s</span> nicht gefunden.",
        'ADMIN_ADD_POINTS_TO_SPONSOR' => "{?POINTS?} gutschreiben",
        'ADMIN_SUB_POINTS_FROM_SPONSOR' => "{?POINTS?} abziehen",
        'ADMIN_SPONSOR_MODUS_TPL_404' => "Modus-Template <span class=\"data\">%s</span> nicht gefunden.",
        'ADMIN_ADD_POINTS_TO_SPONSOR' => "{?POINTS?} gutschreiben",
        'ADMIN_SUB_POINTS_FROM_SPONSOR' => "{?POINTS?} abziehen",
@@ -114,7 +115,6 @@ addMessages(array(
        'ADMIN_SPONSOR_POINTS_ADDED' => "{?POINTS?} wurden gutgeschrieben.",
        'ADMIN_SPONSOR_POINTS_SUBTRACTED' => "{?POINTS?} wurden abgezogen.",
        'ADMIN_SPONSOR_CANNOT_LOCK_PENDING_UNCINFIRMED_ACCOUNTS' => "Sie k&ouml;nnen keine auf Freischaltung wartende oder unbest&auml;tigte Accounts sperren/freigeben.",
        'ADMIN_SPONSOR_POINTS_ADDED' => "{?POINTS?} wurden gutgeschrieben.",
        'ADMIN_SPONSOR_POINTS_SUBTRACTED' => "{?POINTS?} wurden abgezogen.",
        'ADMIN_SPONSOR_CANNOT_LOCK_PENDING_UNCINFIRMED_ACCOUNTS' => "Sie k&ouml;nnen keine auf Freischaltung wartende oder unbest&auml;tigte Accounts sperren/freigeben.",
-// @TODO Rewrite these four constants to one and use sprintf()
        'ADMIN_HEADER_DELETE_SPONSOR' => "Sponsorenaccount <span class=\"data\">%s</span> l&ouml;schen",
        'ADMIN_TEXT_DELETE_SPONSOR' => "M&ouml;chten Sie den Sponsoren <span class=\"data\">%s</span> mit samt aller seiner Bestellungen unwiederruflich l&ouml;schen?",
        'ADMIN_SPONSOR_DELETED' => "Sponsorenaccount <span class=\"data\">%s</span> entfernt.",
        'ADMIN_HEADER_DELETE_SPONSOR' => "Sponsorenaccount <span class=\"data\">%s</span> l&ouml;schen",
        'ADMIN_TEXT_DELETE_SPONSOR' => "M&ouml;chten Sie den Sponsoren <span class=\"data\">%s</span> mit samt aller seiner Bestellungen unwiederruflich l&ouml;schen?",
        'ADMIN_SPONSOR_DELETED' => "Sponsorenaccount <span class=\"data\">%s</span> entfernt.",
@@ -136,7 +136,7 @@ addMessages(array(
        'SPONSOR_TERMS_HEADER' => "Allgemeine Gesch&auml;ftsbedingungen",
        'ADMIN_SPONSOR_ACCOUNT_404_ALREADY_CONFIRMED' => "Das von Ihnen angegebene Sponsoraccount <span class=\"data\">%s</span> konnte entweder nicht gefunden werden, oder ist bereits freigegeben.",
 
        'SPONSOR_TERMS_HEADER' => "Allgemeine Gesch&auml;ftsbedingungen",
        'ADMIN_SPONSOR_ACCOUNT_404_ALREADY_CONFIRMED' => "Das von Ihnen angegebene Sponsoraccount <span class=\"data\">%s</span> konnte entweder nicht gefunden werden, oder ist bereits freigegeben.",
 
-// Add payment types
+       // Add payment types
        'ADMIN_SPONSOR_NO_PAYTYPES' => "Noch keine Buchungspakete eingerichtet.",
        'ADMIN_ADD_SPONSOR_PAYTYPE_TITLE' => "Neue Buchungspaket hinzuf&uuml;gen",
        'ADMIN_ADD_SPONSOR_PAYTYPE' => "Buchungspaket hinzuf&uuml;gen",
        'ADMIN_SPONSOR_NO_PAYTYPES' => "Noch keine Buchungspakete eingerichtet.",
        'ADMIN_ADD_SPONSOR_PAYTYPE_TITLE' => "Neue Buchungspaket hinzuf&uuml;gen",
        'ADMIN_ADD_SPONSOR_PAYTYPE' => "Buchungspaket hinzuf&uuml;gen",
@@ -165,7 +165,7 @@ addMessages(array(
        'SPONSOR_REFID_WAS' => "Sie wurden vom Sponsor geworben",
        'SPONSOR_ACCOUNT_IS_PENDING' => "EMail-Adresse best&auml;tigt! Sie haben soeben eine EMail mit weiteren Anweisungen erhalten.",
 
        'SPONSOR_REFID_WAS' => "Sie wurden vom Sponsor geworben",
        'SPONSOR_ACCOUNT_IS_PENDING' => "EMail-Adresse best&auml;tigt! Sie haben soeben eine EMail mit weiteren Anweisungen erhalten.",
 
-// Header / text / email messages
+       // Header / text / email messages
        'SPONSOR_LOCK_SPONSOR_HEADER' => "Sponsorenaccount sperren",
        'SPONSOR_UNLOCK_SPONSOR_HEADER' => "Sponsorenaccount freigeben",
        'SPONSOR_LOCK_SPONSOR_TEXT' => "Wollen Sie das ausgew&auml;hlte Sponsorenaccount sperren? Falls ja, wird eine Mail an den Sponsor geschickt. Bitte geben Sie auch eine plaubsible Begr&uuml;ndung der Sperrung mit an.",
        'SPONSOR_LOCK_SPONSOR_HEADER' => "Sponsorenaccount sperren",
        'SPONSOR_UNLOCK_SPONSOR_HEADER' => "Sponsorenaccount freigeben",
        'SPONSOR_LOCK_SPONSOR_TEXT' => "Wollen Sie das ausgew&auml;hlte Sponsorenaccount sperren? Falls ja, wird eine Mail an den Sponsor geschickt. Bitte geben Sie auch eine plaubsible Begr&uuml;ndung der Sperrung mit an.",
@@ -177,7 +177,7 @@ addMessages(array(
        'SPONSOR_EMAIL_CNTRY_ZIP_CITY' => "L&auml;ndercode, PLZ, Wohnort",
        'SPONSOR_PASS_UNCHANGED' => "- Nicht ge&auml;ndert! -",
 
        'SPONSOR_EMAIL_CNTRY_ZIP_CITY' => "L&auml;ndercode, PLZ, Wohnort",
        'SPONSOR_PASS_UNCHANGED' => "- Nicht ge&auml;ndert! -",
 
-// Guest headers
+       // Guest headers
        'GUEST_SPONSOR_WANT_BECOME_HEADER' => "Sie wollen unser Sponsor sein?",
        'GUEST_SPONSOR_INFOS_PRICING_HEADER' => "Hier sind Preise und was Sie f&uuml;r Ihr Geld bekommen.",
        'GUEST_SPONSOR_PRICING_HEADER' => "Unsere Preise sind einfach fair! Schauen Sie selbst:",
        'GUEST_SPONSOR_WANT_BECOME_HEADER' => "Sie wollen unser Sponsor sein?",
        'GUEST_SPONSOR_INFOS_PRICING_HEADER' => "Hier sind Preise und was Sie f&uuml;r Ihr Geld bekommen.",
        'GUEST_SPONSOR_PRICING_HEADER' => "Unsere Preise sind einfach fair! Schauen Sie selbst:",
@@ -185,19 +185,19 @@ addMessages(array(
        'GUEST_SPONSOR_PRICING_FOOTER' => "Vergleichen Sie mal...",
        'GUEST_SPONSOR_ACTIONS_FOOTER' => "Und was bieten Ihnen andere?",
 
        'GUEST_SPONSOR_PRICING_FOOTER' => "Vergleichen Sie mal...",
        'GUEST_SPONSOR_ACTIONS_FOOTER' => "Und was bieten Ihnen andere?",
 
-// Link descriptions
+       // Link descriptions
        'ADMIN_SPONSOR_DETAILS_LINK_TITLE' => "Details des Sponsorenaccounts anzeigen",
        'ADMIN_SPONSOR_EDIT_LINK_TITLE' => "Sponsorenaccount &auml;ndern",
        'ADMIN_SPONSOR_ADD_POINTS_LINK_TITLE' => "{?POINTS?} gutschreiben",
        'ADMIN_SPONSOR_SUB_POINTS_LINK_TITLE' => "{?POINTS?} abziehen",
 
        'ADMIN_SPONSOR_DETAILS_LINK_TITLE' => "Details des Sponsorenaccounts anzeigen",
        'ADMIN_SPONSOR_EDIT_LINK_TITLE' => "Sponsorenaccount &auml;ndern",
        'ADMIN_SPONSOR_ADD_POINTS_LINK_TITLE' => "{?POINTS?} gutschreiben",
        'ADMIN_SPONSOR_SUB_POINTS_LINK_TITLE' => "{?POINTS?} abziehen",
 
-// Performable actions on a sponsor's account
+       // Performable actions on a sponsor's account
        'ADMIN_SPONSOR_ACTION_EDIT' => "Sponsor &auml;ndern",
        'ADMIN_SPONSOR_ACTION_DELETE' => "Sponsor l&ouml;schen",
        'ADMIN_SPONSOR_ACTION_LOCK' => "Sponsoren ent-/sperren",
        'ADMIN_LIST_SPONSOR_ORDERS' => "Bestellungen bearbeiten",
 
        'ADMIN_SPONSOR_ACTION_EDIT' => "Sponsor &auml;ndern",
        'ADMIN_SPONSOR_ACTION_DELETE' => "Sponsor l&ouml;schen",
        'ADMIN_SPONSOR_ACTION_LOCK' => "Sponsoren ent-/sperren",
        'ADMIN_LIST_SPONSOR_ORDERS' => "Bestellungen bearbeiten",
 
-// Subject lines
+       // Subject lines
        'SPONSOR_UNLOCKED_SUBJECT' => "HINWEIS: Freischaltung Ihres Sponsorenaccounts",
        'ADMIN_SPONSOR_ADD_POINTS_SUBJECT' => "HINWEIS: Gutschrift durch den Admin.",
        'ADMIN_SPONSOR_SUB_POINTS_SUBJECT' => "HINWEIS: Abzug durch den Admin.",
        'SPONSOR_UNLOCKED_SUBJECT' => "HINWEIS: Freischaltung Ihres Sponsorenaccounts",
        'ADMIN_SPONSOR_ADD_POINTS_SUBJECT' => "HINWEIS: Gutschrift durch den Admin.",
        'ADMIN_SPONSOR_SUB_POINTS_SUBJECT' => "HINWEIS: Abzug durch den Admin.",
@@ -217,7 +217,7 @@ addMessages(array(
        'ADMIN_SPONSOR_SETTINGS_SUBJECT' => "Sponsor hat seine Einstellungen ge&auml;ndert.",
        'SPONSOR_SETTINGS_SUBJECT' => "HINWEIS: &Auml;nderung Ihrer Einstellungen",
 
        'ADMIN_SPONSOR_SETTINGS_SUBJECT' => "Sponsor hat seine Einstellungen ge&auml;ndert.",
        'SPONSOR_SETTINGS_SUBJECT' => "HINWEIS: &Auml;nderung Ihrer Einstellungen",
 
-// Sponsor registration errors
+       // Sponsor registration errors
        'SPONSOR_SURNAME_EMPTY' => "Sie haben keinen Vornamen eingegeben.",
        'SPONSOR_FAMILY_EMPTY' => "Sie haben keinen Nachnamen eingegeben.",
        'SPONSOR_STREET_NR1_EMPTY' => "Sie haben keine Stra&szlig;e eingegeben.",
        'SPONSOR_SURNAME_EMPTY' => "Sie haben keinen Vornamen eingegeben.",
        'SPONSOR_FAMILY_EMPTY' => "Sie haben keinen Nachnamen eingegeben.",
        'SPONSOR_STREET_NR1_EMPTY' => "Sie haben keine Stra&szlig;e eingegeben.",
@@ -251,7 +251,7 @@ addMessages(array(
        'SPONSOR_ACCOUNT_FAILED' => "Sponsorenaccount konnte nicht geladen werden: <span class=\"data\">{%%pipe,translateSponsorStatus=%s%%}</span>",
        'SPONSOR_ACCOUNT_EMAIL_FAILED' => "Konnten Sponsorenaccount nicht freigeben! Bitte benachrichtigen Sie den Support.",
 
        'SPONSOR_ACCOUNT_FAILED' => "Sponsorenaccount konnte nicht geladen werden: <span class=\"data\">{%%pipe,translateSponsorStatus=%s%%}</span>",
        'SPONSOR_ACCOUNT_EMAIL_FAILED' => "Konnten Sponsorenaccount nicht freigeben! Bitte benachrichtigen Sie den Support.",
 
-// Login form
+       // Login form
        'SPONSOR_LOGIN_WELCOME' => "Willkommen zum Sponsorenlogin",
        'SPONSOR_ENTER_ID' => "Sponsor-Id",
        'SPONSOR_ENTER_PASSWORD' => "Passwort",
        'SPONSOR_LOGIN_WELCOME' => "Willkommen zum Sponsorenlogin",
        'SPONSOR_ENTER_ID' => "Sponsor-Id",
        'SPONSOR_ENTER_PASSWORD' => "Passwort",
@@ -278,7 +278,7 @@ addMessages(array(
        'SPONSOR_ACCOUNT_STATUS_FAILED' => "Unerwarteter Zustand des Scriptes erreicht! Bitte Support benachrichtigen.",
        'SPONSOR_ACCOUNT_IS_CONFIRMED_AGAIN' => "Ihr Sponsorenaccount ist wieder freigegeben! Sie k&ouml;nnen sich nun erneut einloggen.",
 
        'SPONSOR_ACCOUNT_STATUS_FAILED' => "Unerwarteter Zustand des Scriptes erreicht! Bitte Support benachrichtigen.",
        'SPONSOR_ACCOUNT_IS_CONFIRMED_AGAIN' => "Ihr Sponsorenaccount ist wieder freigegeben! Sie k&ouml;nnen sich nun erneut einloggen.",
 
-// Sponsor area
+       // Sponsor area
        'SPONSOR_NO_MAIN_MENUS_ACTIVE' => "Keine Hauptmen&uuml;s aktiviert.",
        'SPONSOR_NO_SUB_MENUS_ACTIVE' => "Keine Untermen&uuml;s aktiviert.",
        'SPONSOR_CONTENT_404' => "Konnte das Sponsor-Modul <span class=\"data\">%s</span> auf dem Server nicht finden.",
        'SPONSOR_NO_MAIN_MENUS_ACTIVE' => "Keine Hauptmen&uuml;s aktiviert.",
        'SPONSOR_NO_SUB_MENUS_ACTIVE' => "Keine Untermen&uuml;s aktiviert.",
        'SPONSOR_CONTENT_404' => "Konnte das Sponsor-Modul <span class=\"data\">%s</span> auf dem Server nicht finden.",
@@ -294,7 +294,7 @@ addMessages(array(
        'SPONSOR_UNKNOWN_WHAT' => "Scripte-Fehler: Unbekannte Sponsor-Aktion <span class=\"data\">{%pipe,getWhat%}</span> erkannt.",
        'SPONSOR_SETTINGS_SAVED' => "Neue Einstellungen gespeichert.",
 
        'SPONSOR_UNKNOWN_WHAT' => "Scripte-Fehler: Unbekannte Sponsor-Aktion <span class=\"data\">{%pipe,getWhat%}</span> erkannt.",
        'SPONSOR_SETTINGS_SAVED' => "Neue Einstellungen gespeichert.",
 
-// Error messages
+       // Error messages
        'SPONSOR_NO_MESSAGE_GENERATED' => "Fehler bei der Verarbeitung: Keine Nachricht generiert.",
        'SPONSOR_NO_CURRENT_PASSWORD_ENTERED' => "Sie haben Ihr derzeit gespeichertes Passwort nicht eingegeben.",
        'SPONSOR_CURRENT_PASSWORD_DIDNOT_MATCH_DB' => "Das von Ihnen und das in der Datenbank hinterlegte Passwort stimmen nicht &uuml;berein.",
        'SPONSOR_NO_MESSAGE_GENERATED' => "Fehler bei der Verarbeitung: Keine Nachricht generiert.",
        'SPONSOR_NO_CURRENT_PASSWORD_ENTERED' => "Sie haben Ihr derzeit gespeichertes Passwort nicht eingegeben.",
        'SPONSOR_CURRENT_PASSWORD_DIDNOT_MATCH_DB' => "Das von Ihnen und das in der Datenbank hinterlegte Passwort stimmen nicht &uuml;berein.",
@@ -303,6 +303,11 @@ addMessages(array(
        'SPONSOR_PASSWORD_TWO_EMPTY' => "Zweites einzugebenes Passwort ist leer.",
        'SPONSOR_PASSWORD_TOO_SHORT' => "Eingegebenes Passwort entspricht nicht der Mindestl&auml;nge von <span class=\"data\">{?pass_len?}</span> Zeichen.",
        'SPONSOR_ACCOUNT_DATA_NOT_SAVED' => "Ihre Daten wurden <u>nicht</u> gespeichert.",
        'SPONSOR_PASSWORD_TWO_EMPTY' => "Zweites einzugebenes Passwort ist leer.",
        'SPONSOR_PASSWORD_TOO_SHORT' => "Eingegebenes Passwort entspricht nicht der Mindestl&auml;nge von <span class=\"data\">{?pass_len?}</span> Zeichen.",
        'SPONSOR_ACCOUNT_DATA_NOT_SAVED' => "Ihre Daten wurden <u>nicht</u> gespeichert.",
+
+       // Module titles
+       'MODULE_SPONSOR_TITLE' => "Sponsorbereich"
+       'MODULE_SPONSOR_CONFIRM_TITLE' => "Sponsor-Best&auml;tigung"
+       'MODULE_SPONSOR_REF_TITLE' => "Sponsor-Referrallink"
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 0958454d7a8ec36ec22b3d14872666973364a902..28df1567374cbb6f93a0b5e5420d65ff848aa90a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2061d2d22f3b230ee03cfea5dcf9c11115487e0a..fed5628decf0495312d8dba8915a142cf05d8f35 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,11 +54,10 @@ addMessages(array(
        'ADMIN_CONFIG_SURFBAR_DYNAMIC_PERCENT' => "Prozent auf dynamische Verg&uuml;tung/ Verweildauer/Reload-Sperre:",
        'ADMIN_CONFIG_SURFBAR_MAX_ORDER' => "Maximal durch Mitglied in Surfbar buchbare URLs:",
        'ADMIN_CONFIG_SURFBAR_RESTART_TIME' => "Ruhezeit der Surfbar, wenn alle URLs in Reload-Lock sind:",
        'ADMIN_CONFIG_SURFBAR_DYNAMIC_PERCENT' => "Prozent auf dynamische Verg&uuml;tung/ Verweildauer/Reload-Sperre:",
        'ADMIN_CONFIG_SURFBAR_MAX_ORDER' => "Maximal durch Mitglied in Surfbar buchbare URLs:",
        'ADMIN_CONFIG_SURFBAR_RESTART_TIME' => "Ruhezeit der Surfbar, wenn alle URLs in Reload-Lock sind:",
-       'ADMIN_CONFIG_SURFBAR_AUTOSTART' => "Surfbar soll nach Ruhezeit automatisch starten?",
+       'ADMIN_CONFIG_SURFBAR_AUTO_START' => "Surfbar soll nach Ruhezeit automatisch starten?",
        'ADMIN_CONFIG_SURFBAR_STATS_RELOAD' => "Reload-Zeit der Statistik unterhalb der beworbenen Seite:",
        'ADMIN_CONFIG_SURFBAR_PURGE_DELETED' => "Verweildauer gel&ouml;schter URLs in der Datenbank:",
        'ADMIN_CONFIG_SURFBAR_PURGE_MIGRATED' => "Verweildauer migrierter URLs in der Datenbank:",
        'ADMIN_CONFIG_SURFBAR_STATS_RELOAD' => "Reload-Zeit der Statistik unterhalb der beworbenen Seite:",
        'ADMIN_CONFIG_SURFBAR_PURGE_DELETED' => "Verweildauer gel&ouml;schter URLs in der Datenbank:",
        'ADMIN_CONFIG_SURFBAR_PURGE_MIGRATED' => "Verweildauer migrierter URLs in der Datenbank:",
-       'ADMIN_CONFIG_SURFBAR_NOTICE' => "<strong>Hinweise:</strong> Es wird empfohlen, die Ruhezeit etwas l&auml;nger als die Reload-Sperre einzustellen. Migrierte URLs sind aus Mailbuchungen &uuml;bernommene URLs, die das Mitglied noch best&auml;tigen muss. Werden URLs aus freigeschalteten Mailbuchungen in die Surfbar &quot;migriert&quot; so muss erst das Mitglied der Aufnahme zustimmen. Tut es dies nicht, wird die URL wieder aus der Surfbar entfernt. Eine sofortige Freischaltung ist nicht m&ouml;glich.",
        'ADMIN_CONFIG_SURFBAR_PAUSE_MODE' => "Auf welche Seite soll umgeleitet werden, wenn das Mitglied alle gebuchten URLs besucht hat? (Wenn sie also im Reload-Lock sind)",
        'ADMIN_CONFIG_SURFBAR_PAUSE_MODE_INTERNAL' => "Auf interne Pausenseite umleiten.",
        'ADMIN_CONFIG_SURFBAR_PAUSE_MODE_EXTERNAL' => "Auf externe Seite umleiten.<br /><span class=\"notice\">(Bitte angeben)</span>",
        'ADMIN_CONFIG_SURFBAR_PAUSE_MODE' => "Auf welche Seite soll umgeleitet werden, wenn das Mitglied alle gebuchten URLs besucht hat? (Wenn sie also im Reload-Lock sind)",
        'ADMIN_CONFIG_SURFBAR_PAUSE_MODE_INTERNAL' => "Auf interne Pausenseite umleiten.",
        'ADMIN_CONFIG_SURFBAR_PAUSE_MODE_EXTERNAL' => "Auf externe Seite umleiten.<br /><span class=\"notice\">(Bitte angeben)</span>",
@@ -77,10 +76,26 @@ addMessages(array(
        'ADMIN_SURFBAR_STATS_TITLE' => "Mitglieder-Statistik der Surfbar",
        'ADMIN_SURFBAR_URL_STATS_TITLE' => "URL-bezogene Statistik der Surfbar",
        'ADMIN_LIST_SURFBAR_ACTIONS_TITLE' => "Mitglieder-Aktionen der Surfbar auflisten",
        'ADMIN_SURFBAR_STATS_TITLE' => "Mitglieder-Statistik der Surfbar",
        'ADMIN_SURFBAR_URL_STATS_TITLE' => "URL-bezogene Statistik der Surfbar",
        'ADMIN_LIST_SURFBAR_ACTIONS_TITLE' => "Mitglieder-Aktionen der Surfbar auflisten",
+       'ADMIN_EDIT_SURFBAR_ACTIONS_TITLE' => "Mitglieder-Aktionen &auml;ndern",
+
+       // Admin submit buttons
+       'ADMIN_SURFBAR_EDIT_URL_SUBMIT' => "URLs &auml;ndern",
+       'ADMIN_SURFBAR_EDIT_URL_NOW_SUBMIT' => "URLs jetzt &auml;ndern",
+       'ADMIN_SURFBAR_DELETE_URL_SUBMIT' => "URLs l&ouml;schen",
+       'ADMIN_SURFBAR_DELETE_URL_NOW_SUBMIT' => "URLs jetzt entfernen",
+       'ADMIN_SURFBAR_UNDELETE_URL_SUBMIT' => "L&ouml;schung zur&uuml;cknehmen",
+       'ADMIN_SURFBAR_UNDELETE_URL_NOW_SUBMIT' => "URLs jetzt wiederherstellen",
+       'ADMIN_SURFBAR_UNLOCK_URL_SUBMIT' => "URL ent-/sperren",
+       'ADMIN_SURFBAR_LOCK_URL_NOW_SUBMIT' => "URL jetzt ent-/sperren",
+       'ADMIN_SURFBAR_CONFIRM_URL_SUBMIT' => "URL(s) freigeben",
+       'ADMIN_SURFBAR_REJECT_URL_SUBMIT' => "URL(s) ablehnen",
+       'ADMIN_SURFBAR_ADD_URL_SUBMIT' => "URL hinzuf&uuml;gen",
+       'ADMIN_EDIT_SURFBAR_ACTIONS_SUBMIT' => "Mitgliedsaktionen editieren",
+       'ADMIN_CHANGE_SURFBAR_ACTIONS_SUBMIT' => "Mitglieder-Aktionen &auml;ndern",
 
        // General admin text
        'ADMIN_SURFBAR_URLS_404' => "Es konnten keine URLs in der Surfbar gefunden werden.",
 
        // General admin text
        'ADMIN_SURFBAR_URLS_404' => "Es konnten keine URLs in der Surfbar gefunden werden.",
-       'ADMIN_SURFBAR_ACTIONS_404' => "Es konnten keine Mitgliederaktionen in der Surfbar gefunden werden.",
+       'ADMIN_SURFBAR_ACTIONS_404' => "Es konnten keine Mitglieder-Aktionen in der Surfbar gefunden werden.",
        'ADMIN_SURFBAR_REWARD' => "Verg&uuml;tung",
        'ADMIN_SURFBAR_COSTS' => "Kosten",
        'ADMIN_SURFBAR_PAYMENT' => "Payment",
        'ADMIN_SURFBAR_REWARD' => "Verg&uuml;tung",
        'ADMIN_SURFBAR_COSTS' => "Kosten",
        'ADMIN_SURFBAR_PAYMENT' => "Payment",
@@ -89,34 +104,25 @@ addMessages(array(
        'ADMIN_SURFBAR_REGISTERED' => "URL aufgenommen",
        'ADMIN_SURFBAR_LAST_LOCKED' => "Zuletzt gesperrt",
        'ADMIN_SURFBAR_LOCK_REASON' => "Sperrgrund",
        'ADMIN_SURFBAR_REGISTERED' => "URL aufgenommen",
        'ADMIN_SURFBAR_LAST_LOCKED' => "Zuletzt gesperrt",
        'ADMIN_SURFBAR_LOCK_REASON' => "Sperrgrund",
-       'ADMIN_SURFBAR_EDIT_URL' => "URLs &auml;ndern",
-       'ADMIN_SURFBAR_EDIT_URL_NOW' => "URLs jetzt &auml;ndern",
-       'ADMIN_SURFBAR_DELETE_URL' => "URLs l&ouml;schen",
-       'ADMIN_SURFBAR_DELETE_URL_NOW' => "URLs jetzt entfernen",
-       'ADMIN_SURFBAR_UNDELETE_URL' => "L&ouml;schung zur&uuml;cknehmen",
-       'ADMIN_SURFBAR_UNDELETE_URL_NOW' => "URLs jetzt wiederherstellen",
-       'ADMIN_SURFBAR_UNLOCK_URL' => "URL ent-/sperren",
-       'ADMIN_SURFBAR_LOCK_URL_NOW' => "URL jetzt ent-/sperren",
-       'ADMIN_SURFBAR_CONFIRM_URL' => "URL(s) freigeben",
-       'ADMIN_SURFBAR_REJECT_URL' => "URL(s) ablehnen",
        'ADMIN_SURFBAR_UNLOCK_DONE' => "Freischaltung ausgew&auml;hlter URL(s) vollst&auml;ndig. :-)",
        'ADMIN_SURFBAR_UNLOCK_FAILED' => "Freischaltung fehlgeschlagen. Bitte nachschauen, welche URLs nicht freigegeben wurden.",
        'ADMIN_SURFBAR_URL_ADDED' => "URL wurde der Surfbar hinzugef&uuml;gt.",
        'ADMIN_SURFBAR_URL_NOT_ADDED' => "URL wurde wegen Fehler nicht hinzugef&uuml;gt. Ist die URL bereits vorhanden?",
        'ADMIN_SURFBAR_UNLOCK_DONE' => "Freischaltung ausgew&auml;hlter URL(s) vollst&auml;ndig. :-)",
        'ADMIN_SURFBAR_UNLOCK_FAILED' => "Freischaltung fehlgeschlagen. Bitte nachschauen, welche URLs nicht freigegeben wurden.",
        'ADMIN_SURFBAR_URL_ADDED' => "URL wurde der Surfbar hinzugef&uuml;gt.",
        'ADMIN_SURFBAR_URL_NOT_ADDED' => "URL wurde wegen Fehler nicht hinzugef&uuml;gt. Ist die URL bereits vorhanden?",
-       'ADMIN_SURFBAR_ADD_URL' => "URL hinzuf&uuml;gen",
        'ADMIN_SURFBAR_NO_STATS' => "Keine Surfbar-Statistiken vorhanden.",
        'ADMIN_SURFBAR_VISITED_URLS' => "Aufgerufene URLs",
        'ADMIN_SURFBAR_TOTAL_VISITS' => "Gesamtbesuche",
        'ADMIN_SURFBAR_TOTALS' => "Zusammenfassung",
        'ADMIN_SURFBAR_LAST_ONLINE' => "Letzter Aufruf der URL",
        'ADMIN_SURFBAR_NO_URL_STATS' => "Keine URL-bezogene Statistik gefunden",
        'ADMIN_SURFBAR_NO_STATS' => "Keine Surfbar-Statistiken vorhanden.",
        'ADMIN_SURFBAR_VISITED_URLS' => "Aufgerufene URLs",
        'ADMIN_SURFBAR_TOTAL_VISITS' => "Gesamtbesuche",
        'ADMIN_SURFBAR_TOTALS' => "Zusammenfassung",
        'ADMIN_SURFBAR_LAST_ONLINE' => "Letzter Aufruf der URL",
        'ADMIN_SURFBAR_NO_URL_STATS' => "Keine URL-bezogene Statistik gefunden",
-       'ADMIN_SURFBAR_NO_ACTIONS' => "Keine Mitgliederaktionen gefunden. Bitte installieren Sie die Surfbar neu.",
+       'ADMIN_SURFBAR_NO_ACTIONS' => "Keine Mitglieder-Aktionen gefunden. Bitte installieren Sie die Surfbar neu.",
        'ADMIN_SURFBAR_MEMBER_ACTION' => "Mitgliedaktion",
        'ADMIN_SURFBAR_CURRENT_STATUS' => "Aktueller Status",
        'ADMIN_SURFBAR_NEW_STATUS' => "Neuer Status",
        'ADMIN_SURFBAR_MEMBER_ACTION' => "Mitgliedaktion",
        'ADMIN_SURFBAR_CURRENT_STATUS' => "Aktueller Status",
        'ADMIN_SURFBAR_NEW_STATUS' => "Neuer Status",
-       'ADMIN_SURFBAR_EDIT_ACTIONS' => "Mitgliedsaktionen editieren",
-       'ADMIN_LIST_SURFBAR_ACTIONS_NOTICE' => "<strong>Hinweise:</strong> Sie sollten zur Sicherheit Ihres {?mt_word2?} den neuen Status nie auf <u>{--SURFBAR_URL_STATUS_ACTIVE--}</u> z.B. bei der Mitgliedaktion <u>{--MEMBER_SURFBAR_ACTION_UNPAUSE_SUBMIT--}</u> einstellen.",
        'ADMIN_SURFBAR_URL' => "Gebuchte URL",
        'ADMIN_SURFBAR_URL' => "Gebuchte URL",
+       'ADMIN_CHANGE_SURFBAR_ACTIONS_STATUS' => "Derzeitigen URL-Status &auml;ndern:",
+       'ADMIN_CHANGE_SURFBAR_ACTIONS_ACTION' => "Mitglieder-Aktion &auml;ndern:",
+       'ADMIN_CHANGE_SURFBAR_ACTIONS_NEW_STATUS' => "Neuen URL-Status &auml;ndern:",
+       'ADMIN_SURFBAR_ACTIONS_ID' => "Aktions-Id:",
 
        // Admin titles
        'ADMIN_SURFBAR_UNLOCK_URLS_TITLE' => "Surfbar - URLs freihschalten/ablehnen",
 
        // Admin titles
        'ADMIN_SURFBAR_UNLOCK_URLS_TITLE' => "Surfbar - URLs freihschalten/ablehnen",
@@ -126,13 +132,21 @@ addMessages(array(
        'ADMIN_SURFBAR_LOCK_URLS_TITLE' => "Surfbar - URLs sperren/entsperren",
        'ADMIN_SURFBAR_UNDELETE_URLS_TITLE' => "Surfbar - gel&ouml;schte URLs wiederherstellen",
 
        'ADMIN_SURFBAR_LOCK_URLS_TITLE' => "Surfbar - URLs sperren/entsperren",
        'ADMIN_SURFBAR_UNDELETE_URLS_TITLE' => "Surfbar - gel&ouml;schte URLs wiederherstellen",
 
+       // Admin notices
+       'ADMIN_CONFIG_SURFBAR_NOTICE' => "<strong>Hinweise:</strong> Es wird empfohlen, die Ruhezeit etwas l&auml;nger als die Reload-Sperre einzustellen. Migrierte URLs sind aus Mailbuchungen &uuml;bernommene URLs, die das Mitglied noch best&auml;tigen muss. Werden URLs aus freigeschalteten Mailbuchungen in die Surfbar &quot;migriert&quot; so muss erst das Mitglied der Aufnahme zustimmen. Tut es dies nicht, wird die URL wieder aus der Surfbar entfernt. Eine sofortige Freischaltung ist nicht m&ouml;glich.",
+       'ADMIN_LIST_SURFBAR_ACTIONS_NOTICE' => "<strong>Hinweise:</strong> Sie sollten zur Sicherheit Ihres {?mt_word2?} den neuen Status nie auf <u>{--SURFBAR_URL_STATUS_ACTIVE--}</u> z.B. bei der Mitgliedaktion <u>{--MEMBER_SURFBAR_ACTION_UNPAUSE_SUBMIT--}</u> einstellen.",
+       'ADMIN_EDIT_SURFBAR_ACTIONS_NOTICE' => "Seien Sie beim &Auml;ndern von Mitglieder-Aktionen, URL-Status und neuen Status sehr vorsichtig! Eventuell kann der Besuchertausch Ihres {?mt_word2?} nicht mehr einwandfrei funktionieren.",
+
        // Member titles
        'MEMBER_SURFBAR_LIST_TITLE' => "Ihre URLs in der Surfbar verwalten",
 
        // Member titles
        'MEMBER_SURFBAR_LIST_TITLE' => "Ihre URLs in der Surfbar verwalten",
 
+       // Member submit buttons
+       'MEMBER_SURFBAR_ADD_URL_SUBMIT' => "URL in Surfbar buchen",
+       'MEMBER_SURFBAR_TEST_URL_SUBMIT' => "URL anzeigen",
+
        // General member text
        'MEMBER_SURFBAR_URL_ADDED' => "URL hinzugef&uuml;gt und wartet auf Freischaltung.",
        'MEMBER_SURFBAR_URL_NOT_ADDED' => "URL konnte nicht hinzugef&uuml;gt werden, da ein Fehler vorliegt.",
        // General member text
        'MEMBER_SURFBAR_URL_ADDED' => "URL hinzugef&uuml;gt und wartet auf Freischaltung.",
        'MEMBER_SURFBAR_URL_NOT_ADDED' => "URL konnte nicht hinzugef&uuml;gt werden, da ein Fehler vorliegt.",
-       'MEMBER_SURFBAR_ADD_URL' => "URL in Surfbar buchen",
        'MEMBER_SURFBAR_NO_MORE_ALLOWED' => "Sie k&ouml;nnen leider nicht mehr URLs in der Surfbar buchen, da Sie das Maximum erreicht haben.",
        'MEMBER_SURFBAR_NO_URLS_FOUND' => "Sie haben noch keine URLs f&uuml;r die Surfbar gebucht.",
        'MEMBER_SURFBAR_VIEWS_TOTAL' => "Views",
        'MEMBER_SURFBAR_NO_MORE_ALLOWED' => "Sie k&ouml;nnen leider nicht mehr URLs in der Surfbar buchen, da Sie das Maximum erreicht haben.",
        'MEMBER_SURFBAR_NO_URLS_FOUND' => "Sie haben noch keine URLs f&uuml;r die Surfbar gebucht.",
        'MEMBER_SURFBAR_VIEWS_TOTAL' => "Views",
@@ -141,7 +155,6 @@ addMessages(array(
        'MEMBER_SURFBAR_LAST_LOCKED' => "Letzte Sperre",
        'MEMBER_SURFBAR_LOCK_REASON' => "Sperrgrund",
        'MEMBER_SURFBAR_ACTIONS' => "Aktionen",
        'MEMBER_SURFBAR_LAST_LOCKED' => "Letzte Sperre",
        'MEMBER_SURFBAR_LOCK_REASON' => "Sperrgrund",
        'MEMBER_SURFBAR_ACTIONS' => "Aktionen",
-       'MEMBER_SURFBAR_TEST_URL' => "URL anzeigen",
        'MEMBER_SURFBAR_LIST_NOTICE' => "<strong>Hinweise:</strong> Bitte beachten Sie, dass Editieren, erneutes Aktivieren von gestoppten URLs und nochmalige Anmeldung nach Ablehnung eine Freischaltung durch unsere Administratoren n&ouml;tig ist. Migrierte URLs sind in der Surfbar nicht freigegeben und bedarfen einer Buchungsbest&auml;tigung (&quot;Jetzt buchen&quot; bitte dazu anklicken) Ihrerseits, da die Bewerbung Ihrer URL in der Surfbar zus&auml;tzliche {?POINTS?}-Kosten bedeuten. Die aktuellen Kosten entnehmen Sie bitte der Seite &quot;Surfbar starten&quot; oder &quot;URL buchen&quot; aus dem Surfbar-Mitgliedsmen&uuml;.",
        'MEMBER_SURFBAR_ACTION_DONE' => "Ausgew&auml;hlte Aktion ausgef&uuml;hrt.",
        'MEMBER_SURFBAR_ACTION_FAILED' => "Ausgew&auml;hlte Aktion konnte nicht vollst&auml;ndig ausgef&uuml;hrt werden.",
        'MEMBER_SURFBAR_LIST_NOTICE' => "<strong>Hinweise:</strong> Bitte beachten Sie, dass Editieren, erneutes Aktivieren von gestoppten URLs und nochmalige Anmeldung nach Ablehnung eine Freischaltung durch unsere Administratoren n&ouml;tig ist. Migrierte URLs sind in der Surfbar nicht freigegeben und bedarfen einer Buchungsbest&auml;tigung (&quot;Jetzt buchen&quot; bitte dazu anklicken) Ihrerseits, da die Bewerbung Ihrer URL in der Surfbar zus&auml;tzliche {?POINTS?}-Kosten bedeuten. Die aktuellen Kosten entnehmen Sie bitte der Seite &quot;Surfbar starten&quot; oder &quot;URL buchen&quot; aus dem Surfbar-Mitgliedsmen&uuml;.",
        'MEMBER_SURFBAR_ACTION_DONE' => "Ausgew&auml;hlte Aktion ausgef&uuml;hrt.",
        'MEMBER_SURFBAR_ACTION_FAILED' => "Ausgew&auml;hlte Aktion konnte nicht vollst&auml;ndig ausgef&uuml;hrt werden.",
@@ -157,6 +170,7 @@ addMessages(array(
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_DELETED_SUBJECT' => "[Surfbar:] Mitglied hat wartende URL zur&uuml;ckgenommen",
        'ADMIN_SURFBAR_NOTIFY_URL_STOPPED_DELETED_SUBJECT' => "[Surfbar:] Mitglied hat angehaltene URL gel&ouml;scht",
        'ADMIN_SURFBAR_NOTIFY_URL_REJECTED_SUBJECT' => "[Surfbar:] URL abgelehnt",
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_DELETED_SUBJECT' => "[Surfbar:] Mitglied hat wartende URL zur&uuml;ckgenommen",
        'ADMIN_SURFBAR_NOTIFY_URL_STOPPED_DELETED_SUBJECT' => "[Surfbar:] Mitglied hat angehaltene URL gel&ouml;scht",
        'ADMIN_SURFBAR_NOTIFY_URL_REJECTED_SUBJECT' => "[Surfbar:] URL abgelehnt",
+       'ADMIN_SURFBAR_NOTIFY_URL_REJECTED_PENDING_SUBJECT' => "[Surfbar:] Erneute Anmeldung einer URL",
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_SUBJECT' => "[Surfbar:] URL-Buchung zugestimmt",
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_ACTIVE_SUBJECT' => "[Surfbar:] URL-Buchung freigeschaltet",
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_REJECTED_SUBJECT' => "[Surfbar:] URL-Buchung abgelehnt",
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_SUBJECT' => "[Surfbar:] URL-Buchung zugestimmt",
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_ACTIVE_SUBJECT' => "[Surfbar:] URL-Buchung freigeschaltet",
        'ADMIN_SURFBAR_NOTIFY_URL_PENDING_REJECTED_SUBJECT' => "[Surfbar:] URL-Buchung abgelehnt",
@@ -188,6 +202,7 @@ addMessages(array(
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_DELETED_SUBJECT' => "[Surfbar:] Sie haben Ihre wartende URL zur&uuml;ckgenommen",
        'MEMBER_SURFBAR_NOTIFY_URL_STOPPED_DELETED_SUBJECT' => "[Surfbar:] Sie haben Ihre gestoppte URL gel&ouml;scht",
        'MEMBER_SURFBAR_NOTIFY_URL_REJECTED_SUBJECT' => "[Surfbar:] Ihre URL wurde abgelehnt",
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_DELETED_SUBJECT' => "[Surfbar:] Sie haben Ihre wartende URL zur&uuml;ckgenommen",
        'MEMBER_SURFBAR_NOTIFY_URL_STOPPED_DELETED_SUBJECT' => "[Surfbar:] Sie haben Ihre gestoppte URL gel&ouml;scht",
        'MEMBER_SURFBAR_NOTIFY_URL_REJECTED_SUBJECT' => "[Surfbar:] Ihre URL wurde abgelehnt",
+       'MEMBER_SURFBAR_NOTIFY_URL_REJECTED_PENDING_SUBJECT' => "[Surfbar:] Erneute Anmeldung Ihrer URL",
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_SUBJECT' => "[Surfbar:] Zustimmung zur URL-Buchung erhalten",
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_ACTIVE_SUBJECT' => "[Surfbar:] Ihre URL wurde freigeschaltet",
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_REJECTED_SUBJECT' => "[Surfbar:] Ihre URL wurde abgelehnt",
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_SUBJECT' => "[Surfbar:] Zustimmung zur URL-Buchung erhalten",
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_ACTIVE_SUBJECT' => "[Surfbar:] Ihre URL wurde freigeschaltet",
        'MEMBER_SURFBAR_NOTIFY_URL_PENDING_REJECTED_SUBJECT' => "[Surfbar:] Ihre URL wurde abgelehnt",
@@ -248,6 +263,13 @@ addMessages(array(
 
        // Guest texts
        'GUEST_SURFBAR_LOGIN_HEADER' => "Login zur Surfbar:",
 
        // Guest texts
        'GUEST_SURFBAR_LOGIN_HEADER' => "Login zur Surfbar:",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_SURFBAR'         => "Verg&uuml;tung im Besuchertausch",
+       'POINTS_SUBJECT_MONTHLY_SURFBAR' => "Monatl. Reset (Besuchertausch)",
+
+       // Module title
+       'MODULE_SURFBAR_TITLE' => "Besuchertausch",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 888154b5484a5dfa7ca8d8ec3d5b41e48faf7eed..909620ae6378f5d977c3ac44a229768909f49a75 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,6 +51,7 @@ addMessages(array(
        'ADMIN_TASK_UNCONFIRMED' => "Unbest&auml;tigt",
        'ADMIN_TASK_LOCKED' => "Gesperrt",
        'ADMIN_TASK_RANDOM_REFID' => "Zufallsreferral",
        'ADMIN_TASK_UNCONFIRMED' => "Unbest&auml;tigt",
        'ADMIN_TASK_LOCKED' => "Gesperrt",
        'ADMIN_TASK_RANDOM_REFID' => "Zufallsreferral",
+       'ADMIN_TASK_TESTERS' => "Testbenutzer",
        'ADMIN_TASK_NEW_TASKS' => "Ohne Zuweisung",
        'ADMIN_TASK_CLOSED_TASKS' => "Geschlossen",
        'ADMIN_TASK_YOUR_TASKS' => "Ihre Aufgaben",
        'ADMIN_TASK_NEW_TASKS' => "Ohne Zuweisung",
        'ADMIN_TASK_CLOSED_TASKS' => "Geschlossen",
        'ADMIN_TASK_YOUR_TASKS' => "Ihre Aufgaben",
index cf7d727fd4fa3ba9a8a3a7584d57f45313645439..cb0199e93447f67e76445e9e9f28fcaa7044b1ba 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index d4084195773827848575682e9c729b03e98f9ae3..ee8c32eb015ff8b691c6a17c78fb523adff40e90 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c7127400841da3cfca40a687a8bb8280cb3022d5..03f7c011be3ec57590094b9801751cb5ff4db768 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5067251a9c4ef4b09ec598a2349e64049c395ae9..85e2d207fdb7b7c15db5ebb66a011ab0029f7d2c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,6 +42,7 @@ if (!defined('__SECURITY')) {
 
 // Language definitions
 addMessages(array(
 
 // Language definitions
 addMessages(array(
+       // Admin messages
        'ADMIN_CONFIG_TRANSFER_TITLE' => "Einstellungen zu {?POINTS?}-&Uuml;berweisungen",
        'ADMIN_CONFIG_TRANSFER_MAX' => "Maximal angezeigte Eintr&auml;ge",
        'ADMIN_CONFIG_TRANSFER_AGE' => "Maximales Alter von Eintr&auml;gen",
        'ADMIN_CONFIG_TRANSFER_TITLE' => "Einstellungen zu {?POINTS?}-&Uuml;berweisungen",
        'ADMIN_CONFIG_TRANSFER_MAX' => "Maximal angezeigte Eintr&auml;ge",
        'ADMIN_CONFIG_TRANSFER_AGE' => "Maximales Alter von Eintr&auml;gen",
@@ -51,49 +52,58 @@ addMessages(array(
        'ADMIN_CONFIG_TRANSFER_CODE_NOTICE' => "<strong>0</strong> deaktiviert den Touring-Code.",
        'ADMIN_CONFIG_AUTOPURGE_TRANSFER' => "Veraltete Eintr&auml;ge automatisch l&ouml;schen? (purge)",
        'ADMIN_TRANSFER_POINTS_TOTAL' => "Gesamttransfersumme",
        'ADMIN_CONFIG_TRANSFER_CODE_NOTICE' => "<strong>0</strong> deaktiviert den Touring-Code.",
        'ADMIN_CONFIG_AUTOPURGE_TRANSFER' => "Veraltete Eintr&auml;ge automatisch l&ouml;schen? (purge)",
        'ADMIN_TRANSFER_POINTS_TOTAL' => "Gesamttransfersumme",
-       'TRANSFER_LIST_INCOMING' => "Eingehende &Uuml;berweisungen",
-       'TRANSFER_LIST_OUTGOING' => "Ausgehende &Uuml;berweisungen",
-       'TRANSFER_ALLOW_OPT_IN' => "Wollen Sie {?POINTS?}-&Uuml;berweisungen von anderen Mitgliedern erhalten?",
-       'TRANSFER_TO_MEMBER_NOW' => "Neue {?POINTS?}-&Uuml;berweisung starten",
-       'TRANSFER_PLEASE_ALLOW_OPT_IN' => "Bitte erst Empfangen von &Uuml;berweisungen erlauben.",
-       'TRANSFER_NOW_LINK' => "&Uuml;berweisung zum anderen Mitglied t&auml;tigen",
-       'TRANSFER_NOW_TITLE' => "Starten Sie hier eine &Uuml;berweisung von {?POINTS?} an ein anderes Mitglied.",
-       'TRANSFER_SELECT_TARGET_USERID' => "Empf&auml;nger ausw&auml;hlen",
-       'TRANSFER_NO_ONE_ELSE_OPT_IN' => "Niemand weiteres m&ouml;chte &Uuml;berweisungen empfangen.",
-       'TRANSFER_POINTS_MAXIMUM' => "Maximaler Betrag",
-       'TRANSFER_POINTS_AMOUNT' => "Zu &uuml;berweisende {?POINTS?}",
-       'TRANSFER_NO_CODE' => "Nicht erforderlich.",
+       'ADMIN_TRANSFER_FROM_USERID' => "Sender",
+       'ADMIN_TRANSFER_TO_USERID' => "Empf&auml;nger",
+       'ADMIN_DELETE_TRANSFERS_SUBMIT' => "&Uuml;berweisungen l&ouml;schen",
+
+       // Admin/member shared messages
        'TRANSFER_POINTS_REASON' => "Verwendungszweck",
        'TRANSFER_POINTS_REASON' => "Verwendungszweck",
-       'TRANSFER_POINTS_SECURITY_CODE' => "Touring-Code eingeben",
-       'TRANSFER_ENTER_PASSWORD' => "Ihr Passwort eingeben",
-       'TRANSFER_ADD_NEW' => "Transfer abschliessen",
-       'TRANSFER_INVALID_CODE' => "Ung&uuml;tigen Touring-Code eingegeben.",
-       'TRANSFER_INVALID_PASSWORD' => "Eingegebenes und gespeichertes Passwort stimmen nicht &uuml;berein.",
-       'TRANSFER_INVALID_POINTS' => "Kann nicht mehr &uuml;berweisen, als dass Sie an Guthaben haben.",
-       'TRANSFER_INVALID_REASON' => "Bitte einen Verwendungszweck eingeben.",
-       'TRANSFER_INVALID_RECIPIENT' => "Bitte w&auml;hlen Sie einen Empf&auml;nger aus.",
-       'TRANSFER_INVALID_DATA' => "Konnte Absender- und Empf&auml;ngerdaten nicht verifizieren.",
-       'TRANSFER_ADMIN_SUBJECT' => "{?POINTS?}-Transfer abgeschlossen",
-       'TRANSFER_MEMBER_RECIPIENT_SUBJECT' => "{?POINTS?}-&Uuml;berweisung durch Mitglied",
-       'TRANSFER_MEMBER_SENDER_SUBJECT' => "{?POINTS?}-&Uuml;berweisung an Mitglied",
-       'TRANSFER_ADMIN_AUTOPURGE' => "Auto-L&ouml;schung von Transfer-Eintr&auml;gen",
-       'TRANSFER_COMPLETED' => "&Uuml;berweisung vollst&auml;ndig.",
-       'TRANSFER_CONTINUE_OVERVIEW' => "Weiter zur &Uuml;bersichtsseite...",
-       'TRANSFER_LATEST_IS' => "Einstellung gesperrt, letzte &Uuml;berweisung war am <span class=\"data\">%s</span>",
        'TRANSFER_LIST_ALL' => "Gesamte &Uuml;berweisungsliste anzeigen",
        'TRANSFER_LIST_ALL' => "Gesamte &Uuml;berweisungsliste anzeigen",
-       'TRANSFER_NO_INCOMING_TRANSFERS' => "Keine eingehenden &Uuml;berweisungen gefunden.",
-       'TRANSFER_NO_OUTGOING_TRANSFERS' => "Keine ausgehenden &Uuml;berweisungen gefunden.",
        'TRANSFER_NO_INOUT_TRANSFERS' => "Keine &Uuml;berweisungen gefunden.",
        'TRANSFER_NO_INOUT_TRANSFERS' => "Keine &Uuml;berweisungen gefunden.",
-       'TRANSFER_TOTAL_INCOMING' => "Gesamteing&auml;nge",
-       'TRANSFER_TOTAL_OUTGOING' => "Gesamtausg&auml;nge",
        'TRANSFER_TOTAL_BALANCE' => "Saldo",
        'TRANSFER_ID' => "Trans-Id",
        'TRANSFER_STAMP' => "Buchungstag",
        'TRANSFER_TOTAL_BALANCE' => "Saldo",
        'TRANSFER_ID' => "Trans-Id",
        'TRANSFER_STAMP' => "Buchungstag",
-       'TRANSFER_PARTY' => "Empf./Sender",
-       'TRANSFER_FROM_USERID' => "Sender",
-       'TRANSFER_TO_USERID' => "Empf&auml;nger",
-       'TRANSFER_TOTAL_SUM' => "Gesamt transferierte {?POINTS?}",
-       'TRANSFER_DELETE' => "Eintr&auml;ge l&ouml;schen",
+
+       // Member languages
+       'MEMBER_LIST_INCOMING_TRANSFER_TITLE' => "Eingehende &Uuml;berweisungen",
+       'MEMBER_LIST_OUTGOING_TRANSFER_TITLE' => "Ausgehende &Uuml;berweisungen",
+       'MEMBER_ALLOW_TRANSFER_OPT_IN' => "Wollen Sie {?POINTS?}-&Uuml;berweisungen von anderen Mitgliedern erhalten?",
+       'MEMBER_START_NEW_TRANSFER' => "Neue {?POINTS?}-&Uuml;berweisung starten",
+       'MEMBER_PLEASE_ALLOW_TRANSFER_RECEIVE' => "Bitte erst Empfangen von &Uuml;berweisungen erlauben.",
+       'MEMBER_TRANSFER_NOW_LINK' => "&Uuml;berweisung zum anderen Mitglied t&auml;tigen",
+       'MEMBER_TRANSFER_NOW_LINK_TITLE' => "Starten Sie hier eine &Uuml;berweisung von {?POINTS?} an ein anderes Mitglied.",
+       'MEMBER_SELECT_TRANSFER_TARGET_USERID' => "Empf&auml;nger ausw&auml;hlen",
+       'MEMBER_TRANSFER_NO_ONE_ELSE_OPT_IN' => "Niemand weiteres m&ouml;chte &Uuml;berweisungen empfangen.",
+       'MEMBER_TRANSFER_POINTS_MAXIMUM' => "Maximaler Betrag",
+       'MEMBER_TRANSFER_POINTS_AMOUNT' => "Zu &uuml;berweisende {?POINTS?}",
+       'MEMBER_TRANSFER_NO_CODE' => "Nicht erforderlich.",
+       'MEMBER_ENTER_TRANSFER_POINTS_REASON' => "Verwendungszweck eingeben",
+       'MEMBER_TRANSFER_POINTS_SECURITY_CODE' => "Touring-Code eingeben",
+       'MEMBER_ENTER_TRANSFER_PASSWORD' => "Ihr Passwort eingeben",
+       'MEMBER_TRANSFER_ADD_NEW_SUBMIT' => "Transfer abschliessen",
+       'MEMBER_TRANSFER_INVALID_CODE' => "Ung&uuml;ltigen Touring-Code eingegeben.",
+       'MEMBER_TRANSFER_INVALID_PASSWORD' => "Eingegebenes und gespeichertes Passwort stimmen nicht &uuml;berein.",
+       'MEMBER_TRANSFER_INVALID_POINTS' => "Kann nicht mehr &uuml;berweisen, als dass Sie an Guthaben haben.",
+       'MEMBER_TRANSFER_INVALID_REASON' => "Bitte einen Verwendungszweck eingeben.",
+       'MEMBER_TRANSFER_INVALID_RECIPIENT' => "Bitte w&auml;hlen Sie einen Empf&auml;nger aus.",
+       'MEMBER_TRANSFER_INVALID_DATA' => "Konnte Absender- und Empf&auml;ngerdaten nicht verifizieren.",
+       'MEMBER_TRANSFER_COMPLETED' => "&Uuml;berweisung vollst&auml;ndig.",
+       'MEMBER_TRANSFER_CONTINUE_OVERVIEW' => "Weiter zur &Uuml;bersichtsseite...",
+       'MEMBER_TRANSFER_LATEST_IS' => "Einstellung gesperrt, letzte &Uuml;berweisung war am <span class=\"data\">%s</span>",
+       'MEMBER_TRANSFER_NO_INCOMING_TRANSFERS' => "Keine eingehenden &Uuml;berweisungen gefunden.",
+       'MEMBER_TRANSFER_NO_OUTGOING_TRANSFERS' => "Keine ausgehenden &Uuml;berweisungen gefunden.",
+       'MEMBER_TRANSFER_TOTAL_INCOMING' => "Gesamteing&auml;nge",
+       'MEMBER_TRANSFER_TOTAL_OUTGOING' => "Gesamtausg&auml;nge",
+       'MEMBER_TRANSFER_PARTY' => "Empf./Sender",
+
+       // Subject lines
+       'ADMIN_TRANSFER_SUBJECT' => "{?POINTS?}-Transfer abgeschlossen",
+       'ADMIN_TRANSFER_AUTOPURGE_SUBJECT' => "Auto-L&ouml;schung von Transfer-Eintr&auml;gen",
+       'MEMBER_TRANSFER__RECIPIENT_SUBJECT' => "{?POINTS?}-&Uuml;berweisung durch Mitglied",
+       'MEMBER_TRANSFER__SENDER_SUBJECT' => "{?POINTS?}-&Uuml;berweisung an Mitglied",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_TRANSFER' => "&Uuml;berweisung durch Mitglied",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 2e32f5dfe589a3a2621c9adb115f812aad556223..752a062fe6e17c72534489269139a4d6a0f46d7c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7fd235f646ac50f08b87dd8c410fe591cec2d5f5..069cc21288f1fff90f719f45f2a36ec683ee3cd9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index d861f69fcee56d1606bcf853f8ba102d6b17756d..fc65a05cc83f5c60d0d5b8dc5c2df1739471a49f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,8 +44,8 @@ if (!defined('__SECURITY')) {
 addMessages(array(
        'ADMIN_USER_PAGENAV' => "Seiten",
        'ADMIN_CONFIG_USER_TITLE' => "Konfiguration - Mitgliederliste",
 addMessages(array(
        'ADMIN_USER_PAGENAV' => "Seiten",
        'ADMIN_CONFIG_USER_TITLE' => "Konfiguration - Mitgliederliste",
-       'ADMIN_CONFIG_USER_LIMIT' => "Anzahl Mitglieder pro Seite",
-       'ADMIN_CONFIG_USER_ALPHA' => "Azanhl Buchstaben pro Zeile",
+       'ADMIN_CONFIG_USER_LIMIT' => "Anzahl Mitglieder pro Seite:",
+       'ADMIN_CONFIG_USER_ALPHA' => "Azanhl Buchstaben pro Zeile:",
        'ADMIN_USER_ACCOUNT_SAVED' => "Mitgliedsaccount gespeichert.",
        'ADMIN_USER_ACCOUNT_NOT_SAVED' => "Mitgliedsaccount <u>nicht</u> gespeichert.",
        'ADMIN_USER_ACCOUNT_LOCKED' => "Mitgliedsaccount <span class=\"data\">%s</span> wurde gesperrt.",
        'ADMIN_USER_ACCOUNT_SAVED' => "Mitgliedsaccount gespeichert.",
        'ADMIN_USER_ACCOUNT_NOT_SAVED' => "Mitgliedsaccount <u>nicht</u> gespeichert.",
        'ADMIN_USER_ACCOUNT_LOCKED' => "Mitgliedsaccount <span class=\"data\">%s</span> wurde gesperrt.",
@@ -64,6 +64,51 @@ addMessages(array(
        'ADMIN_USER_ACTION_LINK_SUB_POINTS_TITLE' => "Dem Mitglied {?POINTS?} abziehen",
        'ADMIN_USER_ACTION_LINK_CONFIRM_ACCOUNT_TITLE' => "Das Mitgliederaccount best&auml;tigen",
        'ADMIN_USER_ACTION_LINK_CONFIRM_ACCOUNT' => "Best&auml;tigen",
        'ADMIN_USER_ACTION_LINK_SUB_POINTS_TITLE' => "Dem Mitglied {?POINTS?} abziehen",
        'ADMIN_USER_ACTION_LINK_CONFIRM_ACCOUNT_TITLE' => "Das Mitgliederaccount best&auml;tigen",
        'ADMIN_USER_ACTION_LINK_CONFIRM_ACCOUNT' => "Best&auml;tigen",
+
+       // Legends
+       'ADMIN_CONFIG_USER_LEGEND' => "Konfiguration zur Mitgliederliste",
+       'ADMIN_CONFIG_TESTER_USER_LEGEND' => "Konfiguration zu Testbenutzerdaten",
+       'ADMIN_ADD_TESTER_USER_LEGEND' => "Grunddaten eingeben/Referral ausw&auml;hlen",
+       'ADMIN_ADD_TESTER_USER_CATEGORIES_LEGEND' => "Interessensgebiete",
+       'ADMIN_ADD_TESTER_USER_MAX_RECEIVE_LEGEND' => "Maximalen Mailempfang pro Tag",
+       'ADMIN_ADD_TESTER_USER_PASSWORDS_LEGEND' => "Passwort und -wiederholung",
+
+       // Tester user accounts:
+       // - Configuration
+       'ADMIN_CONFIG_TESTER_USER_MAXIMUM' => "Gr&ouml;sster Suffix f&uuml;r Testbenutzer:",
+       'ADMIN_CONFIG_TESTER_USER_GENDER' => "Anrede:",
+       'ADMIN_CONFIG_TESTER_USER_SURNAME_PREFIX' => "Pr&auml;fix f&uuml;r Testbenutzer:",
+       'ADMIN_CONFIG_TESTER_USER_FAMILY' => "Nachname:",
+       'ADMIN_CONFIG_TESTER_USER_STREET_NR' => "Stra&szlig;e + Hausnummer:",
+       'ADMIN_CONFIG_TESTER_USER_ZIP' => "Postleitzahl:",
+       'ADMIN_CONFIG_TESTER_USER_CITY' => "Wohnort:",
+       'ADMIN_CONFIG_TESTER_USER_EMAIL' => "Email-Adresse:",
+       'ADMIN_CONFIG_TESTER_USER_PASSWORD' => "Passwort:",
+       'ADMIN_CONFIG_TESTER_USER_DEFAULT_REFID' => "Testbenutzer immer standardm&auml;&szlig;ig verwenden:",
+       'ADMIN_CONFIG_TESTER_USER_CHECK_CAT' => "Sollen alle Kategorien vorausgew&auml;hlt sein?",
+       'ADMIN_CONFIG_TESTER_USER_CHECK_CAT_NOTICE' => "(Nein=Alle abgew&auml;hlt)",
+
+       // - Adding new tester account
+       'ADMIN_ADD_TESTER_USER_NOTICE' => "Es sind bereits <span class=\"data\">{%pipe,getTotalTesterUsers,translateComma%}</span> von maximal <span class=\"data\">{%config,translateComma=tester_user_maximum%}</span> Testbenutzern angelegt.",
+       'ADMIN_ADD_TESTER_USER_TITLE' => "Neuen Testbenutzer anlegen",
+       'ADMIN_ADD_TESTER_USER_SUBMIT' => "Testbenutzer anlegen",
+       'ADMIN_ADD_TESTER_USER_GENDER' => "Anrede ausw&auml;hlen:",
+       'ADMIN_ADD_TESTER_USER_SURNAME' => "Vorname (<strong>NICHT SP&Auml;TER &Auml;NDERN!</strong>):",
+       'ADMIN_ADD_TESTER_USER_FAMILY' => "Nachname eingeben:",
+       'ADMIN_ADD_TESTER_USER_STREET_NR' => "Stra&szlig;e + Hausnummer eingeben:",
+       'ADMIN_ADD_TESTER_USER_ZIP' => "Postleitzahl eingeben:",
+       'ADMIN_ADD_TESTER_USER_CITY' => "Wohnort eingeben:",
+       'ADMIN_ADD_TESTER_USER_EMAIL' => "Email-Adresse eingeben:",
+       'ADMIN_ADD_TESTER_USER_PASSWORD1' => "Passwort eingeben:",
+       'ADMIN_ADD_TESTER_USER_PASSWORD2' => "Passwort wiederholen:",
+       'ADMIN_ADD_TESTER_USER_DEFAULT_REFID' => "Referral-Account ausw&auml;hlen:",
+       'ADMIN_ADD_TESTER_USER_BIRTHDAY' => "Geburtstag:",
+       'ADMIN_ADD_TESTER_USER_COUNTRY' => "Land ausw&auml;hlen:",
+
+       // Success/error messages
+       'ADMIN_TESTER_USER_ACCOUNT_CREATION_DONE' => "Es wurde ein Testbenutzeraccount angelegt und sofort freigeschaltet.",
+       'ADMIN_MAXIMUM_USER_TESTER_REACHED' => "Sie haben die maximale Anzahl an Testbenutzer angelegt. Entweder sollten Sie wieder welche l&ouml;schen oder die maximale Anzahl erh&ouml;hen (hartkodiertes Maximum ist jedoch 100.000 (99.999+0=100.000).",
+       'ADMIN_TESTER_USER_ACCOUNT_CREATION_FAILED' => "Das Anlegen eines Testbenuters ist fehlgeschlagen.",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 21c74c208bc9090f22495adab1b6d321a32a9b1f..20104de7930da254f6736865055f4a27847c231b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index eb466ade8aaca190ab1d205c9f7ab852f1116db9..70e7974aa54c06bd0c1f1828894883831d9145c9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -136,6 +136,9 @@ addMessages(array(
        'MEMBER_WERNIS_MODE_WITHDRAW' => "Wernis einzahlen",
        'MEMBER_WERNIS_MODE_PAYOUT' => "Wernis auszahlen",
        'MEMBER_WERNIS_LIST_WERNIS' => "&Uuml;berweisungsliste von/an WDS66-Hauptaccount",
        'MEMBER_WERNIS_MODE_WITHDRAW' => "Wernis einzahlen",
        'MEMBER_WERNIS_MODE_PAYOUT' => "Wernis auszahlen",
        'MEMBER_WERNIS_LIST_WERNIS' => "&Uuml;berweisungsliste von/an WDS66-Hauptaccount",
+
+       // Points accounts - subject
+       'POINTS_SUBJECT_WERNIS_WITHDRAW' => "Einzahlung vom WDS66-Account",
 ));
 
 // [EOF]
 ));
 
 // [EOF]
index 635b2786745d6977a61a1f3e99d3f0895097ade7..01d5daf3474314c481442de95bb6e2db62ef3872 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5c45183a8d9adb8804a978e6ca998b83a461485c..7e0a7b8dff8b9650ddb20d46638b882521dcf2b9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 05809f8044cb7c386f7e8c2d0cef4ee84f0fa937..810fec66953e44bb67fae3764967a3ee924500b0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 15f781889d7a8200bde175ae1a342b2735776c67..5f5075a574ff7e8f131933632b448db9ea4fd8cf 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -164,7 +164,7 @@ LIMIT 1",
                $email = '{%url=modules.php?module=' . $mod . '&amp;what=admins_contct&amp;id=' . bigintval($email) . '%}';
        } else {
                // This is strange and needs fixing
                $email = '{%url=modules.php?module=' . $mod . '&amp;what=admins_contct&amp;id=' . bigintval($email) . '%}';
        } else {
                // This is strange and needs fixing
-               debug_report_bug(__FUNCTION__, __LINE__, 'email[' . gettype($email) . ']=' . $email . ',mod=' . $mod . ' - This should not happen.');
+               reportBug(__FUNCTION__, __LINE__, 'email[' . gettype($email) . ']=' . $email . ',mod=' . $mod . ' - This should not happen.');
        }
 
        // Return rewritten (?) email address
        }
 
        // Return rewritten (?) email address
@@ -354,7 +354,17 @@ function generateAdminAccessModeSelectionBox ($adminId = NULL) {
        $OUT = '<select name="access_mode[' . $adminId . ']" size="1" class="form_select">';
 
        // Add option list
        $OUT = '<select name="access_mode[' . $adminId . ']" size="1" class="form_select">';
 
        // Add option list
-       $OUT .= generateOptionList('/ARRAY/', array('allow', 'deny'), array('{--ADMIN_ADMINS_ACCESS_MODE_ALLOW--}', '{--ADMIN_ADMINS_ACCESS_MODE_DENY--}'), getAdminDefaultAcl($adminId));
+       $OUT .= generateOptions(
+               '/ARRAY/',
+               array(
+                       'allow',
+                       'deny'
+               ), array(
+                       '{--ADMIN_ADMINS_ACCESS_MODE_ALLOW--}',
+                       '{--ADMIN_ADMINS_ACCESS_MODE_DENY--}'
+               ),
+               getAdminDefaultAcl($adminId)
+       );
 
        // Finish it
        $OUT .= '</select>';
 
        // Finish it
        $OUT .= '</select>';
@@ -369,7 +379,19 @@ function generateAdminMenuModeSelectionBox ($adminId = NULL) {
        $OUT = '<select name="la_mode[{%pipe,convertNullToZero=' . convertZeroToNull($adminId) . '%}]" size="1" class="form_select">';
 
        // Add option list
        $OUT = '<select name="la_mode[{%pipe,convertNullToZero=' . convertZeroToNull($adminId) . '%}]" size="1" class="form_select">';
 
        // Add option list
-       $OUT .= generateOptionList('/ARRAY/', array('global', 'OLD', 'NEW'), array('{--ADMIN_ADMINS_LA_MODE_GLOBAL--}', '{--ADMIN_ADMINS_LA_MODE_OLD--}', '{--ADMIN_ADMINS_LA_MODE_NEW--}'), getAdminMenuMode($adminId));
+       $OUT .= generateOptions(
+               '/ARRAY/',
+               array(
+                       'global',
+                       'OLD',
+                       'NEW'
+               ), array(
+                       '{--ADMIN_ADMINS_LA_MODE_GLOBAL--}',
+                       '{--ADMIN_ADMINS_LA_MODE_OLD--}',
+                       '{--ADMIN_ADMINS_LA_MODE_NEW--}'
+               ),
+               getAdminMenuMode($adminId)
+       );
 
        // Finish it
        $OUT .= '</select>';
 
        // Finish it
        $OUT .= '</select>';
@@ -474,7 +496,7 @@ ORDER BY
 
 // Sends out mail to all administrators
 // IMPORTANT: Please use sendAdminNotification() instead of calling this function directly
 
 // Sends out mail to all administrators
 // IMPORTANT: Please use sendAdminNotification() instead of calling this function directly
-function sendAdminsEmails ($subj, $template, $content, $userid) {
+function sendAdminsEmails ($subject, $template, $content, $userid) {
        // Trim template name
        $template = trim($template);
 
        // Trim template name
        $template = trim($template);
 
@@ -490,12 +512,16 @@ function sendAdminsEmails ($subj, $template, $content, $userid) {
                // Create new entry (to all admins)
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_admins_mails` (`admin_id`,`mail_template`) VALUES (0, '%s')",
                        array($template), __FUNCTION__, __LINE__);
                // Create new entry (to all admins)
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_admins_mails` (`admin_id`,`mail_template`) VALUES (0, '%s')",
                        array($template), __FUNCTION__, __LINE__);
+
+               // Select all email adresses (default)
+               $result = SQL_QUERY('SELECT `email` FROM `{?_MYSQL_PREFIX?}_admins` ORDER BY `id` ASC',
+                       __FUNCTION__, __LINE__);
        } else {
                // Load admin ids...
                // @TODO This can be, somehow, rewritten
                $adminIds = array();
                while ($content = SQL_FETCHARRAY($result)) {
        } else {
                // Load admin ids...
                // @TODO This can be, somehow, rewritten
                $adminIds = array();
                while ($content = SQL_FETCHARRAY($result)) {
-                       $adminIds[] = $content['admin_id'];
+                       array_push($adminIds, $content['admin_id']);
                } // END - while
 
                // Free memory
                } // END - while
 
                // Free memory
@@ -506,15 +532,18 @@ function sendAdminsEmails ($subj, $template, $content, $userid) {
 
                // "implode" ids and query string
                $adminId = implode(',', $adminIds);
 
                // "implode" ids and query string
                $adminId = implode(',', $adminIds);
+
+               // To which admin shall we sent it?
                if ($adminId == '-1') {
                if ($adminId == '-1') {
+                       // Is an "event"
                        if (isExtensionActive('events')) {
                                // Add line to user events
                        if (isExtensionActive('events')) {
                                // Add line to user events
-                               EVENTS_ADD_LINE($subj, $message, $userid);
+                               EVENTS_ADD_LINE($subject, $message, $userid);
                        } else {
                                // Log error for debug
                        } else {
                                // Log error for debug
-                               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension 'events' missing: tpl=%s,subj=%s,userid=%s",
+                               logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension 'ext-events' missing: template=%s,subj=%s,userid=%s",
                                        $template,
                                        $template,
-                                       $subj,
+                                       $subject,
                                        $userid
                                ));
                        }
                                        $userid
                                ));
                        }
@@ -529,9 +558,18 @@ function sendAdminsEmails ($subj, $template, $content, $userid) {
                }
        }
 
                }
        }
 
+       // Default is no special mail header
+       $mailHeader = '';
+
+       // Is the template a bug report?
+       if ($template == 'admin_report_bug') {
+               // Then set 'Reply-To:' again
+               $mailHeader = 'Reply-To: webmaster@mxchange.org' . chr(10);
+       } // END - if
+
        // Load email addresses and send away
        while ($content = SQL_FETCHARRAY($result)) {
        // Load email addresses and send away
        while ($content = SQL_FETCHARRAY($result)) {
-               sendEmail($content['email'], $subj, $message);
+               sendEmail($content['email'], $subject, $message, 'N', $mailHeader);
        } // END - while
 
        // Free memory
        } // END - while
 
        // Free memory
@@ -616,7 +654,7 @@ function getAminsExpertWarning () {
 function getAdminLoginFailures ($adminId) {
        // Admin login should not be empty
        if (empty($adminId)) {
 function getAdminLoginFailures ($adminId) {
        // Admin login should not be empty
        if (empty($adminId)) {
-               debug_report_bug(__FUNCTION__, __LINE__, 'adminId is empty.');
+               reportBug(__FUNCTION__, __LINE__, 'adminId is empty.');
        } // END - if
 
        // By default no admin is found
        } // END - if
 
        // By default no admin is found
@@ -652,7 +690,7 @@ function getAdminLoginFailures ($adminId) {
 function getAdminLastFailure ($adminId) {
        // Admin login should not be empty
        if (empty($adminId)) {
 function getAdminLastFailure ($adminId) {
        // Admin login should not be empty
        if (empty($adminId)) {
-               debug_report_bug(__FUNCTION__, __LINE__, 'adminId is empty.');
+               reportBug(__FUNCTION__, __LINE__, 'adminId is empty.');
        } // END - if
 
        // By default no admin is found
        } // END - if
 
        // By default no admin is found
@@ -688,7 +726,7 @@ function getAdminLastFailure ($adminId) {
 //                             Wrapper functions
 //-----------------------------------------------------------------------------
 
 //                             Wrapper functions
 //-----------------------------------------------------------------------------
 
-// Wrapper function to check wether expert setting warning is enabled
+// Wrapper function to check whether expert setting warning is enabled
 function isAdminsExpertWarningEnabled () {
        return (getAminsExpertWarning() == 'Y');
 }
 function isAdminsExpertWarningEnabled () {
        return (getAminsExpertWarning() == 'Y');
 }
index 275cdfcacc43349af7403147c36e01a0be0fe5b9..fde4b075873ca238a44e58bceae8d638241f002f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,7 @@ function addPointsAutoPurge ($userid, $points) {
        // Is the userid valid?
        if (!isValidUserId($userid)) {
                // Please report all these bugs
        // Is the userid valid?
        if (!isValidUserId($userid)) {
                // Please report all these bugs
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid call. userid=' . $userid . ',points=' . $points);
+               reportBug(__FUNCTION__, __LINE__, 'Invalid call. userid=' . $userid . ',points=' . $points);
        } // END - if
 
        // Add points over the ref system directly now
        } // END - if
 
        // Add points over the ref system directly now
@@ -57,7 +57,7 @@ function addPointsAutoPurge ($userid, $points) {
        sendEmail($userid, '{--MEMBER_AUTOPURGE_SUBJECT--}', $message);
 }
 
        sendEmail($userid, '{--MEMBER_AUTOPURGE_SUBJECT--}', $message);
 }
 
-// Checks wether auto-purging is enabled
+// Checks whether auto-purging is enabled
 function isAutoPurgingActive () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isAutoPurgingActive () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -81,7 +81,7 @@ function getAutopurgeInactive () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether purging of inactive accounts is enabled
+// Checks whether purging of inactive accounts is enabled
 function isAutopurgeInactiveEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isAutopurgeInactiveEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
index f2702a945bcce7e18c2bd107abdc367059a6c92a..120333bf97b708e21424fa031f9b0ebe9c11ad94 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -104,7 +104,7 @@ function getBegNewMemberNotify () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether beg_new_member_notify is enabled
+// Checks whether beg_new_member_notify is enabled
 function isBegNewMemberNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isBegNewMemberNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -248,7 +248,7 @@ function getBegIncludeOwn () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether beg_include_own is "Y"
+// Checks whether beg_include_own is "Y"
 function isBegIncludeOwnEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isBegIncludeOwnEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -272,7 +272,7 @@ function getBegActive () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether beg_active is "Y"
+// Checks whether beg_active is "Y"
 function isBegActiveEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isBegActiveEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -296,7 +296,7 @@ function getBegRallye () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether beg_rallye is "Y"
+// Checks whether beg_rallye is "Y"
 function isBegRallyeEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isBegRallyeEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -320,7 +320,7 @@ function getBegRallyeEnableNotify () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether beg_rallye_enable_notify is "Y"
+// Checks whether beg_rallye_enable_notify is "Y"
 function isBegRallyeEnableNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isBegRallyeEnableNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -344,7 +344,7 @@ function getBegRallyeDisableNotify () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether beg_rallye_disable_notify is "Y"
+// Checks whether beg_rallye_disable_notify is "Y"
 function isBegRallyeDisableNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isBegRallyeDisableNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
diff --git a/inc/libs/birthday_functions.php b/inc/libs/birthday_functions.php
new file mode 100644 (file)
index 0000000..9ea5bd2
--- /dev/null
@@ -0,0 +1,60 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 06/11/2012 *
+ * ===================                          Last change: 06/11/2012 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : birthday_functions.php                           *
+ * -------------------------------------------------------------------- *
+ * Short description : Functions for ext-birthday                       *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Funktionen fuer ext-birthday                     *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if (!defined('__SECURITY')) {
+       die();
+} // END - if
+
+// ----------------------------------------------------------------------------
+//                             Wrapper functions
+// ----------------------------------------------------------------------------
+
+// Getter for birthday_points
+function getBirthdayPoints () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('birthday_points');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// [EOF]
+?>
index 57d2dc975e1f4e4fa25b72b06fd3d4b9240101ac..eb23d167477cc9bd603773e27e78be3068046294 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -256,7 +256,7 @@ function handleBonusPoints ($mode, $userid) {
                        break;
 
                default: // This should not happen
                        break;
 
                default: // This should not happen
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Invalid bonus-mode ' . getBonusMode() . ' detected.');
+                       reportBug(__FUNCTION__, __LINE__, 'Invalid bonus-mode ' . getBonusMode() . ' detected.');
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -279,7 +279,7 @@ function purgeExpiredTurboBonus() {
 //                             Wrapper Functions
 //-----------------------------------------------------------------------------
 
 //                             Wrapper Functions
 //-----------------------------------------------------------------------------
 
-// Determines wether the "bonus rallye" is active
+// Determines whether the "bonus rallye" is active
 function isBonusRallyeActive () {
        // Do we have cache?
        if (!isset($GLOBALS['bonus_rallye_active'])) {
 function isBonusRallyeActive () {
        // Do we have cache?
        if (!isset($GLOBALS['bonus_rallye_active'])) {
@@ -291,7 +291,7 @@ function isBonusRallyeActive () {
        return $GLOBALS['bonus_rallye_active'];
 }
 
        return $GLOBALS['bonus_rallye_active'];
 }
 
-// Determines wether the "bonus new_member_notify" is active
+// Determines whether the "bonus new_member_notify" is active
 function isBonusNewMemberNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS['bonus_new_member_notify_active'])) {
 function isBonusNewMemberNotifyEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS['bonus_new_member_notify_active'])) {
@@ -351,5 +351,29 @@ function getTurboRates () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
+// Getter for login_timeout
+function getLoginTimeout () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('login_timeout');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for bonus_ref
+function getBonusRef () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('bonus_ref');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 4ef69c9eb0d5d98cd9f799c8431e3c900a6754b8..cbbde725902d4b423ad9aeba12acc6cfdd38824b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 0c342e1257ca8c78736ee2fde8e246c214a52337..11537e3d74769375ec19914def9ed61ec27e490f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 66a2fed69445012b4baee3860f403e976ad04a9f..613132340139d63fd1834aa1017fd533aea2088b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -66,5 +66,25 @@ function generateCountryInfo ($id) {
        return $ret;
 }
 
        return $ret;
 }
 
+// Adds a country code selection box
+function addCountryCodeSelectionBox ($countryCode = NULL) {
+       // The admin may see all
+       $whereStatement = "WHERE `is_active`='Y'";
+
+       // Is admin?
+       if (isAdmin()) {
+               // Then display all codes
+               $whereStatement = '';
+       } // END - if
+
+       // Generate the HTML code
+       $OUT  = '<select name="country_code" class="form_select" size="1">';
+       $OUT .= generateOptions('countries', 'id', 'descr', $countryCode, 'code', $whereStatement);
+       $OUT .= '</select>';
+
+       // Return it
+       return $OUT;
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 2ee0f69a15f9e0ca5646387cc2516097e06729f1..62bc2d4167251b320094a766d67571286eeedffe 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index cc15320b6c2fb590efe0ff02f923faf695e6e210..c6efd06b425904ae87a822e0ae691de97376c676 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 154c2afe982be6a58ac397b33b931e1935339f11..fd1c866ba4bf07b83604fd39a1a71d7b3d508793 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2507db9257217a797418e675f9a86386c586fdbe..7beda4063751fa2e375e62606d0338545a498c5f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -173,7 +173,7 @@ LIMIT 1", array(
                getMemberId()
        ), __FUNCTION__, __LINE__);
 
                getMemberId()
        ), __FUNCTION__, __LINE__);
 
-       // Determine wether something has changed
+       // Determine whether something has changed
        $status = (!SQL_HASZEROAFFECTED());
 
        // Has the record changed?
        $status = (!SQL_HASZEROAFFECTED());
 
        // Has the record changed?
index a964936dafdd21d2ee77a1c5fb768ff940feead4..b0013389333d60ea27a37f194fb15616f5cfb72f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 011621f52e97865d6ebebc6d097dd8f178eac662..6d22963d26cfc1dd248df999d45dd7eb4177796f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -40,20 +40,35 @@ if (!defined('__SECURITY')) {
        die();
 } // END - if
 
        die();
 } // END - if
 
-// Template helper function to create selection box for all forced-ad types
-function doTemplateForcedAdTypeSelectionBox ($templateName, $clear = false, $default = NULL) {
-       // Add all types through the filter
-       $forcedAdTypes = runFilterChain('add_forced_ads_types', array());
+// Translate forced ad type
+function translateForcedAdsType ($status) {
+       // Is the status null or empty?
+       if (is_null($status)) {
+               // Is NULL
+               $status = 'NULL';
+       } elseif (empty($status)) {
+               // Is empty (string)
+               $status = 'EMPTY';
+       } // END - if
 
 
-       // Handle it over to generateSelectionBoxFromArray()
-       $content = generateSelectionBoxFromArray($forcedAdTypes, 'forced_ads_type', 'type');
+       // Default status is unknown
+       $return = '{%message,ADMIN_FORCED_ADS_TYPE_UNKNOWN=' . $status . '%}';
 
 
-       // Return prepared content
-       return $content;
+       // Construct message id
+       $messageId = 'ADMIN_FORCED_ADS_TYPE_' . $status;
+
+       // Is it there?
+       if (isMessageIdValid($messageId)) {
+               // Then use it as message string
+               $return = '{--' . $messageId . '--}';
+       } // END - if
+
+       // Return the status
+       return $return;
 }
 
 }
 
-// Translate the status IN/OUT
-function translateForcedAdsType ($status) {
+// Translate forced campaign status
+function translateForcedCampaignStatus ($status) {
        // Is the status null or empty?
        if (is_null($status)) {
                // Is NULL
        // Is the status null or empty?
        if (is_null($status)) {
                // Is NULL
@@ -64,10 +79,10 @@ function translateForcedAdsType ($status) {
        } // END - if
 
        // Default status is unknown
        } // END - if
 
        // Default status is unknown
-       $return = '{%message,ADMIN_FORCED_ADS_TYPE_UNKNOWN=' . $status . '%}';
+       $return = '{%message,ADMIN_FORCED_CAMPAIGN_TYPE_UNKNOWN=' . $status . '%}';
 
        // Construct message id
 
        // Construct message id
-       $messageId = 'ADMIN_FORCED_ADS_TYPE_' . $status;
+       $messageId = 'ADMIN_FORCED_CAMPAIGN_TYPE_' . $status;
 
        // Is it there?
        if (isMessageIdValid($messageId)) {
 
        // Is it there?
        if (isMessageIdValid($messageId)) {
@@ -79,17 +94,47 @@ function translateForcedAdsType ($status) {
        return $return;
 }
 
        return $return;
 }
 
-// "Getter" for an array of data from all Forced-PopUps
+// Translate visibility
+function translateForcedCostsVisibility ($visibility) {
+       // Is the status null or empty?
+       if (is_null($visibility)) {
+               // Is NULL
+               $visibility = 'NULL';
+       } elseif (empty($visibility)) {
+               // Is empty (string)
+               $visibility = 'EMPTY';
+       } // END - if
+
+       // Default status is unknown
+       $return = '{%message,ADMIN_FORCED_ADS_VISIBILITY_UNKNOWN=' . $visibility . '%}';
+
+       // Construct message id
+       $messageId = 'ADMIN_FORCED_ADS_VISIBILITY_' . $visibility;
+
+       // Is it there?
+       if (isMessageIdValid($messageId)) {
+               // Then use it as message string
+               $return = '{--' . $messageId . '--}';
+       } // END - if
+
+       // Return the status
+       return $return;
+}
+
+// "Getter" for an array of data from all Forced-PopUps except user's
 function getForcedPopupDataByEarningArray ($content) {
 function getForcedPopupDataByEarningArray ($content) {
-       debug_report_bug(__FUNCTION__, __LINE__, 'content=' . print_r($content, true));
+       die('content=<pre>' . print_r($content, true) . '</pre>' . debug_get_printable_backtrace());
+
+       // Finally return the content
+       return $content;
 }
 
 }
 
-// Generator (somewhat getter) for network type options
+// Generator (somewhat getter) for forced-ads type options
 function generateForcedAdsTypeOptions ($type =  NULL) {
        // Is this cached?
        if (!isset($GLOBALS[__FUNCTION__][$type])) {
                // Generate output and cache it
 function generateForcedAdsTypeOptions ($type =  NULL) {
        // Is this cached?
        if (!isset($GLOBALS[__FUNCTION__][$type])) {
                // Generate output and cache it
-               $GLOBALS[__FUNCTION__][$type] = generateOptionList(
+               $GLOBALS[__FUNCTION__][$type] = generateOptions(
                        '/ARRAY/',
                        array(
                                'BANNER',
                        '/ARRAY/',
                        array(
                                'BANNER',
@@ -108,5 +153,408 @@ function generateForcedAdsTypeOptions ($type =  NULL) {
        return $GLOBALS[__FUNCTION__][$type];
 }
 
        return $GLOBALS[__FUNCTION__][$type];
 }
 
+// Generator (somewhat getter) for forcec-costs visibility options
+function generateForcedCostsVisibilityOptions ($visibility =  NULL) {
+       // Is this cached?
+       if (!isset($GLOBALS[__FUNCTION__][$visibility])) {
+               // Generate output and cache it
+               $GLOBALS[__FUNCTION__][$visibility] = generateOptions(
+                       '/ARRAY/',
+                       array(
+                               'ALL',
+                               'MEMBER',
+                               'SPONSOR',
+                               'NONE'
+                       ),
+                       array(),
+                       $visibility,
+                       '', '',
+                       array(),
+                       'translateForcedCostsVisibility'
+               );
+       } // END - if
+
+       // Return content
+       return $GLOBALS[__FUNCTION__][$visibility];
+}
+
+// "Getter" for an array of all given forced ads
+function getArrayFromForcedAdsByType ($forcedType = NULL) {
+       // Init array
+       $forcedAds = array();
+
+       // Init WHERE (default)
+       $where = '';
+
+       // Is forced type not NULL?
+       if (!is_null($forcedType)) {
+               // Then set proper WHERE
+               $where = sprintf("WHERE `forced_ads_type`='%s'", SQL_ESCAPE($forcedType));
+       } // END - if
+
+       // Search all given types
+       $result = SQL_QUERY('SELECT
+       `forced_ads_id`,
+       `forced_ads_ad_url`,
+       `forced_ads_click_url`,
+       `forced_ads_width`,
+       `forced_ads_height`,
+       `forced_ads_alt_text`,
+       `forced_ads_framebreaker`,
+       `forced_ads_type`,
+       `forced_ads_views_counter`,
+       `forced_ads_clicks_counter`,
+       UNIX_TIMESTAMP(`forced_ads_added`) AS `forced_ads_added`,
+       `forced_ads_userid`
+FROM
+       `{?_MYSQL_PREFIX?}_forced_ads`
+' . $where . '
+ORDER BY
+       `forced_ads_id` ASC', __FUNCTION__, __LINE__);
+
+       // Do we have at least one entry?
+       if (!SQL_HASZERONUMS($result)) {
+               // Get all elements
+               while ($content = SQL_FETCHARRAY($result)) {
+                       // Add it
+                       $forcedAds[$content['forced_ads_id']] = $content;
+               } // END - while
+       } // END - if
+
+       // Free result
+       SQL_FREERESULT($result);
+
+       // Return it
+       return $forcedAds;
+}
+
+// "Getter" for an array of all forced costs from given visibility or all
+function getArrayFromForcedCostsByVisibility ($visibility = NULL) {
+       // Init array
+       $forcedCosts = array();
+       $where = '';
+
+       // Is visibility not NULL?
+       if (!is_null($visibility)) {
+               // Then add WHERE statement
+               $where = sprintf(" WHERE `forced_costs_visibility`='%s'", SQL_ESCAPE($visibility));
+       } // END - if
+
+       // Search all given types
+       $result = SQL_QUERY("SELECT
+       `forced_costs_id`,
+       `forced_costs_price_click`,
+       `forced_costs_payment_click`,
+       `forced_costs_visibility`
+FROM
+       `{?_MYSQL_PREFIX?}_forced_costs`
+".$where."
+ORDER BY
+       `forced_costs_id` ASC", __FUNCTION__, __LINE__);
+
+       // Do we have at least one entry?
+       if (!SQL_HASZERONUMS($result)) {
+               // Get all elements
+               while ($content = SQL_FETCHARRAY($result)) {
+                       // Add it
+                       $forcedCosts[$content['forced_costs_id']] = $content;
+               } // END - while
+       } // END - if
+
+       // Free result
+       SQL_FREERESULT($result);
+
+       // Return it
+       return $forcedCosts;
+}
+
+// "Getter" for an array of all forced campaigns from given array and status
+function getArrayFromForcedCampaignsByArray ($ids, $status) {
+       // Init array
+       $forcedCampaigns = array();
+
+       // Search all given types
+       $result = SQL_QUERY_ESC("SELECT
+       `forced_campaign_id`,
+       UNIX_TIMESTAMP(`forced_campaign_created`) AS `forced_campaign_created`,
+       `forced_campaign_status`,
+       UNIX_TIMESTAMP(`forced_campaign_last_locked`) AS `forced_campaign_last_locked`,
+       `forced_campaign_lock_reason`,
+       `forced_campaign_expired`,
+       `forced_campaign_ordered_clicks`,
+       `forced_campaign_payment_api`,
+       `forced_campaign_reload_lock`,
+       `forced_campaign_minimum_stay`,
+       `forced_ads_id`,
+       `forced_campaign_userid`,
+       `forced_costs_id`
+FROM
+       `{?_MYSQL_PREFIX?}_forced_campaigns`
+WHERE
+       `forced_campaign_id` IN (%s) AND
+       `forced_campaign_status`='%s'
+ORDER BY
+       `forced_campaign_id` ASC",
+               array(
+                       implode(', ', $ids),
+                       $status
+               ), __FUNCTION__, __LINE__);
+
+       // Do we have at least one entry?
+       if (!SQL_HASZERONUMS($result)) {
+               // Get all elements
+               while ($content = SQL_FETCHARRAY($result)) {
+                       // Add it
+                       $forcedCampaigns[$content['forced_campaign_id']] = $content;
+               } // END - while
+       } // END - if
+
+       // Free result
+       SQL_FREERESULT($result);
+
+       // Return it
+       return $forcedCampaigns;
+}
+
+// "Activates" forced campaigns from POST data
+function doForcedAdminActivateCampaigns () {
+       // Do some sanity checks
+       if (!isAdmin()) {
+               // Not allowed to call
+               return false;
+       } elseif (countPostSelection('forced_campaign_id') == 0) {
+               // No selections made
+               return false;
+       }
+
+       // Get an array from all pending campaigns
+       $forcedCampaigns = getArrayFromForcedCampaignsByArray(array_keys(postRequestElement('forced_campaign_id')), 'PENDING');
+
+       // By default all worked (at this point)
+       $activated = true;
+
+       // Run through all entries
+       foreach ($forcedCampaigns as $campaignId => $campaignData) {
+               // Change the status of this campaign
+               if (!changeForcedCampaignStatus($campaignId, 'PENDING', 'ACTIVE', $campaignData)) {
+                       // One didn't work, but continue with others
+                       $activated = false;
+               } // END - if
+       } // END - foreach
+
+       // Return status
+       return $activated;
+}
+
+// Changes the status of a forced campaign from previous to new status
+function changeForcedCampaignStatus ($campaignId, $prevStatus, $newStatus, $data) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'campaignId=' . $campaignId . ',prevStatus=' . $prevStatus . ',data[]=' . gettype($data) . ',newStatus=' . $newStatus . ' - ENTERED!');
+       // Make new status always lower-case
+       $newStatus = strtolower($newStatus);
+
+       // Prepare array
+       $filterData =  array(
+               'campaign_id' => $campaignId,
+               'prev_status' => $prevStatus,
+               'new_status'  => $newStatus,
+               'data'        => $data,
+               'abort'       => NULL
+       );
+
+       // Run pre filter chain
+       $filterData = runFilterChain('pre_change_forced_campaign_status', $filterData);
+
+       // Abort here?
+       if (!is_null($filterData['abort'])) {
+               // Abort here
+               return $filterData['abort'];
+       } // END - if
+
+       // Update the status now
+       // ---------- Comment out for debugging/developing member actions! ---------
+       SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_forced_campaigns` SET `forced_campaign_status`='%s' WHERE `forced_campaign_id`=%s LIMIT 1",
+               array(
+                       $newStatus,
+                       bigintval($campaignId)
+               ), __FUNCTION__, __LINE__);
+       // ---------- Comment out for debugging/developing member actions! ---------
+
+       // Was that fine?
+       // ---------- Comment out for debugging/developing member actions! ---------
+       if (SQL_AFFECTEDROWS() != 1) {
+               // No, something went wrong
+               return false;
+       } // END - if
+       // ---------- Comment out for debugging/developing member actions! ---------
+
+       // Run post filter chain
+       $filterData = runFilterChain('post_change_forced_campaign_status', $filterData);
+
+       // Check if generic 'data' is there
+       assert(isset($filterData['data']));
+
+       // All done!
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'campaignId=' . $campaignId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - EXIT!');
+       return true;
+}
+
+// Notify admin(s) with a selected message and content
+function doForcedNotifyAdmin ($messageType, $content) {
+       // Prepare template name
+       $templateName = sprintf("admin_forced_%s", $messageType);
+
+       // Prepare subject
+       $subject = sprintf("{--ADMIN_FORCED_NOTIFY_%s_SUBJECT--}",
+               strtoupper($messageType)
+       );
+
+       // Is the subject line there?
+       if ((substr($subject, 0, 1) == '!') && (substr($subject, -1, 1) == '!')) {
+               // Set default subject if following eval() wents wrong
+               $subject = '{%message,ADMIN_FORCED_NOTIFY_DEFAULT_SUBJECT=' . strtoupper($messageType) . '%}';
+       } // END - if
+
+       // Translate some data if present
+       $content = prepareForcedContentForTemplate($content);
+
+       // Send the notification out
+       return sendAdminNotification($subject, $templateName, $content, $content['forced_campaign_userid']);
+}
+
+// Notify the user about the performed action
+function doForcedNotifyMember ($messageType, $content) {
+       // Skip notification if userid is NULL
+       if (is_null($content['forced_campaign_userid'])) {
+               // NULL is silently ignored
+               return true;
+       } // END - if
+
+       // Prepare template name
+       $templateName = sprintf("member_forced_%s", $messageType);
+
+       // Prepare subject
+       $subject = sprintf("{--MEMBER_FORCED_NOTIFY_%s_SUBJECT--}",
+               strtoupper($messageType)
+       );
+
+       // Is the subject line there?
+       if ((substr($subject, 0, 1) == '!') && (substr($subject, -1, 1) == '!')) {
+               // Set default subject if following eval() wents wrong
+               $subject = '{--MEMBER_FORCED_NOTIFY_DEFAULT_SUBJECT--}';
+       } // END - if
+
+       // Translate some data if present
+       $content = prepareForcedContentForTemplate($content);
+
+       // Load template
+       $mailText = loadEmailTemplate($templateName, $content, $content['forced_campaign_userid']);
+
+       // Send the email
+       return sendEmail($content['forced_campaign_userid'], $subject, $mailText);
+}
+
+// Translates some data for template usage
+// @TODO Can't we use our new expression language instead of this ugly code?
+function prepareForcedContentForTemplate ($content) {
+       // Prepare some code
+       if (isset($content['forced_campaign_created'])) $content['forced_campaign_created'] = generateDateTime($content['forced_campaign_created'], 2);
+
+       // Return translated content
+       return $content;
+}
+
+// ----------------------------------------------------------------------------
+//                            Template helper functions
+// ----------------------------------------------------------------------------
+
+// Template helper function to create selection box for all forced-ad types
+function doTemplateForcedAdTypeSelectionBox ($templateName, $clear = false, $default = NULL) {
+       // Add all types through the filter
+       $forcedAdTypes = runFilterChain('add_forced_ads_types', array());
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($forcedAdTypes, 'forced_ads_type', 'type', '', '', '', $default);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper function to create selection box for costs visibility
+function doTemplateForcedCostsVisiblitySelectionBox ($templateName, $clear = false, $default = NULL) {
+       // Init array
+       $costsVisibility = array(
+               0 => array('visibility' => 'ALL'),
+               1 => array('visibility' => 'MEMBER'),
+               2 => array('visibility' => 'SPONSOR'),
+               3 => array('visibility' => 'NONE')
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($costsVisibility, 'forced_costs_visibility', 'visibility', '', '', '', $default);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper function to create selection box for foreced ads
+function doTemplateForcedAdSelectionBox ($templateName, $clear, $default = NULL) {
+       // Get back an array of all forced popups
+       $forcedAds = getArrayFromForcedAdsByType();
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($forcedAds, 'forced_ads_id', 'forced_ads_id', '', '', '', $default, 'forced_ads_type');
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper function to create selection box for foreced costs
+function doTemplateForcedCostsSelectionBox ($templateName, $clear, $default = NULL) {
+       // Get back an array of all forced popups
+       $forcedCosts = getArrayFromForcedCostsByVisibility();
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($forcedCosts, 'forced_costs_id', 'forced_costs_id', '', '', '', $default, '', true);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper function to create selection box for foreced campaign userid
+function doTemplateForcedCampaignUseridSelectionBox ($templateName, $clear, $default = NULL) {
+       // Generate the selection box without all
+       $content = addMemberSelectionBox($default, false, true, true, 'forced_campaign_userid');
+
+       // Return prepared content
+       return $content;
+}
+
+// ----------------------------------------------------------------------------
+//                             XML call-back functions
+// ----------------------------------------------------------------------------
+
+// For 'doing' add forced-ads, the column-index is required
+function addXmlSpecialAdminAddDoForcedAds () {
+       // So set it all here
+       $GLOBALS['__COLUMN_INDEX']['doXmlCallbackFunction']  = 'column';
+       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_values'] = array();
+       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_index'] = 'column';
+}
+
+// For 'doing' add forced-campaigns, the column-index is required
+function addXmlSpecialAdminAddDoForcedCampaigns () {
+       // So set it all here
+       $GLOBALS['__COLUMN_INDEX']['doXmlCallbackFunction']  = 'column';
+       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_index'] = 'column';
+}
+
+// For 'doing' add forced-costs, the column-index is required
+function addXmlSpecialAdminAddDoForcedCosts () {
+       // So set it all here
+       $GLOBALS['__COLUMN_INDEX']['doXmlCallbackFunction']  = 'column';
+       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['extra_values'] = array();
+       $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_index'] = 'column';
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index b38e212039cee991efd5e0c25804a36f24b5f93e..bd09b0a29e3a0ce5f2ff75ba029ad3bb36248927 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -87,7 +87,7 @@ LIMIT 1",
                        sendEmail($content['userid'], '{--MEMBER_HOLIDAY_UNLOCK_SUBJECT--}', $message);
 
                        // Remember userid for admin
                        sendEmail($content['userid'], '{--MEMBER_HOLIDAY_UNLOCK_SUBJECT--}', $message);
 
                        // Remember userid for admin
-                       $admin .= $content['userid']."\n";
+                       $admin .= $content['userid'].chr(10);
                } // END - if
 
                // Send mail to admins
                } // END - if
 
                // Send mail to admins
index c8db16ae1b0c760084e77d1f6a8d25f272b18cce..86584ac60845622c78c6343d531e8234ddbbedd3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,8 +45,8 @@ function addValidHtmlTags() {
        $OUT = '';
        if (!is_array($GLOBALS['html_tags'])) return "";
        foreach ($GLOBALS['html_tags'] as $tag) {
        $OUT = '';
        if (!is_array($GLOBALS['html_tags'])) return "";
        foreach ($GLOBALS['html_tags'] as $tag) {
-               $OUT .= ', ' . strtoupper($tag);
-       }
+               $OUT .= ', ' . strtolower($tag);
+       } // END - foreach
        $OUT = substr($OUT, 2);
        return $OUT;
 }
        $OUT = substr($OUT, 2);
        return $OUT;
 }
@@ -118,7 +118,7 @@ function insertUrlsIntoHtml ($text) {
                } // END - if
 
                // And now go forward...
                } // END - if
 
                // And now go forward...
-               $idx = '0';
+               $idx = 0;
                while ($idx < strlen($test)) {
                        $check = substr($test, $idx, 1);
                        if ((!in_array($check, $GLOBALS['valid_email_chars'])) && ($check != '@')) {
                while ($idx < strlen($test)) {
                        $check = substr($test, $idx, 1);
                        if ((!in_array($check, $GLOBALS['valid_email_chars'])) && ($check != '@')) {
@@ -134,20 +134,21 @@ function insertUrlsIntoHtml ($text) {
                } // END - if
 
                // Now replace the email against anchor with mailto and pray...
                } // END - if
 
                // Now replace the email against anchor with mailto and pray...
-               $PARTS[] = $check2 . '<a href="' . generateEmailLink($check, 'user_data') . '">' . $check . '</a>';
+               array_push($PARTS, $check2 . '<a href="' . generateEmailLink($check, 'user_data') . '">' . $check . '</a>');
 
                // Remove email from testing string (see above why...)
                $test = substr($test, strlen($check));
        }
 
        // Now put all parts together
 
                // Remove email from testing string (see above why...)
                $test = substr($test, strlen($check));
        }
 
        // Now put all parts together
-       $text = ''; $PARTS[] = $test;
+       $text = '';
+       array_push($PARTS, $test);
        foreach ($PARTS as $part) {
                $text .= $part;
        } // END - foreach
 
        // Replace new-lines agains <br />-s and finally compile possible own HTML tags out...
        foreach ($PARTS as $part) {
                $text .= $part;
        } // END - foreach
 
        // Replace new-lines agains <br />-s and finally compile possible own HTML tags out...
-       return preCompileCode(str_replace("\n", "<br />\n", $text));
+       return preCompileCode(str_replace(chr(10), "<br />\n", $text));
 }
 
 // [EOF]
 }
 
 // [EOF]
index 94a6fc2316d5716f73745f8ea7bb7a83f076d446..20be2a86b6bc5742acb33e1baf0eaa49b6b20752 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index fc1409962314b4154d89de0e73d8e428bb340452..071665144c39bffeb09f7dbc6087e058b809fd8f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -62,7 +62,7 @@ function handleMailIdErrorCode ($errorCode) {
 
                        default:
                                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected in mailid_error_redirect.", getConfig('mailid_error_redirect')));
 
                        default:
                                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected in mailid_error_redirect.", getConfig('mailid_error_redirect')));
-                               redirectToUrl('modules.php?module=index&amp;code=' . getCode('UNKNOWN_STATUS') . '&amp;ext=mailid');
+                               redirectToUrl('modules.php?module=index&amp;code=' . getCode('UNKNOWN_REDIRECT') . '&amp;ext=mailid');
                                break;
                } // END - switch
        } // END - if
                                break;
                } // END - switch
        } // END - if
index 1bf0aed813b358072817316bd685230725303d95..c824b1ffce161449f40d6ca9c6e209406d7180c3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -56,7 +56,7 @@ function getMaintenance () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether 'maintenance' is "YES"
+// Checks whether 'maintenance' is "YES"
 function isMaintenanceEnabled () {
        // Is the cache entry set
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isMaintenanceEnabled () {
        // Is the cache entry set
        if (!isset($GLOBALS[__FUNCTION__])) {
index 820ecc1e5d74f45f13362766d9a018c3989443ad..7139fbdf778f7e97fa87b6efeefd7cbfb2e7ba0f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index d90c329cae84e79d3be7237aaa22a45c677d5ccc..bc7c2c400457b84a7b205fa652084db1e4ae4cc8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -55,7 +55,7 @@ function detectNetworkProcessForm () {
        // 'do' must be provided in URL
        if (!isGetRequestElementSet('do')) {
                // Not provided!
        // 'do' must be provided in URL
        if (!isGetRequestElementSet('do')) {
                // Not provided!
-               debug_report_bug(__FUNCTION__, __LINE__, 'No "do" has been provided. Please fix your templates.');
+               reportBug(__FUNCTION__, __LINE__, 'No "do" has been provided. Please fix your templates.');
        } // END - if
 
        // Default is invalid
        } // END - if
 
        // Default is invalid
@@ -76,7 +76,7 @@ function detectNetworkProcessForm () {
        // Has the form being detected?
        if ($GLOBALS['network_form_name'] == 'invalid') {
                // Not supported
        // Has the form being detected?
        if ($GLOBALS['network_form_name'] == 'invalid') {
                // Not supported
-               debug_report_bug(__FUNCTION__, __LINE__, 'POST form could not be detected.');
+               reportBug(__FUNCTION__, __LINE__, 'POST form could not be detected.');
        } // END - if
 }
 
        } // END - if
 }
 
@@ -103,7 +103,7 @@ function doAdminNetworkProcessForm () {
        // Is the function valid?
        if (!function_exists($functionName)) {
                // Invalid function name
        // Is the function valid?
        if (!function_exists($functionName)) {
                // Invalid function name
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid do ' . getRequestElement('do') . ', function ' . $functionName .' does not exist.', false);
+               reportBug(__FUNCTION__, __LINE__, 'Invalid do ' . getRequestElement('do') . ', function ' . $functionName .' does not exist.', false);
        } // END - if
 
        // Init global arrays
        } // END - if
 
        // Init global arrays
@@ -113,7 +113,7 @@ function doAdminNetworkProcessForm () {
        call_user_func($functionName);
 }
 
        call_user_func($functionName);
 }
 
-// Checks wether the (short) network name is already used (valid)
+// Checks whether the (short) network name is already used (valid)
 function isNetworkNameValid ($name) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_id` FROM `{?_MYSQL_PREFIX?}_network_data` WHERE `network_short_name`='%s' LIMIT 1",
 function isNetworkNameValid ($name) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_id` FROM `{?_MYSQL_PREFIX?}_network_data` WHERE `network_short_name`='%s' LIMIT 1",
@@ -129,7 +129,7 @@ function isNetworkNameValid ($name) {
        return $isValid;
 }
 
        return $isValid;
 }
 
-// Checks wether the given network type is already used (valid)
+// Checks whether the given network type is already used (valid)
 function isNetworkTypeHandleValid ($type, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_type_id` FROM `{?_MYSQL_PREFIX?}_network_types` WHERE `network_id`=%s AND `network_type_handler`='%s' LIMIT 1",
 function isNetworkTypeHandleValid ($type, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_type_id` FROM `{?_MYSQL_PREFIX?}_network_types` WHERE `network_id`=%s AND `network_type_handler`='%s' LIMIT 1",
@@ -148,7 +148,7 @@ function isNetworkTypeHandleValid ($type, $networkId) {
        return $isValid;
 }
 
        return $isValid;
 }
 
-// Checks wether the given network request parameter is already used (valid)
+// Checks whether the given network request parameter is already used (valid)
 function isNetworkRequestElementValid ($key, $type, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_request_param_id` FROM `{?_MYSQL_PREFIX?}_network_request_params` WHERE `network_id`=%s AND `network_type_id`=%s AND `network_request_param_key`='%s' LIMIT 1",
 function isNetworkRequestElementValid ($key, $type, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_request_param_id` FROM `{?_MYSQL_PREFIX?}_network_request_params` WHERE `network_id`=%s AND `network_type_id`=%s AND `network_request_param_key`='%s' LIMIT 1",
@@ -168,7 +168,7 @@ function isNetworkRequestElementValid ($key, $type, $networkId) {
        return $isValid;
 }
 
        return $isValid;
 }
 
-// Checks wether the given vcheck request parameter is already used (valid)
+// Checks whether the given vcheck request parameter is already used (valid)
 function isNetworkVcheckElementValid ($key, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_vcheck_param_id` FROM `{?_MYSQL_PREFIX?}_network_vcheck_params` WHERE `network_id`=%s AND `network_vcheck_param_key`='%s' LIMIT 1",
 function isNetworkVcheckElementValid ($key, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_vcheck_param_id` FROM `{?_MYSQL_PREFIX?}_network_vcheck_params` WHERE `network_id`=%s AND `network_vcheck_param_key`='%s' LIMIT 1",
@@ -187,7 +187,7 @@ function isNetworkVcheckElementValid ($key, $networkId) {
        return $isValid;
 }
 
        return $isValid;
 }
 
-// Checks wether the given network API array translation
+// Checks whether the given network API array translation
 function isNetworkArrayTranslationValid ($key, $type, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_array_id` FROM `{?_MYSQL_PREFIX?}_network_array_translation` WHERE `network_id`=%s AND `network_type_id`=%s AND `network_array_index`='%s' LIMIT 1",
 function isNetworkArrayTranslationValid ($key, $type, $networkId) {
        // Query for it
        $result = SQL_QUERY_ESC("SELECT `network_array_id` FROM `{?_MYSQL_PREFIX?}_network_array_translation` WHERE `network_id`=%s AND `network_type_id`=%s AND `network_array_index`='%s' LIMIT 1",
@@ -212,7 +212,7 @@ function getNetworkDataById ($networkId, $column = '') {
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Network id ' . $networkId . ' is smaller than 1.');
+               reportBug(__FUNCTION__, __LINE__, 'Network id ' . $networkId . ' is smaller than 1.');
        } // END - if
 
        // Set current network id
        } // END - if
 
        // Set current network id
@@ -267,7 +267,7 @@ function getNetworkDataByTypeId ($networkId, $column = '') {
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Network type id ' . $networkId . ' is smaller than 1.');
+               reportBug(__FUNCTION__, __LINE__, 'Network type id ' . $networkId . ' is smaller than 1.');
        } // END - if
 
        // Set current network id
        } // END - if
 
        // Set current network id
@@ -330,7 +330,7 @@ function getNetworkTypeDataById ($networkId) {
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Network type id ' . $networkId . ' is smaller than 1.');
+               reportBug(__FUNCTION__, __LINE__, 'Network type id ' . $networkId . ' is smaller than 1.');
        } // END - if
 
        // By default we have no data
        } // END - if
 
        // By default we have no data
@@ -369,7 +369,7 @@ function getNetworkRequestParamsDataById ($networkId) {
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Network request parameter id ' . $networkId . ' is smaller than 1.');
+               reportBug(__FUNCTION__, __LINE__, 'Network request parameter id ' . $networkId . ' is smaller than 1.');
        } // END - if
 
        // By default we have no data
        } // END - if
 
        // By default we have no data
@@ -408,7 +408,7 @@ function doNetworkUpdateDataByArray ($networkId, $networkData) {
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Network id ' . $networkId . ' is smaller than 1.');
+               reportBug(__FUNCTION__, __LINE__, 'Network id ' . $networkId . ' is smaller than 1.');
        } // END - if
 
        // Just call our inner method
        } // END - if
 
        // Just call our inner method
@@ -420,7 +420,7 @@ function doNetworkUpdateTypeByArray ($networkId, $networkTypeData) {
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Network type handler id ' . $networkId . ' is smaller than 1.');
+               reportBug(__FUNCTION__, __LINE__, 'Network type handler id ' . $networkId . ' is smaller than 1.');
        } // END - if
 
        // Just call our inner method
        } // END - if
 
        // Just call our inner method
@@ -432,7 +432,7 @@ function doNetworkUpdateParamsByArray ($networkId, $networkParamData) {
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
        // Ids lower one are not accepted
        if ($networkId < 1) {
                // Not good, should be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Network request parameter id ' . $networkId . ' is smaller than 1.');
+               reportBug(__FUNCTION__, __LINE__, 'Network request parameter id ' . $networkId . ' is smaller than 1.');
        } // END - if
 
        // Just call our inner method
        } // END - if
 
        // Just call our inner method
@@ -601,7 +601,7 @@ function generateNetworkTypeOptions ($networkId) {
        // Is this cached?
        if (!isset($GLOBALS[__FUNCTION__][$networkId])) {
                // Generate output and cache it
        // Is this cached?
        if (!isset($GLOBALS[__FUNCTION__][$networkId])) {
                // Generate output and cache it
-               $GLOBALS[__FUNCTION__][$networkId] = generateOptionList(
+               $GLOBALS[__FUNCTION__][$networkId] = generateOptions(
                        'network_types',
                        'network_type_id',
                        'network_type_handler',
                        'network_types',
                        'network_type_id',
                        'network_type_handler',
@@ -625,7 +625,7 @@ function generateNetworkTypesAvailableOptions ($defaultType = NULL) {
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__][$defaultType])) {
                // Generate list
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__][$defaultType])) {
                // Generate list
-               $GLOBALS[__FUNCTION__][$defaultType] = generateOptionList(
+               $GLOBALS[__FUNCTION__][$defaultType] = generateOptions(
                        '/ARRAY/',
                        array(
                                'banner',
                        '/ARRAY/',
                        array(
                                'banner',
@@ -675,7 +675,7 @@ function generateNetworkRequestKeyOptions () {
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Generate and cache it
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Generate and cache it
-               $GLOBALS[__FUNCTION__] = generateOptionList(
+               $GLOBALS[__FUNCTION__] = generateOptions(
                        '/ARRAY/',
                        array(
                                'id',
                        '/ARRAY/',
                        array(
                                'id',
@@ -711,7 +711,7 @@ function generateNetworkVcheckKeyOptions () {
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Generate and cache it
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Generate and cache it
-               $GLOBALS[__FUNCTION__] = generateOptionList(
+               $GLOBALS[__FUNCTION__] = generateOptions(
                        '/ARRAY/',
                        array(
                                'network_key',
                        '/ARRAY/',
                        array(
                                'network_key',
@@ -745,7 +745,7 @@ function generateNetworkTranslationOptions ($default = '') {
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__][$default])) {
                // Generate and cache it
        // Is it cached?
        if (!isset($GLOBALS[__FUNCTION__][$default])) {
                // Generate and cache it
-               $GLOBALS[__FUNCTION__][$default] = generateOptionList(
+               $GLOBALS[__FUNCTION__][$default] = generateOptions(
                        'network_translations',
                        'network_translation_id',
                        'network_translation_name',
                        'network_translations',
                        'network_translation_id',
                        'network_translation_name',
@@ -766,7 +766,7 @@ function generateNetworkRequestTypeOptions ($default = '') {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$default])) {
                // Generate the list
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$default])) {
                // Generate the list
-               $GLOBALS[__FUNCTION__][$default] = generateOptionList(
+               $GLOBALS[__FUNCTION__][$default] = generateOptions(
                        '/ARRAY/',
                        array(
                                'GET',
                        '/ARRAY/',
                        array(
                                'GET',
@@ -789,7 +789,7 @@ function generateNetworkApiActiveOptions ($default = '') {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$default])) {
                // Generate the list
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$default])) {
                // Generate the list
-               $GLOBALS[__FUNCTION__][$default] = generateYesNoOptionList($default);
+               $GLOBALS[__FUNCTION__][$default] = generateYesNoOptions($default);
        } // END - if
 
        // Return cache
        } // END - if
 
        // Return cache
@@ -804,7 +804,7 @@ function translateNetworkTranslationName ($name) {
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid type
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'type=' . $type . ' is invalid.');
+               reportBug(__FUNCTION__, __LINE__, 'type=' . $type . ' is invalid.');
        } // END - if
 
        // Return message id
        } // END - if
 
        // Return message id
@@ -819,7 +819,7 @@ function translateNetworkTypeHandler ($type) {
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid type
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'type=' . $type . ' is invalid.');
+               reportBug(__FUNCTION__, __LINE__, 'type=' . $type . ' is invalid.');
        } // END - if
 
        // Return message id
        } // END - if
 
        // Return message id
@@ -834,7 +834,7 @@ function translateNetworkRequestType ($type) {
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid type
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid type
-               debug_report_bug(__FUNCTION__, __LINE__, 'type=' . $type . ' is invalid.');
+               reportBug(__FUNCTION__, __LINE__, 'type=' . $type . ' is invalid.');
        } // END - if
 
        // Return message id
        } // END - if
 
        // Return message id
@@ -849,7 +849,7 @@ function translateNetworkRequestParameterKey ($param) {
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid param
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid param
-               debug_report_bug(__FUNCTION__, __LINE__, 'param=' . $param . ' is invalid.');
+               reportBug(__FUNCTION__, __LINE__, 'param=' . $param . ' is invalid.');
        } // END - if
 
        // Return message id
        } // END - if
 
        // Return message id
@@ -864,7 +864,7 @@ function translateNetworkVcheckParameterKey ($param) {
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid param
        // Is the message id there?
        if (!isMessageIdValid($messageId)) {
                // Not valid param
-               debug_report_bug(__FUNCTION__, __LINE__, 'param=' . $param . ' is invalid.');
+               reportBug(__FUNCTION__, __LINE__, 'param=' . $param . ' is invalid.');
        } // END - if
 
        // Return message id
        } // END - if
 
        // Return message id
@@ -954,7 +954,7 @@ function isNetworkApiConfigured ($networkId) {
        return $GLOBALS[__FUNCTION__][$networkId];
 }
 
        return $GLOBALS[__FUNCTION__][$networkId];
 }
 
-// Checks wether the given network type handler is configured
+// Checks whether the given network type handler is configured
 function isNetworkTypeHandlerConfigured ($networkId, $networkTypeId) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$networkId][$networkTypeId])) {
 function isNetworkTypeHandlerConfigured ($networkId, $networkTypeId) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$networkId][$networkTypeId])) {
@@ -976,7 +976,7 @@ function isNetworkTypeHandlerConfigured ($networkId, $networkTypeId) {
 // Handles the network-payment-check request
 function handleNetworkPaymentCheckRequest () {
        // @TODO Implement this function
 // Handles the network-payment-check request
 function handleNetworkPaymentCheckRequest () {
        // @TODO Implement this function
-       debug_report_bug(__FUNCTION__, __LINE__, 'Not yet implemented.');
+       reportBug(__FUNCTION__, __LINE__, 'Not yet implemented.');
 }
 
 //------------------------------------------------------------------------------
 }
 
 //------------------------------------------------------------------------------
@@ -1070,7 +1070,7 @@ function doAdminNetworkProcessHandleNetworkTypes () {
                                                $OUT .= loadTemplate('admin_delete_network_types_row', true, $networkTypeData);
                                        } else {
                                                // Problem!
                                                $OUT .= loadTemplate('admin_delete_network_types_row', true, $networkTypeData);
                                        } else {
                                                // Problem!
-                                               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
+                                               reportBug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
                                        }
                                } // END - if
                        } // END - if
                                        }
                                } // END - if
                        } // END - if
@@ -1085,7 +1085,7 @@ function doAdminNetworkProcessHandleNetworkTypes () {
                                loadTemplate('admin_delete_network_types', false, $OUT);
                        } else {
                                // Problem!
                                loadTemplate('admin_delete_network_types', false, $OUT);
                        } else {
                                // Problem!
-                               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
+                               reportBug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
                        }
 
                        // Don't display the list/add new form
                        }
 
                        // Don't display the list/add new form
@@ -1128,7 +1128,7 @@ function doAdminNetworkProcessHandleRequestParams () {
                                                $OUT .= loadTemplate('admin_delete_network_request_params_row', true, $networkRequestData);
                                        } else {
                                                // Problem!
                                                $OUT .= loadTemplate('admin_delete_network_request_params_row', true, $networkRequestData);
                                        } else {
                                                // Problem!
-                                               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
+                                               reportBug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
                                        }
                                } // END - if
                        } // END - if
                                        }
                                } // END - if
                        } // END - if
@@ -1143,7 +1143,7 @@ function doAdminNetworkProcessHandleRequestParams () {
                                loadTemplate('admin_delete_network_request_params', false, $OUT);
                        } else {
                                // Problem!
                                loadTemplate('admin_delete_network_request_params', false, $OUT);
                        } else {
                                // Problem!
-                               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
+                               reportBug(__FUNCTION__, __LINE__, 'Cannot detect edit/del.');
                        }
 
                        // Don't display the list/add new form
                        }
 
                        // Don't display the list/add new form
@@ -1179,7 +1179,7 @@ function doAdminNetworkProcessChangeNetworks () {
                                        // Do we have this enty?
                                        if (!isset($entry[$networkId])) {
                                                // Not found, needs fixing
                                        // Do we have this enty?
                                        if (!isset($entry[$networkId])) {
                                                // Not found, needs fixing
-                                               debug_report_bug(__FUNCTION__, __LINE__, 'No entry in key=' . $key . ', id=' . $networkId . ' found.');
+                                               reportBug(__FUNCTION__, __LINE__, 'No entry in key=' . $key . ', id=' . $networkId . ' found.');
                                        } // END - if
 
                                        // Add this entry
                                        } // END - if
 
                                        // Add this entry
@@ -1289,7 +1289,7 @@ function doAdminNetworkProcessChangeHandlerTypes () {
                                        // Do we have this enty?
                                        if (!isset($entry[$networkId])) {
                                                // Not found, needs fixing
                                        // Do we have this enty?
                                        if (!isset($entry[$networkId])) {
                                                // Not found, needs fixing
-                                               debug_report_bug(__FUNCTION__, __LINE__, 'No entry in key=' . $key . ', id=' . $networkId . ' found.');
+                                               reportBug(__FUNCTION__, __LINE__, 'No entry in key=' . $key . ', id=' . $networkId . ' found.');
                                        } // END - if
 
                                        // Fix empty network_type_banner_url to NULL
                                        } // END - if
 
                                        // Fix empty network_type_banner_url to NULL
@@ -1342,7 +1342,7 @@ function doAdminNetworkProcessChangeRequestParams () {
                                        // Do we have this enty?
                                        if (!isset($entry[$networkId])) {
                                                // Not found, needs fixing
                                        // Do we have this enty?
                                        if (!isset($entry[$networkId])) {
                                                // Not found, needs fixing
-                                               debug_report_bug(__FUNCTION__, __LINE__, 'No entry in key=' . $key . ', id=' . $networkId . ' found.');
+                                               reportBug(__FUNCTION__, __LINE__, 'No entry in key=' . $key . ', id=' . $networkId . ' found.');
                                        } // END - if
 
                                        // Fix empty network_request_param_default to NULL
                                        } // END - if
 
                                        // Fix empty network_request_param_default to NULL
@@ -1594,19 +1594,8 @@ function doAdminNetworkProcessAddHandlerTypesConfig ($displayMessage = true) {
                } // END - if
        } // END - foreach
 
                } // END - if
        } // END - foreach
 
-       // Initialize variables
-       $content = array();
-       $id = 'network_max_reload_time_ye';
-       $skip = false;
-
-       // Get all POST data
-       $postData = postRequestArray();
-
-       // Convert "reload time selections"
-       convertSelectionsToEpocheTime($postData, $content, $id, $skip);
-
-       // Set the POST array back
-       setPostRequestArray($postData);
+       // Convert data in POST array
+       convertSelectionsToEpocheTimeInPostData($content, 'network_max_reload_time_ye', $skip);
 
        // Is there already an entry?
        if (isNetworkTypeHandlerConfigured(getRequestElement('network_id'), getRequestElement('network_type_id'))) {
 
        // Is there already an entry?
        if (isNetworkTypeHandlerConfigured(getRequestElement('network_id'), getRequestElement('network_type_id'))) {
@@ -1696,17 +1685,8 @@ function doAdminNetworkProcessEditHandlerTypesConfig ($displayMessage = true) {
                } // END - if
        } // END - foreach
 
                } // END - if
        } // END - foreach
 
-       // Initialize variables
-       $content = array();
-       $id = 'network_max_reload_time_ye';
-       $skip = false;
-       $postData = postRequestArray();
-
-       // Convert "reload time selections"
-       convertSelectionsToEpocheTime($postData, $content, $id, $skip);
-
-       // Set the POST array back
-       setPostRequestArray($postData);
+       // Convert time selections in POST data
+       convertSelectionsToEpocheTimeInPostArray('network_max_reload_time_ye');
 
        // Is there already an entry?
        if (!isNetworkTypeHandlerConfigured(getRequestElement('network_id'), getRequestElement('network_type_id'))) {
 
        // Is there already an entry?
        if (!isNetworkTypeHandlerConfigured(getRequestElement('network_id'), getRequestElement('network_type_id'))) {
@@ -1822,7 +1802,7 @@ function doAdminNetworkProcessExport () {
        // Is the 'what' key valid?
        if (!isset($validExports[getWhat()])) {
                // Not valid
        // Is the 'what' key valid?
        if (!isset($validExports[getWhat()])) {
                // Not valid
-               debug_report_bug(__FUNCTION__, __LINE__, 'what=' . getWhat() . ' - not supported');
+               reportBug(__FUNCTION__, __LINE__, 'what=' . getWhat() . ' - not supported');
        } // END - if
 
        // Generate call-back, some tables require to export not all columns
        } // END - if
 
        // Generate call-back, some tables require to export not all columns
@@ -1831,10 +1811,10 @@ function doAdminNetworkProcessExport () {
        // Is the call-back function there?
        if (!function_exists($callbackName)) {
                // No, this is really bad
        // Is the call-back function there?
        if (!function_exists($callbackName)) {
                // No, this is really bad
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid call-back function ' . $callbackName . ' detected.');
+               reportBug(__FUNCTION__, __LINE__, 'Invalid call-back function ' . $callbackName . ' detected.');
        } elseif (isset($GLOBALS[__FUNCTION__][$callbackName])) {
                // Already called!
        } elseif (isset($GLOBALS[__FUNCTION__][$callbackName])) {
                // Already called!
-               debug_report_bug(__FUNCTION__, __LINE__, 'Double-call of export function ' . $callbackName . ' detected.');
+               reportBug(__FUNCTION__, __LINE__, 'Double-call of export function ' . $callbackName . ' detected.');
        }
 
        // Call the function
        }
 
        // Call the function
@@ -1901,7 +1881,7 @@ function doAdminNetworkExportTypes () {
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network handlers of one network will be exported per time
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network handlers of one network will be exported per time
-               debug_report_bug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
+               reportBug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
        } // END - if
 
        // Get all network types of given network
        } // END - if
 
        // Get all network types of given network
@@ -1942,7 +1922,7 @@ ORDER BY
                        $SQL .= 'NULL';
                } else {
                        // Column is set
                        $SQL .= 'NULL';
                } else {
                        // Column is set
-                       $SQL .= "'" . $content['network_type_banner_url'] . "'";
+                       $SQL .= chr(39) . $content['network_type_banner_url'] . chr(39);
                }
 
                // Add more
                }
 
                // Add more
@@ -1964,7 +1944,7 @@ function doAdminNetworkExportRequestParams () {
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network request parameters of one network will be exported per time
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network request parameters of one network will be exported per time
-               debug_report_bug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
+               reportBug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
        } // END - if
 
        // Get all network types of given network
        } // END - if
 
        // Get all network types of given network
@@ -2003,7 +1983,7 @@ ORDER BY
                        $SQL .= "NULL),\n";
                } else {
                        // Column is set
                        $SQL .= "NULL),\n";
                } else {
                        // Column is set
-                       $SQL .= "'" . $content['network_request_param_default'] . "'),\n";
+                       $SQL .= chr(39) . $content['network_request_param_default'] . "'),\n";
                }
        } // END - while
 
                }
        } // END - while
 
@@ -2022,7 +2002,7 @@ function doAdminNetworkExportVcheckParams () {
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network vcheck parameters of one network will be exported per time
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network vcheck parameters of one network will be exported per time
-               debug_report_bug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
+               reportBug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
        } // END - if
 
        // Get all network types of given network
        } // END - if
 
        // Get all network types of given network
@@ -2058,7 +2038,7 @@ ORDER BY
                        $SQL .= "NULL),\n";
                } else {
                        // Column is set
                        $SQL .= "NULL),\n";
                } else {
                        // Column is set
-                       $SQL .= "'" . $content['network_vcheck_param_default'] . "'),\n";
+                       $SQL .= chr(39) . $content['network_vcheck_param_default'] . "'),\n";
                }
        } // END - while
 
                }
        } // END - while
 
@@ -2077,7 +2057,7 @@ function doAdminNetworkExportArrayTranslation () {
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network API array index translations of one network will be exported per time
        // 'network_id' must be set
        if (!isGetRequestElementSet('network_id')) {
                // Only network API array index translations of one network will be exported per time
-               debug_report_bug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
+               reportBug(__FUNCTION__, __LINE__, 'network_id not provided, please fix your links.');
        } // END - if
 
        // Get all network types of given network
        } // END - if
 
        // Get all network types of given network
index 36d12ffe11c5422ca8ba4419a3308ca26d5f7c2b..a2b3c0ae62356affc623318eb8a9aa1cb90159a1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -93,7 +93,7 @@ function insertNewsletterUrls ($text) {
                }
 
                // And now go forward...
                }
 
                // And now go forward...
-               $idx = '0';
+               $idx = 0;
                while ($idx < strlen($test)) {
                        $check = substr($test, $idx, 1);
                        if ((!in_array($check, $GLOBALS['valid_email_chars'])) && ($check != '@')) {
                while ($idx < strlen($test)) {
                        $check = substr($test, $idx, 1);
                        if ((!in_array($check, $GLOBALS['valid_email_chars'])) && ($check != '@')) {
@@ -109,14 +109,15 @@ function insertNewsletterUrls ($text) {
                }
 
                // Now replace the email against anchor with mailto and pray...
                }
 
                // Now replace the email against anchor with mailto and pray...
-               $PARTS[] = $check2 . $check;
+               array_push($PARTS, $check2 . $check);
 
                // Remove email from testing string (see above why...)
                $test = substr($test, strlen($check));
        }
 
        // Now put all parts together
 
                // Remove email from testing string (see above why...)
                $test = substr($test, strlen($check));
        }
 
        // Now put all parts together
-       $text = ''; $PARTS[] = $test;
+       $text = '';
+       array_push($PARTS, $test);
        foreach ($PARTS as $part) {
                $text .= $part;
        }
        foreach ($PARTS as $part) {
                $text .= $part;
        }
index 9d501390db43c0b198cf7d23ba583d1b0d53ceab..1e8084013b5bda6e6476dfc21549da236ffea576 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -40,7 +40,7 @@ if (!defined('__SECURITY')) {
        die();
 } // END - if
 
        die();
 } // END - if
 
-// Checks wether the nickname is active
+// Checks whether the nickname is active
 function isNicknameOrUserid ($useridNick) {
        // By default nothing is found...
        $ret = false;
 function isNicknameOrUserid ($useridNick) {
        // By default nothing is found...
        $ret = false;
@@ -78,7 +78,7 @@ function getNickname ($userid) {
                $result = false;
 
                // Nickname or userid used?
                $result = false;
 
                // Nickname or userid used?
-               if ('' . round($userid) . '' === '' . $userid . '') {
+               if ('' . bigintval($userid, true, false) . '' === '' . $userid . '') {
                        // Userid given, so try to load user data
                        if (fetchUserData($userid)) {
                                // Load nickname from database
                        // Userid given, so try to load user data
                        if (fetchUserData($userid)) {
                                // Load nickname from database
index 869ba8e2e2990314a81b7c0409450e25cdce584a..bc8818fa22f5e8d14fb604deb73f193cd5632a4f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index efcdbd16c0da453b7c0441d5160da296d274d229..ee3e22c9416b304d377dec860e209d3c1944e971 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -82,7 +82,7 @@ function repairOptimizeDatabase () {
                        $opt = SQL_FETCHARRAY($result1);
 
                        // Add data to array
                        $opt = SQL_FETCHARRAY($result1);
 
                        // Add data to array
-                       $ret['tables'][] = array($row['Name'], $opt['Msg_text'], $rep['Msg_text'], $total, $gain);
+                       array_push($ret['tables'], array($row['Name'], $opt['Msg_text'], $rep['Msg_text'], $total, $gain));
 
                        // Count total table data
                        $ret['total_size'] += $total;
 
                        // Count total table data
                        $ret['total_size'] += $total;
index f6da85ea7949b5bf28be1dc881b452216ca71d88..5aa1383fe84093a76929087071203c8dcc6b61d7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,6 +43,7 @@ if (!defined('__SECURITY')) {
 // Generates a selection list for mail order
 function addOrderSelectionOptions ($default) {
        // Currenty the list is hardcoded...
 // Generates a selection list for mail order
 function addOrderSelectionOptions ($default) {
        // Currenty the list is hardcoded...
+       // @TODO Move this array into a filter
        $LIST = array('userid', 'zip', 'country', 'email', 'birth_year', 'last_online', 'ref_clicks', 'total_logins', 'mail_orders');
        $OUT = '';
        foreach ($LIST as $item) {
        $LIST = array('userid', 'zip', 'country', 'email', 'birth_year', 'last_online', 'ref_clicks', 'total_logins', 'mail_orders');
        $OUT = '';
        foreach ($LIST as $item) {
@@ -58,7 +59,7 @@ function addOrderSelectionOptions ($default) {
                } // END - if
 
                // Add option line
                } // END - if
 
                // Add option line
-               $OUT .= '<option value="' . $item . '"' . $selected . '>{--ADMIN_ORDER_SELECT_COLUMN_' . strtoupper($item) . '--}</option>';
+               $OUT .= '<option value="' . $item . '"' . $selected . '>{--ADMIN_CONFIG_ORDER_SELECT_COLUMN_' . strtoupper($item) . '--}</option>';
        } // END - foreach
 
        // Return the output
        } // END - foreach
 
        // Return the output
@@ -81,7 +82,7 @@ function getOrderMultiPage () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Determines wether 'order_multi_page' is set to 'Y'
+// Determines whether 'order_multi_page' is set to 'Y'
 function isOrderMultiPageEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isOrderMultiPageEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
index 2d49e5802d7817f76d87a4db0ee7a267a60fea5c..98d1858473556a13005a71347d42ab3f8aa9a50d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -57,7 +57,7 @@ function displayDebugSqls () {
        } // END - foreach
 
        // Load main template
        } // END - foreach
 
        // Load main template
-       $GLOBALS['page_footer'] .= loadTemplate('admin_other_sqls', true, $OUT);
+       $GLOBALS['__page_footer'] .= loadTemplate('admin_other_sqls', true, $OUT);
 }
 
 // [EOF]
 }
 
 // [EOF]
index 7dea181c693d4411d0b977de9598bd8964e1884b..82c4048dea845405414c1f7d6b73475ffecb7626 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -99,7 +99,7 @@ function getPayoutPoints ($userid) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$userid])) {
                // Determine it
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$userid])) {
                // Determine it
-               $GLOBALS[__FUNCTION__][$userid] = countSumTotalData($userid, 'user_points', 'points') - countSumTotalData($userid, 'user_data', 'used_points');
+               $GLOBALS[__FUNCTION__][$userid] = countSumTotalData($userid, 'user_points', 'points') - getUserUsedPoints($userid);
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
index 005eaac0c79edc2c0481210113dd4e8217dfe41a..0ec64017623f21876a063db5c1180251b28c414e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index b76c47c8fcc57167d91c97939322bf744a30bb33..7a3664c68e6a627f0d1c72f76d5f79d2a5ba8088 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -68,7 +68,7 @@ function getResendProfileUpdate () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Determines wether sending profile update notification is enabled
+// Determines whether sending profile update notification is enabled
 function isSendProfileUpdateEnabled() {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isSendProfileUpdateEnabled() {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
index feffef0f6131f358e92926a4efcc1a1fccb3c6cb..d88550529135925a0f2b1c34c20220e7978217d1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,7 +43,7 @@ if (!defined('__SECURITY')) {
 // Auto-start referral rallyes
 function autostartReferralRallyes ($result) {
        // Load all rallyes (usally we have only one rallye active per time!
 // Auto-start referral rallyes
 function autostartReferralRallyes ($result) {
        // Load all rallyes (usally we have only one rallye active per time!
-       list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result);
+       $content = SQL_FETCHARRAY($result);
 
        // Free result
        SQL_FREERESULT($result);
 
        // Free result
        SQL_FREERESULT($result);
@@ -56,22 +56,7 @@ SET
 WHERE
        `id`=%s
 LIMIT 1",
 WHERE
        `id`=%s
 LIMIT 1",
-               array(bigintval($id)), __FUNCTION__, __LINE__);
-
-       // Transfer all neccessary data to the $content array
-       $content['userid_cnt'] = getTotalConfirmedUser();
-       $content['start']      = generateDateTime($start, 2);
-       $content['end']        = generateDateTime($end  , 2);
-       $content['now_t']      = generateDateTime(time(), 2);
-       $content['title']      = $title;
-       $content['id']         = $id;  // id for the rallye details link
-
-       // Determine min_users and min_prices
-       $content['min_users']  = determineReferralRallyeMinimumUsers($min_users);
-       $content['min_prices'] = determineReferralRallyeMinimumPrices($min_prices);
-
-       // Load prices
-       $content['prices'] = addReferralRallyePrices($id);
+               array(bigintval($content['id'])), __FUNCTION__, __LINE__);
 
        // Query all users
        $result_user = SQL_QUERY("SELECT
 
        // Query all users
        $result_user = SQL_QUERY("SELECT
@@ -80,6 +65,7 @@ FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED'
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 ORDER BY
        `userid` ASC", __FUNCTION__, __LINE__);
 
 ORDER BY
        `userid` ASC", __FUNCTION__, __LINE__);
 
@@ -103,12 +89,13 @@ WHERE
        `rallye_id`=%s AND
        `userid`=%s
 LIMIT 1",
        `rallye_id`=%s AND
        `userid`=%s
 LIMIT 1",
-                       array(bigintval($id), bigintval($content['userid'])), __FUNCTION__, __LINE__);
-               if (SQL_HASZERONUMS($result_ref)) {
+                       array(bigintval($content['id']), bigintval($content['userid'])), __FUNCTION__, __LINE__);
 
 
+               // Do we have an entry?
+               if (SQL_HASZERONUMS($result_ref)) {
                        // Add userid and his ref count to table
                        $result_ref = SQL_QUERY_ESC("SELECT 
                        // Add userid and his ref count to table
                        $result_ref = SQL_QUERY_ESC("SELECT 
-       SUM(p.points) AS `points`
+       SUM(p.`points`) AS `points`
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
 LEFT JOIN
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
 LEFT JOIN
@@ -116,7 +103,8 @@ LEFT JOIN
 ON
        p.userid=d.userid
 WHERE
 ON
        p.userid=d.userid
 WHERE
-       d.`status`='CONFIRMED' AND
+       d.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
        d.`max_mails` > 0 AND
        d.`mails_confirmed` >= {?ref_payout?} AND
        p.`ref_depth`=1 AND
        d.`max_mails` > 0 AND
        d.`mails_confirmed` >= {?ref_payout?} AND
        p.`ref_depth`=1 AND
@@ -135,11 +123,19 @@ WHERE
                        // Add info line
                        SQL_QUERY_ESC("INSERT INTO
        `{?_MYSQL_PREFIX?}_rallye_users`
                        // Add info line
                        SQL_QUERY_ESC("INSERT INTO
        `{?_MYSQL_PREFIX?}_rallye_users`
-(`rallye_id`,`userid`,`refs`,`curr_points`)
-       VALUES
-(%s, %s, %s, %s)",
+(
+       `rallye_id`,
+       `userid`,
+       `refs`,
+       `curr_points`
+) VALUES (
+       %s,
+       %s,
+       %s,
+       %s
+)",
                                array(
                                array(
-                                       bigintval($id),
+                                       bigintval($content['id']),
                                        bigintval($content['userid']),
                                        bigintval($count),
                                        $cpoints
                                        bigintval($content['userid']),
                                        bigintval($count),
                                        $cpoints
@@ -154,19 +150,21 @@ WHERE
                $content['refs']  = $count;
 
                // Shall I notify this member?
                $content['refs']  = $count;
 
                // Shall I notify this member?
-               if (($notify == 'Y') && ($un)) {
+               if (($content['send_notify'] == 'Y') && ($un === true)) {
                        // Load email template and send it to the user
                        $message = loadEmailTemplate('member_rallye_notify', $content, $content['userid']);
                        // Load email template and send it to the user
                        $message = loadEmailTemplate('member_rallye_notify', $content, $content['userid']);
-                       sendEmail($content['userid'], '{%message,RALLYE_MEMBER_NOTIFY=' . $title . '%}', $message);
+                       sendEmail($content['userid'], '{%message,MEMBER_RALLYE_NOTIFY_SUBJECT=' . $content['title'] . '%}', $message);
                } // END - if
        } // END - while
 
        // Choose the right admin template
        $templ = 'admin_rallye_no_notify';
                } // END - if
        } // END - while
 
        // Choose the right admin template
        $templ = 'admin_rallye_no_notify';
-       if ($notify == 'Y') $templ = 'admin_rallye_notify';
+       if ($content['send_notify'] == 'Y') {
+               $templ = 'admin_rallye_notify';
+       } // END - if
 
        // Send email to admin
 
        // Send email to admin
-       sendAdminNotification('{%message,RALLYE_ADMIN_NOTIFY=' . $title . '%}', $templ, $prices);
+       sendAdminNotification('{%message,ADMIN_RALLYE_NOTIFY_SUBJECT=' . $content['title'] . '%}', $templ, $content);
 
        // Free memory
        SQL_FREERESULT($result_user);
 
        // Free memory
        SQL_FREERESULT($result_user);
@@ -176,13 +174,15 @@ WHERE
 function addReferralRallyePrices ($rallye, $mode = 'email') {
        // Output mode
        switch($mode) {
 function addReferralRallyePrices ($rallye, $mode = 'email') {
        // Output mode
        switch($mode) {
-               case 'email': $mode = "\n";     break;
+               case 'email': $mode = chr(10);  break;
                case 'html' : $mode = '<br />'; break;
        } // END - switch
 
        // Load prices
        $result_prices = SQL_QUERY_ESC("SELECT
                case 'html' : $mode = '<br />'; break;
        } // END - switch
 
        // Load prices
        $result_prices = SQL_QUERY_ESC("SELECT
-       `price_level`,`points`,`info`
+       `price_level`,
+       `points`,
+       `info`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_prices`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_rallye_prices`
 WHERE
@@ -194,15 +194,17 @@ ORDER BY
        // Entries found?
        if (!SQL_HASZERONUMS($result_prices)) {
                // Load prices
        // Entries found?
        if (!SQL_HASZERONUMS($result_prices)) {
                // Load prices
-               if ($mode == "\n") $prices = '{--RALLYE_MEMBER_PRICES_ADDED--}:' . $mode . '------------------------------' . $mode;
-
                $prices = '';
                $prices = '';
+               if ($mode == chr(10)) {
+                       $prices = '{--RALLYE_MEMBER_PRICES_ADDED--}:' . $mode . '------------------------------' . $mode;
+               } // END - if
+
                while ($content = SQL_FETCHARRAY($result_prices)) {
                while ($content = SQL_FETCHARRAY($result_prices)) {
-                       $prices .= $content['price_level']. '{--RALLYE_PRICE--}: ';
+                       $prices .= $content['price_level']. '{--RALLYE_PRICE--}:';
                        if (!empty($content['info'])) {
                                $prices .= $content['info'];
                        } else {
                        if (!empty($content['info'])) {
                                $prices .= $content['info'];
                        } else {
-                               $prices .= $content['points'] . ' {?POINTS?}';
+                               $prices .= '{%pipe,translateComma=' . $content['points'] . '%} {?POINTS?}';
                        }
                        $prices .= '' . $mode;
                } // END - if
                        }
                        $prices .= '' . $mode;
                } // END - if
@@ -215,7 +217,9 @@ ORDER BY
        }
 
        // Add last line for email mode
        }
 
        // Add last line for email mode
-       if ($mode == "\n") $prices .= '------------------------------';
+       if ($mode == chr(10)) {
+               $prices .= '------------------------------';
+       } // END - if
 
        // Return price list
        return $prices;
 
        // Return price list
        return $prices;
@@ -224,27 +228,32 @@ ORDER BY
 //
 function addReferralRallyeTopUsers ($mode, $rallye, $default=0) {
        // Init variables
 //
 function addReferralRallyeTopUsers ($mode, $rallye, $default=0) {
        // Init variables
-       $min_users = 0; $min_prices = 0;
+       $min_users = 0;
+       $min_prices = 0;
 
        // First check how many prices are set
 
        // First check how many prices are set
-       $prices = countSumTotalData($rallye, 'rallye_prices', 'id', 'rallye_id', true);
+       $prices = getTotalRallyePrices($rallye);
 
        // And load only limited users
 
        // And load only limited users
-       $result = SQL_QUERY_ESC("SELECT
-       u.userid, u.refs, u.curr_points, rd.min_users, rd.min_prices
+       $result = SQL_QUERY_ESC("SELECT DISTINCT
+       u.`userid`,
+       u.`refs`,
+       u.`curr_points`,
+       rd.`min_users`,
+       rd.`min_prices`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_users` AS u
 FROM
        `{?_MYSQL_PREFIX?}_rallye_users` AS u
-LEFT JOIN
+INNER JOIN
        `{?_MYSQL_PREFIX?}_refsystem` AS r
 ON
        u.userid=r.userid
        `{?_MYSQL_PREFIX?}_refsystem` AS r
 ON
        u.userid=r.userid
-LEFT JOIN
+INNER JOIN
        `{?_MYSQL_PREFIX?}_rallye_data` AS rd
 ON
        `{?_MYSQL_PREFIX?}_rallye_data` AS rd
 ON
-       u.rallye_id=rd.id
+       u.`rallye_id`=rd.`id`
 WHERE
        u.`rallye_id`=%s AND
 WHERE
        u.`rallye_id`=%s AND
-       r.counter > 0
+       r.`counter` > 0
 ORDER BY
        u.refs DESC",
                array(bigintval($rallye)), __FUNCTION__, __LINE__);
 ORDER BY
        u.refs DESC",
                array(bigintval($rallye)), __FUNCTION__, __LINE__);
@@ -257,27 +266,29 @@ ORDER BY
        );
 
        // Load all users
        );
 
        // Load all users
-       while ($content = SQL_FETCHARRAY($result)) {
+       while ($row = SQL_FETCHARRAY($result)) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $row['userid'] . ',refs=' . $row['refs']);
                // Get current refs
                // Get current refs
-               $count = getReferralRallyeRefsCount($content['userid'], $content['refs']);
+               $count = getReferralRallyeRefsCount($row['userid'], $row['refs']);
 
                // Points of ref's
                $result_ref = SQL_QUERY_ESC("SELECT
 
                // Points of ref's
                $result_ref = SQL_QUERY_ESC("SELECT
-       p.points
+       p.`points`
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
-       p.userid=d.userid
+       p.`userid`=d.`userid`
 WHERE
 WHERE
-       d.userid=%s AND
-       d.`status`='CONFIRMED' AND
-       p.ref_depth=1 AND
-       d.max_mails > 0 AND
-       d.mails_confirmed >= {?ref_payout?}
+       d.`userid`=%s AND
+       d.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
+       p.`ref_depth`=1 AND
+       d.`max_mails` > 0 AND
+       d.`mails_confirmed` >= {?ref_payout?}
 LIMIT 1",
 LIMIT 1",
-                       array(bigintval($content['userid'])), __FUNCTION__, __LINE__);
+                       array(bigintval($row['userid'])), __FUNCTION__, __LINE__);
 
                // Get points
                list($refpoints) = SQL_FETCHROW($result_ref);
 
                // Get points
                list($refpoints) = SQL_FETCHROW($result_ref);
@@ -285,15 +296,18 @@ LIMIT 1",
                // Free result
                SQL_FREERESULT($result_ref);
 
                // Free result
                SQL_FREERESULT($result_ref);
 
-               if (empty($refpoints)) $refpoints = '0';
+               // Fix empty values (ugly code again)
+               if (empty($refpoints)) {
+                       $refpoints = '0';
+               } // END - if
 
                // Init userid for list
                $userid = '---';
 
                // List only users with at least one ref!
 
                // Init userid for list
                $userid = '---';
 
                // List only users with at least one ref!
-               //* DEBUG: */ debugOutput('*'.$count.'/'.$content['userid'].'/'.$content['curr_points'].'/'.$refpoints.'*');
-               if (($count > 0) && ($refpoints > $content['curr_points'])) {
-                       $userid = $content['userid'];
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count=' . $count . ',userid=' . $userid . ',refpoints=' . $refpoints . ',curr_points=' . $row['curr_points']);
+               if (($count > 0) && ($refpoints > $row['curr_points'])) {
+                       $userid = $row['userid'];
                } else {
                        $count = '';
                }
                } else {
                        $count = '';
                }
@@ -301,23 +315,23 @@ LIMIT 1",
                // Save values to array
                $content['userid'][]   = $userid;
                $content['ref'][]      = $count;
                // Save values to array
                $content['userid'][]   = $userid;
                $content['ref'][]      = $count;
-               $content['cpoints'][]  = $content['curr_points'];
-               $min_users  = $content['min_users'];
-               $min_prices = $content['min_prices'];
+               $content['cpoints'][]  = $row['curr_points'];
+               $min_users  = $row['min_users'];
+               $min_prices = $row['min_prices'];
        } // END - while
 
        // Free memory
        SQL_FREERESULT($result);
 
        // Sort whole array
        } // END - while
 
        // Free memory
        SQL_FREERESULT($result);
 
        // Sort whole array
-       array_pk_sort($content, array('ref', 'cpoints'), 0, 1, true);
+       array_pk_sort($content, array('cpoints', 'ref'), 0, 1, true);
 
        // Generate table
        $OUT = '';
 
        // Generate table
        $OUT = '';
-       for ($idx = '0'; $idx < $prices; $idx++) {
+       for ($idx = 0; $idx < $prices; $idx++) {
                // Prepare marking of default (maybe current user's) id
                $start = ''; $end = '';
                // Prepare marking of default (maybe current user's) id
                $start = ''; $end = '';
-               if (($content['userid'][$idx] == $default) && ($default > 0)) {
+               if (($default > 0) && (isset($content['userid'][$idx])) && ($content['userid'][$idx] == $default)) {
                        $start = '<strong>';
                        $end   = '</strong>';
                } // END - if
                        $start = '<strong>';
                        $end   = '</strong>';
                } // END - if
@@ -327,9 +341,8 @@ LIMIT 1",
                        'idx'    => ($idx + 1),
                        'start'  => $start,
                        'end'    => $end,
                        'idx'    => ($idx + 1),
                        'start'  => $start,
                        'end'    => $end,
-                       'userid' => $content['userid'][$idx],
-                       'ref'    => $content['ref'][$idx],
-                       'infos'  => ''
+                       'userid' => (isset($content['userid'][$idx])) ? $content['userid'][$idx] : '---',
+                       'ref'    => (isset($content['ref'][$idx]))    ? $content['ref'][$idx]    : '---'
                );
 
                // Load row template and switch color
                );
 
                // Load row template and switch color
@@ -345,6 +358,20 @@ LIMIT 1",
        return loadTemplate($mode . '_list_rallye', true, $content);
 }
 
        return loadTemplate($mode . '_list_rallye', true, $content);
 }
 
+// Sends out a notification about the rallye
+function sendRallyeNotification ($userid, $content) {
+       // Translate more data
+       $content['start_time'] = generateDateTime($content['start_time'], 2);
+       $content['end_time']   = generateDateTime($content['end_time']  , 2);
+       $content['now_time']   = generateDateTime(time(), 2);
+       $content['ref']        = '0';
+       $content['refs']       = getUsersTotalReferrals($userid);
+
+       // Send notification to member
+       $message = loadEmailTemplate('member_rallye_notify', $content, $userid);
+       sendEmail($userid, '{%message,MEMBER_RALLYE_NOTIFY_SUBJECT=' . $content['title'] . '%}', $message);
+}
+
 // Run this function only when a new member has confirmed his email address!
 function addUserToReferralRallye ($userid, $content = array()) {
        $add = '';
 // Run this function only when a new member has confirmed his email address!
 function addUserToReferralRallye ($userid, $content = array()) {
        $add = '';
@@ -356,7 +383,12 @@ function addUserToReferralRallye ($userid, $content = array()) {
 
        // Check for an auto-add rallye
        $result = SQL_QUERY("SELECT
 
        // Check for an auto-add rallye
        $result = SQL_QUERY("SELECT
-       `id`,`title`,`start_time`,`end_time`,`send_notify`".$add."
+       `id`,
+       `title`,
+       `start_time`,
+       `end_time`,
+       `send_notify`
+       ".$add."
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
@@ -367,38 +399,19 @@ WHERE
 LIMIT 1", __FUNCTION__, __LINE__);
        if (SQL_NUMROWS($result) == 1) {
                // Init variables
 LIMIT 1", __FUNCTION__, __LINE__);
        if (SQL_NUMROWS($result) == 1) {
                // Init variables
-               $min_users = '0'; $min_prices = '0';
+               $min_users = '0';
+               $min_prices = '0';
 
 
-               // Load data
-               if (isExtensionInstalledAndNewer('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);
-               }
+               // Load and merge data
+               $content = merge_array($content, SQL_FETCHARRAY($result));
 
                // Free result
                SQL_FREERESULT($result);
 
 
                // Free result
                SQL_FREERESULT($result);
 
-               if ($notify == 'Y') {
+               // Notify the user?
+               if ($content['send_notify'] == 'Y') {
                        // Transfer all neccessary data to $content array
                        // Transfer all neccessary data to $content array
-                       $content['start'] = generateDateTime($start, 2);
-                       $content['end']   = generateDateTime($end  , 2);
-                       $content['now_t'] = generateDateTime(time(), 2);
-                       $content['title'] = $title;
-                       $content['id']    = $id;  // id for the rallye details link
-                       $content['ref']   = '0';
-                       $content['refs']  = countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
-
-                       // Load prices
-                       $content['prices'] = addReferralRallyePrices($id);
-
-                       // Determine min_users/prices tring
-                       $content['min_users']  = determineReferralRallyeMinimumUsers($min_users);
-                       $content['min_prices'] = determineReferralRallyeMinimumPrices($min_prices);
-
-                       // Send notification to member
-                       $message = loadEmailTemplate('member_rallye_notify', $content, $userid);
-                       sendEmail($userid, '{%message,RALLYE_MEMBER_NOTIFY=' . $title . '%}', $message);
+                       sendRallyeNotification($userid, $content);
                } // END - if
 
                // Check if line is already included...
                } // END - if
 
                // Check if line is already included...
@@ -411,7 +424,7 @@ WHERE
        `userid`=%s
 LIMIT 1",
                        array(
        `userid`=%s
 LIMIT 1",
                        array(
-                               bigintval($id),
+                               bigintval($content['id']),
                                bigintval($userid)
                        ), __FUNCTION__, __LINE__);
 
                                bigintval($userid)
                        ), __FUNCTION__, __LINE__);
 
@@ -420,11 +433,17 @@ LIMIT 1",
                        // Add userid and his ref count to table
                        SQL_QUERY_ESC("INSERT INTO
        `{?_MYSQL_PREFIX?}_rallye_users`
                        // 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)",
+(
+       `rallye_id`,
+       `userid`,
+       `refs`
+) VALUES (
+       %s,
+       %s,
+       0
+)",
                                array(
                                array(
-                                       bigintval($id),
+                                       bigintval($content['id']),
                                        bigintval($userid)
                                ), __FUNCTION__, __LINE__);
                } // END - if
                                        bigintval($userid)
                                ), __FUNCTION__, __LINE__);
                } // END - if
@@ -434,33 +453,60 @@ LIMIT 1",
        } // END - if
 }
 
        } // END - if
 }
 
-//
-function markReferralRallyesAsExpired ($result) {
+// "Getter" for total rallye winners
+function getTotalRallyeWinners ($rallyeId) {
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__][$rallyeId])) {
+               // Default total is zero
+               $GLOBALS[__FUNCTION__][$rallyeId] = '0';
+
+               // Get prices
+               $prices = getArrayFromReferralRallyeUsers($rallyeId);
+
+               // "Walk" through all entries
+               foreach ($prices['userid'] as $key => $userid) {
+                       // Check for userid
+                       $active = countSumTotalData($userid, 'user_data', 'userid', 'userid', true, runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"));
+
+                       // Allow valid and active users with at least one ref
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'rallyeId=' . $rallyeId . ',userid=' . $userid . ',ref=' . $prices['ref'][$key] . ',cpoints=' . $prices['cpoints'][$key]);
+                       if ((isValidUserId($userid)) && ($prices['ref'][$key] > 0) && ($active == 1) && ($prices['cpoints'][$key] > 0)) {
+                               $GLOBALS[__FUNCTION__][$rallyeId]++;
+                       } // END - if
+               } // END - foreach
+       } // END - if
+
+       // Return it
+       return $GLOBALS[__FUNCTION__][$rallyeId];
+}
+
+// Stops the given rallye result (from SQL layer) by marking it as expirced
+function stopRallyeByResult ($result) {
        // Load rallye data
        // Load rallye data
-       list($id, $title, $start, $end, $notify, $min_users, $min_prices) = SQL_FETCHROW($result);
+       $content = SQL_FETCHARRAY($result);
 
        // Free result
        SQL_FREERESULT($result);
 
        // Init array
 
        // Free result
        SQL_FREERESULT($result);
 
        // Init array
-       $content = array();
        $count = '0';
        $users = array();
        $count = '0';
        $users = array();
-       $content['title']  = $title;
-       $content['start']  = generateDateTime($start, 1);
-       $content['end']    = generateDateTime($end  , 1);
-       $content['now_t']  = generateDateTime(time(), 1);
+       $content['start_time'] = generateDateTime($content['start_time'], 1);
+       $content['end_time']   = generateDateTime($content['end_time']  , 1);
+       $content['now_time']   = generateDateTime(time(), 1);
 
        // Load users array (!) with assigned prices
 
        // Load users array (!) with assigned prices
-       $prices = getArrayFromReferralRallyeUsers($id);
+       $prices = getArrayFromReferralRallyeUsers($content['id']);
 
        // Just count...
        $total = '0';
        foreach ($prices['userid'] as $key => $userid) {
 
        // Just count...
        $total = '0';
        foreach ($prices['userid'] as $key => $userid) {
-               // Check status
-               //   active = 1: account is still confirmed
-               //   active = 0: account is deleted or locked
-               $active = countSumTotalData($userid, 'user_data', 'userid', 'userid', true, " AND `status`='CONFIRMED'");
+               /*
+                * Check status
+                *   active = 1: account is still confirmed
+                *   active = 0: account is deleted or locked
+                */
+               $active = countSumTotalData($userid, 'user_data', 'userid', 'userid', true, runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"));
 
                $prices['active'][$key] = $active;
 
 
                $prices['active'][$key] = $active;
 
@@ -470,15 +516,15 @@ function markReferralRallyesAsExpired ($result) {
                } // END - if
        } // END - foreach
 
                } // END - if
        } // END - foreach
 
-       if (($total < $min_prices) || ($total == '0')) {
+       // Check on 'min_prices' condition
+       if (($total < $content['min_prices']) || (getTotalConfirmedUser() < $content['min_users'])) {
                // Do not end this rallye!
                // Do not end this rallye!
-               unset($content);
                return;
        } // END - if
 
        // Expire rallye
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `expired`='Y' WHERE `id`=%s LIMIT 1",
                return;
        } // END - if
 
        // Expire rallye
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `expired`='Y' WHERE `id`=%s LIMIT 1",
-               array(bigintval($id)), __FUNCTION__, __LINE__);
+               array(bigintval($content['id'])), __FUNCTION__, __LINE__);
 
        // Run array through (by userid is the most important 2nd-level-array)
        foreach ($prices['userid'] as $key => $userid) {
 
        // Run array through (by userid is the most important 2nd-level-array)
        foreach ($prices['userid'] as $key => $userid) {
@@ -511,7 +557,7 @@ function markReferralRallyesAsExpired ($result) {
                                addPointsThroughReferralSystem('rallye_winner:' . $winnerLevel, $userid, $content['points']);
                        } // END - if
 
                                addPointsThroughReferralSystem('rallye_winner:' . $winnerLevel, $userid, $content['points']);
                        } // END - if
 
-                       if ($notify == 'Y') {
+                       if ($content['send_notify'] == 'Y') {
                                // Prepare infos for the mail template
                                if (!empty($content['info'])) {
                                        // Take direct infos
                                // Prepare infos for the mail template
                                if (!empty($content['info'])) {
                                        // Take direct infos
@@ -537,7 +583,7 @@ function markReferralRallyesAsExpired ($result) {
        } // END - foreach
 
        // Select template depending on notfication is switch on / off
        } // END - foreach
 
        // Select template depending on notfication is switch on / off
-       if ($notify == 'Y') {
+       if ($content['send_notify'] == 'Y') {
                $templ = 'admin_rallye_expired';
        } elseif (is_array($users['userid'])) {
                $templ = 'admin_rallye_expired_no';
                $templ = 'admin_rallye_expired';
        } elseif (is_array($users['userid'])) {
                $templ = 'admin_rallye_expired_no';
@@ -548,10 +594,10 @@ function markReferralRallyesAsExpired ($result) {
        $content['count'] = $count;
 
        // Send mail to admin
        $content['count'] = $count;
 
        // Send mail to admin
-       sendAdminNotification('{%message,RALLYE_ADMIN_EXPIRED_SUBJECT=' . $title . '%}', $templ, $content);
+       sendAdminNotification('{%message,ADMIN_RALLYE_EXPIRED_SUBJECT=' . $content['title'] . '%}', $templ, $content);
 
        // Add task (we ignore the task id here)
 
        // Add task (we ignore the task id here)
-       createNewTask('{--RALLYE_ADMIN_EXPIRED--}: ' . $title, '{--RALLYE_ADMIN_EXPIRED_TEXT--}', 'RALLYE_EXPIRED');
+       createNewTask('{--ADMIN_RALLYE_EXPIRED_TASK--}: ' . $content['title'], '{--ADMIN_RALLYE_EXPIRED_TEXT--}', 'RALLYE_EXPIRED');
 }
 
 //
 }
 
 //
@@ -570,6 +616,7 @@ FROM
 WHERE
        `userid` IN(%s) AND
        `status`='CONFIRMED'
 WHERE
        `userid` IN(%s) AND
        `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ' ) . "
 ORDER BY
        `userid` ASC
 LIMIT %s",
 ORDER BY
        `userid` ASC
 LIMIT %s",
@@ -615,8 +662,8 @@ ORDER BY
        // Transfer elements
        while ($content = SQL_FETCHARRAY($result)) {
                $prices['level'][]  = $content['price_level'];
        // Transfer elements
        while ($content = SQL_FETCHARRAY($result)) {
                $prices['level'][]  = $content['price_level'];
-               $prices['points'][] = $content['points'];
-               $prices['info'][]   = $content['info'];
+               array_push($prices['points'], $content['points']);
+               array_push($prices['info'], $content['info']);
        } // END - while
 
        // Free memory
        } // END - while
 
        // Free memory
@@ -629,7 +676,9 @@ ORDER BY
 //
 function getArrayFromReferralRallyeUsers ($rallye) {
        // Fix zero points to 0.00000
 //
 function getArrayFromReferralRallyeUsers ($rallye) {
        // Fix zero points to 0.00000
-       if (getConfig('ref_payout') == '0') setConfigEntry('ref_payout', '0.00000');
+       if (getRefPayout() == '0') {
+               setConfigEntry('ref_payout', '0.00000');
+       } // END - if
 
        // Init multi array
        $users = array(
 
        // Init multi array
        $users = array(
@@ -638,8 +687,22 @@ function getArrayFromReferralRallyeUsers ($rallye) {
                'cpoints' => array(),
        );
 
                'cpoints' => array(),
        );
 
-       // Load users                          userid    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` ASC",
+       /*
+        * Load users:
+        *  - userid      = User's id number
+        *  - refs        = Old amount of referrals (before the rallye has started)
+        *  - curr_points = Current amount of total points
+        */
+       $result_user = SQL_QUERY_ESC("SELECT
+       `userid`,
+       `refs`,
+       `curr_points`
+FROM
+       `{?_MYSQL_PREFIX?}_rallye_users`
+WHERE
+       `rallye_id`=%s
+ORDER BY
+       `userid` ASC",
                array(bigintval($rallye)), __FUNCTION__, __LINE__);
        while ($content = SQL_FETCHARRAY($result_user)) {
                // Load current ref count
                array(bigintval($rallye)), __FUNCTION__, __LINE__);
        while ($content = SQL_FETCHARRAY($result_user)) {
                // Load current ref count
@@ -647,20 +710,21 @@ function getArrayFromReferralRallyeUsers ($rallye) {
 
                // Points of ref's
                $result_ref = SQL_QUERY_ESC("SELECT
 
                // Points of ref's
                $result_ref = SQL_QUERY_ESC("SELECT
-       SUM(p.points) AS `points`
+       SUM(p.`points`) AS `points`
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
-       p.userid=d.userid
+       p.`userid`=d.`userid`
 WHERE
 WHERE
-       d.`status`='CONFIRMED' AND
-       d.max_mails > 0 AND
-       d.mails_confirmed >= {?ref_payout?} AND
-       p.ref_depth=1 AND
-       p.points > 0 AND
-       d.userid=%s
+       d.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ' ) . " AND
+       d.`max_mails` > 0 AND
+       d.`mails_confirmed` >= {?ref_payout?} AND
+       p.`ref_depth`=1 AND
+       p.`points` > 0 AND
+       d.`userid`=%s
 LIMIT 1",
                        array(bigintval($content['userid'])), __FUNCTION__, __LINE__);
 
 LIMIT 1",
                        array(bigintval($content['userid'])), __FUNCTION__, __LINE__);
 
@@ -674,16 +738,16 @@ LIMIT 1",
                if (empty($refpoints)) $refpoints = '0';
 
                // Store calculated new refs to array
                if (empty($refpoints)) $refpoints = '0';
 
                // Store calculated new refs to array
-               $users['userid'][]  = $content['userid'];
-               $users['ref'][]     = abs($count - $content['refs']);
-               $users['cpoints'][] = $refpoints - $content['curr_points'];
+               array_push($users['userid'], $content['userid']);
+               array_push($users['ref'], abs($count - $content['refs']));
+               array_push($users['cpoints'], $refpoints - $content['curr_points']);
        } // END - while
 
        // Free memory
        SQL_FREERESULT($result_user);
 
        // Sort array for refs (descending)
        } // END - while
 
        // Free memory
        SQL_FREERESULT($result_user);
 
        // Sort array for refs (descending)
-       array_pk_sort($users, array('ref', 'cpoints'), 0, 1, true);
+       array_pk_sort($users, array('cpoints', 'ref'), 0, 1, true);
 
        // Load prices array (!)
        $prices = getArrayFromReferralRallyePrices($rallye);
 
        // Load prices array (!)
        $prices = getArrayFromReferralRallyePrices($rallye);
@@ -705,23 +769,25 @@ LIMIT 1",
 // @TODO This function does not load min_users, min_prices, please encapsulate loading rallye data with e.g. getRallyeDataFromId()
 function addReferralRallyeWinners ($mode, $rallye, $default=0) {
        // First check how many prices are set
 // @TODO This function does not load min_users, min_prices, please encapsulate loading rallye data with e.g. getRallyeDataFromId()
 function addReferralRallyeWinners ($mode, $rallye, $default=0) {
        // First check how many prices are set
-       $prices = countSumTotalData(bigintval($rallye), 'rallye_prices', 'id', 'rallye_id', true);
+       $prices = getTotalRallyePrices($rallye);
 
        // Load data
        $content = getArrayFromReferralRallyeUsers($rallye);
 
        // Generate table
        $OUT = '';
 
        // Load data
        $content = getArrayFromReferralRallyeUsers($rallye);
 
        // Generate table
        $OUT = '';
-       for ($idx = '0'; $idx < $prices; $idx++) {
-               // Check status
-               //   active = 1: account is still confirmed
-               //   active = 0: account is deleted or locked
-               $active = countSumTotalData($content['userid'][$idx], 'user_data', 'userid', 'userid', true, " AND `status`='CONFIRMED'");
+       for ($idx = 0; $idx < $prices; $idx++) {
+               /*
+                * Check status
+                *   active = 1: account is still confirmed
+                *   active = 0: account is deleted or locked
+                */
+               $active = countSumTotalData($content['userid'][$idx], 'user_data', 'userid', 'userid', true, runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"));
 
                if ((empty($content['ref'][$idx])) || ($content['ref'][$idx] == '0') || ($active == '0') || ('' . round($content['cpoints'][$idx]) . '' == '0') || (empty($content['cpoints'][$idx]))) {
                        // Allow valid and active users with at least one ref to get points
 
                if ((empty($content['ref'][$idx])) || ($content['ref'][$idx] == '0') || ($active == '0') || ('' . round($content['cpoints'][$idx]) . '' == '0') || (empty($content['cpoints'][$idx]))) {
                        // Allow valid and active users with at least one ref to get points
-                       $content['ref'][$idx]   = '---';
-                       $content['userid'][$idx]   = '---';
+                       $content['ref'][$idx]    = '---';
+                       $content['userid'][$idx] = '---';
                } // END - if
 
                if (!empty($content['info'][$idx])) {
                } // END - if
 
                if (!empty($content['info'][$idx])) {
@@ -769,7 +835,10 @@ function purgeExpiredReferralRallyes () {
        // Check for expired rallyes
        $EXPIRE = 3; // @TODO The hard-coded value...
        $result_rallye = SQL_QUERY_ESC("SELECT
        // Check for expired rallyes
        $EXPIRE = 3; // @TODO The hard-coded value...
        $result_rallye = SQL_QUERY_ESC("SELECT
-       `id`,`title`,`start_time`,`end_time`
+       `id`,
+       `title`,
+       `start_time`,
+       `end_time`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
@@ -789,7 +858,7 @@ WHERE
                        $content['now_time']   = generateDateTime(time(), 1);
 
                        // Send mail to admin
                        $content['now_time']   = generateDateTime(time(), 1);
 
                        // Send mail to admin
-                       sendAdminNotification('{%message,RALLYE_ADMIN_PURGED_SUBJECT=' . $content['title'] . '%}', 'admin_rallye_purged', $content);
+                       sendAdminNotification('{%message,ADMIN_RALLYE_PURGED_SUBJECT=' . $content['title'] . '%}', 'admin_rallye_purged', $content);
 
                        // Purge whole rallye
                        addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE `id`=%s LIMIT 1",
 
                        // Purge whole rallye
                        addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE `id`=%s LIMIT 1",
@@ -800,7 +869,7 @@ WHERE
                                array(bigintval($content['id'])), __FUNCTION__, __LINE__, false));
 
                        // Add task (we ignore the task id here
                                array(bigintval($content['id'])), __FUNCTION__, __LINE__, false));
 
                        // Add task (we ignore the task id here
-                       createNewTask('{--RALLYE_ADMIN_PURGED--}: ' . $content['title'], '{--RALLYE_ADMIN_PURGED_TEXT--}', 'RALLYE_PURGED');
+                       createNewTask('{--ADMIN_RALLYE_PURGED_TASK--}: ' . $content['title'], '{--ADMIN_RALLYE_PURGED_TEXT--}', 'RALLYE_PURGED');
                } // END - while
 
                // Run all SQLs
                } // END - while
 
                // Run all SQLs
@@ -842,11 +911,11 @@ function addReferralRallyeTemplateSelection ($name = 'template', $default = '')
        if (!empty($ral[0])) {
                // Generate selection box for all found templates
                $OUT  = '<select class="form_select" name="' . $name . '" size="1">';
        if (!empty($ral[0])) {
                // Generate selection box for all found templates
                $OUT  = '<select class="form_select" name="' . $name . '" size="1">';
-               $OUT .= generateOptionList('/ARRAY/', array_keys($ral), array_values($ral), $default, '', 'none');
+               $OUT .= generateOptions('/ARRAY/', array_keys($ral), array_values($ral), $default, '', 'none');
                $OUT .= '</select>';
        } else {
                // No rallye templates found
                $OUT .= '</select>';
        } else {
                // No rallye templates found
-               $OUT = '{--RALLYE_NO_TEMPLATES_FOUND--}';
+               $OUT = '{--ADMIN_RALLYE_TEMPLATES_404--}';
        }
 
        // Return selection
        }
 
        // Return selection
@@ -882,7 +951,7 @@ function getReferralRallyeRefsCount ($currUserid, $oldReferralCount = '0') {
                } // END - foreach
 
                //* DEBUG: */ debugOutput('<pre>'.print_r($GLOBALS['cache_array']['refsystem'], true).'</pre>');
                } // END - foreach
 
                //* DEBUG: */ debugOutput('<pre>'.print_r($GLOBALS['cache_array']['refsystem'], true).'</pre>');
-               //* DEBUG: */ shutdown();
+               //* DEBUG: */ doShutdown();
 
                if ($count > 0) {
                        // Count cache hits
 
                if ($count > 0) {
                        // Count cache hits
@@ -954,5 +1023,17 @@ function determineReferralRallyeMinimumPrices ($min_prices) {
        return $return;
 }
 
        return $return;
 }
 
+// "Getter" for total rallye prices by given id
+function getTotalRallyePrices ($rallyeId) {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$rallyeId])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__][$rallyeId] = countSumTotalData($rallyeId, 'rallye_prices', 'id', 'rallye_id', true);
+       } // END - if
+
+       // Return it
+       return $GLOBALS[__FUNCTION__][$rallyeId];
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 300ee3aacdfc7eb13745a1d3165566d6816e0a09..fe4ef4adcf6ba0bd86a2b1beaced2e9b53feb587 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -98,7 +98,7 @@ LIMIT 1',
                                // Something must have been updated
                                if (SQL_HASZEROAFFECTED()) {
                                        // Please report this bug
                                // Something must have been updated
                                if (SQL_HASZEROAFFECTED()) {
                                        // Please report this bug
-                                       debug_report_bug(__FUNCTION__, __LINE__, 'Nothing has been updated in user_refs,userid=' . $userid . ',refid=' . convertNullToZero($refid) . ',refbackPoints=' . $refbackPoints);
+                                       reportBug(__FUNCTION__, __LINE__, 'Nothing has been updated in user_refs,userid=' . $userid . ',refid=' . convertNullToZero($refid) . ',refbackPoints=' . $refbackPoints);
                                } // END - if
 
                                // Add points again, but only directly
                                } // END - if
 
                                // Add points again, but only directly
@@ -138,7 +138,7 @@ function getRefbackPercents ($userid, $refid) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . $refid . ' - ENTERED!');
        if ((!isValidUserId($userid)) || (!isValidUserId($refid))) {
                // userid and/or refid is invalid
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . $refid . ' - ENTERED!');
        if ((!isValidUserId($userid)) || (!isValidUserId($refid))) {
                // userid and/or refid is invalid
-               debug_report_bug(__FUNCTION__, __LINE__, 'userid=' . convertNullToZero($userid) . ', refid=' . convertNullToZero($refid) . ' - Both must be > 0');
+               reportBug(__FUNCTION__, __LINE__, 'userid=' . convertNullToZero($userid) . ', refid=' . convertNullToZero($refid) . ' - Both must be > 0');
        } elseif ($userid == $refid) {
                // Skip identical ids
                return 0;
        } elseif ($userid == $refid) {
                // Skip identical ids
                return 0;
@@ -160,7 +160,7 @@ function getRefbackPercents ($userid, $refid) {
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . $refid . ',percents=' . $GLOBALS['refback_percents'][$userid][$refid]);
                } else {
                        // Please report all findings
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . $refid . ',percents=' . $GLOBALS['refback_percents'][$userid][$refid]);
                } else {
                        // Please report all findings
-                       debug_report_bug(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . $refid . ' - No entry found. :-(');
+                       reportBug(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . $refid . ' - No entry found. :-(');
                }
 
                // Free result
                }
 
                // Free result
@@ -196,7 +196,7 @@ ORDER BY
                // Add all
                while ($content = SQL_FETCHARRAY($result)) {
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . convertNullToZero($refid) . ',level=' . $level . ',userid=' . $content['userid']);
                // Add all
                while ($content = SQL_FETCHARRAY($result)) {
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . convertNullToZero($refid) . ',level=' . $level . ',userid=' . $content['userid']);
-                       $userIds[] = $content['userid'];
+                       array_push($userIds, $content['userid']);
                } // END - while
        } // END - if
 
                } // END - while
        } // END - if
 
@@ -342,7 +342,7 @@ function updateMemberRefbackPercents ($id, $percents, $note) {
 
        // Prepare email content
        $content['refback_percents'] = $percents;
 
        // Prepare email content
        $content['refback_percents'] = $percents;
-       $content['refback_note']     = $note;
+       $content['refback_notice']     = $note;
 
        // Load member email template
        $mail = loadEmailTemplate('member_refback', $content, $content['refid']);
 
        // Load member email template
        $mail = loadEmailTemplate('member_refback', $content, $content['refid']);
@@ -361,7 +361,7 @@ function updateMemberRefbackPercents ($id, $percents, $note) {
        return $status;
 }
 
        return $status;
 }
 
-// Checks wether refback is enabled
+// Checks whether refback is enabled
 function isRefbackEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isRefbackEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
index 7dddc8fb29687fafbc6483cb886e8b0a736d40a2..667b83c0f78252f5da6a9d782ca7c1cbc1cbd491 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -40,7 +40,7 @@ if (!defined('__SECURITY')) {
        die();
 } // END - if
 
        die();
 } // END - if
 
-//
+// Checks whether all required registration fields are set
 function ifRequiredRegisterFieldsAreSet (&$array) {
        // By default all is fine
        $ret = true;
 function ifRequiredRegisterFieldsAreSet (&$array) {
        // By default all is fine
        $ret = true;
@@ -71,19 +71,31 @@ function ifRequiredRegisterFieldsAreSet (&$array) {
 }
 
 // Generates a 'category table' for the registration form
 }
 
 // Generates a 'category table' for the registration form
-function registerGenerateCategoryTable ($mode) {
+function registerGenerateCategoryTable ($mode, $configEntry = 'register_default') {
        // Init output
        $OUT = '';
 
        // Init output
        $OUT = '';
 
-       // Guests are mostly not interested in how many members has
-       // choosen an individual category
+       /*
+        * Guests are mostly not interested in how many members has choosen an
+        * individual category.
+        */
        $whereStatement = "WHERE `visible`='Y' ";
 
        // Admins are allowed to see every category...
        $whereStatement = "WHERE `visible`='Y' ";
 
        // Admins are allowed to see every category...
-       if (isAdmin()) $whereStatement = '';
+       if (isAdmin()) {
+               $whereStatement = '';
+       } // END - if
 
        // Look for categories
 
        // Look for categories
-       $result = SQL_QUERY('SELECT `id`,`cat`,`visible` FROM `{?_MYSQL_PREFIX?}_cats` ' . $whereStatement . ' ORDER BY `sort` ASC',
+       $result = SQL_QUERY('SELECT
+       `id`,
+       `cat`,
+       `visible`
+FROM
+       `{?_MYSQL_PREFIX?}_cats`
+' . $whereStatement . '
+ORDER BY
+       `sort` ASC',
                __FUNCTION__, __LINE__);
 
        if (!SQL_HASZERONUMS($result)) {
                __FUNCTION__, __LINE__);
 
        if (!SQL_HASZERONUMS($result)) {
@@ -95,7 +107,7 @@ function registerGenerateCategoryTable ($mode) {
                        $content['default_no']  = '';
 
                        // Mark categories
                        $content['default_no']  = '';
 
                        // Mark categories
-                       if ((postRequestElement('cat', $content['id']) == 'Y') || ((isRegisterDefaultEnabled()) && (!isPostRequestElementSet('cat', $content['id'])))) {
+                       if ((postRequestElement('cat', $content['id']) == 'Y') || ((getConfig($configEntry) == 'Y') && (!isPostRequestElementSet('cat', $content['id'])))) {
                                $content['default_yes'] = ' checked="checked"';
                        } else {
                                $content['default_no']  = ' checked="checked"';
                                $content['default_yes'] = ' checked="checked"';
                        } else {
                                $content['default_no']  = ' checked="checked"';
@@ -126,7 +138,7 @@ function registerOutputFailedMessage ($messageId, $extra='') {
        }
 }
 
        }
 }
 
-// Checks wether the registration data is complete
+// Checks whether the registration data is complete
 function isRegistrationDataComplete () {
        // Init elements
        $GLOBALS['registration_ip_timeout']     = false;
 function isRegistrationDataComplete () {
        // Init elements
        $GLOBALS['registration_ip_timeout']     = false;
@@ -138,9 +150,10 @@ function isRegistrationDataComplete () {
 
        // First we only check the submitted data then we continue... :)
        //
 
        // First we only check the submitted data then we continue... :)
        //
-       // Did he agree to our Terms Of Usage?
+       // Did he agree to the terms of usage?
        if (postRequestElement('agree') != 'Y') {
                setPostRequestElement('agree', '!');
        if (postRequestElement('agree') != 'Y') {
                setPostRequestElement('agree', '!');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'agree=N - User did not agree with terms of usage.');
                $isOkay = false;
        } // END - if
 
                $isOkay = false;
        } // END - if
 
@@ -148,16 +161,19 @@ function isRegistrationDataComplete () {
        // that, he has to click on a confirmation link :P )
        if ((!isPostRequestElementSet('email')) || (!isEmailValid(postRequestElement('email')))) {
                setPostRequestElement('email', '!');
        // that, he has to click on a confirmation link :P )
        if ((!isPostRequestElementSet('email')) || (!isEmailValid(postRequestElement('email')))) {
                setPostRequestElement('email', '!');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter proper email address.');
                $isOkay = false;
        } // END - if
 
        // And what about surname and family's name?
        if (!isPostRequestElementSet('surname')) {
                setPostRequestElement('surname', '!');
                $isOkay = false;
        } // END - if
 
        // And what about surname and family's name?
        if (!isPostRequestElementSet('surname')) {
                setPostRequestElement('surname', '!');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter surname.');
                $isOkay = false;
        } // END - if
        if (!isPostRequestElementSet('family')) {
                setPostRequestElement('family', '!');
                $isOkay = false;
        } // END - if
        if (!isPostRequestElementSet('family')) {
                setPostRequestElement('family', '!');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter family name.');
                $isOkay = false;
        } // END - if
 
                $isOkay = false;
        } // END - if
 
@@ -186,6 +202,7 @@ function isRegistrationDataComplete () {
                        setPostRequestElement('pass2', '!');
 
                        // ... which is both not okay
                        setPostRequestElement('pass2', '!');
 
                        // ... which is both not okay
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Random password generation not possible, isExtensionInstalledAndNewer(register, 0.5.5)=' . intval(isExtensionInstalledAndNewer('register', '0.5.5')) . ',isRegisterGeneratePasswordEmptyEnabled()=' . intval(isRegisterGeneratePasswordEmptyEnabled()));
                        $isOkay = false;
                }
        } // END - if
                        $isOkay = false;
                }
        } // END - if
@@ -193,17 +210,25 @@ function isRegistrationDataComplete () {
        // Did he enter his password twice?
        if (((!isPostRequestElementSet('pass1')) || (!isPostRequestElementSet('pass2'))) || ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')))) {
                if ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2'))) {
        // Did he enter his password twice?
        if (((!isPostRequestElementSet('pass1')) || (!isPostRequestElementSet('pass2'))) || ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')))) {
                if ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2'))) {
+                       // Both passwords did not match
                        setPostRequestElement('pass1', '!');
                        setPostRequestElement('pass2', '!');
                        setPostRequestElement('pass1', '!');
                        setPostRequestElement('pass2', '!');
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter same passwords.');
                } else {
                        if (!isPostRequestElementSet('pass1')) {
                } else {
                        if (!isPostRequestElementSet('pass1')) {
+                               // Password 1 is empty
                                setPostRequestElement('pass1', '!');
                                setPostRequestElement('pass1', '!');
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter pass1.');
                        } else {
                        } else {
+                               // Password 2 is empty
                                setPostRequestElement('pass1', '');
                        }
                        if (!isPostRequestElementSet('pass2')) {
                                setPostRequestElement('pass1', '');
                        }
                        if (!isPostRequestElementSet('pass2')) {
+                               // Password 2 is empty
                                setPostRequestElement('pass2', '!');
                                setPostRequestElement('pass2', '!');
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did not enter pass2.');
                        } else {
                        } else {
+                               // Password 1 is empty
                                setPostRequestElement('pass2', '');
                        }
                }
                                setPostRequestElement('pass2', '');
                        }
                }
@@ -213,11 +238,12 @@ function isRegistrationDataComplete () {
        // Is the password long enouth?
        if ((strlen(postRequestElement('pass1')) < getPassLen()) && ($isOkay === true)) {
                $GLOBALS['registration_short_password'] = true;
        // Is the password long enouth?
        if ((strlen(postRequestElement('pass1')) < getPassLen()) && ($isOkay === true)) {
                $GLOBALS['registration_short_password'] = true;
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did enter a short password.');
                $isOkay = false;
        } // END - if
 
        // Do this check only when no admin is logged in
                $isOkay = false;
        } // END - if
 
        // Do this check only when no admin is logged in
-       if (is_array(postRequestElement('cat'))) {
+       if (ifPostContainsSelections('cat')) {
                // Only continue with array
                foreach (postRequestElement('cat') as $id => $answer) {
                        // Is this category choosen?
                // Only continue with array
                foreach (postRequestElement('cat') as $id => $answer) {
                        // Is this category choosen?
@@ -235,6 +261,7 @@ function isRegistrationDataComplete () {
                // Does the email address already exists in our database?
                if ((isEmailTaken(postRequestElement('email'))) && (!isAdmin())) {
                        setPostRequestElement('email', '?');
                // Does the email address already exists in our database?
                if ((isEmailTaken(postRequestElement('email'))) && (!isAdmin())) {
                        setPostRequestElement('email', '?');
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did enter a already used email address.');
                        $isOkay = false;
                } // END - if
        } // END - if
                        $isOkay = false;
                } // END - if
        } // END - if
@@ -254,59 +281,29 @@ function isRegistrationDataComplete () {
 }
 
 // Do the registration
 }
 
 // Do the registration
-function doRegistration () {
-       // Generate hash which will be inserted into confirmation mail
-       $hash = generateHash(sha1(
-               // Get total confirmed, ...
-               getTotalConfirmedUser() . getEncryptSeparator() .
-               // ... unconfirmed ...
-               getTotalUnconfirmedUser() . getEncryptSeparator() .
-               // ... and locked users
-               getTotalLockedUser() . getEncryptSeparator() .
-               postRequestElement('month') . '-' .
-               postRequestElement('day') . '-' .
-               postRequestElement('year') . getEncryptSeparator() .
-               detectServerName() . getEncryptSeparator() .
-               detectRemoteAddr() . getEncryptSeparator() .
-               detectUserAgent() . '/' .
-               getSiteKey() . '/' .
-               getDateKey() . '/' .
-               getConfig('CACHE_BUSTER')
-       ));
-
-       // Old way with enterable two-char-code
-       $countryRow = '`country`';
-       $countryData = substr(postRequestElement('cntry'), 0, 2);
-
-       // Add design when extension ext-theme is v0.0.8 or greater
-       // @TODO Rewrite these all to a single filter
-       $GLOBALS['register_sql_columns'] = '';
-       $GLOBALS['register_sql_data']    = '';
-       if (isExtensionInstalledAndNewer('theme', '0.0.8')) {
-               // Okay, add design here
-               $GLOBALS['register_sql_columns'] .= ', `curr_theme`';
-               $GLOBALS['register_sql_data']    .= ", '{%%pipe,getCurrentTheme%%}'";
+function doUserRegistration () {
+       // Do not register an account on absent ext-user
+       if (!isExtensionInstalled('user')) {
+               // Please report this
+               reportBug(__FUNCTION__, __LINE__, 'Tried to register a user account without ext-user installed.');
        } // END - if
 
        } // END - if
 
-       // Check if I shall disable sending mail to newly registered members out about active/begging rallye
-       //
-       // First comes first: begging rallye
-       if ((isExtensionInstalledAndNewer('beg', '0.2.7')) && (!isBegNewMemberNotifyEnabled())) {
-               $GLOBALS['register_sql_columns'] .= ', `beg_rallye_enable_notify`, `beg_rallye_disable_notify`';
-               $GLOBALS['register_sql_data']    .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()';
-       } // END - if
+       // Init filter data
+       $filterData = array(
+               // Initialization not done by default
+               'init_done' => false
+       );
 
 
-       // Second: active rallye
-       if ((isExtensionActive('bonus')) && (!isBonusNewMemberNotifyEnabled())) {
-               $GLOBALS['register_sql_columns'] .= ', `bonus_rallye_enable_notify`, `bonus_rallye_disable_notify`';
-               $GLOBALS['register_sql_data']    .= ', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()';
-       } // END - if
+       // Run the pre-registration chain
+       $filterData = runFilterChain('pre_user_registration', $filterData);
 
 
-       // Write user data to table
-       if (isExtensionActive('country')) {
-               // Save with new selectable country code
-               $countryRow = '`country_code`';
-               $countryData = bigintval(postRequestElement('country_code'));
+       // Did the initialization work?
+       if ($filterData['init_done'] === false) {
+               // Something bad happened!
+               displayMessage('{--PRE_USER_REGISTRATION_FAILED--}');
+
+               // Stop here
+               return false;
        } // END - if
 
        // Create user's account...
        } // END - if
 
        // Create user's account...
@@ -334,7 +331,7 @@ function doRegistration () {
        `joined`,
        `last_update`,
        `ref_payout`
        `joined`,
        `last_update`,
        `ref_payout`
-       ".$GLOBALS['register_sql_columns']."
+       " . $GLOBALS['register_sql_columns'] . "
 ) VALUES (
        '%s',
        '%s',
 ) VALUES (
        '%s',
        '%s',
@@ -351,20 +348,21 @@ function doRegistration () {
        %s,
        %s,
        %s,
        %s,
        %s,
        %s,
-       'UNCONFIRMED',
+       '%s',
        '%s',
        '{%%pipe,detectRemoteAddr%%}',
        UNIX_TIMESTAMP(),
        UNIX_TIMESTAMP(),
        {?ref_payout?}
        '%s',
        '{%%pipe,detectRemoteAddr%%}',
        UNIX_TIMESTAMP(),
        UNIX_TIMESTAMP(),
        {?ref_payout?}
-       ".$GLOBALS['register_sql_data'].")",
+       " . $GLOBALS['register_sql_data'] . "
+)",
        array(
        array(
-               $countryRow,
+               $GLOBALS['register_country_row'],
                substr(postRequestElement('gender'), 0, 1),
                postRequestElement('surname'),
                postRequestElement('family'),
                postRequestElement('street_nr'),
                substr(postRequestElement('gender'), 0, 1),
                postRequestElement('surname'),
                postRequestElement('family'),
                postRequestElement('street_nr'),
-               $countryData,
+               $GLOBALS['register_country_data'],
                bigintval(postRequestElement('zip')),
                postRequestElement('city'),
                postRequestElement('email'),
                bigintval(postRequestElement('zip')),
                postRequestElement('city'),
                postRequestElement('email'),
@@ -375,19 +373,20 @@ function doRegistration () {
                bigintval(postRequestElement('max_mails')),
                bigintval(postRequestElement('max_mails')),
                convertZeroToNull(postRequestElement('refid')),
                bigintval(postRequestElement('max_mails')),
                bigintval(postRequestElement('max_mails')),
                convertZeroToNull(postRequestElement('refid')),
-               $hash
+               postRequestElement('status'),
+               $GLOBALS['register_confirm_hash']
        ), __FUNCTION__, __LINE__);
 
        // Get his userid
        ), __FUNCTION__, __LINE__);
 
        // Get his userid
-       $userid = bigintval(SQL_INSERTID());
+       $filterData['register_insert_id'] = bigintval(SQL_INSERTID());
 
        // Did this work?
 
        // Did this work?
-       if ($userid == '0') {
+       if (!isValidUserId($filterData['register_insert_id'])) {
                // Something bad happened!
                displayMessage('{--USER_NOT_REGISTERED--}');
 
                // Stop here
                // Something bad happened!
                displayMessage('{--USER_NOT_REGISTERED--}');
 
                // Stop here
-               return;
+               return false;
        } // END - if
 
        // Shall we reset random refid? Only possible with latest ext-user
        } // END - if
 
        // Shall we reset random refid? Only possible with latest ext-user
@@ -397,26 +396,43 @@ function doRegistration () {
        } // END - if
 
        // Update referral table
        } // END - if
 
        // Update referral table
-       updateReferralCounter($userid);
+       updateReferralCounter($filterData['register_insert_id']);
 
        // Write his welcome-points
        initReferralSystem();
 
        // Write his welcome-points
        initReferralSystem();
-       addPointsThroughReferralSystem('register_welcome', $userid, getPointsRegister());
+       addPointsThroughReferralSystem(
+               // Subject
+               'register_welcome',
+               // New user's id
+               $filterData['register_insert_id'],
+               // Points
+               getPointsRegister(),
+               // Referral id (or NULL if none set)
+               convertZeroToNull(postRequestElement('refid'))
+       );
 
        // Write catgories
 
        // Write catgories
-       if ((is_array(postRequestElement('cat'))) && (count(postRequestElement('cat')))) {
+       if (ifPostContainsSelections('cat')) {
+               // Write all entries
                foreach (postRequestElement('cat') as $categoryId => $joined) {
                foreach (postRequestElement('cat') as $categoryId => $joined) {
+                       // "Join" this group?
                        if ($joined == 'Y') {
                                // Insert category entry
                        if ($joined == 'Y') {
                                // Insert category entry
-                               SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_cats` (`userid`,`cat_id`) VALUES (%s, %s)",
+                               SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_cats` (`userid`, `cat_id`) VALUES (%s, %s)",
                                        array(
                                        array(
-                                               $userid,
+                                               $filterData['register_insert_id'],
                                                bigintval($categoryId)
                                        ), __FUNCTION__, __LINE__);
                        } // END - if
                } // END - foreach
        } // END - if
 
                                                bigintval($categoryId)
                                        ), __FUNCTION__, __LINE__);
                        } // END - if
                } // END - foreach
        } // END - if
 
+       // Registration phase is done here, so for tester accounts we end here
+       if (((getExtensionVersion('user') >= '0.5.0')) && (isTesterUserName(postRequestElement('surname'))) && (ifTesterAccountsAllowed())) {
+               // All fine here
+               return true;
+       } // END - if
+
        // ... rewrite a zero referral id to the main title
        if (!isValidUserId(postRequestElement('refid'))) {
                setPostRequestElement('refid', getMainTitle());
        // ... rewrite a zero referral id to the main title
        if (!isValidUserId(postRequestElement('refid'))) {
                setPostRequestElement('refid', getMainTitle());
@@ -427,8 +443,8 @@ function doRegistration () {
                // Prepare data array for the email template
                // Start with the gender...
                $content = array(
                // Prepare data array for the email template
                // Start with the gender...
                $content = array(
-                       'hash'     => $hash,
-                       'userid'   => $userid,
+                       'hash'     => $GLOBALS['register_confirm_hash'],
+                       'userid'   => $filterData['register_insert_id'],
                        'gender'   => SQL_ESCAPE(postRequestElement('gender')),
                        'surname'  => SQL_ESCAPE(postRequestElement('surname')),
                        'family'   => SQL_ESCAPE(postRequestElement('family')),
                        'gender'   => SQL_ESCAPE(postRequestElement('gender')),
                        'surname'  => SQL_ESCAPE(postRequestElement('surname')),
                        'family'   => SQL_ESCAPE(postRequestElement('family')),
@@ -436,15 +452,15 @@ function doRegistration () {
                        'street'   => SQL_ESCAPE(postRequestElement('street_nr')),
                        'city'     => SQL_ESCAPE(postRequestElement('city')),
                        'zip'      => bigintval(postRequestElement('zip')),
                        'street'   => SQL_ESCAPE(postRequestElement('street_nr')),
                        'city'     => SQL_ESCAPE(postRequestElement('city')),
                        'zip'      => bigintval(postRequestElement('zip')),
-                       'country'  => $countryData,
+                       'country'  => $GLOBALS['register_country_data'],
                        'refid'    => SQL_ESCAPE(postRequestElement('refid')),
                        'password' => SQL_ESCAPE(postRequestElement('pass1')),
                );
        } else {
                // No ZIP code entered
                $content = array(
                        'refid'    => SQL_ESCAPE(postRequestElement('refid')),
                        'password' => SQL_ESCAPE(postRequestElement('pass1')),
                );
        } else {
                // No ZIP code entered
                $content = array(
-                       'hash'     => $hash,
-                       'userid'   => $userid,
+                       'hash'     => $GLOBALS['register_confirm_hash'],
+                       'userid'   => $filterData['register_insert_id'],
                        'gender'   => SQL_ESCAPE(postRequestElement('gender')),
                        'surname'  => SQL_ESCAPE(postRequestElement('surname')),
                        'family'   => SQL_ESCAPE(postRequestElement('family')),
                        'gender'   => SQL_ESCAPE(postRequestElement('gender')),
                        'surname'  => SQL_ESCAPE(postRequestElement('surname')),
                        'family'   => SQL_ESCAPE(postRequestElement('family')),
@@ -452,7 +468,7 @@ function doRegistration () {
                        'street'   => SQL_ESCAPE(postRequestElement('street_nr')),
                        'city'     => SQL_ESCAPE(postRequestElement('city')),
                        'zip'      => '',
                        'street'   => SQL_ESCAPE(postRequestElement('street_nr')),
                        'city'     => SQL_ESCAPE(postRequestElement('city')),
                        'zip'      => '',
-                       'country'  => $countryData,
+                       'country'  => $GLOBALS['register_country_data'],
                        'refid'    => SQL_ESCAPE(postRequestElement('refid')),
                        'password' => SQL_ESCAPE(postRequestElement('pass1')),
                );
                        'refid'    => SQL_ESCAPE(postRequestElement('refid')),
                        'password' => SQL_ESCAPE(postRequestElement('pass1')),
                );
@@ -470,13 +486,16 @@ function doRegistration () {
        } // END - switch
 
        // Display information to the user that he got mail and send it away
        } // END - switch
 
        // Display information to the user that he got mail and send it away
-       $messageGuest = loadEmailTemplate('guest_register_done', $content, $userid, false);
+       $messageGuest = loadEmailTemplate('guest_register_done', $content, $filterData['register_insert_id'], false);
 
        // Send mail to user (confirmation link!)
 
        // Send mail to user (confirmation link!)
-       sendEmail($userid, '{--GUEST_CONFIRM_LINK_SUBJECT--}', $messageGuest);
+       sendEmail($filterData['register_insert_id'], '{--GUEST_CONFIRM_LINK_SUBJECT--}', $messageGuest);
 
        // Send mail to admin
 
        // Send mail to admin
-       sendAdminNotification('{--ADMIN_NEW_ACCOUNT_SUBJECT--}', 'admin_register_done', $content, $userid);
+       sendAdminNotification('{--ADMIN_NEW_ACCOUNT_SUBJECT--}', 'admin_register_done', $content, $filterData['register_insert_id']);
+
+       // All fine
+       return true;
 }
 
 //-----------------------------------------------------------------------------
 }
 
 //-----------------------------------------------------------------------------
@@ -495,7 +514,7 @@ function getDisplayRefid () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether 'display_refid' is "YES"
+// Checks whether 'display_refid' is "YES"
 function isDisplayRefidEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDisplayRefidEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -531,7 +550,7 @@ function getRegisterDefault () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether 'register_default' is "YES"
+// Checks whether 'register_default' is "YES"
 function isRegisterDefaultEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isRegisterDefaultEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -555,7 +574,7 @@ function getRegisterGeneratePasswordEmpty () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether 'register_generate_password_empty' is "YES"
+// Checks whether 'register_generate_password_empty' is "YES"
 function isRegisterGeneratePasswordEmptyEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isRegisterGeneratePasswordEmptyEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -567,5 +586,15 @@ function isRegisterGeneratePasswordEmptyEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
+// ----------------------------------------------------------------------------
+//                            Template helper functions
+// ----------------------------------------------------------------------------
+
+// Template helper for generating a category selection table for admin area with given configuration entry
+function doTemplateAdminRegisterCategoryTable ($templateName, $clear = false, $configEntry) {
+       // Call the inner function
+       return registerGenerateCategoryTable('admin', $configEntry);
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 85c995ec1d7f86e1e34ac6f29b62f50bd85e37d1..509828e926bef2db528269c76ba61d0d2aa558fc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 23ff4bfd00c30d4d083d67686d28c6f59e30a13d..1db2b7ce21878bf22e54022665c51a59380e9471 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a2b9d11c336de89adfec42d2ea8b1607826a8a4c..ee1f9050b9f01966cb2a485522809b272feaf72b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -101,7 +101,10 @@ function handleSponsorRequest ($postData, $update=false, $messageArray = array()
                                                break;
 
                                        case 'url':
                                                break;
 
                                        case 'url':
-                                               if (!isUrlValid($v)) $SAVE = false;
+                                               if (!isUrlValid($v)) {
+                                                       // Don't save the URL
+                                                       $SAVE = false;
+                                               } // END - if
                                                break;
 
                                        default:
                                                break;
 
                                        default:
@@ -112,7 +115,8 @@ function handleSponsorRequest ($postData, $update=false, $messageArray = array()
 
                                if ((!empty($k)) && ($skip == false)) {
                                        // Add data
 
                                if ((!empty($k)) && ($skip == false)) {
                                        // Add data
-                                       $DATA['keys'][] = $k; $DATA['values'][] = $v;
+                                       array_push($DATA['keys']  , $k);
+                                       array_push($DATA['values'], $v);
                                } // END - if
                        } // END - if
                } // END - foreach
                                } // END - if
                        } // END - if
                } // END - foreach
@@ -135,31 +139,31 @@ function handleSponsorRequest ($postData, $update=false, $messageArray = array()
 
                                // Remove last ", " from SQL string
                                $sql = substr($sql, 0, -2)." WHERE `id`=%s LIMIT 1";
 
                                // Remove last ", " from SQL string
                                $sql = substr($sql, 0, -2)." WHERE `id`=%s LIMIT 1";
-                               $DATA['values'][] = bigintval(getRequestElement('id'));
+                               array_push($DATA['values'], bigintval(getRequestElement('id')));
 
                                // Generate message
                                $message = getMessageFromIndexedArray('{--ADMIN_SPONSOR_UPDATED--}', 'updated', $messageArray);
                                $ret = 'updated';
                        } elseif (($ALREADY === false) || (($postData['force'] == 1) && (isAdmin()))) {
                                // Add new sponsor, first add more data
 
                                // Generate message
                                $message = getMessageFromIndexedArray('{--ADMIN_SPONSOR_UPDATED--}', 'updated', $messageArray);
                                $ret = 'updated';
                        } elseif (($ALREADY === false) || (($postData['force'] == 1) && (isAdmin()))) {
                                // Add new sponsor, first add more data
-                               $DATA['keys'][] = 'status';
+                               array_push($DATA['keys'], 'status');
                                if (($update === true) && (isAdmin()) && (getWhat() == 'add_sponsor')) {
                                        // Only allowed for admin
                                if (($update === true) && (isAdmin()) && (getWhat() == 'add_sponsor')) {
                                        // Only allowed for admin
-                                       $DATA['values'][] = 'PENDING';
+                                       array_push($DATA['values'], 'PENDING');
 
                                        // Add remote IP address as well
 
                                        // Add remote IP address as well
-                                       $DATA['keys'][] = 'remote_addr';
-                                       $DATA['values'][] = detectRemoteAddr();
+                                       array_push($DATA['keys'], 'remote_addr');
+                                       array_push($DATA['values'], detectRemoteAddr());
                                } else {
                                        // Guest area
                                } else {
                                        // Guest area
-                                       $DATA['values'][] = 'UNCONFIRMED';
+                                       array_push($DATA['values'], 'UNCONFIRMED');
 
                                        // Generate hash code
 
                                        // Generate hash code
-                                       $DATA['keys'][] = 'hash';
+                                       array_push($DATA['keys'], 'hash');
                                        // @TODO Rewrite this to API function
                                        // @TODO Rewrite this to API function
-                                       $DATA['values'][] = md5(session_id() . getEncryptSeparator() . $postData['email'] . getEncryptSeparator() . detectRemoteAddr() . getEncryptSeparator() . detectUserAgent() . getEncryptSeparator() . time());
-                                       $DATA['keys'][] = 'remote_addr';
-                                       $DATA['values'][] = detectRemoteAddr();
+                                       array_push($DATA['values'], md5(session_id() . getEncryptSeparator() . $postData['email'] . getEncryptSeparator() . detectRemoteAddr() . getEncryptSeparator() . detectUserAgent() . getEncryptSeparator() . time()));
+                                       array_push($DATA['keys'], 'remote_addr');
+                                       array_push($DATA['values'], detectRemoteAddr());
                                }
 
                                // Search the entry
                                }
 
                                // Search the entry
@@ -227,7 +231,7 @@ function translateSponsorStatus ($status) {
                $ret = getMessage($constantName);
        } else {
                // Not found
                $ret = getMessage($constantName);
        } else {
                // Not found
-               //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status));
+               //* DEBUG: */ reportBug(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status));
                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status));
                $ret = '{%message,ACCOUNT_STATUS_UNKNOWN=' . $status . '%}';
        }
                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown status %s detected.", $status));
                $ret = '{%message,ACCOUNT_STATUS_UNKNOWN=' . $status . '%}';
        }
@@ -416,7 +420,7 @@ function saveSponsorData ($postData, $content) {
                $sql   .= " `" . secureString($key) . "`='%s',";
 
                // We will secure this later inside the SQL_QUERY_ESC() function
                $sql   .= " `" . secureString($key) . "`='%s',";
 
                // We will secure this later inside the SQL_QUERY_ESC() function
-               $DATA[] = secureString($value);
+               array_push($DATA, secureString($value));
        } // END - foreach
 
        // Check if email has changed
        } // END - foreach
 
        // Check if email has changed
@@ -431,7 +435,7 @@ function saveSponsorData ($postData, $content) {
                        // Generate hash code
                        // @TODO Rewrite this to API function
                        $HASH = md5(session_id() . getEncryptSeparator() . $postData['email'] . getEncryptSeparator() . detectRemoteAddr() . getEncryptSeparator() . detectUserAgent() . getEncryptSeparator() . time());
                        // Generate hash code
                        // @TODO Rewrite this to API function
                        $HASH = md5(session_id() . getEncryptSeparator() . $postData['email'] . getEncryptSeparator() . detectRemoteAddr() . getEncryptSeparator() . detectUserAgent() . getEncryptSeparator() . time());
-                       $DATA[] = $HASH;
+                       array_push($DATA, $HASH);
                } // END - if
        } // END - if
        // Remove last commata
                } // END - if
        } // END - if
        // Remove last commata
@@ -442,8 +446,7 @@ function saveSponsorData ($postData, $content) {
 
        // Add SQL tail data
        $sql .= " WHERE `id`=%s AND `password`='%s' LIMIT 1";
 
        // Add SQL tail data
        $sql .= " WHERE `id`=%s AND `password`='%s' LIMIT 1";
-       $DATA[] = bigintval(getSession('sponsor_id'));
-       $DATA[] = getSession('sponsor_pass');
+       array_push($DATA, bigintval(getSession('sponsor_id')), getSession('sponsor_pass'));
 
        // Saving data was completed... ufff...
        switch (getWhat()) {
 
        // Saving data was completed... ufff...
        switch (getWhat()) {
@@ -451,11 +454,11 @@ function saveSponsorData ($postData, $content) {
                        if ($EMAIL === true) {
                                $message = '{--SPONSOR_ACCOUNT_EMAIL_CHANGED--}';
                                $templ   = 'admin_sponsor_change_email';
                        if ($EMAIL === true) {
                                $message = '{--SPONSOR_ACCOUNT_EMAIL_CHANGED--}';
                                $templ   = 'admin_sponsor_change_email';
-                               $subj    = '{--ADMIN_SPONSOR_ACC_EMAIL_SUBJECT--}';
+                               $subject    = '{--ADMIN_SPONSOR_ACC_EMAIL_SUBJECT--}';
                        } else {
                                $message = '{--SPONSOR_ACCOUNT_DATA_SAVED--}';
                                $templ   = 'admin_sponsor_change_data';
                        } else {
                                $message = '{--SPONSOR_ACCOUNT_DATA_SAVED--}';
                                $templ   = 'admin_sponsor_change_data';
-                               $subj    = '{--ADMIN_SPONSOR_ACC_DATA_SUBJECT--}';
+                               $subject    = '{--ADMIN_SPONSOR_ACC_DATA_SUBJECT--}';
                        }
                        break;
 
                        }
                        break;
 
@@ -463,21 +466,21 @@ function saveSponsorData ($postData, $content) {
                        // Set message template and subject for admin
                        $message = '{--SPONSOR_SETTINGS_SAVED--}';
                        $templ   = 'admin_sponsor_settings';
                        // Set message template and subject for admin
                        $message = '{--SPONSOR_SETTINGS_SAVED--}';
                        $templ   = 'admin_sponsor_settings';
-                       $subj    = '{--ADMIN_SPONSOR_SETTINGS_SUBJECT--}';
+                       $subject    = '{--ADMIN_SPONSOR_SETTINGS_SUBJECT--}';
                        break;
 
                default: // Unknown sponsor what value!
                        logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown sponsor module (what) %s detected.", getWhat()));
                        $message = '{--SPONSOR_UNKNOWN_WHAT--}';
                        $templ   = '';
                        break;
 
                default: // Unknown sponsor what value!
                        logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown sponsor module (what) %s detected.", getWhat()));
                        $message = '{--SPONSOR_UNKNOWN_WHAT--}';
                        $templ   = '';
-                       $subj    = '';
+                       $subject    = '';
                        break;
        } // END - switch
 
        // Has an entry updated?
        if (!SQL_HASZEROAFFECTED()) {
                // Template and subject are set?
                        break;
        } // END - switch
 
        // Has an entry updated?
        if (!SQL_HASZEROAFFECTED()) {
                // Template and subject are set?
-               if (!empty($templ) && !empty($subj)) {
+               if (!empty($templ) && !empty($subject)) {
                        // Run SQL command and check for success
                        $result = SQL_QUERY_ESC($sql, $DATA, __FUNCTION__, __LINE__);
 
                        // Run SQL command and check for success
                        $result = SQL_QUERY_ESC($sql, $DATA, __FUNCTION__, __LINE__);
 
@@ -485,7 +488,7 @@ function saveSponsorData ($postData, $content) {
                        $content['new_data'] = $postData;
 
                        // Send email to admins
                        $content['new_data'] = $postData;
 
                        // Send email to admins
-                       sendAdminNotification($subj, $templ, $content);
+                       sendAdminNotification($subject, $templ, $content);
 
                        // Shall we send mail to the sponsor's new email address?
                        if ($content['receive_warnings'] == 'Y') {
 
                        // Shall we send mail to the sponsor's new email address?
                        if ($content['receive_warnings'] == 'Y') {
@@ -568,7 +571,7 @@ function doProcessSponsorFormRequest ($messageArray = array()) {
        switch ($status) {
                case 'added': // Sponsor successfully added with account status = UNCONFIRMED!
                        // Check for his id number
        switch ($status) {
                case 'added': // Sponsor successfully added with account status = UNCONFIRMED!
                        // Check for his id number
-                       $result = SQL_QUERY_ESC("SELECT `id`,`hash` FROM `{?_MYSQL_PREFIX?}_sponsor_data` WHERE '%s' REGEXP `email` LIMIT 1",
+                       $result = SQL_QUERY_ESC("SELECT `id`, `hash` FROM `{?_MYSQL_PREFIX?}_sponsor_data` WHERE '%s' REGEXP `email` LIMIT 1",
                                array(postRequestElement('email')), __FUNCTION__, __LINE__);
                        if (SQL_NUMROWS($result) == 1) {
                                // id found so let's load it for the confirmation email
                                array(postRequestElement('email')), __FUNCTION__, __LINE__);
                        if (SQL_NUMROWS($result) == 1) {
                                // id found so let's load it for the confirmation email
@@ -666,7 +669,7 @@ function fetchSponsorData ($sponsor_id, $column = 'id') {
                // Don't look for invalid sponsor_ids...
                if (!isValidUserId($sponsor_id)) {
                        // Invalid, so abort here
                // Don't look for invalid sponsor_ids...
                if (!isValidUserId($sponsor_id)) {
                        // Invalid, so abort here
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Sponsor id ' . $sponsor_id . ' is invalid.');
+                       reportBug(__FUNCTION__, __LINE__, 'Sponsor id ' . $sponsor_id . ' is invalid.');
                } elseif (isSponsorDataValid()) {
                        // Use cache, so it is fine
                        return true;
                } elseif (isSponsorDataValid()) {
                        // Use cache, so it is fine
                        return true;
@@ -738,7 +741,7 @@ function getFetchedSponsorData ($keyColumn, $sponsor_id, $valueColumn) {
        // Zero ids are not valid
        if ($sponsor_id == 0) {
                // Abort here
        // Zero ids are not valid
        if ($sponsor_id == 0) {
                // Abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Zero sponsor_id provided');
+               reportBug(__FUNCTION__, __LINE__, 'Zero sponsor_id provided');
        } // END - if
 
        // Is it cached?
        } // END - if
 
        // Is it cached?
@@ -791,7 +794,7 @@ function getCurrentSponsorId () {
        // Sponsorid must be set before it can be used
        if (!isCurrentSponsorIdSet()) {
                // Not set
        // Sponsorid must be set before it can be used
        if (!isCurrentSponsorIdSet()) {
                // Not set
-               debug_report_bug(__FUNCTION__, __LINE__, 'Sponsor id is not set.');
+               reportBug(__FUNCTION__, __LINE__, 'Sponsor id is not set.');
        } // END - if
 
        // Return the sponsor_id
        } // END - if
 
        // Return the sponsor_id
@@ -819,7 +822,7 @@ function isValidSponsorId ($sponsor_id) {
 function getSponsorData ($column) {
        // Sponsor id should not be zero
        if (!isValidUserId(getCurrentSponsorId())) {
 function getSponsorData ($column) {
        // Sponsor id should not be zero
        if (!isValidUserId(getCurrentSponsorId())) {
-               debug_report_bug(__FUNCTION__, __LINE__, 'Sponsor id is zero.');
+               reportBug(__FUNCTION__, __LINE__, 'Sponsor id is zero.');
        } // END - if
 
        // Return the value
        } // END - if
 
        // Return the value
@@ -842,7 +845,7 @@ function destroySponsorSession () {
                (setSession('sponsor_id', '')) &&
                (setSession('sponsor_pass', '')) &&
                (
                (setSession('sponsor_id', '')) &&
                (setSession('sponsor_pass', '')) &&
                (
-                       ((isExtensionActive('theme')) && (setTheme(''))) ||
+                       ((isExtensionActive('theme')) && (setMailerTheme(''))) ||
                        (!isExtensionActive('theme'))
                )
        );
                        (!isExtensionActive('theme'))
                )
        );
index 1636cbc8fbf1e60cfa34ddba12d6500c87b39eb9..b61ab649143e9ab4fc1bca44f9355d22d08c2d62 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,79 +43,79 @@ if (!defined('__SECURITY')) {
 //------------------------------------------------------------------------------
 //                               Admin functions
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 //                               Admin functions
 //------------------------------------------------------------------------------
-//
+
 // Admin has added an URL with given user id and so on
 // Admin has added an URL with given user id and so on
-function SURFBAR_ADMIN_ADD_URL ($url, $limit, $reload) {
+function doSurfbarAdminAddUrl ($url, $limit, $reload) {
        // Do some pre-checks
        if (!isAdmin()) {
                // Not an admin
        // Do some pre-checks
        if (!isAdmin()) {
                // Not an admin
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Not admin.", $url, $limit, $reload));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Not admin.", $url, $limit, $reload));
                return false;
        } elseif (!isUrlValid($url)) {
                // URL invalid
                return false;
        } elseif (!isUrlValid($url)) {
                // URL invalid
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid URL.", $url, $limit, $reload));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid URL.", $url, $limit, $reload));
                return false;
                return false;
-       } elseif (SURFBAR_LOOKUP_BY_URL($url, 0)) {
+       } elseif (ifSurfbarHasUrlUserId($url, 0)) {
                // URL already found in surfbar!
                // URL already found in surfbar!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Already added.", $url, $limit, $reload));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Already added.", $url, $limit, $reload));
                return false;
                return false;
-       } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS()) {
+       } elseif (!ifSurfbarMemberAllowedMoreUrls()) {
                // No more allowed!
                // No more allowed!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: No more URLs allowed.", $url, $limit, $reload));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: No more URLs allowed.", $url, $limit, $reload));
                return false;
        } elseif ('' . ($limit + 0) . '' != '' . $limit . '') {
                // Invalid limit entered
                return false;
        } elseif ('' . ($limit + 0) . '' != '' . $limit . '') {
                // Invalid limit entered
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid limit entered.", $url, $limit, $reload));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid limit entered.", $url, $limit, $reload));
                return false;
        } elseif ('' . ($reload + 0) . '' != '' . $reload . '') {
                // Invalid amount entered
                return false;
        } elseif ('' . ($reload + 0) . '' != '' . $reload . '') {
                // Invalid amount entered
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid reload entered.", $url, $limit, $reload));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot add URL=%s,limit=%s,reload=%s: Invalid reload entered.", $url, $limit, $reload));
                return false;
        }
 
        // Register the new URL
                return false;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, 0, 'ACTIVE', 'unlock', array('limit' => $limit, 'reload' => $reload));
+       return doSurfbarRegisterUrl($url, 0, 'ACTIVE', 'unlock', array('limit' => $limit, 'reload' => $reload));
 }
 
 // Admin unlocked an email so we can migrate the URL
 }
 
 // Admin unlocked an email so we can migrate the URL
-function SURFBAR_ADMIN_MIGRATE_URL ($url, $userid) {
+function doSurfbarAdminMigrateUrl ($url, $userid) {
        // Do some pre-checks
        if (!isAdmin()) {
                // Not an admin
        // Do some pre-checks
        if (!isAdmin()) {
                // Not an admin
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Not admin, url=' . $url . ',userid=' . $userid);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Not admin, url=' . $url . ',userid=' . $userid);
                return false;
        } elseif (!isUrlValid($url)) {
                // URL invalid
                return false;
        } elseif (!isUrlValid($url)) {
                // URL invalid
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Invalid URL, url=' . $url . ',userid=' . $userid);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Invalid URL, url=' . $url . ',userid=' . $userid);
                return false;
                return false;
-       } elseif (SURFBAR_LOOKUP_BY_URL($url, $userid)) {
+       } elseif (ifSurfbarHasUrlUserId($url, $userid)) {
                // URL already found in surfbar!
                // URL already found in surfbar!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Already added, url=' . $url . ',userid=' . $userid);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Already added, url=' . $url . ',userid=' . $userid);
                return false;
                return false;
-       } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS($userid)) {
+       } elseif (!ifSurfbarMemberAllowedMoreUrls($userid)) {
                // No more allowed!
                // No more allowed!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Maximum exceeded, url=' . $url . ',userid=' . $userid);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot migrate URL: Maximum exceeded, url=' . $url . ',userid=' . $userid);
                return false;
        }
 
        // Register the new URL
                return false;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, $userid, 'MIGRATED', 'migrate');
+       return doSurfbarRegisterUrl($url, $userid, 'MIGRATED', 'migrate');
 }
 
 // Admin function for unlocking URLs
 }
 
 // Admin function for unlocking URLs
-function SURFBAR_ADMIN_UNLOCK_URL_IDS ($IDs) {
+function doSurfbarAdminUnlockUrlIds ($IDs) {
        // Is this an admin or invalid array?
        if (!isAdmin()) {
                // Not admin or invalid ids array
        // Is this an admin or invalid array?
        if (!isAdmin()) {
                // Not admin or invalid ids array
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
                return false;
        } elseif (!is_array($IDs)) {
                // No array
                return false;
        } elseif (!is_array($IDs)) {
                // No array
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
                return false;
        } elseif (count($IDs) == 0) {
                // Empty array
                return false;
        } elseif (count($IDs) == 0) {
                // Empty array
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
                return false;
        }
 
                return false;
        }
 
@@ -125,7 +125,7 @@ function SURFBAR_ADMIN_UNLOCK_URL_IDS ($IDs) {
        // Update the status for all ids
        foreach ($IDs as $id => $dummy) {
                // Test all ids through (ignores failed)
        // 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')));
+               $done = (($done) && (changeSurfbarUrlStatus($id, 'PENDING', 'ACTIVE')));
        } // END - if
 
        // Return total status
        } // END - if
 
        // Return total status
@@ -133,19 +133,19 @@ function SURFBAR_ADMIN_UNLOCK_URL_IDS ($IDs) {
 }
 
 // Admin function for rejecting URLs
 }
 
 // Admin function for rejecting URLs
-function SURFBAR_ADMIN_REJECT_URL_IDS ($IDs) {
+function doSurfbarAdminRejectUrlIds ($IDs) {
        // Is this an admin or invalid array?
        if (!isAdmin()) {
                // Not admin or invalid ids array
        // Is this an admin or invalid array?
        if (!isAdmin()) {
                // Not admin or invalid ids array
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not admin');
                return false;
        } elseif (!is_array($IDs)) {
                // No array
                return false;
        } elseif (!is_array($IDs)) {
                // No array
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array');
                return false;
        } elseif (count($IDs) == 0) {
                // Empty array
                return false;
        } elseif (count($IDs) == 0) {
                // Empty array
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty');
                return false;
        }
 
                return false;
        }
 
@@ -155,60 +155,56 @@ function SURFBAR_ADMIN_REJECT_URL_IDS ($IDs) {
        // Update the status for all ids
        foreach ($IDs as $id => $dummy) {
                // Test all ids through (ignores failed)
        // 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')));
+               $done = (($done) && (changeSurfbarUrlStatus($id, 'PENDING', 'REJECTED')));
        } // END - if
 
        // Return total status
        return $done;
 }
 
        } // END - if
 
        // Return total status
        return $done;
 }
 
-//
 //------------------------------------------------------------------------------
 //                               Member functions
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 //                               Member functions
 //------------------------------------------------------------------------------
-//
+
 // Member has added an URL
 // Member has added an URL
-function SURFBAR_MEMBER_ADD_URL ($url, $limit) {
+function doSurfbarMemberAddUrl ($url, $limit) {
        // Do some pre-checks
        if (!isMember()) {
                // Not a member
        // Do some pre-checks
        if (!isMember()) {
                // Not a member
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not member');
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: isMember()=false');
                return false;
        } elseif ((!isUrlValid($url)) && (!isAdmin())) {
                // URL invalid
                return false;
        } elseif ((!isUrlValid($url)) && (!isAdmin())) {
                // URL invalid
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid, url=' . $url . ',limit=' . $limit);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid, url=' . $url . ',limit=' . $limit);
                return false;
                return false;
-       } elseif (SURFBAR_LOOKUP_BY_URL($url, getMemberId())) {
+       } elseif (ifSurfbarHasUrlUserId($url, getMemberId())) {
                // URL already found in surfbar!
                // URL already found in surfbar!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Already found, url=' . $url . ',limit=' . $limit);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Already found, url=' . $url . ',limit=' . $limit);
                return false;
                return false;
-       } elseif (!SURFBAR_IF_USER_BOOK_MORE_URLS(getMemberId())) {
+       } elseif (!ifSurfbarMemberAllowedMoreUrls(getMemberId())) {
                // No more allowed!
                // No more allowed!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Maximum exceeded, url=' . $url . ',limit=' . $limit);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Maximum exceeded, url=' . $url . ',limit=' . $limit);
                return false;
        } elseif (''.($limit + 0).'' != ''.$limit.'') {
                // Invalid amount entered
                return false;
        } elseif (''.($limit + 0).'' != ''.$limit.'') {
                // Invalid amount entered
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid limit, url=' . $url . ',limit=' . $limit);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid limit, url=' . $url . ',limit=' . $limit);
                return false;
        }
 
        // Register the new URL
                return false;
        }
 
        // Register the new URL
-       return SURFBAR_REGISTER_URL($url, getMemberId(), 'PENDING', 'reg', array('limit' => $limit));
+       return doSurfbarRegisterUrl($url, getMemberId(), 'PENDING', 'reg', array('limit' => $limit));
 }
 
 // Create list of actions depending on status for the user
 }
 
 // Create list of actions depending on status for the user
-function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
+function generateSurfbarMemberActions ($urlId, $status) {
        // Load all actions in an array for given status
        // Load all actions in an array for given status
-       $actionArray = SURFBAR_GET_ARRAY_FROM_STATUS($status);
-
-       // Init HTML code
-       $OUT = '<table border="0" cellspacing="0" cellpadding="1" width="100%">
-<tr>';
+       $actionArray = getSurfbarArrayFromStatus($status);
 
        // Calculate width
        $width = round(100 / count($actionArray));
 
        // "Walk" through all actions and create forms
 
        // Calculate width
        $width = round(100 / count($actionArray));
 
        // "Walk" through all actions and create forms
+       $OUT = '';
        foreach ($actionArray as $actionId => $action) {
                // Add form for this action
                $OUT .= loadTemplate('member_list_surfbar_form', true, array(
        foreach ($actionArray as $actionId => $action) {
                // Add form for this action
                $OUT .= loadTemplate('member_list_surfbar_form', true, array(
@@ -218,35 +214,34 @@ function SURFBAR_MEMBER_ACTIONS ($urlId, $status) {
                ));
        } // END - foreach
 
                ));
        } // END - foreach
 
-       // Close table
-       $OUT .= '</tr>
-</table>';
+       // Load main template
+       $output = loadTemplate('member_list_surfbar_table', true, $OUT);
 
        // Return code
 
        // Return code
-       return $OUT;
+       return $output;
 }
 
 // Do the member form request
 }
 
 // Do the member form request
-function SURFBAR_MEMBER_DO_FORM ($formData, $urlArray) {
+function doSurfbarMemberByFormData ($formData, $urlArray) {
        // By default no action is performed
        $performed = false;
 
        // Is this a member?
        if (!isMember()) {
                // No member!
        // By default no action is performed
        $performed = false;
 
        // Is this a member?
        if (!isMember()) {
                // No member!
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Not member');
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: isMember()=false');
                return false;
                return false;
-       } elseif ((!isset($formData['id'])) || (!isset($formData['action']))) {
+       } elseif ((!isset($formData['url_id'])) || (!isset($formData['action']))) {
                // Important form elements are missing!
                /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid form data, required field id/action not found');
                return false;
                // Important form elements are missing!
                /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Invalid form data, required field id/action not found');
                return false;
-       } elseif (!isset($urlArray[$formData['id']])) {
+       } elseif (!isset($urlArray[$formData['url_id']])) {
                // Id not found in cache
                // Id not found in cache
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Field id not found in cache');
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Field url_id not found in cache');
                return false;
                return false;
-       } elseif (!SURFBAR_VALIDATE_MEMBER_ACTION_STATUS($formData['action'], $urlArray[$formData['id']]['url_status'])) {
+       } elseif (!isSurfbarMemberActionStatusValid($formData['action'], $urlArray[$formData['url_id']]['url_status'])) {
                // Action not allowed for current URL status
                // Action not allowed for current URL status
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Action not allowed to perform. action=' . $formData['action'] . ',url_status=' . $urlArray[$formData['id']]['url_status'] . 'id=' . $formData['id']);
+               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: Action not allowed to perform. action=' . $formData['action'] . ',url_status=' . $urlArray[$formData['url_id']]['url_status'] . ',url_id=' . $formData['url_id']);
                return false;
        }
 
                return false;
        }
 
@@ -260,38 +255,72 @@ function SURFBAR_MEMBER_DO_FORM ($formData, $urlArray) {
        } // END - if
 
        // Create the function name for selected action
        } // END - if
 
        // Create the function name for selected action
-       $functionName = sprintf("SURFBAR_MEMBER_%s_ACTION", strtoupper($action));
+       $functionName = sprintf("doSurfbarMember%sAction", firstCharUpperCase($action));
 
        // Is the function there?
        if (function_exists($functionName)) {
                // Add new status
 
        // Is the function there?
        if (function_exists($functionName)) {
                // Add new status
-               $urlArray[$formData['id']]['new_status'] = SURFBAR_GET_NEW_STATUS('new_status');
+               $urlArray[$formData['url_id']]['new_status'] = gerSurfbarNewStatus('new_status');
 
                // Extract URL data for call-back
 
                // Extract URL data for call-back
-               $urlData = array(merge_array($urlArray[$formData['id']], array($action => $formData)));
+               $urlData = array(merge_array($urlArray[$formData['url_id']], array($action => $formData)));
 
                // Action found so execute it
                $performed = call_user_func_array($functionName, $urlData);
        } else {
                // Log invalid request
 
                // Action found so execute it
                $performed = call_user_func_array($functionName, $urlData);
        } else {
                // Log invalid request
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid member action! action=' . $formData['action'] . ',id=' . $formData['id'] . ',function=' . $functionName);
+               reportBug(__FUNCTION__, __LINE__, 'Invalid member action! action=' . $formData['action'] . ',url_id=' . $formData['url_id'] . ',function=' . $functionName);
        }
 
        // Return status
        return $performed;
 }
 
        }
 
        // Return status
        return $performed;
 }
 
+// Getter for surfbar_actions table by given id number
+function getSurfbarActionsDataById ($columnName, $id) {
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__][$id][$columnName])) {
+               // Default is not found
+               $GLOBALS[__FUNCTION__][$id][$columnName] = '*INVALID*';
+
+               // Search for it
+               $result = SQL_QUERY_ESC("SELECT `%s` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_id`=%s LIMIT 1",
+                       array(
+                               $columnName,
+                               bigintval($id)
+                       ), __FUNCTION__, __LINE__);
+
+               // Is there an entry?
+               if (SQL_NUMROWS($result) == 1) {
+                       // Load it
+                       list($GLOBALS[__FUNCTION__][$id][$columnName]) = SQL_FETCHROW($result);
+               } // END - if
+
+               // Free result
+               SQL_FREERESULT($result);
+       } // END - if
+
+       // Return value
+       return $GLOBALS[__FUNCTION__][$id][$columnName];
+}
+
 // Validate if the requested action can be performed on current URL status
 // Validate if the requested action can be performed on current URL status
-function SURFBAR_VALIDATE_MEMBER_ACTION_STATUS ($action, $status) {
+function isSurfbarMemberActionStatusValid ($action, $status) {
        // Search for the requested action/status combination in database
        $result = SQL_QUERY_ESC("SELECT `actions_new_status` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_action`='%s' AND `actions_status`='%s' LIMIT 1",
        // Search for the requested action/status combination in database
        $result = SQL_QUERY_ESC("SELECT `actions_new_status` FROM `{?_MYSQL_PREFIX?}_surfbar_actions` WHERE `actions_action`='%s' AND `actions_status`='%s' LIMIT 1",
-               array($action, $status), __FUNCTION__, __LINE__);
+               array(
+                       strtoupper($action),
+                       strtoupper($status)
+               ), __FUNCTION__, __LINE__);
 
        // Is the entry there?
        $isValid = (SQL_NUMROWS($result) == 1);
 
 
        // Is the entry there?
        $isValid = (SQL_NUMROWS($result) == 1);
 
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'action=' . $action . ',status=' . $status . ',isValid=' . intval($isValid));
+
        // Fetch the new status if found
        // Fetch the new status if found
-       if ($isValid) {
+       if ($isValid === true) {
                // Load new status
                list($GLOBALS['surfbar_cache']['new_status']) = SQL_FETCHROW($result);
        } // END - if
                // Load new status
                list($GLOBALS['surfbar_cache']['new_status']) = SQL_FETCHROW($result);
        } // END - if
@@ -303,82 +332,81 @@ function SURFBAR_VALIDATE_MEMBER_ACTION_STATUS ($action, $status) {
        return $isValid;
 }
 
        return $isValid;
 }
 
-//
 //------------------------------------------------------------------------------
 //                               Member actions
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 //                               Member actions
 //------------------------------------------------------------------------------
-//
+
 // Retreat a booked URL
 // Retreat a booked URL
-function SURFBAR_MEMBER_RETREAT_ACTION ($urlData) {
+function doSurfbarMemberRetreatAction ($urlData) {
        // Create the data array for next function call
        $data = array(
        // Create the data array for next function call
        $data = array(
-               $urlData['id'] => $urlData
+               $urlData['url_id'] => $urlData
        );
 
        // Simply change the status here
        );
 
        // Simply change the status here
-       return SURFBAR_CHANGE_STATUS ($urlData['id'], $urlData['url_status'], $urlData['new_status'], $data);
+       return changeSurfbarUrlStatus ($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], $data);
 }
 
 // Book an URL now (from migration)
 }
 
 // Book an URL now (from migration)
-function SURFBAR_MEMBER_BOOKNOW_ACTION ($urlData) {
+function doSurfbarMemberBooknowAction ($urlData) {
        // Create the data array for next function call
        $data = array(
        // Create the data array for next function call
        $data = array(
-               $urlData['id'] => $urlData
+               $urlData['url_id'] => $urlData
        );
 
        // Simply change the status here
        );
 
        // Simply change the status here
-       return SURFBAR_CHANGE_STATUS ($urlData['id'], $urlData['url_status'], $urlData['new_status'], $data);
+       return changeSurfbarUrlStatus ($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], $data);
 }
 
 // Show edit form or do the changes
 }
 
 // Show edit form or do the changes
-function SURFBAR_MEMBER_EDIT_ACTION ($urlData) {
+function doSurfbarMemberEditAction ($urlData) {
        // Is the "execute" flag there?
        if (isset($urlData['edit']['execute'])) {
                // Execute the changes
        // Is the "execute" flag there?
        if (isset($urlData['edit']['execute'])) {
                // Execute the changes
-               return SURFBAR_MEMBER_EXECUTE_ACTION('edit', $urlData);
+               return executeSurfbarMemberAction('edit', $urlData);
        } // END - if
 
        // Display form
        } // END - if
 
        // Display form
-       return SURFBAR_MEMBER_DISPLAY_ACTION_FORM('edit', $urlData);
+       return displaySurfbarMemberActionForm('edit', $urlData);
 }
 
 // Show delete form or do the changes
 }
 
 // Show delete form or do the changes
-function SURFBAR_MEMBER_DELETE_ACTION ($urlData) {
+function doSurfbarMemberDeleteAction ($urlData) {
        // Is the "execute" flag there?
        if (isset($urlData['delete']['execute'])) {
                // Execute the changes
        // Is the "execute" flag there?
        if (isset($urlData['delete']['execute'])) {
                // Execute the changes
-               return SURFBAR_MEMBER_EXECUTE_ACTION('delete', $urlData);
+               return executeSurfbarMemberAction('delete', $urlData);
        } // END - if
 
        // Display form
        } // END - if
 
        // Display form
-       return SURFBAR_MEMBER_DISPLAY_ACTION_FORM('delete', $urlData);
+       return displaySurfbarMemberActionForm('delete', $urlData);
 }
 
 // Pause active banner
 }
 
 // Pause active banner
-function SURFBAR_MEMBER_PAUSE_ACTION ($urlData) {
-       return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+function doSurfbarMemberPauseAction ($urlData) {
+       return changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
 }
 
 // Unpause stopped banner
 }
 
 // Unpause stopped banner
-function SURFBAR_MEMBER_UNPAUSE_ACTION ($urlData) {
+function doSurfbarMemberUnpauseAction ($urlData) {
        // Fix missing entry for template
        $urlData['edit'] = $urlData['unpause'];
        $urlData['edit']['url'] = $urlData['url'];
        // Fix missing entry for template
        $urlData['edit'] = $urlData['unpause'];
        $urlData['edit']['url'] = $urlData['url'];
-       $urlData['edit']['limit'] = SURFBAR_GET_VIEWS_MAX();
+       $urlData['edit']['limit'] = gerSurfbarViewsMax();
 
        // Return status change
 
        // Return status change
-       return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+       return changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
 }
 
 // Resubmit locked URL
 }
 
 // Resubmit locked URL
-function SURFBAR_MEMBER_RESUBMIT_ACTION ($urlData) {
-       return SURFBAR_CHANGE_STATUS($urlData['id'], $urlData['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+function doSurfbarMemberResubmitAction ($urlData) {
+       return changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
 }
 
 // Display selected "action form"
 }
 
 // Display selected "action form"
-function SURFBAR_MEMBER_DISPLAY_ACTION_FORM ($action, $urlData) {
+function displaySurfbarMemberActionForm ($action, $urlData) {
        // Translate some data if present
        // Translate some data if present
-       $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
+       $content = prepareSurfbarContentForTemplate($content);
 
        // Include fields only for action 'edit'
        if ($action == 'edit') {
 
        // Include fields only for action 'edit'
        if ($action == 'edit') {
@@ -388,7 +416,7 @@ function SURFBAR_MEMBER_DISPLAY_ACTION_FORM ($action, $urlData) {
                $urlData['limited']     = 'false';
 
                // Is this URL limited?
                $urlData['limited']     = 'false';
 
                // Is this URL limited?
-               if (SURFBAR_GET_VIEWS_MAX() > 0) {
+               if (gerSurfbarViewsMax() > 0) {
                        // Then rewrite form data
                        $urlData['limited_yes'] = ' checked="checked"';
                        $urlData['limited_no']  = '';
                        // Then rewrite form data
                        $urlData['limited_yes'] = ' checked="checked"';
                        $urlData['limited_no']  = '';
@@ -404,7 +432,7 @@ function SURFBAR_MEMBER_DISPLAY_ACTION_FORM ($action, $urlData) {
 }
 
 // Execute choosen action
 }
 
 // Execute choosen action
-function SURFBAR_MEMBER_EXECUTE_ACTION ($action, $urlData) {
+function executeSurfbarMemberAction ($action, $urlData) {
        // By default nothing is executed
        $executed = false;
 
        // By default nothing is executed
        $executed = false;
 
@@ -415,25 +443,26 @@ function SURFBAR_MEMBER_EXECUTE_ACTION ($action, $urlData) {
        } // END - if
 
        // Construct function name
        } // END - if
 
        // Construct function name
-       $functionName = sprintf("SURFBAR_MEMBER_EXECUTE_%s_ACTION", strtoupper($action));
+       $functionName = sprintf("executeSurfbarMember%sAction", firstCharUpperCase($action));
 
        // Is that function there?
        if (function_exists($functionName)) {
                // Execute the function
                if (call_user_func_array($functionName, array($urlData)) == true) {
                        // Update status as well
 
        // 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['url_status'], $urlData['new_status'], array($urlData['id'] => $urlData));
+                       $executed = changeSurfbarUrlStatus($urlData['url_id'], $urlData['url_status'], $urlData['new_status'], array($urlData['url_id'] => $urlData));
                } // END - if
        } else {
                // Not found
                } // END - if
        } else {
                // Not found
-               debug_report_bug(__FUNCTION__, __LINE__, 'Callback function ' . $functionName . ' not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Callback function ' . $functionName . ' does not exist.');
        }
 
        // Return status
        return $executed;
 }
        }
 
        // Return status
        return $executed;
 }
+
 // "Execute edit" function: Update changed data
 // "Execute edit" function: Update changed data
-function SURFBAR_MEMBER_EXECUTE_EDIT_ACTION ($urlData) {
+function executeSurfbarMemberEditAction ($urlData) {
        // Default is nothing done
        $status = false;
 
        // Default is nothing done
        $status = false;
 
@@ -455,7 +484,7 @@ LIMIT 1",
                                $urlData['url'],
                                $urlData['edit']['limit'],
                                $urlData['edit']['limit'],
                                $urlData['url'],
                                $urlData['edit']['limit'],
                                $urlData['edit']['limit'],
-                               $urlData['id'],
+                               $urlData['url_id'],
                                $urlData['url_status']
                        ), __FUNCTION__, __LINE__);
 
                                $urlData['url_status']
                        ), __FUNCTION__, __LINE__);
 
@@ -466,29 +495,30 @@ LIMIT 1",
        // Return status
        return $status;
 }
        // Return status
        return $status;
 }
+
 // "Execute delete" function: Does nothing...
 // "Execute delete" function: Does nothing...
-function SURFBAR_MEMBER_EXECUTE_DELETE_ACTION ($urlData) {
+function executeSurfbarMemberDeleteAction ($urlData) {
        // Nothing special to do (see above function for such "special actions" to perform)
        return true;
 }
        // Nothing special to do (see above function for such "special actions" to perform)
        return true;
 }
-//
+
 //------------------------------------------------------------------------------
 //                           Self-maintenance functions
 //------------------------------------------------------------------------------
 //------------------------------------------------------------------------------
 //                           Self-maintenance functions
 //------------------------------------------------------------------------------
-//
+
 // Main function
 // Main function
-function SURFBAR_HANDLE_SELF_MAINTENANCE () {
+function doSurfbarSelfMaintenance () {
        // Handle URLs which limit has depleted so we can stop them
        // Handle URLs which limit has depleted so we can stop them
-       SURFBAR_HANDLE_DEPLETED_VIEWS();
+       doHandleSurfbarDepletedViews();
 
        // Handle low-points amounts
 
        // Handle low-points amounts
-       SURFBAR_HANDLE_LOW_POINTS();
+       doHandleSurfbarLowPoints();
 }
 
 // Handle URLs which limit has depleted
 }
 
 // Handle URLs which limit has depleted
-function SURFBAR_HANDLE_DEPLETED_VIEWS () {
+function doHandleSurfbarDepletedViews () {
        // Get all URLs
        // Get all URLs
-       $urlArray = SURFBAR_GET_URL_DATA(0, 'url_views_max', 'url_id', 'ASC', 'url_id', " AND `url_views_allowed` > 0 AND `url_status`='ACTIVE'");
+       $urlArray = getSurfbarUrlData(0, 'url_views_max', 'url_id', 'ASC', 'url_id', " AND `url_views_allowed` > 0 AND `url_status`='ACTIVE'");
 
        // Do we have some entries?
        if (count($urlArray) > 0) {
 
        // Do we have some entries?
        if (count($urlArray) > 0) {
@@ -503,15 +533,15 @@ function SURFBAR_HANDLE_DEPLETED_VIEWS () {
                        );
 
                        // Handle the status
                        );
 
                        // Handle the status
-                       SURFBAR_CHANGE_STATUS($id, 'ACTIVE', 'DEPLETED', $urlData);
+                       changeSurfbarUrlStatus($id, 'ACTIVE', 'DEPLETED', $urlData);
                } // END - foreach
        } // END - if
 }
 
 // Alert users which have URLs booked and are low on points amount
                } // END - foreach
        } // END - if
 }
 
 // Alert users which have URLs booked and are low on points amount
-function SURFBAR_HANDLE_LOW_POINTS () {
+function doHandleSurfbarLowPoints () {
        // Get all userids
        // Get all userids
-       $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS(getConfig('surfbar_warn_low_points'));
+       $userids = determineSurfbarDepletedUserids(getConfig('surfbar_warn_low_points'));
 
        // "Walk" through all URLs
        foreach ($userids['url_userid'] as $userid => $dummy) {
 
        // "Walk" through all URLs
        foreach ($userids['url_userid'] as $userid => $dummy) {
@@ -525,7 +555,7 @@ function SURFBAR_HANDLE_LOW_POINTS () {
                        );
 
                        // Notify this user
                        );
 
                        // Notify this user
-                       SURFBAR_NOTIFY_USER('low_points', $content);
+                       doSurfbarNotifyMember('low_points', $content);
 
                        // Update last notified
                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `surfbar_low_notified`=NOW() WHERE `userid`=%s LIMIT 1",
 
                        // Update last notified
                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `surfbar_low_notified`=NOW() WHERE `userid`=%s LIMIT 1",
@@ -541,16 +571,16 @@ function SURFBAR_HANDLE_LOW_POINTS () {
 //
 
 // Looks up by an URL
 //
 
 // Looks up by an URL
-function SURFBAR_LOOKUP_BY_URL ($url, $userid) {
+function ifSurfbarHasUrlUserId ($url, $userid) {
        // Now lookup that given URL by itself
        // Now lookup that given URL by itself
-       $urlArray = SURFBAR_GET_URL_DATA($url, 'url', 'url_id', 'ASC', 'url_id', sprintf(" AND `url_userid`=%s", bigintval($userid)));
+       $urlArray = getSurfbarUrlData($url, 'url', 'url_id', 'ASC', 'url_id', sprintf(" AND `url_userid`=%s", bigintval($userid)));
 
        // Was it found?
        return (count($urlArray) > 0);
 }
 
 // Load URL data by given search term and column
 
        // Was it found?
        return (count($urlArray) > 0);
 }
 
 // Load URL data by given search term and column
-function SURFBAR_GET_URL_DATA ($searchTerm, $column = 'url_id', $order = 'url_id', $sort = 'ASC', $group = 'url_id', $add = '') {
+function getSurfbarUrlData ($searchTerm, $column = 'url_id', $order = 'url_id', $sort = 'ASC', $group = 'url_id', $add = '') {
        // By default nothing is found
        $GLOBALS['last_url_data'] = array();
 
        // By default nothing is found
        $GLOBALS['last_url_data'] = array();
 
@@ -560,9 +590,9 @@ function SURFBAR_GET_URL_DATA ($searchTerm, $column = 'url_id', $order = 'url_id
                $searchTerm = bigintval($searchTerm);
        } // END - if
 
                $searchTerm = bigintval($searchTerm);
        } // END - if
 
-       // If the column is 'id' there can be only one entry
+       // If the column is 'url_id' there can be only one entry
        $limit = '';
        $limit = '';
-       if ($column == 'id') {
+       if ($column == 'url_id') {
                $limit = "LIMIT 1";
        } // END - if
 
                $limit = "LIMIT 1";
        } // END - if
 
@@ -618,8 +648,8 @@ ORDER BY
        return $GLOBALS['last_url_data'];
 }
 
        return $GLOBALS['last_url_data'];
 }
 
-// Registers an URL with the surfbar. You should have called SURFBAR_LOOKUP_BY_URL() first!
-function SURFBAR_REGISTER_URL ($url, $userid, $status = 'PENDING', $addMode = 'reg', $extraFields = array()) {
+// Registers an URL with the surfbar. You should have called ifSurfbarHasUrlUserId() first!
+function doSurfbarRegisterUrl ($url, $userid, $status = 'PENDING', $addMode = 'reg', $extraFields = array()) {
        // Make sure by the user registered URLs are always pending
        if ($addMode == 'reg') {
                $status = 'PENDING';
        // Make sure by the user registered URLs are always pending
        if ($addMode == 'reg') {
                $status = 'PENDING';
@@ -641,7 +671,7 @@ function SURFBAR_REGISTER_URL ($url, $userid, $status = 'PENDING', $addMode = 'r
        } // END - if
 
        // Insert the URL into database
        } // END - if
 
        // Insert the URL into database
-       $content['insert_id'] = SURFBAR_INSERT_URL_BY_ARRAY($content);
+       $content['insert_id'] = insertSurfbarUrlByArray($content);
 
        // Is this id valid?
        if ($content['insert_id'] == '0') {
 
        // Is this id valid?
        if ($content['insert_id'] == '0') {
@@ -652,18 +682,18 @@ function SURFBAR_REGISTER_URL ($url, $userid, $status = 'PENDING', $addMode = 'r
        // 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
        // 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);
+               doSurfbarNotifyAdmin('url_' . $addMode, $content);
        } // END - if
 
        // Send mail to user
        } // END - if
 
        // Send mail to user
-       SURFBAR_NOTIFY_USER('url_' . $addMode, $content);
+       doSurfbarNotifyMember('url_' . $addMode, $content);
 
        // Return the insert id
        return $content['insert_id'];
 }
 
 // Inserts an url by given data array and return the insert id
 
        // 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) {
+function insertSurfbarUrlByArray ($urlData) {
        // Get userid
        $userid = bigintval($urlData['url_userid']);
 
        // Get userid
        $userid = bigintval($urlData['url_userid']);
 
@@ -689,7 +719,7 @@ function SURFBAR_INSERT_URL_BY_ARRAY ($urlData) {
 }
 
 // Notify admin(s) with a selected message and content
 }
 
 // Notify admin(s) with a selected message and content
-function SURFBAR_NOTIFY_ADMIN ($messageType, $content) {
+function doSurfbarNotifyAdmin ($messageType, $content) {
        // Prepare template name
        $templateName = sprintf("admin_surfbar_%s", $messageType);
 
        // Prepare template name
        $templateName = sprintf("admin_surfbar_%s", $messageType);
 
@@ -705,14 +735,14 @@ function SURFBAR_NOTIFY_ADMIN ($messageType, $content) {
        } // END - if
 
        // Translate some data if present
        } // END - if
 
        // Translate some data if present
-       $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
+       $content = prepareSurfbarContentForTemplate($content);
 
        // Send the notification out
        return sendAdminNotification($subject, $templateName, $content, $content['url_userid']);
 }
 
 // Notify the user about the performed action
 
        // Send the notification out
        return sendAdminNotification($subject, $templateName, $content, $content['url_userid']);
 }
 
 // Notify the user about the performed action
-function SURFBAR_NOTIFY_USER ($messageType, $content) {
+function doSurfbarNotifyMember ($messageType, $content) {
        // Skip notification if userid is zero
        if ($content['url_userid'] == '0') {
                return false;
        // Skip notification if userid is zero
        if ($content['url_userid'] == '0') {
                return false;
@@ -733,7 +763,7 @@ function SURFBAR_NOTIFY_USER ($messageType, $content) {
        } // END - if
 
        // Translate some data if present
        } // END - if
 
        // Translate some data if present
-       $content = SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE($content);
+       $content = prepareSurfbarContentForTemplate($content);
 
        // Load template
        $mailText = loadEmailTemplate($templateName, $content, $content['url_userid']);
 
        // Load template
        $mailText = loadEmailTemplate($templateName, $content, $content['url_userid']);
@@ -744,7 +774,7 @@ function SURFBAR_NOTIFY_USER ($messageType, $content) {
 
 // Translates some data for template usage
 // @TODO Can't we use our new expression language instead of this ugly code?
 
 // Translates some data for template usage
 // @TODO Can't we use our new expression language instead of this ugly code?
-function SURFBAR_PREPARE_CONTENT_FOR_TEMPLATE ($content) {
+function prepareSurfbarContentForTemplate ($content) {
        // Prepare some code
        if (isset($content['url_registered']))  $content['url_registered']  = generateDateTime($content['url_registered'], 2);
        if (isset($content['url_last_locked'])) $content['url_last_locked'] = generateDateTime($content['url_last_locked'], 2);
        // Prepare some code
        if (isset($content['url_registered']))  $content['url_registered']  = generateDateTime($content['url_registered'], 2);
        if (isset($content['url_last_locked'])) $content['url_last_locked'] = generateDateTime($content['url_last_locked'], 2);
@@ -823,7 +853,7 @@ function translateMemberSurfbarActionToSubmit ($action) {
 }
 
 // Determine reward
 }
 
 // Determine reward
-function SURFBAR_DETERMINE_REWARD ($onlyMin = false) {
+function determineSurfbarReward ($onlyMin = false) {
        // Static values are default
        $reward = getConfig('surfbar_static_reward');
 
        // Static values are default
        $reward = getConfig('surfbar_static_reward');
 
@@ -831,9 +861,9 @@ function SURFBAR_DETERMINE_REWARD ($onlyMin = false) {
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic reward
                if ($onlyMin === true) {
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic reward
                if ($onlyMin === true) {
-                       $reward += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
+                       $reward += calculateSurfbarDynamicMininumValue();
                } else {
                } else {
-                       $reward += SURFBAR_CALCULATE_DYNAMIC_ADD();
+                       $reward += calculateSurfbarDynamicAddValue();
                }
        } // END - if
 
                }
        } // END - if
 
@@ -842,7 +872,7 @@ function SURFBAR_DETERMINE_REWARD ($onlyMin = false) {
 }
 
 // Determine costs
 }
 
 // Determine costs
-function SURFBAR_DETERMINE_COSTS ($onlyMin=false) {
+function determineSurfbarCosts ($onlyMin=false) {
        // Static costs is default
        $costs  = getConfig('surfbar_static_costs');
 
        // Static costs is default
        $costs  = getConfig('surfbar_static_costs');
 
@@ -850,9 +880,9 @@ function SURFBAR_DETERMINE_COSTS ($onlyMin=false) {
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic costs
                if ($onlyMin) {
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic costs
                if ($onlyMin) {
-                       $costs += SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
+                       $costs += calculateSurfbarDynamicMininumValue();
                } else {
                } else {
-                       $costs += SURFBAR_CALCULATE_DYNAMIC_ADD();
+                       $costs += calculateSurfbarDynamicAddValue();
                }
        } // END - if
 
                }
        } // END - if
 
@@ -861,22 +891,22 @@ function SURFBAR_DETERMINE_COSTS ($onlyMin=false) {
 }
 
 // "Calculate" dynamic add
 }
 
 // "Calculate" dynamic add
-function SURFBAR_CALCULATE_DYNAMIC_ADD () {
+function calculateSurfbarDynamicAddValue () {
        // Get min/max values
        // Get min/max values
-       $min = SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE();
-       $max = SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE();
+       $min = calculateSurfbarDynamicMininumValue();
+       $max = calculateSurfbarDynamicMaximumValue();
 
        // "Calculate" dynamic part and return it
        return mt_rand($min, $max);
 }
 
 // Determine right template name
 
        // "Calculate" dynamic part and return it
        return mt_rand($min, $max);
 }
 
 // Determine right template name
-function SURFBAR_DETERMINE_TEMPLATE_NAME() {
+function determineSurfbarTemplateName() {
        // Default is the frameset
        $templateName = 'surfbar_frameset';
 
        // Any frame set? ;-)
        // Default is the frameset
        $templateName = 'surfbar_frameset';
 
        // Any frame set? ;-)
-       if (isGetRequestElementSet('frame')) {
+       if (!isFullPage()) {
                // Use the frame as a template name part... ;-)
                $templateName = sprintf("surfbar_frame_%s",
                        getRequestElement('frame')
                // Use the frame as a template name part... ;-)
                $templateName = sprintf("surfbar_frame_%s",
                        getRequestElement('frame')
@@ -887,10 +917,12 @@ function SURFBAR_DETERMINE_TEMPLATE_NAME() {
        return $templateName;
 }
 
        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 () {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Fixed surf lock is ' . getConfig('surfbar_static_lock') . ' - ENTERED!');
+/**
+ * Check if the "reload lock" of the current user is full, call this function
+ * before you call ifSurfbarReloadLock().
+ */
+function isSurfbarReloadFull () {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Fixed surf lock is ' . getConfig('surfbar_static_lock') . ' - ENTERED!');
        // Default is full!
        $isFull = true;
 
        // Default is full!
        $isFull = true;
 
@@ -898,12 +930,12 @@ function SURFBAR_CHECK_RELOAD_FULL () {
        $GLOBALS['surfbar_cache']['surf_lock'] = getConfig('surfbar_static_lock');
 
        // Do we have dynamic model?
        $GLOBALS['surfbar_cache']['surf_lock'] = getConfig('surfbar_static_lock');
 
        // Do we have dynamic model?
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'surf_lock=' . $GLOBALS['surfbar_cache']['surf_lock'] . ' - BEFORE');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'surf_lock=' . $GLOBALS['surfbar_cache']['surf_lock'] . ' - BEFORE');
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic lock
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic lock
-               $GLOBALS['surfbar_cache']['surf_lock'] += SURFBAR_CALCULATE_DYNAMIC_ADD();
+               $GLOBALS['surfbar_cache']['surf_lock'] += calculateSurfbarDynamicAddValue();
        } // END - if
        } // END - if
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'surf_lock=' . $GLOBALS['surfbar_cache']['surf_lock'] . ' - AFTER');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'surf_lock=' . $GLOBALS['surfbar_cache']['surf_lock'] . ' - AFTER');
 
        // Ask the database
        $result = SQL_QUERY_ESC("SELECT
 
        // Ask the database
        $result = SQL_QUERY_ESC("SELECT
@@ -916,7 +948,7 @@ ON
        u.`url_id`=l.`locks_url_id`
 WHERE
        l.`locks_userid`=%s AND
        u.`url_id`=l.`locks_url_id`
 WHERE
        l.`locks_userid`=%s AND
-       (UNIX_TIMESTAMP() - {%%pipe,SURFBAR_GET_SURF_LOCK%%}) < UNIX_TIMESTAMP(l.`locks_last_surfed`) AND
+       (UNIX_TIMESTAMP() - {%%pipe,gerSurfbarSurfLock%%}) < UNIX_TIMESTAMP(l.`locks_last_surfed`) AND
        (
                ((UNIX_TIMESTAMP(l.`locks_last_surfed`) - u.`url_fixed_reload`) < 0 AND u.`url_fixed_reload` > 0) OR
                u.`url_fixed_reload` = 0
        (
                ((UNIX_TIMESTAMP(l.`locks_last_surfed`) - u.`url_fixed_reload`) < 0 AND u.`url_fixed_reload` > 0) OR
                u.`url_fixed_reload` = 0
@@ -938,20 +970,20 @@ LIMIT 1",
        SQL_FREERESULT($result);
 
        // Get total URLs
        SQL_FREERESULT($result);
 
        // Get total URLs
-       $total = SURFBAR_GET_TOTAL_URLS();
+       $total = getSurfbarTotalUrls();
 
        // Do we have some URLs in lock? Admins can always surf on own URLs!
 
        // Do we have some URLs in lock? Admins can always surf on own URLs!
-       $isFull = ((SURFBAR_GET_USER_LOCKS() == $total) && ($total > 0));
+       $isFull = ((getSurfbarUserLocks() == $total) && ($total > 0));
 
        // Return result
 
        // Return result
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userLocks=' . SURFBAR_GET_USER_LOCKS() . ',total=' . $total . 'isFull=' . intval($isFull) . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userLocks=' . getSurfbarUserLocks() . ',total=' . $total . 'isFull=' . intval($isFull) . ' - EXIT!');
        return $isFull;
 }
 
 // Get total amount of URLs of given status for current user or of ACTIVE URLs by default
        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 = NULL) {
+function getSurfbarTotalUrls ($status = 'ACTIVE', $excludeUserId = NULL) {
        // Determine depleted user account
        // Determine depleted user account
-       $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS();
+       $userids = determineSurfbarDepletedUserids();
 
        // If we dont get any user ids back, there are no URLs
        if (count($userids['url_userid']) == 0) {
 
        // If we dont get any user ids back, there are no URLs
        if (count($userids['url_userid']) == 0) {
@@ -971,7 +1003,7 @@ function SURFBAR_GET_TOTAL_URLS ($status = 'ACTIVE', $excludeUserId = NULL) {
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_urls`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_surfbar_urls`
 WHERE
-       `url_userid` NOT IN (".implode(', ', $userids['url_userid']).") AND
+       (`url_userid` NOT IN (".implode(', ', $userids['url_userid']).") OR `url_userid` IS NULL) AND
        `url_status`='%s'
 LIMIT 1",
                array($status), __FUNCTION__, __LINE__
        `url_status`='%s'
 LIMIT 1",
                array($status), __FUNCTION__, __LINE__
@@ -984,20 +1016,20 @@ LIMIT 1",
        SQL_FREERESULT($result);
 
        // Debug message
        SQL_FREERESULT($result);
 
        // Debug message
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $count);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'cnt=' . $count . ' - EXIT!');
 
        // Return result
        return $count;
 }
 
 
        // Return result
        return $count;
 }
 
-// Check wether the user is allowed to book more URLs
-function SURFBAR_IF_USER_BOOK_MORE_URLS ($userid = NULL) {
+// Check whether the user is allowed to book more URLs
+function ifSurfbarMemberAllowedMoreUrls ($userid = NULL) {
        // Is this admin and userid is zero or does the user has some URLs left to book?
        // Is this admin and userid is zero or does the user has some URLs left to book?
-       return (((is_null($userid)) && (isAdmin())) || (SURFBAR_GET_TOTAL_USER_URLS($userid, '', array('REJECTED')) < getSurfbarMaxOrder()));
+       return (((is_null($userid)) && (isAdmin())) || (getSurfbarTotalUserUrls($userid, '', array('REJECTED')) < getSurfbarMaxOrder()));
 }
 
 // Get total amount of URLs of given status for current user
 }
 
 // Get total amount of URLs of given status for current user
-function SURFBAR_GET_TOTAL_USER_URLS ($userid = NULL, $status = '', $exclude = '') {
+function getSurfbarTotalUserUrls ($userid = NULL, $status = '', $exclude = '') {
        // Is the user 0 and user is logged in?
        if ((is_null($userid)) && (isMember())) {
                // Then use this userid
        // Is the user 0 and user is logged in?
        if ((is_null($userid)) && (isMember())) {
                // Then use this userid
@@ -1013,16 +1045,16 @@ function SURFBAR_GET_TOTAL_USER_URLS ($userid = NULL, $status = '', $exclude = '
        // Is the status set?
        if (is_array($status)) {
                // Only URLs with these status
        // Is the status set?
        if (is_array($status)) {
                // Only URLs with these status
-               $add = sprintf(" WHERE `url_status` IN('%s')", implode("','", $status));
+               $add = sprintf(" AND `url_status` IN('%s')", implode("','", $status));
        } elseif (!empty($status)) {
                // Only URLs with this status
        } elseif (!empty($status)) {
                // Only URLs with this status
-               $add = sprintf(" WHERE `url_status`='%s'", $status);
+               $add = sprintf(" AND `url_status`='%s'", $status);
        } elseif (is_array($exclude)) {
                // Exclude URLs with these status
        } elseif (is_array($exclude)) {
                // Exclude URLs with these status
-               $add = sprintf(" WHERE `url_status` NOT IN('%s')", implode("','", $exclude));
+               $add = sprintf(" AND `url_status` NOT IN('%s')", implode("','", $exclude));
        } elseif (!empty($exclude)) {
                // Exclude URLs with this status
        } elseif (!empty($exclude)) {
                // Exclude URLs with this status
-               $add = sprintf(" WHERE `url_status` != '%s'", $exclude);
+               $add = sprintf(" AND `url_status` != '%s'", $exclude);
        }
 
        // Get amount from database
        }
 
        // Get amount from database
@@ -1033,47 +1065,47 @@ function SURFBAR_GET_TOTAL_USER_URLS ($userid = NULL, $status = '', $exclude = '
 }
 
 // Generate a validation code for the given id number
 }
 
 // Generate a validation code for the given id number
-function SURFBAR_GENERATE_VALIDATION_CODE ($urlId, $salt = '') {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',salt=' . $salt . ' - ENTERED!');
+function generateSurfbarValidationCode ($urlId, $salt = '') {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',salt=' . $salt . ' - ENTERED!');
        // Init hash with invalid value
        if (empty($salt)) {
                 // Generate random hashed string
                $GLOBALS['surfbar_cache']['salt'] = sha1(generatePassword(mt_rand(200, 255)));
        // Init hash with invalid value
        if (empty($salt)) {
                 // Generate random hashed string
                $GLOBALS['surfbar_cache']['salt'] = sha1(generatePassword(mt_rand(200, 255)));
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newSalt='.SURFBAR_GET_SALT().'', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newSalt='.gerSurfbarSalt().'', false);
        } else {
                // Use this as salt!
                $GLOBALS['surfbar_cache']['salt'] = $salt;
        } else {
                // Use this as salt!
                $GLOBALS['surfbar_cache']['salt'] = $salt;
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'oldSalt='.SURFBAR_GET_SALT().'', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'oldSalt='.gerSurfbarSalt().'', false);
        }
 
        // Hash it with md5() and salt it with the random string
        }
 
        // Hash it with md5() and salt it with the random string
-       $hashedCode = generateHash(md5($urlId . getEncryptSeparator() . getMemberId()), SURFBAR_GET_SALT());
+       $hashedCode = generateHash(md5($urlId . getEncryptSeparator() . getMemberId()), gerSurfbarSalt());
 
        // Finally encrypt it PGP-like and return it
        $valHashedCode = encodeHashForCookie($hashedCode);
 
        // Return hashed value
 
        // Finally encrypt it PGP-like and return it
        $valHashedCode = encodeHashForCookie($hashedCode);
 
        // Return hashed value
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',salt=' . $salt . ',urlId=' . $urlId . ',salt=' . $salt . ',valHashedCode=' . $valHashedCode . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',salt=' . $salt . ',urlId=' . $urlId . ',salt=' . $salt . ',valHashedCode=' . $valHashedCode . ' - EXIT!');
        return $valHashedCode;
 }
 
 // Check validation code
        return $valHashedCode;
 }
 
 // Check validation code
-function SURFBAR_CHECK_VALIDATION_CODE ($urlId, $check, $salt) {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',check=' . $check . ',salt=' . $salt . ' - ENTERED!');
+function isSurfbarValidationCodeValid ($urlId, $check, $salt) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',check=' . $check . ',salt=' . $salt . ' - ENTERED!');
        // Secure id number
        $urlId = bigintval($urlId);
 
        // Now generate the code again
        // Secure id number
        $urlId = bigintval($urlId);
 
        // Now generate the code again
-       $code = SURFBAR_GENERATE_VALIDATION_CODE($urlId, $salt);
+       $code = generateSurfbarValidationCode($urlId, $salt);
 
        // Return result of checking hashes and salts
 
        // Return result of checking hashes and salts
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',(code==check)=' . intval($code == $check) . ',(salt==salts_last_salt)=' . intval($salt == SURFBAR_GET_DATA('salts_last_salt')) . ' - EXIT!');
-       return (($code == $check) && ($salt == SURFBAR_GET_DATA('salts_last_salt')));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',(code==check)=' . intval($code == $check) . ',(salt==salts_last_salt)=' . intval($salt == getSurfbarData('salts_last_salt')) . ' - EXIT!');
+       return (($code == $check) && ($salt == getSurfbarData('salts_last_salt')));
 }
 
 // Lockdown the userid/id combination (reload lock)
 }
 
 // Lockdown the userid/id combination (reload lock)
-function SURFBAR_LOCKDOWN_ID ($urlId) {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',getMemberId()=' . getMemberId() . ' - ENTERED!');
+function addSurfbarReloadLockById ($urlId) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',getMemberId()=' . getMemberId() . ' - ENTERED!');
        // Search for an entry
        $countLock = countSumTotalData(getMemberId(), 'surfbar_locks', 'locks_id', 'locks_userid', true, ' AND `locks_url_id`=' . bigintval($urlId));
 
        // Search for an entry
        $countLock = countSumTotalData(getMemberId(), 'surfbar_locks', 'locks_id', 'locks_userid', true, ' AND `locks_url_id`=' . bigintval($urlId));
 
@@ -1094,34 +1126,34 @@ function SURFBAR_LOCKDOWN_ID ($urlId) {
                        getMemberId()
                ), __FUNCTION__, __LINE__);
 
                        getMemberId()
                ), __FUNCTION__, __LINE__);
 
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',getMemberId()=' . getMemberId() . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS() . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',getMemberId()=' . getMemberId() . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS() . ' - EXIT!');
 }
 
 // Pay points to the user and remove it from the sender if userid is given else it is a "sponsored surf"
 }
 
 // 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 () {
+function doSurfbarPayPoints () {
        // Remove it from the URL owner
        // Remove it from the URL owner
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.SURFBAR_GET_USERID().',costs='.SURFBAR_GET_COSTS() . ' - ENTERED!');
-       if (isValidUserId(SURFBAR_GET_USERID())) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.gerSurfbarUserid().',costs='.gerSurfbarCosts() . ' - ENTERED!');
+       if (isValidUserId(gerSurfbarUserid())) {
                // Subtract points and ignore return status
                // Subtract points and ignore return status
-               subtractPoints(sprintf("surfbar_%s", getSurfbarPaymentModel()), SURFBAR_GET_USERID(), SURFBAR_GET_COSTS());
+               subtractPoints(sprintf("surfbar_%s", getSurfbarPaymentModel()), gerSurfbarUserid(), gerSurfbarCosts());
        } // END - if
 
        } // END - if
 
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getMemberId().',reward='.SURFBAR_GET_REWARD());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.getMemberId().',reward='.gerSurfbarReward());
        // Init referral system here
        initReferralSystem();
 
        // Book it to the user and ignore return status
        // Init referral system here
        initReferralSystem();
 
        // Book it to the user and ignore return status
-       addPointsThroughReferralSystem(sprintf("surfbar:%s", getSurfbarPaymentModel()), getMemberId(), SURFBAR_GET_REWARD());
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.SURFBAR_GET_USERID().',costs='.SURFBAR_GET_COSTS() . ' - EXIT!');
+       addPointsThroughReferralSystem(sprintf("surfbar:%s", getSurfbarPaymentModel()), getMemberId(), gerSurfbarReward());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid='.gerSurfbarUserid().',costs='.gerSurfbarCosts() . ' - EXIT!');
 }
 
 // Updates the statistics of current URL/userid
 }
 
 // Updates the statistics of current URL/userid
-function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
+function updateInsertSurfbarStatisticsRecord () {
        // Init add
        $add = '';
 
        // Get allowed views
        // Init add
        $add = '';
 
        // Get allowed views
-       $allowed = SURFBAR_GET_VIEWS_ALLOWED();
+       $allowed = gerSurfbarViewsAllowed();
 
        // Do we have a limit?
        if ($allowed > 0) {
 
        // Do we have a limit?
        if ($allowed > 0) {
@@ -1131,13 +1163,13 @@ function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
 
        // Update URL stats
        SQL_QUERY_ESC('UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_views_total`=`url_views_total`+1' . $add . ' WHERE `url_id`=%s LIMIT 1',
 
        // Update URL stats
        SQL_QUERY_ESC('UPDATE `{?_MYSQL_PREFIX?}_surfbar_urls` SET `url_views_total`=`url_views_total`+1' . $add . ' WHERE `url_id`=%s LIMIT 1',
-               array(SURFBAR_GET_ID()), __FUNCTION__, __LINE__);
+               array(gerSurfbarId()), __FUNCTION__, __LINE__);
 
        // Update the stats entry
        SQL_QUERY_ESC('UPDATE `{?_MYSQL_PREFIX?}_surfbar_stats` SET `stats_count`=`stats_count`+1 WHERE `stats_userid`=%s AND `stats_url_id`=%s LIMIT 1',
                array(
                        getMemberId(),
 
        // Update the stats entry
        SQL_QUERY_ESC('UPDATE `{?_MYSQL_PREFIX?}_surfbar_stats` SET `stats_count`=`stats_count`+1 WHERE `stats_userid`=%s AND `stats_url_id`=%s LIMIT 1',
                array(
                        getMemberId(),
-                       SURFBAR_GET_ID()
+                       gerSurfbarId()
                ), __FUNCTION__, __LINE__);
 
        // Was that update okay?
                ), __FUNCTION__, __LINE__);
 
        // Was that update okay?
@@ -1146,7 +1178,7 @@ function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
                SQL_QUERY_ESC('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_stats` (`stats_userid`,`stats_url_id`,`stats_count`) VALUES (%s,%s,1)',
                        array(
                                getMemberId(),
                SQL_QUERY_ESC('INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_stats` (`stats_userid`,`stats_url_id`,`stats_count`) VALUES (%s,%s,1)',
                        array(
                                getMemberId(),
-                               SURFBAR_GET_ID()
+                               gerSurfbarId()
                        ), __FUNCTION__, __LINE__);
        } // END - if
 
                        ), __FUNCTION__, __LINE__);
        } // END - if
 
@@ -1161,51 +1193,51 @@ function SURFBAR_UPDATE_INSERT_STATS_RECORD () {
 }
 
 // Update the salt for validation and statistics
 }
 
 // Update the salt for validation and statistics
-function SURFBAR_UPDATE_SALT_STATS () {
+function updateSurfbarSaltStatistics () {
        // Update salt
        // Update salt
-       SURFBAR_GENERATE_VALIDATION_CODE(SURFBAR_GET_ID());
+       generateSurfbarValidationCode(gerSurfbarId());
 
        // Make sure only valid salts can pass
 
        // Make sure only valid salts can pass
-       if (SURFBAR_GET_SALT() == 'INVALID') {
+       if (gerSurfbarSalt() == 'INVALID') {
                // Invalid provided
                // Invalid provided
-               debug_report_bug(__FUNCTION__, __LINE__, 'Invalid salt provided, id=' . SURFBAR_GET_ID() . ',getMemberId()=' . getMemberId());
+               reportBug(__FUNCTION__, __LINE__, 'Invalid salt provided, id=' . gerSurfbarId() . ',getMemberId()=' . getMemberId());
        } // END - if
 
        // Update statistics record
        } // END - if
 
        // Update statistics record
-       SURFBAR_UPDATE_INSERT_STATS_RECORD();
+       updateInsertSurfbarStatisticsRecord();
 
        // Simply store the salt from cache away in database...
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_salts` SET `salts_last_salt`='%s' WHERE `salts_url_id`=%s AND `salts_userid`=%s LIMIT 1",
                array(
 
        // Simply store the salt from cache away in database...
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_surfbar_salts` SET `salts_last_salt`='%s' WHERE `salts_url_id`=%s AND `salts_userid`=%s LIMIT 1",
                array(
-                       SURFBAR_GET_SALT(),
-                       SURFBAR_GET_ID(),
+                       gerSurfbarSalt(),
+                       gerSurfbarId(),
                        getMemberId()
                ), __FUNCTION__, __LINE__);
 
        // Debug message
                        getMemberId()
                ), __FUNCTION__, __LINE__);
 
        // Debug message
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'salt=' . SURFBAR_GET_SALT() . ',id=' . SURFBAR_GET_ID() . ',userid=' . getMemberId() . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS() . ' - UPDATE!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'salt=' . gerSurfbarSalt() . ',id=' . gerSurfbarId() . ',userid=' . getMemberId() . ',SQL_AFFECTEDROWS()=' . SQL_AFFECTEDROWS() . ' - UPDATE!');
 
        // Was that okay?
        if (SQL_HASZEROAFFECTED()) {
                // Insert missing entry!
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_salts` (`salts_url_id`,`salts_userid`,`salts_last_salt`) VALUES (%s, %s, '%s')",
                        array(
 
        // Was that okay?
        if (SQL_HASZEROAFFECTED()) {
                // Insert missing entry!
                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_salts` (`salts_url_id`,`salts_userid`,`salts_last_salt`) VALUES (%s, %s, '%s')",
                        array(
-                               SURFBAR_GET_ID(),
+                               gerSurfbarId(),
                                getMemberId(),
                                getMemberId(),
-                               SURFBAR_GET_SALT()
+                               gerSurfbarSalt()
                        ), __FUNCTION__, __LINE__);
        } // END - if
 
        // Debug message
                        ), __FUNCTION__, __LINE__);
        } // END - if
 
        // Debug message
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'affectedRows=' . SQL_AFFECTEDROWS() . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'affectedRows=' . SQL_AFFECTEDROWS() . ' - EXIT!');
 
        // Return if the update was okay
        return (!SQL_HASZEROAFFECTED());
 }
 
 // Check if the reload lock is active for given id
 
        // Return if the update was okay
        return (!SQL_HASZEROAFFECTED());
 }
 
 // Check if the reload lock is active for given id
-function SURFBAR_CHECK_RELOAD_LOCK ($urlId) {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $urlId . ' -  ENTERED!');
+function ifSurfbarReloadLock ($urlId) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'id=' . $urlId . ' -  ENTERED!');
        // Ask the database
        $result = SQL_QUERY_ESC("SELECT COUNT(`locks_id`) AS cnt
 FROM
        // Ask the database
        $result = SQL_QUERY_ESC("SELECT COUNT(`locks_id`) AS cnt
 FROM
@@ -1213,7 +1245,7 @@ FROM
 WHERE
        `locks_userid`=%s AND
        `locks_url_id`=%s AND
 WHERE
        `locks_userid`=%s AND
        `locks_url_id`=%s AND
-       (UNIX_TIMESTAMP() - ".SURFBAR_GET_SURF_LOCK().") < UNIX_TIMESTAMP(`locks_last_surfed`)
+       (UNIX_TIMESTAMP() - ".gerSurfbarSurfLock().") < UNIX_TIMESTAMP(`locks_last_surfed`)
 ORDER BY
        `locks_last_surfed` ASC
 LIMIT 1",
 ORDER BY
        `locks_last_surfed` ASC
 LIMIT 1",
@@ -1227,12 +1259,12 @@ LIMIT 1",
        SQL_FREERESULT($result);
 
        // Return check
        SQL_FREERESULT($result);
 
        // Return check
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',count=' . $count . ',SURFBAR_GET_SURF_LOCK()=' . SURFBAR_GET_SURF_LOCK() . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',count=' . $count . ',gerSurfbarSurfLock()=' . gerSurfbarSurfLock() . ' - EXIT!');
        return ($count == 1);
 }
 
 // Determine which user hash no more points left
        return ($count == 1);
 }
 
 // Determine which user hash no more points left
-function SURFBAR_DETERMINE_DEPLETED_USERIDS ($limit=0) {
+function determineSurfbarDepletedUserids ($limit=0) {
        // Init array
        $userids = array(
                'url_userid'   => array(),
        // Init array
        $userids = array(
                'url_userid'   => array(),
@@ -1257,7 +1289,8 @@ INNER JOIN
 ON
        u.`url_userid`=d.`userid`
 WHERE
 ON
        u.`url_userid`=d.`userid`
 WHERE
-       u.`url_userid` NOT IN (%s,0) AND
+       u.`url_userid` NOT IN (%s) AND
+       u.`url_userid` IS NOT NULL AND
        u.`url_status`='ACTIVE'
 GROUP BY
        u.`url_userid`
        u.`url_status`='ACTIVE'
 GROUP BY
        u.`url_userid`
@@ -1287,12 +1320,12 @@ ORDER BY
        while ($content = SQL_FETCHARRAY($result)) {
                // Get total points
                $points = getTotalPoints($content['url_userid']);
        while ($content = SQL_FETCHARRAY($result)) {
                // Get total points
                $points = getTotalPoints($content['url_userid']);
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $content['url_userid'] . ',points=' . $points);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $content['url_userid'] . ',points=' . $points);
 
                // Shall we add this to ignore?
                if ($points <= $limit) {
                        // Ignore this one!
 
                // Shall we add this to ignore?
                if ($points <= $limit) {
                        // Ignore this one!
-                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $content['url_userid'] . ' has depleted points amount!');
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $content['url_userid'] . ' has depleted points amount!');
                        $userids['url_userid'][$content['url_userid']] = $content['url_userid'];
                        $userids['points'][$content['url_userid']]     = $points;
                        $userids['notified'][$content['url_userid']]   = $content['notified'];
                        $userids['url_userid'][$content['url_userid']] = $content['url_userid'];
                        $userids['points'][$content['url_userid']]     = $points;
                        $userids['notified'][$content['url_userid']]   = $content['notified'];
@@ -1303,14 +1336,14 @@ ORDER BY
        SQL_FREERESULT($result);
 
        // Debug message
        SQL_FREERESULT($result);
 
        // Debug message
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UIDs::count=' . count($userids) . ' (with own userid=' . getMemberId() . ')');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UIDs::count=' . count($userids) . ' (with own userid=' . getMemberId() . ')');
 
        // Return result
        return $userids;
 }
 
 // Determine how many users are Online in surfbar
 
        // Return result
        return $userids;
 }
 
 // Determine how many users are Online in surfbar
-function SURFBAR_DETERMINE_TOTAL_ONLINE () {
+function determineSurfbarTotalOnline () {
        // Count all users in surfbar modue and return the value
        $result = SQL_QUERY('SELECT
        `stats_id`
        // Count all users in surfbar modue and return the value
        $result = SQL_QUERY('SELECT
        `stats_id`
@@ -1332,9 +1365,9 @@ GROUP BY
 }
 
 // Determine waiting time for one URL
 }
 
 // Determine waiting time for one URL
-function SURFBAR_DETERMINE_WAIT_TIME () {
+function determineSurfbarWaitingTime () {
        // Get fixed reload lock
        // Get fixed reload lock
-       $fixed = SURFBAR_GET_FIXED_RELOAD();
+       $fixed = getSurfbarFixedReload();
 
        // Is the fixed reload time set?
        if ($fixed > 0) {
 
        // Is the fixed reload time set?
        if ($fixed > 0) {
@@ -1348,7 +1381,7 @@ function SURFBAR_DETERMINE_WAIT_TIME () {
        // Which payment model do we have?
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic time
        // Which payment model do we have?
        if (getSurfbarPaymentModel() == 'DYNAMIC') {
                // "Calculate" dynamic time
-               $time += SURFBAR_CALCULATE_DYNAMIC_ADD();
+               $time += calculateSurfbarDynamicAddValue();
        } // END - if
 
        // Return value
        } // END - if
 
        // Return value
@@ -1356,15 +1389,15 @@ function SURFBAR_DETERMINE_WAIT_TIME () {
 }
 
 // Changes the status of an URL from given to other
 }
 
 // Changes the status of an URL from given to other
-function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data = array()) {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - ENTERED!');
+function changeSurfbarUrlStatus ($urlId, $prevStatus, $newStatus, $data = array()) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',data[]=' . gettype($data) . ',newStatus=' . $newStatus . ' - ENTERED!');
        // 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
        // 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);
+               $data = getSurfbarUrlData($urlId);
        } // END - if
 
        // Prepare array
        } // END - if
 
        // Prepare array
@@ -1373,7 +1406,7 @@ function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data = array()
                'prev_status' => $prevStatus,
                'new_status'  => $newStatus,
                'data'        => $data,
                'prev_status' => $prevStatus,
                'new_status'  => $newStatus,
                'data'        => $data,
-               'abort'       => null
+               'abort'       => NULL
        );
 
        // Run pre filter chain
        );
 
        // Run pre filter chain
@@ -1383,7 +1416,7 @@ function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data = array()
        if (!is_null($filterData['abort'])) {
                // Abort here
                return $filterData['abort'];
        if (!is_null($filterData['abort'])) {
                // Abort here
                return $filterData['abort'];
-       }
+       } // END - if
 
        // Update the status now
        // ---------- Comment out for debugging/developing member actions! ---------
 
        // Update the status now
        // ---------- Comment out for debugging/developing member actions! ---------
@@ -1405,16 +1438,16 @@ function SURFBAR_CHANGE_STATUS ($urlId, $prevStatus, $newStatus, $data = array()
        // Run post filter chain
        $filterData = runFilterChain('post_change_surfbar_url_status', $filterData);
 
        // Run post filter chain
        $filterData = runFilterChain('post_change_surfbar_url_status', $filterData);
 
-       // Extract data from it again
-       $data = $filterData['data'];
+       // Check if generic 'data' is there
+       assert(isset($filterData['data']));
 
        // All done!
 
        // All done!
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',prevStatus=' . $prevStatus . ',newStatus=' . $newStatus . ' - EXIT!');
        return true;
 }
 
 // Calculate minimum value for dynamic payment model
        return true;
 }
 
 // Calculate minimum value for dynamic payment model
-function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
+function calculateSurfbarDynamicMininumValue () {
        // Addon is zero by default
        $addon = '0';
 
        // Addon is zero by default
        $addon = '0';
 
@@ -1425,16 +1458,16 @@ function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
        $totalUsers = getTotalConfirmedUser();
 
        // Get online users
        $totalUsers = getTotalConfirmedUser();
 
        // Get online users
-       $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE();
+       $onlineUsers = determineSurfbarTotalOnline();
 
        // Calculate addon
        $addon += abs(log($onlineUsers / $totalUsers + 1) * $percent * $totalUsers);
 
        // Get total URLs
 
        // Calculate addon
        $addon += abs(log($onlineUsers / $totalUsers + 1) * $percent * $totalUsers);
 
        // Get total URLs
-       $totalUrls = SURFBAR_GET_TOTAL_URLS('ACTIVE', 0);
+       $totalUrls = getSurfbarTotalUrls('ACTIVE', 0);
 
        // Get user's total URLs
 
        // Get user's total URLs
-       $userUrls = SURFBAR_GET_TOTAL_USER_URLS(0, 'ACTIVE');
+       $userUrls = getSurfbarTotalUserUrls(0, 'ACTIVE');
 
        // Calculate addon
        if ($totalUrls > 0) {
 
        // Calculate addon
        if ($totalUrls > 0) {
@@ -1448,7 +1481,7 @@ function SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE () {
 }
 
 // Calculate maximum value for dynamic payment model
 }
 
 // Calculate maximum value for dynamic payment model
-function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
+function calculateSurfbarDynamicMaximumValue () {
        // Addon is zero by default
        $addon = '0';
 
        // Addon is zero by default
        $addon = '0';
 
@@ -1465,7 +1498,7 @@ function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
        $addon += abs($max * $percent * $totalUsers);
 
        // Get total URLs
        $addon += abs($max * $percent * $totalUsers);
 
        // Get total URLs
-       $totalUrls = SURFBAR_GET_TOTAL_URLS('ACTIVE', 0);
+       $totalUrls = getSurfbarTotalUrls('ACTIVE', 0);
 
        // Calculate addon
        $addon += abs($max * $percent * $totalUrls);
 
        // Calculate addon
        $addon += abs($max * $percent * $totalUrls);
@@ -1475,12 +1508,12 @@ function SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE () {
 }
 
 // Calculate dynamic lock
 }
 
 // Calculate dynamic lock
-function SURFBAR_CALCULATE_DYNAMIC_LOCK () {
+function calculateSurfbarDynamicLock () {
        // Default lock is 30 seconds
        $addon = 30;
 
        // Get online users
        // Default lock is 30 seconds
        $addon = 30;
 
        // Get online users
-       $onlineUsers = SURFBAR_DETERMINE_TOTAL_ONLINE();
+       $onlineUsers = determineSurfbarTotalOnline();
 
        // Calculate lock
        $addon = abs(log($onlineUsers / $addon + 1));
 
        // Calculate lock
        $addon = abs(log($onlineUsers / $addon + 1));
@@ -1490,7 +1523,7 @@ function SURFBAR_CALCULATE_DYNAMIC_LOCK () {
 }
 
 // "Getter" for lock ids array
 }
 
 // "Getter" for lock ids array
-function SURFBAR_GET_LOCK_IDS () {
+function getSurfbarLockIdsArray () {
        // Prepare some arrays
        $IDs = array();
        $USE = array();
        // Prepare some arrays
        $IDs = array();
        $USE = array();
@@ -1512,17 +1545,17 @@ ORDER BY
        // Load all entries
        while ($content = SQL_FETCHARRAY($result)) {
                // Debug message
        // Load all entries
        while ($content = SQL_FETCHARRAY($result)) {
                // Debug message
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'next - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',rest='.(time() - $content['last_surfed']).'/'.SURFBAR_GET_SURF_LOCK());
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'next - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',rest='.(time() - $content['last_surfed']).'/'.gerSurfbarSurfLock());
 
                // Skip entries that are too old
 
                // Skip entries that are too old
-               if (($content['last_surfed'] > (time() - SURFBAR_GET_SURF_LOCK())) && (!in_array($content['locks_url_id'], $ignored))) {
+               if (($content['last_surfed'] > (time() - gerSurfbarSurfLock())) && (!in_array($content['locks_url_id'], $ignored))) {
                        // Debug message
                        // Debug message
-                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'okay - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'okay - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
 
                        // Add only if missing or bigger
                        if ((!isset($IDs[$content['locks_url_id']])) || ($IDs[$content['locks_url_id']] > $content['last_surfed'])) {
                                // Debug message
 
                        // Add only if missing or bigger
                        if ((!isset($IDs[$content['locks_url_id']])) || ($IDs[$content['locks_url_id']] > $content['last_surfed'])) {
                                // Debug message
-                               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ADD - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ADD - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
 
                                // Add this id
                                $IDs[$content['locks_url_id']] = $content['last_surfed'];
 
                                // Add this id
                                $IDs[$content['locks_url_id']] = $content['last_surfed'];
@@ -1530,10 +1563,10 @@ ORDER BY
                        } // END - if
                } else {
                        // Debug message
                        } // END - if
                } else {
                        // Debug message
-                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ignore - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ignore - lid='.$content['locks_id'].',url='.$content['locks_url_id'].',last='.$content['last_surfed']);
 
                        // Ignore these old entries!
 
                        // Ignore these old entries!
-                       $ignored[] = $content['locks_url_id'];
+                       array_push($ignored, $content['locks_url_id']);
                        unset($IDs[$content['locks_url_id']]);
                        unset($USE[$content['locks_url_id']]);
                }
                        unset($IDs[$content['locks_url_id']]);
                        unset($USE[$content['locks_url_id']]);
                }
@@ -1547,7 +1580,7 @@ ORDER BY
 }
 
 // "Getter" for maximum random number
 }
 
 // "Getter" for maximum random number
-function SURFBAR_GET_MAX_RANDOM ($userids, $add) {
+function getSurfbarMaximumRandom ($userids, $add) {
        // Count max availabe entries
        $result = SQL_QUERY("SELECT
        sbu.url_id AS cnt
        // Count max availabe entries
        $result = SQL_QUERY("SELECT
        sbu.url_id AS cnt
@@ -1570,7 +1603,7 @@ GROUP BY
        sbu.url_id ASC", __FUNCTION__, __LINE__);
 
        // Log last query
        sbu.url_id ASC", __FUNCTION__, __LINE__);
 
        // Log last query
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.SQL_NUMROWS($result).'|Affected='.SQL_AFFECTEDROWS());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.SQL_NUMROWS($result).'|Affected='.SQL_AFFECTEDROWS());
 
        // Fetch max rand
        $maxRand = SQL_NUMROWS($result);
 
        // Fetch max rand
        $maxRand = SQL_NUMROWS($result);
@@ -1583,20 +1616,20 @@ GROUP BY
 }
 
 // Load all URLs of the current user and return it as an array
 }
 
 // Load all URLs of the current user and return it as an array
-function SURFBAR_GET_USER_URLS () {
+function getSurfbarUserUrls () {
        // Init array
        $urlArray = array();
 
        // Begin the query
        $result = SQL_QUERY_ESC("SELECT
        // Init array
        $urlArray = array();
 
        // Begin the query
        $result = SQL_QUERY_ESC("SELECT
-       u.url_id,
-       u.url_userid,
-       u.url,
-       u.url_status,
-       u.url_views_total,
-       u.url_views_max,
-       u.url_views_allowed,
-       UNIX_TIMESTAMP(u.url_registered) AS `url_registered`,
+       u.`url_id`,
+       u.`url_userid`,
+       u.`url`,
+       u.`url_status`,
+       u.`url_views_total`,
+       u.`url_views_max`,
+       u.`url_views_allowed`,
+       UNIX_TIMESTAMP(u.`url_registered`) AS `url_registered`,
        UNIX_TIMESTAMP(u.`url_last_locked`) AS `url_last_locked`,
        u.`url_lock_reason`
 FROM
        UNIX_TIMESTAMP(u.`url_last_locked`) AS `url_last_locked`,
        u.`url_lock_reason`
 FROM
@@ -1605,8 +1638,8 @@ WHERE
        u.`url_userid`=%s AND
        u.`url_status` != 'DELETED'
 ORDER BY
        u.`url_userid`=%s AND
        u.`url_status` != 'DELETED'
 ORDER BY
-       u.url_id ASC",
-       array(getMemberId()), __FUNCTION__, __LINE__);
+       u.`url_id` ASC",
+               array(getMemberId()), __FUNCTION__, __LINE__);
 
        // Are there entries?
        if (!SQL_HASZERONUMS($result)) {
 
        // Are there entries?
        if (!SQL_HASZERONUMS($result)) {
@@ -1625,7 +1658,7 @@ ORDER BY
 }
 
 // "Getter" for member action array for given status
 }
 
 // "Getter" for member action array for given status
-function SURFBAR_GET_ARRAY_FROM_STATUS ($status) {
+function getSurfbarArrayFromStatus ($status) {
        // Init array
        $returnArray = array();
 
        // Init array
        $returnArray = array();
 
@@ -1638,7 +1671,7 @@ function SURFBAR_GET_ARRAY_FROM_STATUS ($status) {
                // Load all actions
                // @TODO This can be somehow rewritten
                while ($content = SQL_FETCHARRAY($result)) {
                // Load all actions
                // @TODO This can be somehow rewritten
                while ($content = SQL_FETCHARRAY($result)) {
-                       $returnArray[] = $content['actions_action'];
+                       array_push($returnArray, $content['actions_action']);
                } // END - if
        } // END - if
 
                } // END - if
        } // END - if
 
@@ -1650,9 +1683,9 @@ function SURFBAR_GET_ARRAY_FROM_STATUS ($status) {
 }
 
 // Reload to configured stop page
 }
 
 // Reload to configured stop page
-function SURFBAR_RELOAD_TO_STOP_PAGE ($page = 'stop') {
+function redirectToSurfbarStopPage ($page = 'stop') {
        // Internal or external?
        // Internal or external?
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'page=' . $page . ' - ENTERED!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'page=' . $page . ' - ENTERED!');
        if ((getConfig('surfbar_pause_mode') == 'INTERNAL') || (getConfig('surfbar_pause_url') == '')) {
                // Reload to internal page
                redirectToUrl('surfbar.php?frame=' . $page);
        if ((getConfig('surfbar_pause_mode') == 'INTERNAL') || (getConfig('surfbar_pause_url') == '')) {
                // Reload to internal page
                redirectToUrl('surfbar.php?frame=' . $page);
@@ -1662,10 +1695,12 @@ function SURFBAR_RELOAD_TO_STOP_PAGE ($page = 'stop') {
        }
 }
 
        }
 }
 
-// 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 = NULL) {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ' - ENTERED!');
+/**
+ * Determine next id for surfbar or get data for given id, always call this
+ * before you call other getters below this function!
+ */
+function determineSurfbarNextId ($urlId = NULL) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ' - ENTERED!');
        // Default is no id and no random number
        $nextId = '0';
        $randNum = '0';
        // Default is no id and no random number
        $nextId = '0';
        $randNum = '0';
@@ -1673,7 +1708,7 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = NULL) {
        // Is the id set?
        if (is_null($urlId)) {
                // Get array with lock ids
        // Is the id set?
        if (is_null($urlId)) {
                // Get array with lock ids
-               $USE = SURFBAR_GET_LOCK_IDS();
+               $USE = getSurfbarLockIdsArray();
 
                // Shall we add some URL ids to ignore?
                $add = '';
 
                // Shall we add some URL ids to ignore?
                $add = '';
@@ -1690,10 +1725,10 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = NULL) {
                } // END - if
 
                // Determine depleted user account
                } // END - if
 
                // Determine depleted user account
-               $userids = SURFBAR_DETERMINE_DEPLETED_USERIDS();
+               $userids = determineSurfbarDepletedUserids();
 
                // Get maximum randomness factor
 
                // Get maximum randomness factor
-               $maxRand = SURFBAR_GET_MAX_RANDOM($userids['url_userid'], $add);
+               $maxRand = getSurfbarMaximumRandom($userids['url_userid'], $add);
 
                // If more than one URL can be called generate the random number!
                if ($maxRand > 1) {
 
                // If more than one URL can be called generate the random number!
                if ($maxRand > 1) {
@@ -1702,7 +1737,7 @@ function SURFBAR_DETERMINE_NEXT_ID ($urlId = NULL) {
                } // END - if
 
                // And query the database
                } // END - if
 
                // And query the database
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'randNum='.$randNum.',maxRand='.$maxRand.',surfLock='.SURFBAR_GET_SURF_LOCK());
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'randNum='.$randNum.',maxRand='.$maxRand.',surfLock='.gerSurfbarSurfLock());
                $result = SQL_QUERY_ESC("SELECT
        sbu.url_id,
        sbu.url_userid,
                $result = SQL_QUERY_ESC("SELECT
        sbu.url_id,
        sbu.url_userid,
@@ -1724,7 +1759,7 @@ LEFT JOIN
 ON
        sbu.url_id=l.locks_url_id
 WHERE
 ON
        sbu.url_id=l.locks_url_id
 WHERE
-       sbu.`url_userid` NOT IN (".implode(',', $userids['url_userid']).") AND
+       (sbu.`url_userid` NOT IN (".implode(',', $userids['url_userid']).") OR sbu.`url_userid` IS NULL) AND
        sbu.url_status='ACTIVE' AND
        (sbu.url_views_allowed=0 OR (sbu.url_views_allowed > 0 AND sbu.url_views_max > 0))
        ".$add."
        sbu.url_status='ACTIVE' AND
        (sbu.url_views_allowed=0 OR (sbu.url_views_allowed > 0 AND sbu.url_views_max > 0))
        ".$add."
@@ -1759,7 +1794,7 @@ LEFT JOIN
 ON
        sbu.url_id=l.locks_url_id
 WHERE
 ON
        sbu.url_id=l.locks_url_id
 WHERE
-       sbu.url_userid != %s AND
+       (sbu.url_userid != %s OR sbu.url_userid IS NULL) AND
        sbu.url_status='ACTIVE' AND
        sbu.url_id=%s AND
        (sbu.url_views_allowed=0 OR (sbu.url_views_allowed > 0 AND sbu.url_views_max > 0))
        sbu.url_status='ACTIVE' AND
        sbu.url_id=%s AND
        (sbu.url_views_allowed=0 OR (sbu.url_views_allowed > 0 AND sbu.url_views_max > 0))
@@ -1769,52 +1804,52 @@ LIMIT 1",
        }
 
        // Is there an id number?
        }
 
        // Is there an id number?
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.SQL_NUMROWS($result).'|Affected='.SQL_AFFECTEDROWS());
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'lastQuery='.getConfig('db_last_query').'|numRows='.SQL_NUMROWS($result).'|Affected='.SQL_AFFECTEDROWS());
        if (SQL_NUMROWS($result) == 1) {
                // Load/cache data
        if (SQL_NUMROWS($result) == 1) {
                // Load/cache data
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - BEFORE', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - BEFORE', false);
                $GLOBALS['surfbar_cache'] = merge_array($GLOBALS['surfbar_cache'], SQL_FETCHARRAY($result));
                $GLOBALS['surfbar_cache'] = merge_array($GLOBALS['surfbar_cache'], SQL_FETCHARRAY($result));
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - AFTER', false);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'count('.count($GLOBALS['surfbar_cache']).') - AFTER', false);
 
                // Determine waiting time
 
                // Determine waiting time
-               $GLOBALS['surfbar_cache']['time'] = SURFBAR_DETERMINE_WAIT_TIME();
+               $GLOBALS['surfbar_cache']['time'] = determineSurfbarWaitingTime();
 
                // Is the last salt there?
                if (is_null($GLOBALS['surfbar_cache']['salts_last_salt'])) {
                        // Then repair it wit the static!
 
                // Is the last salt there?
                if (is_null($GLOBALS['surfbar_cache']['salts_last_salt'])) {
                        // Then repair it wit the static!
-                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_salt - FIXED!', false);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_salt - FIXED!', false);
                        $GLOBALS['surfbar_cache']['salts_last_salt'] = '';
                } // END - if
 
                // Fix missing last_surfed
                if ((!isset($GLOBALS['surfbar_cache']['last_surfed'])) || (is_null($GLOBALS['surfbar_cache']['last_surfed']))) {
                        // Fix it here
                        $GLOBALS['surfbar_cache']['salts_last_salt'] = '';
                } // END - if
 
                // Fix missing last_surfed
                if ((!isset($GLOBALS['surfbar_cache']['last_surfed'])) || (is_null($GLOBALS['surfbar_cache']['last_surfed']))) {
                        // Fix it here
-                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_surfed - FIXED!', false);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'last_surfed - FIXED!', false);
                        $GLOBALS['surfbar_cache']['last_surfed'] = '0';
                } // END - if
 
                // Get base/fixed reward and costs
                        $GLOBALS['surfbar_cache']['last_surfed'] = '0';
                } // END - if
 
                // Get base/fixed reward and costs
-               $GLOBALS['surfbar_cache']['reward'] = SURFBAR_DETERMINE_REWARD();
-               $GLOBALS['surfbar_cache']['costs']  = SURFBAR_DETERMINE_COSTS();
-               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'BASE/STATIC - reward='.SURFBAR_GET_REWARD().'|costs='.SURFBAR_GET_COSTS());
+               $GLOBALS['surfbar_cache']['reward'] = determineSurfbarReward();
+               $GLOBALS['surfbar_cache']['costs']  = determineSurfbarCosts();
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'BASE/STATIC - reward='.gerSurfbarReward().'|costs='.gerSurfbarCosts());
 
                // Only in dynamic model add the dynamic bonus!
                if (getSurfbarPaymentModel() == 'DYNAMIC') {
                        // Calculate dynamic reward/costs and add it
 
                // Only in dynamic model add the dynamic bonus!
                if (getSurfbarPaymentModel() == 'DYNAMIC') {
                        // Calculate dynamic reward/costs and add it
-                       $GLOBALS['surfbar_cache']['reward'] += SURFBAR_CALCULATE_DYNAMIC_ADD();
-                       $GLOBALS['surfbar_cache']['costs']  += SURFBAR_CALCULATE_DYNAMIC_ADD();
-                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DYNAMIC+ - reward='.SURFBAR_GET_REWARD().'|costs='.SURFBAR_GET_COSTS());
+                       $GLOBALS['surfbar_cache']['reward'] += calculateSurfbarDynamicAddValue();
+                       $GLOBALS['surfbar_cache']['costs']  += calculateSurfbarDynamicAddValue();
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'DYNAMIC+ - reward='.gerSurfbarReward().'|costs='.gerSurfbarCosts());
                } // END - if
 
                // Now get the id
                } // END - if
 
                // Now get the id
-               $nextId = SURFBAR_GET_ID();
+               $nextId = gerSurfbarId();
        } // END - if
 
        // Free result
        SQL_FREERESULT($result);
 
        // Return result
        } // END - if
 
        // Free result
        SQL_FREERESULT($result);
 
        // Return result
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',nextId=' . $nextId . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'urlId=' . $urlId . ',nextId=' . $nextId . ' - EXIT!');
        return $nextId;
 }
 
        return $nextId;
 }
 
@@ -1882,122 +1917,189 @@ function getSurfbarPaymentModel () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
+//------------------------------------------------------------------------------
+//                             Template helper functions
+//------------------------------------------------------------------------------
+
+// Template helper to generate a selection box for surfbar actions
+function doTemplateSurfbarActionsActionSelectionBox ($templateName, $clear = false, $default = NULL) {
+       // Init array
+       $actionsAction = array(
+               0 => array('actions_action' => 'EDIT'),
+               1 => array('actions_action' => 'DELETE'),
+               2 => array('actions_action' => 'PAUSE'),
+               3 => array('actions_action' => 'UNPAUSE'),
+               4 => array('actions_action' => 'FRAMETEST'),
+               5 => array('actions_action' => 'RETREAT'),
+               6 => array('actions_action' => 'RESUBMIT'),
+               7 => array('actions_action' => 'BOOKNOW')
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($actionsAction, 'surfbar_actions_action', 'actions_action', '', '', '', $default, '', false, true);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper to generate a selection box for surfbar status
+function doTemplateSurfbarActionsStatusSelectionBox ($templateName, $clear = false, $default = NULL) {
+       // Init array
+       $status = array(
+               0 => array('actions_status' => 'PENDING'),
+               1 => array('actions_status' => 'ACTIVE'),
+               2 => array('actions_status' => 'LOCKED'),
+               3 => array('actions_status' => 'STOPPED'),
+               4 => array('actions_status' => 'REJECTED'),
+               5 => array('actions_status' => 'DELETED'),
+               6 => array('actions_status' => 'MIGRATED'),
+               7 => array('actions_status' => 'DEPLETED')
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($status, 'surfbar_actions_status', 'actions_status', '', '', '', $default, '', false, true);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper to generate a selection box for surfbar status
+function doTemplateSurfbarActionsNewStatusSelectionBox ($templateName, $clear = false, $default = NULL) {
+       // Init array
+       $status = array(
+               0 => array('actions_new_status' => 'PENDING'),
+               1 => array('actions_new_status' => 'ACTIVE'),
+               2 => array('actions_new_status' => 'LOCKED'),
+               3 => array('actions_new_status' => 'STOPPED'),
+               4 => array('actions_new_status' => 'REJECTED'),
+               5 => array('actions_new_status' => 'DELETED'),
+               6 => array('actions_new_status' => 'MIGRATED'),
+               7 => array('actions_new_status' => 'DEPLETED')
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($status, 'surfbar_actions_new_status', 'actions_new_status', '', '', '', $default, '', true, true);
+
+       // Return prepared content
+       return $content;
+}
+
 //------------------------------------------------------------------------------
 // PLEASE DO NOT ADD ANY OTHER FUNCTIONS BELOW THIS LINE IF THEY DON'T "WRAP"
 // THE $GLOBALS['surfbar_cache'] ARRAY!
 //------------------------------------------------------------------------------
 
 // Initializes the surfbar
 //------------------------------------------------------------------------------
 // PLEASE DO NOT ADD ANY OTHER FUNCTIONS BELOW THIS LINE IF THEY DON'T "WRAP"
 // THE $GLOBALS['surfbar_cache'] ARRAY!
 //------------------------------------------------------------------------------
 
 // Initializes the surfbar
-function SURFBAR_INIT () {
+function initSurfbar () {
        // Init cache array
        $GLOBALS['surfbar_cache'] = array();
 }
 
 // Private getter for data elements
        // Init cache array
        $GLOBALS['surfbar_cache'] = array();
 }
 
 // Private getter for data elements
-function SURFBAR_GET_DATA ($element) {
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ' - ENTERED!');
+function getSurfbarData ($element) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ' - ENTERED!');
 
        // Default is null
        $data = NULL;
 
        // Is the entry there?
 
        // Default is null
        $data = NULL;
 
        // Is the entry there?
-       if (isset($GLOBALS['surfbar_cache'][$element])) {
+       if ((isset($GLOBALS['surfbar_cache'][$element])) || (is_null($GLOBALS['surfbar_cache'][$element]))) {
                // Then take it
                $data = $GLOBALS['surfbar_cache'][$element];
        } else { // END - if
                // Then take it
                $data = $GLOBALS['surfbar_cache'][$element];
        } else { // END - if
-               print('<pre>');
+               print('surfbar_cache=<pre>');
                print_r($GLOBALS['surfbar_cache']);
                print('</pre>');
                print_r($GLOBALS['surfbar_cache']);
                print('</pre>');
-               debug_report_bug(__FUNCTION__, __LINE__, 'Element ' . $element . ' not found.');
+               reportBug(__FUNCTION__, __LINE__, 'Element ' . $element . ' not found.');
        }
 
        // Return result
        }
 
        // Return result
-       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element[' . $element . ']=[' . gettype($data) . ']' . $data . ' - EXIT!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element[' . $element . ']=[' . gettype($data) . ']' . $data . ' - EXIT!');
        return $data;
 }
 
 // Getter for reward from cache
        return $data;
 }
 
 // Getter for reward from cache
-function SURFBAR_GET_REWARD () {
+function gerSurfbarReward () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('reward');
+       return getSurfbarData('reward');
 }
 
 // Getter for costs from cache
 }
 
 // Getter for costs from cache
-function SURFBAR_GET_COSTS () {
+function gerSurfbarCosts () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('costs');
+       return getSurfbarData('costs');
 }
 
 // Getter for URL from cache
 }
 
 // Getter for URL from cache
-function SURFBAR_GET_URL () {
+function gerSurfbarUrl () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url');
+       return getSurfbarData('url');
 }
 
 // Getter for salt from cache
 }
 
 // Getter for salt from cache
-function SURFBAR_GET_SALT () {
+function gerSurfbarSalt () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('salt');
+       return getSurfbarData('salt');
 }
 
 // Getter for id from cache
 }
 
 // Getter for id from cache
-function SURFBAR_GET_ID () {
+function gerSurfbarId () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_id');
+       return getSurfbarData('url_id');
 }
 
 // Getter for userid from cache
 }
 
 // Getter for userid from cache
-function SURFBAR_GET_USERID () {
+function gerSurfbarUserid () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_userid');
+       return getSurfbarData('url_userid');
 }
 
 // Getter for user reload locks
 }
 
 // Getter for user reload locks
-function SURFBAR_GET_USER_LOCKS () {
+function getSurfbarUserLocks () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('user_locks');
+       return getSurfbarData('user_locks');
 }
 
 // Getter for reload time
 }
 
 // Getter for reload time
-function SURFBAR_GET_RELOAD_TIME () {
+function gerSurfbarReloadTime () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('time');
+       return getSurfbarData('time');
 }
 
 // Getter for allowed views
 }
 
 // Getter for allowed views
-function SURFBAR_GET_VIEWS_ALLOWED () {
+function gerSurfbarViewsAllowed () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_views_allowed');
+       return getSurfbarData('url_views_allowed');
 }
 
 // Getter for maximum views
 }
 
 // Getter for maximum views
-function SURFBAR_GET_VIEWS_MAX () {
+function gerSurfbarViewsMax () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_views_max');
+       return getSurfbarData('url_views_max');
 }
 
 // Getter for fixed reload
 }
 
 // Getter for fixed reload
-function SURFBAR_GET_FIXED_RELOAD () {
+function getSurfbarFixedReload () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('url_fixed_reload');
+       return getSurfbarData('url_fixed_reload');
 }
 
 // Getter for surf lock
 }
 
 // Getter for surf lock
-function SURFBAR_GET_SURF_LOCK () {
+function gerSurfbarSurfLock () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('surf_lock');
+       return getSurfbarData('surf_lock');
 }
 
 // Getter for new status
 }
 
 // Getter for new status
-function SURFBAR_GET_NEW_STATUS () {
+function gerSurfbarNewStatus () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('new_status');
+       return getSurfbarData('new_status');
 }
 
 // Getter for last salt
 }
 
 // Getter for last salt
-function SURFBAR_GET_LAST_SALT () {
+function gerSurfbarLastSalt () {
        // Get data element and return its contents
        // Get data element and return its contents
-       return SURFBAR_GET_DATA('salts_last_salt');
+       return getSurfbarData('salts_last_salt');
 }
 
 // [EOF]
 }
 
 // [EOF]
index 5f705a06b52fb653168ae7cf7a839569c769b63a..b8258a4d0d13dca5cb7d4d0ac73a926cea83efee 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -67,7 +67,7 @@ function outputAdvancedOverview (&$result_main) {
        foreach (
                array(
                        // Member accounts
        foreach (
                array(
                        // Member accounts
-                       'confirmed_members','unconfirmed_members','locked_members','random_refid',
+                       'confirmed_members','unconfirmed_members','locked_members','random_refid','testers',
                        // Tasks
                        'update_tasks','new_tasks','closed_tasks','your_tasks','deleted_tasks','solved_tasks',
                        // Mail orders
                        // Tasks
                        'update_tasks','new_tasks','closed_tasks','your_tasks','deleted_tasks','solved_tasks',
                        // Mail orders
@@ -93,19 +93,17 @@ function outputAdvancedOverview (&$result_main) {
        //
        // Confirmed accounts
        $value = getTotalConfirmedUser();
        //
        // Confirmed accounts
        $value = getTotalConfirmedUser();
-
        if ($value > 0) {
                $content['confirmed_members'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;status=confirmed%}">' . $value . '</a>';
        } // END - if
 
        // Unconfirmed accounts
        $value = getTotalUnconfirmedUser();
        if ($value > 0) {
                $content['confirmed_members'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;status=confirmed%}">' . $value . '</a>';
        } // END - if
 
        // Unconfirmed accounts
        $value = getTotalUnconfirmedUser();
-
        if ($value > 0) {
                $content['unconfirmed_members'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;status=UNCONFIRMED%}">' . $value . '</a>';
        } // END - if
 
        if ($value > 0) {
                $content['unconfirmed_members'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;status=UNCONFIRMED%}">' . $value . '</a>';
        } // END - if
 
-       // And locked accounts
+       // Locked accounts
        $value = getTotalLockedUser();
        if ($value > 0) {
                $content['locked_members'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;status=locked%}">' . $value . '</a>';
        $value = getTotalLockedUser();
        if ($value > 0) {
                $content['locked_members'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;status=locked%}">' . $value . '</a>';
@@ -117,6 +115,14 @@ function outputAdvancedOverview (&$result_main) {
                if ($value > 0) {
                        $content['random_refid'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;do=random_refid%}">' . $value . '</a>';
                } // END - if
                if ($value > 0) {
                        $content['random_refid'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;do=random_refid%}">' . $value . '</a>';
                } // END - if
+
+               if (isExtensionInstalledAndNewer('user', '0.5.0')) {
+                       // And tester accounts
+                       $value = getTotalTesterUsers();
+                       if ($value > 0) {
+                               $content['testers'] = '<a href="{%url=modules.php?module=admin&amp;what=list_user&amp;do=testers%}">' . $value . '</a>';
+                       } // END - if
+               } // END - if
        } // END - if
 
        //
        } // END - if
 
        //
@@ -241,7 +247,7 @@ function outputAdvancedOverview (&$result_main) {
        // Both extensions must be there
        if ((isExtensionActive('autopurge')) && (isExtensionActive('user'))) {
                // Start finding them...
        // Both extensions must be there
        if ((isExtensionActive('autopurge')) && (isExtensionActive('user'))) {
                // Start finding them...
-               $EXCLUDE_LIST = '';
+               $EXCLUDE_LIST = ' ';
 
                // Check for more extensions
                // @TODO These can be rewritten to filter
 
                // Check for more extensions
                // @TODO These can be rewritten to filter
@@ -253,28 +259,35 @@ function outputAdvancedOverview (&$result_main) {
                        // Recent ext-holiday found
                        $EXCLUDE_LIST .= " AND d.`holiday_active`='N'";
                } // END - if
                        // Recent ext-holiday found
                        $EXCLUDE_LIST .= " AND d.`holiday_active`='N'";
                } // END - if
+               if (isExtensionInstalledAndNewer('user', '0.5.0')) {
+                       // Exclude test accounts
+                       $EXCLUDE_LIST = runFilterChain('user_exclusion_sql', $EXCLUDE_LIST);
+               } // END - if
 
                // Check for all accounts
                addSql("SELECT
 
                // Check for all accounts
                addSql("SELECT
-       d.userid, d.email, d.last_online
+       d.`userid`,
+       d.`email`,
+       d.`last_online`
 FROM
        `{?_MYSQL_PREFIX?}_user_data` AS d
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data` AS d
 WHERE
-       d.`status`='CONFIRMED' AND
+       d.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
        (UNIX_TIMESTAMP() - d.`joined`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - d.`last_online`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - d.`ap_notified`) >= {?ap_inactive_since?}
 ".$EXCLUDE_LIST."
 ORDER BY
        (UNIX_TIMESTAMP() - d.`joined`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - d.`last_online`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - d.`ap_notified`) >= {?ap_inactive_since?}
 ".$EXCLUDE_LIST."
 ORDER BY
-       d.userid ASC");
+       d.`userid` ASC");
                $WHATs[]  = 'list_autopurge';
                $DESCRs[] = '{--ADMIN_TASK_INACTIVE_AUTOPURGE--}';
                $TITLEs[] = '{--ADMIN_TASK_INACTIVE_AUTOPURGE_TITLE--}';
                $WHATs[]  = 'list_autopurge';
                $DESCRs[] = '{--ADMIN_TASK_INACTIVE_AUTOPURGE--}';
                $TITLEs[] = '{--ADMIN_TASK_INACTIVE_AUTOPURGE_TITLE--}';
-       }
+       } // END - if
 
        if ((isExtensionInstalledAndNewer('sql_patches', '0.3.4')) && (isExtensionActive('user'))) {
                // Check for accounts without referral
 
        if ((isExtensionInstalledAndNewer('sql_patches', '0.3.4')) && (isExtensionActive('user'))) {
                // Check for accounts without referral
-               addSql("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `refid`=0 OR `refid` IS NULL ORDER BY `userid` ASC");
+               addSql('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `refid`=0 OR `refid` IS NULL ' . runFilterChain('user_exclusion_sql', ' ') . ' ORDER BY `userid` ASC');
                $DESCRs[] = '{--ADMIN_TASK_LIST_ACCOUNT_NO_REFERRAL--}';
                $TITLEs[] = '{--ADMIN_TASK_LIST_ACCOUNT_NO_REFERRAL_TITLE--}';
                $WHATs[]  = 'list_user&amp;do=norefs';
                $DESCRs[] = '{--ADMIN_TASK_LIST_ACCOUNT_NO_REFERRAL--}';
                $TITLEs[] = '{--ADMIN_TASK_LIST_ACCOUNT_NO_REFERRAL_TITLE--}';
                $WHATs[]  = 'list_user&amp;do=norefs';
@@ -300,14 +313,6 @@ ORDER BY
                $TITLEs[] = '{--ADMIN_TASK_LIST_WERNIS_ALL_TITLE--}';
        } // END - if
 
                $TITLEs[] = '{--ADMIN_TASK_LIST_WERNIS_ALL_TITLE--}';
        } // END - if
 
-       if (isExtensionActive('primera')) {
-               // List new primera requests
-               addSql('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_primera` ORDER BY `userid` ASC');
-               $WHATs[]  = 'list_primera';
-               $DESCRs[] = '{--ADMIN_TASK_LIST_PRIMERA_ALL--}';
-               $TITLEs[] = '{--ADMIN_TASK_LIST_PRIMERA_ALL_TITLE--}';
-       } // END - if
-
        if (isExtensionActive('holiday')) {
                // List holiday requests
                addSql('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_holidays` ORDER BY `userid` ASC');
        if (isExtensionActive('holiday')) {
                // List holiday requests
                addSql('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_holidays` ORDER BY `userid` ASC');
@@ -330,9 +335,9 @@ ORDER BY
                $add = runFilterChain('add_bonus_points_user_columns', '');
 
                // Active rallye, so add more point columns, if not empty
                $add = runFilterChain('add_bonus_points_user_columns', '');
 
                // Active rallye, so add more point columns, if not empty
-               $USE = '`turbo_bonus`';
+               $pointsColumns = '`turbo_bonus`';
                if (!empty($add)) {
                if (!empty($add)) {
-                       $USE = '(0' . $add . ')';
+                       $pointsColumns = '(0' . $add . ')';
                } // END - if
 
                // Init variable
                } // END - if
 
                // Init variable
@@ -345,12 +350,12 @@ ORDER BY
                } // END - if
 
                addSql("SELECT
                } // END - if
 
                addSql("SELECT
-       " . $USE . " AS `points`
+       " . $pointsColumns . " AS `points`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED' AND
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED' AND
-       " . $USE . " > 0
+       " . $pointsColumns . " > 0
        " . $lastOnline . "
 ORDER BY
        `points` DESC,
        " . $lastOnline . "
 ORDER BY
        `points` DESC,
index c114071e338b70312b23c466278f16550e91a16f..02b8ea4c1538e837de0f127f1b92166ec4cfa2b6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -81,8 +81,8 @@ ORDER BY
                if (isIncludeReadable($inc)) {
                        // And save all data in array
                        loadInclude($inc);
                if (isIncludeReadable($inc)) {
                        // And save all data in array
                        loadInclude($inc);
-                       $themesArray['theme_unix'][] = $content['theme_path'];
-                       $themesArray['theme_name'][] = $GLOBALS['theme_data']['name'];
+                       array_push($themesArray['theme_unix'], $content['theme_path']);
+                       array_push($themesArray['theme_name'], $GLOBALS['theme_data']['name']);
                } // END - if
        } // END - while
 
                } // END - if
        } // END - while
 
@@ -145,7 +145,7 @@ function getThemeVersion ($name) {
        return $cver;
 }
 
        return $cver;
 }
 
-// Checks wether a theme is found in db
+// Checks whether a theme is found in db
 function ifThemeExists ($name) {
        // Get theme and is it not nul?
        return ((isExtensionActive('theme')) && (getThemeId($name) > 0));
 function ifThemeExists ($name) {
        // Get theme and is it not nul?
        return ((isExtensionActive('theme')) && (getThemeId($name) > 0));
@@ -225,12 +225,14 @@ function getActualTheme () {
        $ret = 'default';
 
        // Load default theme if not empty from configuration
        $ret = 'default';
 
        // Load default theme if not empty from configuration
-       if ((isConfigEntrySet('default_theme')) && (getConfig('default_theme') != '')) $ret = getConfig('default_theme');
+       if ((isConfigEntrySet('default_theme')) && (getConfig('default_theme') != '')) {
+               $ret = getConfig('default_theme');
+       } // END - if
 
 
-       if (!isSessionVariableSet('mailer_theme')) {
+       if (!isMailerThemeSet()) {
                // Set default theme
                // Set default theme
-               setTheme($ret);
-       } elseif ((isSessionVariableSet('mailer_theme')) && (isExtensionInstalledAndNewer('sql_patches', '0.1.4'))) {
+               setMailerTheme($ret);
+       } elseif ((isMailerThemeSet()) && (isExtensionInstalledAndNewer('sql_patches', '0.1.4'))) {
                //die("<pre>".print_r($GLOBALS['cache_array']['themes'], true)."</pre>");
                // Get theme from cookie
                $ret = getSession('mailer_theme');
                //die("<pre>".print_r($GLOBALS['cache_array']['themes'], true)."</pre>");
                // Get theme from cookie
                $ret = getSession('mailer_theme');
@@ -247,31 +249,23 @@ function getActualTheme () {
                // Installation mode active
                if ((isGetRequestElementSet('theme')) && (isIncludeReadable($theme))) {
                        // Set cookie from URL data
                // Installation mode active
                if ((isGetRequestElementSet('theme')) && (isIncludeReadable($theme))) {
                        // Set cookie from URL data
-                       setTheme(getRequestElement('theme'));
+                       setMailerTheme(getRequestElement('theme'));
                } elseif (isIncludeReadable(sprintf("theme/%s/theme.php", postRequestElement('theme')))) {
                        // Set cookie from posted data
                } elseif (isIncludeReadable(sprintf("theme/%s/theme.php", postRequestElement('theme')))) {
                        // Set cookie from posted data
-                       setTheme(postRequestElement('theme'));
+                       setMailerTheme(postRequestElement('theme'));
                }
 
                // Set return value
                $ret = getSession('mailer_theme');
        } else {
                // Invalid design, reset cookie
                }
 
                // Set return value
                $ret = getSession('mailer_theme');
        } else {
                // Invalid design, reset cookie
-               setTheme($ret);
+               setMailerTheme($ret);
        }
 
        // Return theme value
        return $ret;
 }
 
        }
 
        // Return theme value
        return $ret;
 }
 
-/**
- * Setter for theme in session (This setter does return the success of
- * setSession() which is required e.g. for destroySponsorSession().
- */
-function setTheme ($newTheme) {
-       return setSession('mailer_theme', $newTheme);
-}
-
 // Get id from theme
 function getThemeId ($name) {
        // Default id
 // Get id from theme
 function getThemeId ($name) {
        // Default id
index 3acb6ca3245e11a3b76c7e9d469ecd5ba997aeba..43d7a09f86f4307ccecb1e0a40ad09ab3994532e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8a0e490d5d423e56e9d4d64cffcd452f77d181dc..14888c79008056d3fae4d64b01909f5086fe2720 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -76,7 +76,7 @@ function autoPurgeTransfers ($max, $age) {
 
        // Only send email to admin(s) when we have removed entries
        if ($removed > 0) {
 
        // Only send email to admin(s) when we have removed entries
        if ($removed > 0) {
-               sendAdminNotification('{--TRANSFER_ADMIN_AUTOPURGE--}', 'admin_transfer_ap', $removed);
+               sendAdminNotification('{--ADMIN_TRANSFER_AUTOPURGE_SUBJECT--}', 'admin_transfer_ap', $removed);
        } // END - if
 }
 
        } // END - if
 }
 
index 11272674e5c973697e9ee011f48e32866466bafe..bcd6764eb1bb780d19c989adfa4e27409cda3259 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,7 +43,7 @@ if (!defined('__SECURITY')) {
 // Loads the snippet for the uberwach action
 function loadUberwachSnippet () {
        // Simply load the template here
 // Loads the snippet for the uberwach action
 function loadUberwachSnippet () {
        // Simply load the template here
-       $GLOBALS['page_footer'] .= loadTemplate('uberwach_snippet', true);
+       $GLOBALS['__page_footer'] .= loadTemplate('uberwach_snippet', true);
 }
 
 // [EOF]
 }
 
 // [EOF]
index 63fb9f9bc3448756091091e86c7225a246fc1417..566c762b0c3752b84821dd0849dcd09c4ca36fe9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,17 +41,19 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Add links for selecting some users
 } // END - if
 
 // Add links for selecting some users
-function alpha ($sortby) {
+function addAlphabeticalSorting ($sortby) {
        $add = '';
        $add = '';
-       foreach (array('page','offset','do','status') as $param) {
+       foreach (array('page', 'offset', 'do', 'status') as $param) {
                if (isGetRequestElementSet($param)) {
                        $add .= '&amp;' . $param . '=' . getRequestElement($param);
                } // END - if
        } // END - foreach
 
                if (isGetRequestElementSet($param)) {
                        $add .= '&amp;' . $param . '=' . getRequestElement($param);
                } // END - if
        } // END - foreach
 
-       /* Creates the list of letters and makes them a link. */
+       // Creates the list of letters and makes them a link.
        $alphabet = 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,');
        $num = count($alphabet) - 1;
        $alphabet = 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,');
        $num = count($alphabet) - 1;
+
+       // Add all letter links
        $OUT = '';
        while (list($counter, $ltr) = each($alphabet)) {
                if (getRequestElement('letter') == $ltr) {
        $OUT = '';
        while (list($counter, $ltr) = each($alphabet)) {
                if (getRequestElement('letter') == $ltr) {
@@ -62,16 +64,16 @@ function alpha ($sortby) {
                        $OUT .= '<a href="{%url=modules.php?module=admin&amp;what=' . getWhat() . '&amp;letter=' . $ltr . '&amp;sortby=' . $sortby . $add . '%}">' . $ltr . '</a>';
                }
 
                        $OUT .= '<a href="{%url=modules.php?module=admin&amp;what=' . getWhat() . '&amp;letter=' . $ltr . '&amp;sortby=' . $sortby . $add . '%}">' . $ltr . '</a>';
                }
 
-               if ((($counter / getConfig('user_alpha')) == round($counter / getConfig('user_alpha'))) && ($counter > 0)) {
+               if ((($counter / getUserAlpha()) == round($counter / getUserAlpha())) && ($counter > 0)) {
                        $OUT .= ']<br />[';
                        $OUT .= ']<br />[';
-               } elseif ( $counter != $num ) {
+               } elseif ($counter != $num) {
                        $OUT .= '|';
                }
        } // END - while
 
        // Prepare content
        $content = array (
                        $OUT .= '|';
                }
        } // END - while
 
        // Prepare content
        $content = array (
-               'alpha_selection' => $OUT
+               'alpha_selection' => $OUT,
        );
 
        // Load template
        );
 
        // Load template
@@ -159,7 +161,7 @@ function addPageNavigation ($numPages) {
                                } // END - foreach
 
                                // Letter and so on
                                } // END - foreach
 
                                // Letter and so on
-                               $OUT .= '&amp;letter=' . getRequestElement('letter') . '&amp;sortby=' . getRequestElement('sortby') . '&amp;page=' . $page . '&amp;offset=' . getConfig('user_limit') . '%}">';
+                               $OUT .= '&amp;letter=' . getRequestElement('letter') . '&amp;sortby=' . getRequestElement('sortby') . '&amp;page=' . $page . '&amp;offset=' . getUserLimit() . '%}">';
                        }
 
                        $OUT .= $page;
                        }
 
                        $OUT .= $page;
@@ -224,29 +226,31 @@ LIMIT 1",
 }
 
 // Selects a random user id as the new referral id if they have at least X confirmed mails in this run
 }
 
 // Selects a random user id as the new referral id if they have at least X confirmed mails in this run
-// @TODO Double-check configuration entry here
 function determineRandomReferralId () {
        // Default is zero refid
        $refid = NULL;
 
        // Is the extension version fine?
 function determineRandomReferralId () {
        // Default is zero refid
        $refid = NULL;
 
        // Is the extension version fine?
-       if (isExtensionInstalledAndNewer('user', '0.3.4')) {
+       if ((isRandomReferralIdEnabled()) && (isExtensionInstalledAndNewer('user', '0.3.4'))) {
                // Get all user ids
                // Get all user ids
-               $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, " AND `rand_confirmed` >= {?user_min_confirmed?}");
+               $totalUsers = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, runFilterChain('user_exclusion_sql', ' AND `rand_confirmed` >= {?user_min_confirmed?}'));
 
                // Do we have at least one?
                if ($totalUsers > 0) {
 
                // Do we have at least one?
                if ($totalUsers > 0) {
-                       // Then choose random number
-                       $randNum = mt_rand(0, ($totalUsers - 1));
+                       // Then choose random userid
+                       $randUserid = mt_rand(0, ($totalUsers - 1));
 
                        // Look for random user
 
                        // Look for random user
-                       $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status`='CONFIRMED' AND `rand_confirmed` >= {?user_min_confirmed?} ORDER BY `rand_confirmed` DESC LIMIT %s, 1",
-                               array($randNum), __FUNCTION__, __LINE__);
+                       $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` " . runFilterChain('user_exclusion_sql', "WHERE `status`='CONFIRMED'") . ' AND `rand_confirmed` >= {?user_min_confirmed?} ORDER BY `rand_confirmed` DESC LIMIT %s, 1',
+                               array($randUserid), __FUNCTION__, __LINE__);
 
                        // Do we have one entry there?
                        if (SQL_NUMROWS($result) == 1) {
                                // Use that userid as new referral id
                                list($refid) = SQL_FETCHROW($result);
 
                        // Do we have one entry there?
                        if (SQL_NUMROWS($result) == 1) {
                                // Use that userid as new referral id
                                list($refid) = SQL_FETCHROW($result);
+
+                               // Debug message
+                               /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'refid=' . $refid . ' - choosen!');
                        } // END - if
 
                        // Free result
                        } // END - if
 
                        // Free result
@@ -298,6 +302,9 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
                } // END - if
        } // END - if
 
                } // END - if
        } // END - if
 
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',isUserDataValid()=' . intval(isUserDataValid()) . ',userStatus=' . getUserData('status') . ',errorCode=' . $errorCode . ',ext=' . $ext . ',isFound=' . intval($isFound));
+
        // Is there an entry?
        if (($errorCode == '0') && (isUserDataValid()) && (getUserData('status') == 'CONFIRMED') && (!empty($content['userid']))) {
                // Check for old MD5 passwords
        // Is there an entry?
        if (($errorCode == '0') && (isUserDataValid()) && (getUserData('status') == 'CONFIRMED') && (!empty($content['userid']))) {
                // Check for old MD5 passwords
@@ -391,7 +398,7 @@ function doUserLogin ($userid, $passwd, $successUrl = '', $errorUrl = 'modules.p
                $errorCode = generateErrorCodeFromUserStatus(getUserData('status'));
 
                // Set userid in session
                $errorCode = generateErrorCodeFromUserStatus(getUserData('status'));
 
                // Set userid in session
-               setSession('current_userid', getUserData('userid'));
+               setSession('userid', getUserData('userid'));
        } elseif (!isUserDataValid()) {
                // User id not found
                $errorCode = getCode('WRONG_ID');
        } elseif (!isUserDataValid()) {
                // User id not found
                $errorCode = getCode('WRONG_ID');
@@ -575,7 +582,7 @@ function doConfirmUserAccount ($hash) {
                // Fetch user data
                if (!fetchUserData($userid)) {
                        // Not found, should not happen
                // Fetch user data
                if (!fetchUserData($userid)) {
                        // Not found, should not happen
-                       debug_report_bug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
+                       reportBug(__FILE__, __LINE__, 'User account ' . $userid . ' not found.');
                } // END - if
 
                // Load all data and add points
                } // END - if
 
                // Load all data and add points
@@ -708,7 +715,7 @@ function getConfirmationMessageFromUserStatus ($status) {
                        break;
 
                default: // This should not happen
                        break;
 
                default: // This should not happen
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Unknown user status ' . $status . ' detected.');
+                       reportBug(__FUNCTION__, __LINE__, 'Unknown user status ' . $status . ' detected.');
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -716,6 +723,83 @@ function getConfirmationMessageFromUserStatus ($status) {
        return $message;
 }
 
        return $message;
 }
 
+// "Getter" for total tester accounts
+function getTotalTesterUsers () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = countSumTotalData('', 'user_data', 'userid', '', true, runFilterChain('user_inclusion_sql'));
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether the admin is allowed to create more tester accounts
+function isNewUserTesterAllowed () {
+       // By default only admins are allowed
+       if (!isAdmin()) {
+               // This should not happen and must be fixed
+               reportBug(__FUNCTION__, __LINE__, 'isAdmin()=false - Not allowed.');
+       } // END - if
+
+       // Are more tester accounts allowed?
+       $isAllowed = (getTotalTesterUsers() < bigintval(getTesterUserMaximum() + 1));
+
+       // Return result
+       return $isAllowed;
+}
+
+// "Getter" for next free tester account number
+function getNextFreeTesterUserNumber () {
+       // Get current total amount because we start with zero
+       $nextTester = getTotalTesterUsers();
+
+       // Prepend zeros
+       $nextTester = prependZeros($nextTester, 6);
+
+       // Return it
+       return $nextTester;
+}
+
+// Wrapper function to return a selection box for tester user default referral id
+function addTesterUserDefaultRefidSelectionBox ($fieldName = 'tester_user_default_refid') {
+       // Return it
+       return addMemberSelectionBox(getConfig('tester_user_default_refid'), false, true, true, $fieldName, " WHERE `surname` LIKE '{?tester_user_surname_prefix?}%'");
+}
+
+// Checks whether given surname is a test user name
+function isTesterUserName ($surname) {
+       // Determine it
+       return (substr($surname, 0, strlen(getTesterUserSurnamePrefix())) == getTesterUserSurnamePrefix());
+}
+
+// Creates a tester account from given POST data
+function createTesterUserAccount () {
+       // Add generated surname
+       setPostRequestElement('surname', (getTesterUserSurnamePrefix() . getNextFreeTesterUserNumber()));
+
+       // Is the registration data complete?
+       if (!isRegistrationDataComplete()) {
+               // Then abort here
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'isRegistrationDataComplete()=false, please check if you e.g. have selected the required minimum of categories.');
+               return false;
+       } // END - if
+
+       // Do registration
+       $isCreated = doUserRegistration();
+
+       // Remove cache to force recalculation of total tester accounts
+       unset($GLOBALS['getTotalTesterUsers']);
+
+       // Return status
+       return $isCreated;
+}
+
+//-----------------------------------------------------------------------------
+//                                EL code functions
+//-----------------------------------------------------------------------------
+
 // Expression call-back function for fetching user data
 function doExpressionUser ($data) {
        // Use current userid by default
 // Expression call-back function for fetching user data
 function doExpressionUser ($data) {
        // Use current userid by default
@@ -759,6 +843,10 @@ function doExpressionUser ($data) {
        return $code;
 }
 
        return $code;
 }
 
+//-----------------------------------------------------------------------------
+//                             Template helper functions
+//-----------------------------------------------------------------------------
+
 // Template call-back function for list_user admin function
 function doTemplateAdminListUserTitle ($template, $clear = false) {
        // Init title with "all accounts"
 // Template call-back function for list_user admin function
 function doTemplateAdminListUserTitle ($template, $clear = false) {
        // Init title with "all accounts"
@@ -782,7 +870,7 @@ function doTemplateDisplayUsername ($template, $clear = false, $userid = NULL) {
        // Is a userid set?
        if (!isValidUserId($userid)) {
                // Please don't call this without a valid userid
        // Is a userid set?
        if (!isValidUserId($userid)) {
                // Please don't call this without a valid userid
-               debug_report_bug(__FUNCTION__, __LINE__, 'template=' . $template . ',clear=' . intval($clear) . ',userid[' . gettype($userid) . ']=' . intval($userid) . ' - Invalid userid provided.');
+               reportBug(__FUNCTION__, __LINE__, 'template=' . $template . ',clear=' . intval($clear) . ',userid[' . gettype($userid) . ']=' . intval($userid) . ' - Invalid userid provided.');
        } // END - if
 
        // Do we have cache?
        } // END - if
 
        // Do we have cache?
@@ -795,5 +883,153 @@ function doTemplateDisplayUsername ($template, $clear = false, $userid = NULL) {
        return $GLOBALS[__FUNCTION__][$userid];
 }
 
        return $GLOBALS[__FUNCTION__][$userid];
 }
 
+// ----------------------------------------------------------------------------
+//                 Wrapper functions for configuration entries
+// ----------------------------------------------------------------------------
+
+// Getter for user_alpha
+function getUserAlpha () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('user_alpha');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for user_limit
+function getUserLimit () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('user_limit');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_surname_prefix
+function getTesterUserSurnamePrefix () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_surname_prefix');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_maximum
+function getTesterUserMaximum () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_maximum');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_check_cat
+function getTesterUserCheckCat () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_check_cat');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_gender
+function getTesterUserGender () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_gender');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_family
+function getTesterUserFamily () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_family');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_password
+function getTesterUserPassword () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_password');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_street_nr
+function getTesterUserStreetNr () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_street_nr');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_zip
+function getTesterUserZip () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_zip');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_city
+function getTesterUserCity () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_city');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Getter for tester_user_email
+function getTesterUserEmail () {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = getConfig('tester_user_email');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 20fa4a4b91ae21077071b659a399093fc33374bc..aed931703e5ed10de5c0d298c67548363ab9d038 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index f515b525ccfa43ed8d137be0ea36c6e2f17475d9..0294ab98c686ad321d69835708ae4b5b7ff263b3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -160,12 +160,12 @@ function YOOMEDIA_PARSE_RESPONSE ($response, $type) {
        // If we have no result, abort here
        if (count($dummy) == 0) {
                // Empty response from API
        // If we have no result, abort here
        if (count($dummy) == 0) {
                // Empty response from API
-               debug_report_bug(__FUNCTION__, __LINE__, 'Empty result from API received. response()=' . count($response) . ',type=' . $type);
+               reportBug(__FUNCTION__, __LINE__, 'Empty result from API received. response()=' . count($response) . ',type=' . $type);
                return array();
        } // END - if
 
        // The result is now still raw, so we must split it up and trim spaces away
                return array();
        } // END - if
 
        // The result is now still raw, so we must split it up and trim spaces away
-       $responseLine = trim(implode("\n", $dummy));
+       $responseLine = trim(implode(chr(10), $dummy));
 
        // Last line should never be a pipe!
        if (substr($responseLine, -1, 1) == '|') {
 
        // Last line should never be a pipe!
        if (substr($responseLine, -1, 1) == '|') {
@@ -208,13 +208,17 @@ function YOOMEDIA_PREPARE_MAIL_DELIVERY ($data) {
        }
 
        // Is the waiting time below one second? Then fix it to one (zero seconds are not yet supported!)
        }
 
        // Is the waiting time below one second? Then fix it to one (zero seconds are not yet supported!)
-       if ($data['wait'] < 1) $data['wait'] = 1;
+       if ($data['wait'] < 1) {
+               $data['wait'] = 1;
+       } // END - if
 
        // Half of waiting time is a good reward!
        $data['reward'] = round($data['wait'] / 2 + 0.4);
 
        // Is the reward below one?
 
        // Half of waiting time is a good reward!
        $data['reward'] = round($data['wait'] / 2 + 0.4);
 
        // Is the reward below one?
-       if ($data['reward'] < 1) $data['reward'] = 1;
+       if ($data['reward'] < 1) {
+               $data['reward'] = 1;
+       } // END - if
 
        // Load template
        loadTemplate('admin_send_yoomedia', false, $data);
 
        // Load template
        loadTemplate('admin_send_yoomedia', false, $data);
@@ -308,7 +312,7 @@ function translateYooMediaError ($errorCode) {
                $return = $GLOBALS['translation_tables']['yoomedia']['error_codes'][$errorCode];
        } else {
                // Log missing entries
                $return = $GLOBALS['translation_tables']['yoomedia']['error_codes'][$errorCode];
        } else {
                // Log missing entries
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("Unknown error code <strong>%s[%s]</strong> detected.", $errorCode, gettype($errorCode)));
+               reportBug(__FUNCTION__, __LINE__, sprintf("Unknown error code <strong>%s[%s]</strong> detected.", $errorCode, gettype($errorCode)));
        }
 
        // Return value
        }
 
        // Return value
@@ -410,11 +414,11 @@ function YOOMEDIA_GET_ERRORCODE_FROM_RESULT ($response) {
                        $code = $codeArray[0];
 
                        // Remove all new-line characters
                        $code = $codeArray[0];
 
                        // Remove all new-line characters
-                       $codeArray = explode("\n", $code);
+                       $codeArray = explode(chr(10), $code);
                        $code = $codeArray[0];
 
                        // Remove carrige-return
                        $code = $codeArray[0];
 
                        // Remove carrige-return
-                       $code = trim(str_replace("\n", '', $code));
+                       $code = trim(str_replace(chr(10), '', $code));
 
                        // Is it still empty?
                        if (empty($code)) {
 
                        // Is it still empty?
                        if (empty($code)) {
@@ -427,7 +431,7 @@ function YOOMEDIA_GET_ERRORCODE_FROM_RESULT ($response) {
                $code = '0';
        } else {
                // Should not happen!
                $code = '0';
        } else {
                // Should not happen!
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot parse response. Raw response:<pre>' . print_r($response, true) . '</pre>');
+               reportBug(__FUNCTION__, __LINE__, 'Cannot parse response. Raw response:<pre>' . print_r($response, true) . '</pre>');
        }
 
        // Return error code
        }
 
        // Return error code
index bf03f5a1b9e49dd86a503020337a7bf4835ff1d8..1a25749fff1e7486e656ff8946178b46e8419cce 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 541bde300c39863c872ac01d7e031245ef4faff5..0bb8a7aa3615d0f41c4cfdce9d10e1fcec1c7305 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,7 +51,7 @@ $GLOBALS['config_local_loaded'] = false;
 // Is the local configuration there?
 if ((isIncludeReadable(getCachePath() . 'config-local.php')) && (isIncludeReadable('inc/config.php'))) {
        // We are better in installation mode
 // Is the local configuration there?
 if ((isIncludeReadable(getCachePath() . 'config-local.php')) && (isIncludeReadable('inc/config.php'))) {
        // We are better in installation mode
-       $GLOBALS['mailer_installing'] = true;
+       $GLOBALS['__mailer_installing'] = true;
 
        // Define default main_title here
        setConfigEntry('MAIN_TITLE', 'Your mail-exchange title');
 
        // Define default main_title here
        setConfigEntry('MAIN_TITLE', 'Your mail-exchange title');
@@ -60,7 +60,7 @@ if ((isIncludeReadable(getCachePath() . 'config-local.php')) && (isIncludeReadab
        setConfigEntry('OUTPUT_MODE', 'render');
 
        // Both exist! This is bad and should be avoided by the admin
        setConfigEntry('OUTPUT_MODE', 'render');
 
        // Both exist! This is bad and should be avoided by the admin
-       debug_report_bug(__FILE__, __LINE__, 'You have uploaded or kept an out-dated file at <strong>inc/config.php</strong> along with the new file <strong>'.getCachePath().'config-local.php</strong>. Please remove <strong>inc/config.php</strong> to avoid incompatiblity issues. Thank you.');
+       reportBug(__FILE__, __LINE__, 'You have uploaded or kept an out-dated file at <strong>inc/config.php</strong> along with the new file <strong>'.getCachePath().'config-local.php</strong>. Please remove <strong>inc/config.php</strong> to avoid incompatiblity issues. Thank you.');
 } elseif (isIncludeReadable(getCachePath() . 'config-local.php')) {
        // Then load it
        loadIncludeOnce(getCachePath() . 'config-local.php');
 } elseif (isIncludeReadable(getCachePath() . 'config-local.php')) {
        // Then load it
        loadIncludeOnce(getCachePath() . 'config-local.php');
@@ -75,7 +75,7 @@ if ((isIncludeReadable(getCachePath() . 'config-local.php')) && (isIncludeReadab
        // @TODO Rewrite them to avoid this else block
        setConfigEntry('MAIN_TITLE', 'Your mail-exchanger title');
        setConfigEntry('SLOGAN'    , 'Your cool slogan here');
        // @TODO Rewrite them to avoid this else block
        setConfigEntry('MAIN_TITLE', 'Your mail-exchanger title');
        setConfigEntry('SLOGAN'    , 'Your cool slogan here');
-       setConfigEntry('WEBMASTER' , 'you@some-hoster.tld.invalid');
+       setConfigEntry('WEBMASTER' , 'you@some-hoster.example');
 
        // Set output mode here
        setConfigEntry('OUTPUT_MODE', 'render');
 
        // Set output mode here
        setConfigEntry('OUTPUT_MODE', 'render');
@@ -87,10 +87,10 @@ if ((empty($GLOBALS['mysql']['login'])) && (!isInstalling()) && (!isInstallation
        outputHtml('<strong>{--MAILER_WARNING--}:</strong>');
        if (isInstalled()) {
                // You have changed my configuration file!
        outputHtml('<strong>{--MAILER_WARNING--}:</strong>');
        if (isInstalled()) {
                // You have changed my configuration file!
-               debug_report_bug(__FILE__, __LINE__, '{--DIE_CONFIG_CHANGED_YOU--}');
+               reportBug(__FILE__, __LINE__, '{--DIE_CONFIG_CHANGED_YOU--}');
        } else {
                // Please run the installation script (maybe again)
        } else {
                // Please run the installation script (maybe again)
-               debug_report_bug(__FILE__, __LINE__, '{--DIE_RUN_INSTALL_MYSQL--}');
+               reportBug(__FILE__, __LINE__, '{--DIE_RUN_INSTALLER_MYSQL--}');
        }
 } elseif ((!isInstalling()) && (!isInstallationPhase()) && (empty($GLOBALS['mysql']['password'])) && (getConfig('WARN_NO_PASS') == 'Y')) {
        // No database password entered
        }
 } elseif ((!isInstalling()) && (!isInstallationPhase()) && (empty($GLOBALS['mysql']['password'])) && (getConfig('WARN_NO_PASS') == 'Y')) {
        // No database password entered
index de62187ebb7266f4d234a051a670fca02168831d..a01d875336dca2acd4962f4fadb976ebdaf70956 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c7111d689d3bca89ec7cc563ca87703c74c41b88..be115a4a3ce8054f15089162f6c61a4244506adc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -131,7 +131,7 @@ if (isExtensionInstalledAndNewer('admins', '0.3')) {
                                                // Do we have 'admin_id' or regular entries?
                                                if ($key != 'admin_id') {
                                                        // Regular entry so use id
                                                // Do we have 'admin_id' or regular entries?
                                                if ($key != 'admin_id') {
                                                        // Regular entry so use id
-                                                       $admins[$key][$GLOBALS['cache_array']['admin_acls']['admin_id'][$idx]][] = $entry[$idx];
+                                                       array_push($admins[$key][$GLOBALS['cache_array']['admin_acls']['admin_id'][$idx]], $entry[$idx]);
                                                } // END - if
                                        } // END - foreach
                                } // END - foreach
                                                } // END - if
                                        } // END - foreach
                                } // END - foreach
index 0641a92eb1ac4693cf6723abc129912fdb6aeefe..d62984bb4168822908b074444c7af28affa132a4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index fabe21e6580ba8301504772fd05774f248f172c2..3a809ce0bd8673e4d4fb69e5eb146ab1bbc228f2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ac83a0f81397493d422e4fe9513a096877f58fe6..2d5fd5b96bb9996ccf7c60da744146ec28d6da5b 100644 (file)
@@ -18,7 +18,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -67,7 +67,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache
 
                        // Load extension file itself
                        if (($EXT_DUMMY['ext_active'][$k] == 'Y') || ($EXT_DUMMY['ext_keep'][$k] == 'Y')) {
 
                        // Load extension file itself
                        if (($EXT_DUMMY['ext_active'][$k] == 'Y') || ($EXT_DUMMY['ext_keep'][$k] == 'Y')) {
-                               $EXT_POOL[] = $ext_name;
+                               array_push($EXT_POOL, $ext_name);
                        } // END - if
 
                        // Version number
                        } // END - if
 
                        // Version number
index 61bb5ffe1d5f86e0eff96c0d07952aabadbafc6b..58b8687d5bb45f33c7ca069a65c55d0fe2aa04b0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5257a9ba5a1645e27cb19477ba36a9ae0378943b..d904fd9cf60f10186424e033bd9f56a9a80a29c0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 84e1dc4fddf95d9422c141a884c9cd2523166513..78fed2c674a01f25e04d8b0bab4b07055c4b7da7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -57,7 +57,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('modules')) && ($GLOBALS['cache_i
                $GLOBALS['cache_instance']->removeCacheFile();
 
                // We should fix this
                $GLOBALS['cache_instance']->removeCacheFile();
 
                // We should fix this
-               debug_report_bug(__FILE__, __LINE__, 'modArray=<pre>' . print_r($modArray, true) . '</pre>Please try to reload to fix this.');
+               reportBug(__FILE__, __LINE__, 'modArray=<pre>' . print_r($modArray, true) . '</pre>Please try to reload to fix this.');
        } // END - if
 
        // Rewrite some parts
        } // END - if
 
        // Rewrite some parts
@@ -68,7 +68,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('modules')) && ($GLOBALS['cache_i
                // Is ext-sql_patches newer or equal 0.3.6?
                if (isExtensionInstalledAndNewer('sql_patches', '0.3.6')) {
                        // Add 'has_menu'
                // Is ext-sql_patches newer or equal 0.3.6?
                if (isExtensionInstalledAndNewer('sql_patches', '0.3.6')) {
                        // Add 'has_menu'
-                       $entries[] = 'has_menu';
+                       array_push($entries, 'has_menu');
                } // END - if
 
                // Add all
                } // END - if
 
                // Add all
index 2033281d6520a669e864e01902d9998d1179376c..220567a81ae3ac866b73189bd6c86e64a9fc7d23 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,7 +54,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('points_data')) && ($GLOBALS['cac
                $GLOBALS['cache_instance']->removeCacheFile();
 
                // Not found, so better abort here
                $GLOBALS['cache_instance']->removeCacheFile();
 
                // Not found, so better abort here
-               debug_report_bug(__FILE__, __LINE__, 'points_data has been generated, but does not contain "subject". Please try to reload to fix this.');
+               reportBug(__FILE__, __LINE__, 'points_data has been generated, but does not contain "subject". Please try to reload to fix this.');
        } // END - if
 
        // Init temporary array
        } // END - if
 
        // Init temporary array
index f30616e5932bc085a4ae695489aaa82c5cc4c216..879f242a0dd61c146b64572aeae3912a9472d880 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5215581fd86e39d294960498b9412c5e7c8a0c96..ccfb5aa8215f62f78a02225ab69e39fe7d9794ba 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ea80061e9d3e573ef8b0b6311eb2abfa1c27d46c..4f05363bad0f2c95db8f996d0d7929029aa3f857 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a20956953e3b2b70e32081cb3ad76d28d71e4229..7507530122b0e9be4134a3c46a50a4731c3d6e1a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4457a2879f41ea4a2d1622fce02c98c3532f49a9..6f5316c876ac7a35e317209b4cbc68e7417de1f1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 if (!defined('__SECURITY')) {
        die();
 } elseif (!isExtensionActive('')) {
 if (!defined('__SECURITY')) {
        die();
 } elseif (!isExtensionActive('')) {
+       // Do not execute script on missing/out-dated extension ext-
+       return;
+} elseif (!isHtmlOutputMode()) {
+       // Do not execute script if not in HTML mode
        return;
 }
 
        return;
 }
 
-// Do not execute when script is in CSS mode
-if (!isHtmlOutputMode()) return;
-
 // [EOF]
 ?>
 // [EOF]
 ?>
index db78e472b640c4bb15c20e2c1db0c1fc7d6731c9..fb2292c127152042d77bc9c35f9d57aeacfca76b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 if (!defined('__SECURITY')) {
        die();
 } elseif ((!isExtensionActive('beg')) || (isExtensionInstalledAndOlder('beg', '0.2.8'))) {
 if (!defined('__SECURITY')) {
        die();
 } elseif ((!isExtensionActive('beg')) || (isExtensionInstalledAndOlder('beg', '0.2.8'))) {
+       // Do not execute script on missing/out-dated extension ext-beg
+       return;
+} elseif (!isHtmlOutputMode()) {
+       // Do not execute script if not in HTML mode
        return;
 }
 
        return;
 }
 
-// Do not execute when script is in CSS mode
-if (!isHtmlOutputMode()) return;
-
 // Create timemark from saved month
 $mark = mktime(0, 0, 0, getLastMonth(), getDay(), getYear());
 $sql = ''; $mode = '';
 // Create timemark from saved month
 $mark = mktime(0, 0, 0, getLastMonth(), getDay(), getYear());
 $sql = ''; $mode = '';
@@ -77,7 +78,7 @@ switch (getBegRallye()) {
 
 if (!empty($sql)) {
        // The SQL command needs to be finisched here (only confirmed accounts!)
 
 if (!empty($sql)) {
        // The SQL command needs to be finisched here (only confirmed accounts!)
-       $sql .= ") AND `status`='CONFIRMED' ORDER BY `last_online` ASC";
+       $sql .= ')' . runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'") . ' ORDER BY `last_online` ASC';
 
        // No IP locking setuped by default
        $content['ip_locker'] = '{--BEG_NO_LIMITATION--}';
 
        // No IP locking setuped by default
        $content['ip_locker'] = '{--BEG_NO_LIMITATION--}';
@@ -118,7 +119,7 @@ LIMIT 1",
                        // Load email template and send it to the user!
                        if ($sentBonusMails === true) {
                                // Add userid to queue
                        // Load email template and send it to the user!
                        if ($sentBonusMails === true) {
                                // Add userid to queue
-                               $userids[] = $content['userid'];
+                               array_push($userids, $content['userid']);
                        } else {
                                // Send normal notification mail to the members
                                $message = loadEmailTemplate('beg_' . $mode . '_notify', $content, $content['userid']);
                        } else {
                                // Send normal notification mail to the members
                                $message = loadEmailTemplate('beg_' . $mode . '_notify', $content, $content['userid']);
index 495c2b52cba920d975214811d85f1217856e7118..d52b33b2789501fc343444400c48e558e58ebb5e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 if (!defined('__SECURITY')) {
        die();
 } elseif ((!isExtensionActive('bonus')) || (isExtensionInstalledAndOlder('bonus', '0.9.2'))) {
 if (!defined('__SECURITY')) {
        die();
 } elseif ((!isExtensionActive('bonus')) || (isExtensionInstalledAndOlder('bonus', '0.9.2'))) {
+       // Do not execute script on missing/out-dated extension ext-bonus
+       return;
+} elseif (!isHtmlOutputMode()) {
+       // Do not execute script if not in HTML mode
        return;
 }
 
        return;
 }
 
-// Do not execute when script is in CSS mode
-if (!isHtmlOutputMode()) return;
-
 // Create timemark from saved month
 $mark = mktime(0, 0, 0, getLastMonth(), getDay(), getYear());
 $sql = ''; $mode = '';
 // Create timemark from saved month
 $mark = mktime(0, 0, 0, getLastMonth(), getDay(), getYear());
 $sql = ''; $mode = '';
@@ -77,7 +78,7 @@ switch (getConfig('bonus_active')) {
 
 if (!empty($sql)) {
        // The SQL command needs to be finisched here (only confirmed accounts!)
 
 if (!empty($sql)) {
        // The SQL command needs to be finisched here (only confirmed accounts!)
-       $sql .= ") AND `status`='CONFIRMED' ORDER BY `last_online` ASC";
+       $sql .= ')' . runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'") . ' ORDER BY `last_online` ASC';
 
        // Normal notification mails or bonus mails?
        $sentBonusMails = ((getConfig('bonus_notify_points') > 0) && ($mode == 'enable') && (isExtensionActive('bonus')));
 
        // Normal notification mails or bonus mails?
        $sentBonusMails = ((getConfig('bonus_notify_points') > 0) && ($mode == 'enable') && (isExtensionActive('bonus')));
@@ -107,7 +108,7 @@ LIMIT 1",
                        // Load email template and send it to the user!
                        if ($sentBonusMails === true) {
                                // Add userid to queue
                        // Load email template and send it to the user!
                        if ($sentBonusMails === true) {
                                // Add userid to queue
-                               $userids[] = $content['userid'];
+                               array_push($userids, $content['userid']);
                        } else {
                                // Send normal notification mail to the members
                                $message = loadEmailTemplate('bonus_' . $mode . '_notify', $content, $content['userid']);
                        } else {
                                // Send normal notification mail to the members
                                $message = loadEmailTemplate('bonus_' . $mode . '_notify', $content, $content['userid']);
index 7ec3e1eb8d000b1f724b9870a3c9a7155893d891..540584641090dede4f695433a0d62a6cea88f575 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -76,36 +76,42 @@ FROM
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS u
 ON
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS u
 ON
-       d.userid=u.userid
+       d.`userid`=u.`userid`
 WHERE
 WHERE
-       u.`status`='CONFIRMED' AND
-       d.points <= %s AND
-       d.points >= ({?doubler_min?} * 2) AND
-       d.completed='N' AND
-       d.is_ref='N'
+       u.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
+       d.`points` <= %s AND
+       d.`points` >= ({?doubler_min?} * 2) AND
+       d.`completed`='N' AND
+       d.`is_ref`='N'
 ORDER BY
 ORDER BY
-       d.timemark ASC",
+       d.`timemark` ASC",
        array(
                $DOUBLER_POINTS
        ), __FILE__, __LINE__);
 
 // Check for accounts with limitation
 $result_main = SQL_QUERY_ESC("SELECT
        array(
                $DOUBLER_POINTS
        ), __FILE__, __LINE__);
 
 // Check for accounts with limitation
 $result_main = SQL_QUERY_ESC("SELECT
-       d.id, d.userid, d.points, d.remote_ip, d.timemark
+       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
 FROM
        `{?_MYSQL_PREFIX?}_doubler` AS d
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS u
 ON
-       d.userid=u.userid
+       d.`userid`=u.`userid`
 WHERE
 WHERE
-       u.`status`='CONFIRMED' AND
-       d.points <= %s AND
-       d.points >= ({?doubler_min?} * 2) AND
-       d.completed='N' AND
-       d.is_ref='N'
+       u.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
+       d.`points` <= %s AND
+       d.`points` >= ({?doubler_min?} * 2) AND
+       d.`completed`='N' AND
+       d.`is_ref`='N'
 ORDER BY
 ORDER BY
-       d.timemark ASC
+       d.`timemark` ASC
 LIMIT {?doubler_max_sent?}",
        array(
                $DOUBLER_POINTS
 LIMIT {?doubler_max_sent?}",
        array(
                $DOUBLER_POINTS
index e659c9228f6fa6afe119b75970c5ba2450370d3f..b649618e54ba0743be1033c823a6f89c1e55d880 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8af427efc37fd9f660ecba039b53932c03192842..15d2f304656b7d1e51e3de190c211e8f2cdb53ce 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,56 +42,62 @@ if (!defined('__SECURITY')) {
 
 // "Getter" for module title
 function getModuleTitle ($module) {
 
 // "Getter" for module title
 function getModuleTitle ($module) {
-       // Init variables
-       $data['title'] = '';
-       $result = false;
-
-       // Is the script installed?
-       if ((isInstalled()) && ($module != 'error')) {
-               // Check if cache is valid
-               if ((isExtensionInstalledAndNewer('cache', '0.1.2')) && (isset($GLOBALS['cache_array']['modules']['module'])) && (in_array($module, $GLOBALS['cache_array']['modules']['module']))) {
-                       // Load from cache
-                       $data['title'] = $GLOBALS['cache_array']['modules']['title'][$module];
-
-                       // Update cache hits
-                       incrementStatsEntry('cache_hits');
-               } elseif (!isExtensionActive('cache')) {
-                       // Load from database
-                       $result = SQL_QUERY_ESC("SELECT `title` FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='%s' LIMIT 1",
-                               array($module), __FUNCTION__, __LINE__);
-
-                       // Is the entry there?
-                       if (SQL_NUMROWS($result) == 1) {
-                               // Get the title from database
-                               $data = SQL_FETCHARRAY($result);
-                       } // END - if
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$module])) {
+               // Init variables
+               $data['title'] = '';
+               $result = false;
+
+               // Is the script installed?
+               if ((isInstalled()) && ($module != 'error')) {
+                       // Check if cache is valid
+                       if ((isExtensionInstalledAndNewer('cache', '0.1.2')) && (isset($GLOBALS['cache_array']['modules']['module'])) && (in_array($module, $GLOBALS['cache_array']['modules']['module']))) {
+                               // Load from cache
+                               $data['title'] = $GLOBALS['cache_array']['modules']['title'][$module];
+
+                               // Update cache hits
+                               incrementStatsEntry('cache_hits');
+                       } elseif (!isExtensionActive('cache')) {
+                               // Load from database
+                               $result = SQL_QUERY_ESC("SELECT `title` FROM `{?_MYSQL_PREFIX?}_mod_reg` WHERE `module`='%s' LIMIT 1",
+                                       array($module), __FUNCTION__, __LINE__);
+
+                               // Is the entry there?
+                               if (SQL_NUMROWS($result) == 1) {
+                                       // Get the title from database
+                                       $data = SQL_FETCHARRAY($result);
+                               } // END - if
+
+                               // Free the result
+                               SQL_FREERESULT($result);
+                       }
+               } // END - if
 
 
-                       // Free the result
-                       SQL_FREERESULT($result);
-               }
-       } // END - if
+               // Trim name
+               $data['title'] = trim($data['title']);
+
+               // Still no luck or empty title?
+               if (empty($data['title'])) {
+                       // Is it 'error'?
+                       if ($module == 'error') {
+                               // Error (real module was not found)
+                               $data['title'] = '{--MODULE_ERROR_404--}';
+                       }  else {
+                               // No name found
+                               $data['title'] = '{%message,UNKNOWN_MODULE_DETECTED_TITLE=' . $module . '%}';
+                               if ((is_resource($result)) && (SQL_HASZERONUMS($result))) {
+                                       // Add module to database and ignore return value
+                                       checkModulePermissions($module);
+                               } // END - if
+                       }
+               } // END - if
 
 
-       // Trim name
-       $data['title'] = trim($data['title']);
-
-       // Still no luck or empty title?
-       if (empty($data['title'])) {
-               // Is it 'error'?
-               if ($module == 'error') {
-                       // Error (real module was not found)
-                       $data['title'] = '{--MODULE_ERROR_404--}';
-               }  else {
-                       // No name found
-                       $data['title'] = '{%message,UNKNOWN_MODULE_DETECTED_TITLE=' . $module . '%}';
-                       if ((is_resource($result)) && (SQL_HASZERONUMS($result))) {
-                               // Add module to database and ignore return value
-                               checkModulePermissions($module);
-                       } // END - if
-               }
+               // Store in cache
+               $GLOBALS[__FUNCTION__][$module] = $data['title'];
        } // END - if
 
        } // END - if
 
-       // Return name
-       return $data['title'];
+       // Return it
+       return $GLOBALS[__FUNCTION__][$module];
 }
 
 // Checks if module_status entry is there
 }
 
 // Checks if module_status entry is there
@@ -110,14 +116,14 @@ function getModuleStatus ($module) {
        // Is the module_status entry there?
        if (!isModuleStatusSet($module)) {
                // Abort
        // Is the module_status entry there?
        if (!isModuleStatusSet($module)) {
                // Abort
-               debug_report_bug('Module status not set. module=' . $module);
+               reportBug('Module status not set. module=' . $module);
        } // END - if
 
        // Return it
        return $GLOBALS['module_status'][$module];
 }
 
        } // END - if
 
        // Return it
        return $GLOBALS['module_status'][$module];
 }
 
-// Checks wether the given module is registered
+// Checks whether the given module is registered
 function isModuleRegistered ($module) {
        // By default nothing is found
        $found  = false;
 function isModuleRegistered ($module) {
        // By default nothing is found
        $found  = false;
@@ -165,7 +171,7 @@ function isModuleRegistered ($module) {
        return $found;
 }
 
        return $found;
 }
 
-// Checks wether the given module is locked by just checking the cache
+// Checks whether the given module is locked by just checking the cache
 function isModuleLocked ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['locked'][$module])) && ($GLOBALS['cache_array']['modules']['locked'][$module] == 'Y'));
 function isModuleLocked ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['locked'][$module])) && ($GLOBALS['cache_array']['modules']['locked'][$module] == 'Y'));
@@ -174,7 +180,7 @@ function isModuleLocked ($module) {
        return $return;
 }
 
        return $return;
 }
 
-// Checks wether the given module is hidden by just checking the cache
+// Checks whether the given module is hidden by just checking the cache
 function isModuleHidden ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['hidden'][$module])) && ($GLOBALS['cache_array']['modules']['hidden'][$module] == 'Y'));
 function isModuleHidden ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['hidden'][$module])) && ($GLOBALS['cache_array']['modules']['hidden'][$module] == 'Y'));
@@ -183,7 +189,7 @@ function isModuleHidden ($module) {
        return $return;
 }
 
        return $return;
 }
 
-// Checks wether the given module is mem_only by just checking the cache
+// Checks whether the given module is mem_only by just checking the cache
 function isModuleMemberOnly ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['mem_only'][$module])) && ($GLOBALS['cache_array']['modules']['mem_only'][$module] == 'Y'));
 function isModuleMemberOnly ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['mem_only'][$module])) && ($GLOBALS['cache_array']['modules']['mem_only'][$module] == 'Y'));
@@ -192,7 +198,7 @@ function isModuleMemberOnly ($module) {
        return $return;
 }
 
        return $return;
 }
 
-// Checks wether the given module is admin_only by just checking the cache
+// Checks whether the given module is admin_only by just checking the cache
 function isModuleAdminOnly ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['admin_only'][$module])) && ($GLOBALS['cache_array']['modules']['admin_only'][$module] == 'Y'));
 function isModuleAdminOnly ($module) {
        // Determine if there a cache entry and is it set
        $return = ((isset($GLOBALS['cache_array']['modules']['admin_only'][$module])) && ($GLOBALS['cache_array']['modules']['admin_only'][$module] == 'Y'));
@@ -392,11 +398,11 @@ function ifModuleHasMenu ($module, $forceDb = false) {
 }
 
 // Adds a SQL for given module
 }
 
 // Adds a SQL for given module
-function addModuleSql ($module, $locked, $hidden, $adminOnly, $memOnly) {
+function addModuleSql ($module, $title, $locked, $hidden, $adminOnly, $memOnly) {
        // Is the module already registered?
        if (!isModuleRegistered($module)) {
                // Add it
        // Is the module already registered?
        if (!isModuleRegistered($module)) {
                // Add it
-               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_mod_reg` (`module`,`locked`,`hidden`,`admin_only`,`mem_only`) VALUES ('" . $module . "','" . $locked . "','" . $hidden . "','" . $adminOnly . "','" . $memOnly . "')");
+               addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_mod_reg` (`module`,`title`,`locked`,`hidden`,`admin_only`,`mem_only`) VALUES ('" . $module . "','" . $title . "','" . $locked . "','" . $hidden . "','" . $adminOnly . "','" . $memOnly . "')");
        } else {
                // Already registered
                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Already registered: module=%s,locked=%s,hidden=%s,admin=%s,mem=%s",
        } else {
                // Already registered
                logDebugMessage(__FUNCTION__, __LINE__, sprintf("Already registered: module=%s,locked=%s,hidden=%s,admin=%s,mem=%s",
@@ -455,14 +461,14 @@ function loadModule () {
 
                case 'locked':
                        // Set HTTP status
 
                case 'locked':
                        // Set HTTP status
-                       setHttpStatus('403 FORBIDDEN');
+                       setHttpStatus('403 Forbidden');
 
                        if (!isIncludeReadable($GLOBALS['module_inc'])) {
                                // Set HTTP status again
 
                        if (!isIncludeReadable($GLOBALS['module_inc'])) {
                                // Set HTTP status again
-                               setHttpStatus('404 NOT FOUND');
+                               setHttpStatus('404 Not Found');
 
                                // Module does addionally not exists
 
                                // Module does addionally not exists
-                               addFatalMessage(__FUNCTION__, __LINE__, '{--MODULE_REGISTRY_404--}');
+                               addFatalMessage(__FUNCTION__, __LINE__, '{--MODULE_REGISTRY_LOCKED_404--}');
                        } // END - if
 
                        // Add fatal message
                        } // END - if
 
                        // Add fatal message
@@ -506,12 +512,19 @@ function doIncludeModule () {
                addFatalMessage(__FUNCTION__, __LINE__, '{--MYSQL_ERRORS--}');
        }
 
                addFatalMessage(__FUNCTION__, __LINE__, '{--MYSQL_ERRORS--}');
        }
 
+       // Is the module valid?
        if (($isModuleValid === true) && (!is_null($GLOBALS['module_inc']))) {
        if (($isModuleValid === true) && (!is_null($GLOBALS['module_inc']))) {
+               // Run pre-filter
+               runFilterChain('pre_module_load');
+
                // Everything is okay so we can load the module
                loadIncludeOnce($GLOBALS['module_inc']);
                // Everything is okay so we can load the module
                loadIncludeOnce($GLOBALS['module_inc']);
+
+               // Run post-filter
+               runFilterChain('post_module_load');
        } // END - if
 
        } // END - if
 
-       // Add the footer (this will call shutdown())
+       // Add the footer (this will call doShutdown())
        loadIncludeOnce('inc/footer.php');
 }
 
        loadIncludeOnce('inc/footer.php');
 }
 
index 2aa70e1b6b2cff24506a8b93326e84001b2d3a0d..b9578683dd45dc676848432c5aade2730492d51e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Load include file
 } // END - if
 
 // Load include file
@@ -234,10 +234,10 @@ if (!isAdminRegistered()) {
 
        // Check if the admin has submitted data or not
        if ((isFormSent()) && ((!isPostRequestElementSet('admin_login')) || (!isPostRequestElementSet('admin_password')) || (strlen(postRequestElement('admin_password')) < getConfig('minium_admin_pass_length')))) {
 
        // Check if the admin has submitted data or not
        if ((isFormSent()) && ((!isPostRequestElementSet('admin_login')) || (!isPostRequestElementSet('admin_password')) || (strlen(postRequestElement('admin_password')) < getConfig('minium_admin_pass_length')))) {
-               setPostRequestElement('ok', '***');
+               setPostRequestElement('login', '***');
        } // END - if
 
        } // END - if
 
-       if ((isFormSent()) && (postRequestElement('ok') != '***')) {
+       if ((isFormSent('login')) && (postRequestElement('login') != '***')) {
                // All required data was entered so we check his account
                $ret = ifAdminLoginDataIsValid(postRequestElement('admin_login'), postRequestElement('admin_password'));
 
                // All required data was entered so we check his account
                $ret = ifAdminLoginDataIsValid(postRequestElement('admin_login'), postRequestElement('admin_password'));
 
@@ -249,13 +249,13 @@ if (!isAdminRegistered()) {
                                break;
 
                        case '404': // Administrator login not found
                                break;
 
                        case '404': // Administrator login not found
-                               setPostRequestElement('ok', $ret);
+                               setPostRequestElement('login', $ret);
                                $ret = '{%message,ADMIN_ACCOUNT_404=' . postRequestElement('admin_login') . '%}';
                                destroyAdminSession();
                                break;
 
                        case 'password': // Wrong password
                                $ret = '{%message,ADMIN_ACCOUNT_404=' . postRequestElement('admin_login') . '%}';
                                destroyAdminSession();
                                break;
 
                        case 'password': // Wrong password
-                               setPostRequestElement('ok', $ret);
+                               setPostRequestElement('login', $ret);
                                $ret = '{--WRONG_PASS--} [<a href="{%url=modules.php?module=admin&amp;reset_pass=1%}">{--ADMIN_RESET_PASS--}</a>]';
                                destroyAdminSession();
                                break;
                                $ret = '{--WRONG_PASS--} [<a href="{%url=modules.php?module=admin&amp;reset_pass=1%}">{--ADMIN_RESET_PASS--}</a>]';
                                destroyAdminSession();
                                break;
@@ -277,7 +277,7 @@ if (!isAdminRegistered()) {
                $content['login_message'] = '';
                $content['pass_message']  = '';
 
                $content['login_message'] = '';
                $content['pass_message']  = '';
 
-               if (isFormSent()) {
+               if (isFormSent('login')) {
                        // Set messages to zero
                        $loginMessage = '';
                        $passwdMessage = '';
                        // Set messages to zero
                        $loginMessage = '';
                        $passwdMessage = '';
@@ -286,7 +286,7 @@ if (!isAdminRegistered()) {
                        if (!isPostRequestElementSet('admin_login')) {
                                // No login entered?
                                $loginMessage = '{--ADMIN_NO_LOGIN--}';
                        if (!isPostRequestElementSet('admin_login')) {
                                // No login entered?
                                $loginMessage = '{--ADMIN_NO_LOGIN--}';
-                       } elseif ((!empty($ret)) && (postRequestElement('ok') == '404')) {
+                       } elseif ((!empty($ret)) && (postRequestElement('login') == '404')) {
                                // An error comes back from login?
                                $loginMessage = $ret;
                        }
                                // An error comes back from login?
                                $loginMessage = $ret;
                        }
@@ -298,7 +298,7 @@ if (!isAdminRegistered()) {
                        } elseif (strlen(postRequestElement('admin_password')) < getConfig('minium_admin_pass_length')) {
                                // Or password too short?
                                $passwdMessage = '{--ADMIN_SHORT_PASS--}';
                        } elseif (strlen(postRequestElement('admin_password')) < getConfig('minium_admin_pass_length')) {
                                // Or password too short?
                                $passwdMessage = '{--ADMIN_SHORT_PASS--}';
-                       } elseif ((!empty($ret)) && (postRequestElement('ok') == 'password')) {
+                       } elseif ((!empty($ret)) && (postRequestElement('login') == 'password')) {
                                // An error comes back from login?
                                $passwdMessage = $ret;
                        }
                                // An error comes back from login?
                                $passwdMessage = $ret;
                        }
@@ -356,20 +356,12 @@ if (!isAdminRegistered()) {
                        runFilterChain('check_admin_acl');
 
                        // Check for version and switch between old menu system and new intelligent menu system
                        runFilterChain('check_admin_acl');
 
                        // Check for version and switch between old menu system and new intelligent menu system
-                       if ((adminGetMenuMode() == 'NEW') && (isIncludeReadable('inc/modules/admin/lasys-inc.php'))) {
-                               // Default area is the entrance, of course
-                               $area = 'entrance';
-
-                               // Check for similar URL variable
-                               if (isGetRequestElementSet('area')) {
-                                       $area = getRequestElement('area');
-                               } // END - if
-
-                               // Load logical-area menu-system file
-                               loadIncludeOnce('inc/modules/admin/lasys-inc.php');
+                       if (adminGetMenuMode() == 'NEW') {
+                               // Load include for admin AJAX
+                               loadIncludeOnce('inc/ajax/ajax_admin.php');
 
 
-                               // Create new-style menu system will logical areas
-                               doAdminLogicalArea($area, $action, getWhat());
+                               // Load main template
+                               loadTemplate('admin_ajax_main');
                        } else {
                                /*
                                 * This little call constructs the whole default old and lacky menu system
                        } else {
                                /*
                                 * This little call constructs the whole default old and lacky menu system
@@ -380,13 +372,13 @@ if (!isAdminRegistered()) {
                        break;
 
                case '404': // Administrator login not found
                        break;
 
                case '404': // Administrator login not found
-                       setPostRequestElement('ok', $ret);
+                       setPostRequestElement('login', $ret);
                        displayMessage('{%message,ADMIN_ACCOUNT_404=' . getCurrentAdminId() . '%}');
                        destroyAdminSession();
                        break;
 
                case 'password': // Wrong password
                        displayMessage('{%message,ADMIN_ACCOUNT_404=' . getCurrentAdminId() . '%}');
                        destroyAdminSession();
                        break;
 
                case 'password': // Wrong password
-                       setPostRequestElement('ok', $ret);
+                       setPostRequestElement('login', $ret);
                        displayMessage('{--WRONG_PASS--}');
                        destroyAdminSession();
                        break;
                        displayMessage('{--WRONG_PASS--}');
                        destroyAdminSession();
                        break;
index c2fd484e5f6c7f85b671ef254653a38e07550aa5..a9aa88b6aa0de3b854a104998089c28d604a485f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 1fc520212845fda76735042a3420a10349fb576c..11df2791edc81ac0dd98a1329bccc38337e955d1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c45a6e6272481246ee24a68eed2e8a078b0e8e8d..334d9e25d96e2fd03b634067b943253b5b3f7dd9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 9b05efbcda858cad1afa5b83dca28851d1fa7cd9..92bbbd20d9e93237b0bc40e7f888364637397458 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c46aadc8d12bb168c5e7dc5667e05db3de7221b5..f1e3e3c4dd2e05a8b86c550690ad3cfba882f1b0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 38cec6ab010b2da4c56358bc1c2ea90562e8df58..81623a6885e38f07a0a0bceaa9421a75fae223e1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 52ce5e4b63dcf166c85e4dbbff9f05a90bbc1708..d12190be1bdaf86e8a6c0b1df5986297fa8499cd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 702ba8ca99ffe03cf801b4ef5ba020f241c56aa1..70750e36b34530b2c02cf95e3b008805887460cb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index dee21d9a1cd985172c0704e67abdc0ecf7d61470..8f9e2a73967e0e3acb0bebb990e1e23961de266a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 655756ff760f6dfdd70ae96697c568febea573a7..0bcd0f93504ac79d3cb0ebd6d7e22e361660877f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ea0ad36f94b602406f1d670065a2c1f9177c8cf3..082a6f2db2012581a6943a87184e252cca6b9802 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index fc9bbeb34760ae6cb182efe784802812bbdd33e8..21de2213b8ce3225c8597971fa400e84dc6329cf 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8935f93e5408b4246d3d8150e2af1dd7b5bbfe97..b4898a835250bc45ca4c45b381b63c82db4c1c95 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4c4657c20a0b90434c75e5a85715d712ba1d97ec..9e5334b70a51b7d9563a569155fe304d8619c329 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4f4f67cb07065d753c6a6dce0c452b5caacf31c0..4e2dac5245804aaa2f4d6cfddaa6b1a222d67ac3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c58120631f444e7342ffa513e21b26f6d82850f5..9470c94373e1c65c33b634eeb9a5f34f327edc22 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8016991c32aca4dbce7beffe8cd0085ca25090f2..0720550635a1c864acfd54b693095820fec1e4d2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5980ffee50c8fef65e59241f8e34092493ac483d..f4ca2f2ca7f0e672011b6dfe055409be5012d82d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 868b27ea3e38636dff6ed6b80bce4e7ed4affae7..1cc1926816cf6b9833080258e3e37df74922612f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2b7cbcbb7852c09085175856fafa6ca55b30c5a5..3aa6494c5fd0d02b0862c0d63fef24de385db588 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 31f86585cda8a5b2e42b6f31f0cbc9d0c8942599..e329c40bb453ea32970f8901ec1ebc5aa72be7d3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e3fddaf7000ecc8ac1b42026c46ed52a5b5afa01..c51b931c652a4d6c692333308b4482d9fe95e2cb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index f4234e77dd0ee827e767d45a7e07acba8e2ed55e..beeceecd0786dc84b52c44a226a6bb87baadebbc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 53faa293464b08a65775fc836f85dff1193cd981..71ce9911802e550d89ed8b42839bc04d8766c3aa 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index f4267c41b08335d2907710e3558a9b902a2e7e28..2c37b8e28af16e3739e578c8c5d8fe36d4f8dd3b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 65eb3c2857c1a25edcd196a218d901ff83094909..90f7d5e16fb79fd58f6d48c2f45bf8b226b5648d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index cc193c9d629ae890061cd0546ebe06ce3df76e30..09e2be9db9818b5f0aa0a5bddbfc7ba643ca250b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 605e38d4d4eaf2c9df26496f61cf8bcb3ed1dc35..4050ffa5e2a1d251c7fa4718b0ead061316f1115 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index b5183805491ec389367cf202f7a16643cbca1dc5..100db075d5475df432bb95699c0c382163428c2f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ae6191a043e05021fe8b47ddbc5d7d0f1266c32a..2bee0b51c1c7216adeb15c9c83f20c2ec575655f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -130,7 +130,7 @@ function ifAdminCookiesAreValid ($adminLogin, $passHash) {
        if ($adminHash != '-1') {
                // Now, we need to encode the password in the same way the one is encoded in database
                $testHash = encodeHashForCookie($adminHash);
        if ($adminHash != '-1') {
                // Now, we need to encode the password in the same way the one is encoded in database
                $testHash = encodeHashForCookie($adminHash);
-               //* DEBUG: */ debugOutput('adminLogin=' . $adminLogin . ',passHash='.$passHash.',adminHash='.$adminHash.',testHash='.$testHash);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'adminLogin=' . $adminLogin . ',passHash='.$passHash.',adminHash='.$adminHash.',testHash='.$testHash);
 
                // If they both match, the login data is valid
                if ($testHash == $passHash) {
 
                // If they both match, the login data is valid
                if ($testHash == $passHash) {
@@ -143,25 +143,14 @@ function ifAdminCookiesAreValid ($adminLogin, $passHash) {
        } // END - if
 
        // Return status
        } // END - if
 
        // Return status
-       //* DEBUG: */ debugOutput('ret='.$ret);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ret='.$ret);
        return $ret;
 }
 
 // Do an admin action
 function doAdminAction () {
        return $ret;
 }
 
 // Do an admin action
 function doAdminAction () {
-       // Get default what
-       $what = getWhat();
-
-       //* DEBUG: */ debugOutput(__LINE__.'*'.$what.'/'.getModule().'/'.getAction().'/'.getWhat().'*');
-
-       // Remove any spaces from variable
-       if (empty($what)) {
-               // Default admin action is the overview page
-               $what = 'overview';
-       } else {
-               // Secure it
-               $what = secureString($what);
-       }
+       // Determine correct 'what' value
+       $what = determineWhat();
 
        // Get action value
        $action = getActionFromModuleWhat(getModule(), $what);
 
        // Get action value
        $action = getActionFromModuleWhat(getModule(), $what);
@@ -191,12 +180,12 @@ WHERE
        `action`='%s' AND
        (
                (
        `action`='%s' AND
        (
                (
-                       `what`='%s' AND `what` != 'overview'
+                       `what`='%s' AND `what` != 'welcome'
                ) OR (
                        (
                                `what`='' OR `what` IS NULL
                        ) AND (
                ) OR (
                        (
                                `what`='' OR `what` IS NULL
                        ) AND (
-                               '%s'='overview'
+                               '%s'='welcome'
                        )
                )
        )
                        )
                )
        )
@@ -233,14 +222,16 @@ LIMIT 1",
        loadTemplate('admin_main_footer', false, $content);
 }
 
        loadTemplate('admin_main_footer', false, $content);
 }
 
-// Checks wether current admin is allowed to access given action/what combination
-// (only one is allowed to be null!)
+/**
+ * Checks whether current admin is allowed to access given action/what
+ * combination (only one is allowed to be null!).
+ */
 function isAdminAllowedAccessMenu ($action, $what = NULL) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$action][$what])) {
                // ACL is always 'allow' when no ext-admins is installed
                // @TODO This can be rewritten into a filter
 function isAdminAllowedAccessMenu ($action, $what = NULL) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$action][$what])) {
                // ACL is always 'allow' when no ext-admins is installed
                // @TODO This can be rewritten into a filter
-               $GLOBALS[__FUNCTION__][$action][$what] = ((!isExtensionInstalledAndNewer('admins', '0.2.0')) || (isAdminsAllowedByAcl($action, $what)));
+               $GLOBALS[__FUNCTION__][$action][$what] = ((!isExtensionInstalledAndNewer('admins', '0.2.0')) || ((isExtensionActive('admins')) && (isAdminsAllowedByAcl($action, $what))));
        } // END - if
 
        // Return the cached value
        } // END - if
 
        // Return the cached value
@@ -279,9 +270,6 @@ ORDER BY
                        // Filename
                        $inc = sprintf("inc/modules/admin/action-%s.php", $mainContent['main_action']);
 
                        // Filename
                        $inc = sprintf("inc/modules/admin/action-%s.php", $mainContent['main_action']);
 
-                       // Is the file readable?
-                       $readable = isIncludeReadable($inc);
-
                        // Is the current admin allowed to access this 'action' menu?
                        if (isAdminAllowedAccessMenu($mainContent['main_action'])) {
                                if ($SUB === false) {
                        // Is the current admin allowed to access this 'action' menu?
                        if (isAdminAllowedAccessMenu($mainContent['main_action'])) {
                                if ($SUB === false) {
@@ -292,7 +280,8 @@ ORDER BY
                                $OUT .= '<li class="admin_menu"' . addJavaScriptMenuContent('admin', $mainContent['main_action'], $action, $what) . '>
 <div class="nobr"><strong>&middot;</strong>&nbsp;';
 
                                $OUT .= '<li class="admin_menu"' . addJavaScriptMenuContent('admin', $mainContent['main_action'], $action, $what) . '>
 <div class="nobr"><strong>&middot;</strong>&nbsp;';
 
-                               if ($readable === true) {
+                               // Is the file readable?
+                               if (isIncludeReadable($inc)) {
                                        if (($mainContent['main_action'] == $action) && (empty($what))) {
                                                $OUT .= '<strong>';
                                        } else {
                                        if (($mainContent['main_action'] == $action) && (empty($what))) {
                                                $OUT .= '<strong>';
                                        } else {
@@ -304,7 +293,8 @@ ORDER BY
 
                                $OUT .= $mainContent['main_title'];
 
 
                                $OUT .= $mainContent['main_title'];
 
-                               if ($readable === true) {
+                               // Is the file readable?
+                               if (isIncludeReadable($inc)) {
                                        if (($mainContent['main_action'] == $action) && (empty($what))) {
                                                $OUT .= '</strong>';
                                        } else {
                                        if (($mainContent['main_action'] == $action) && (empty($what))) {
                                                $OUT .= '</strong>';
                                        } else {
@@ -364,52 +354,59 @@ ORDER BY
        if (ifAdminMenuHasEntries($mainContent['main_action'])) {
                // Sub menu has been called
                $SUB = true;
        if (ifAdminMenuHasEntries($mainContent['main_action'])) {
                // Sub menu has been called
                $SUB = true;
-               $OUT .= '<ul class="admin_menu_sub">';
 
 
-               // Load all entries
-               while ($subContent = SQL_FETCHARRAY($result_what)) {
-                       // Filename
-                       $inc = sprintf("inc/modules/admin/what-%s.php", $subContent['sub_what']);
-
-                       // Is the file readable?
-                       $readable = isIncludeReadable($inc);
-
-                       // Is the current admin allowed to access this 'what' menu?
-                       if (isAdminAllowedAccessMenu(NULL, $subContent['sub_what'])) {
-                               // Insert compiled title and description
-                               $GLOBALS['menu']['title'][$subContent['sub_what']]       = $subContent['sub_title'];
-                               $GLOBALS['menu']['description'][$subContent['sub_what']] = $subContent['sub_descr'];
-                               $OUT .= '<li class="admin_menu">
+               // Do we have entries?
+               if (!SQL_HASZERONUMS($result_what)) {
+                       // Start HTML code
+                       $OUT .= '<ul class="admin_menu_sub">';
+
+                       // Load all entries
+                       while ($subContent = SQL_FETCHARRAY($result_what)) {
+                               // Filename
+                               $inc = sprintf("inc/modules/admin/what-%s.php", $subContent['sub_what']);
+
+                               // Is the current admin allowed to access this 'what' menu?
+                               if (isAdminAllowedAccessMenu(NULL, $subContent['sub_what'])) {
+                                       // Insert compiled title and description
+                                       $GLOBALS['menu']['title'][$subContent['sub_what']]       = $subContent['sub_title'];
+                                       $GLOBALS['menu']['description'][$subContent['sub_what']] = $subContent['sub_descr'];
+                                       $OUT .= '<li class="admin_menu">
 <div class="nobr"><strong>--&gt;</strong>&nbsp;';
 <div class="nobr"><strong>--&gt;</strong>&nbsp;';
-                               if ($readable === true) {
-                                       if ($what == $subContent['sub_what']) {
-                                               $OUT .= '<strong>';
+
+                                       // Is the file readable?
+                                       if (isIncludeReadable($inc)) {
+                                               if ($what == $subContent['sub_what']) {
+                                                       $OUT .= '<strong>';
+                                               } else {
+                                                       $OUT .= '[<a href="{%url=modules.php?module=admin&amp;what=' . $subContent['sub_what'] . '%}">';
+                                               }
                                        } else {
                                        } else {
-                                               $OUT .= '[<a href="{%url=modules.php?module=admin&amp;what=' . $subContent['sub_what'] . '%}">';
+                                               $OUT .= '<span class="bad" style="cursor:help" title="{%message,ADMIN_MENU_WHAT_404_TITLE=' . $subContent['sub_what'] . '%}">';
                                        }
                                        }
-                               } else {
-                                       $OUT .= '<span class="bad" style="cursor:help" title="{%message,ADMIN_MENU_WHAT_404_TITLE=' . $subContent['sub_what'] . '%}">';
-                               }
 
 
-                               $OUT .= $subContent['sub_title'];
+                                       $OUT .= $subContent['sub_title'];
 
 
-                               if ($readable === true) {
-                                       if ($what == $subContent['sub_what']) {
-                                               $OUT .= '</strong>';
+                                       // Is the file readable?
+                                       if (isIncludeReadable($inc)) {
+                                               if ($what == $subContent['sub_what']) {
+                                                       $OUT .= '</strong>';
+                                               } else {
+                                                       $OUT .= '</a>]';
+                                               }
                                        } else {
                                        } else {
-                                               $OUT .= '</a>]';
+                                               $OUT .= '</span>';
                                        }
                                        }
-                               } else {
-                                       $OUT .= '</span>';
-                               }
-                               $OUT .= '</div>
+                                       $OUT .= '</div>
 </li>';
 </li>';
-                       } // END - if
-               } // END - while
+                               } // END - if
+                       } // END - while
+
+                       // Finish HTML output
+                       $OUT .= '</ul>';
+               } // END - if
 
                // Free memory
                SQL_FREERESULT($result_what);
 
                // Free memory
                SQL_FREERESULT($result_what);
-               $OUT .= '</ul>';
        } // END - if
 
        // Close li-tag
        } // END - if
 
        // Close li-tag
@@ -460,12 +457,15 @@ ORDER BY
 }
 
 // Create a member selection box
 }
 
 // Create a member selection box
-function addMemberSelectionBox ($userid = NULL, $add_all = false, $return = false, $none = false, $field = 'userid') {
+function addMemberSelectionBox ($userid = NULL, $add_all = false, $return = false, $none = false, $field = 'userid', $whereStatement = " WHERE `surname` NOT LIKE '{?tester_user_surname_prefix?}%'") {
        // Output selection form with all confirmed user accounts listed
        $result = SQL_QUERY('SELECT
        // Output selection form with all confirmed user accounts listed
        $result = SQL_QUERY('SELECT
-       `userid`,`surname`,`family`
+       `userid`,
+       `surname`,
+       `family`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
+' . $whereStatement . '
 ORDER BY
        `userid` ASC', __FUNCTION__, __LINE__);
 
 ORDER BY
        `userid` ASC', __FUNCTION__, __LINE__);
 
@@ -481,8 +481,11 @@ ORDER BY
 
        // Load all entries
        while ($content = SQL_FETCHARRAY($result)) {
 
        // Load all entries
        while ($content = SQL_FETCHARRAY($result)) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . intval($userid) . '/' . $content['userid']);
                $OUT .= '<option value="' . bigintval($content['userid']) . '"';
                $OUT .= '<option value="' . bigintval($content['userid']) . '"';
-               if ($userid == $content['userid']) $OUT .= ' selected="selected"';
+               if (bigintval($userid) === bigintval($content['userid'])) {
+                       $OUT .= ' selected="selected"';
+               } // END - if
                $OUT .= '>' . $content['surname'] . ' ' . $content['family'] . ' (' . bigintval($content['userid']) . ')</option>';
        } // END - while
 
                $OUT .= '>' . $content['surname'] . ' ' . $content['family'] . ' (' . bigintval($content['userid']) . ')</option>';
        } // END - while
 
@@ -520,7 +523,9 @@ function adminMenuSelectionBox_DEPRECATED ($mode, $default = '', $defid = '') {
                // Load all entries
                while ($content = SQL_FETCHARRAY($result)) {
                        $OUT .= '<option value="' . $content['menu'] . '"';
                // Load all entries
                while ($content = SQL_FETCHARRAY($result)) {
                        $OUT .= '<option value="' . $content['menu'] . '"';
-                       if ((!empty($default)) && ($default == $content['menu'])) $OUT .= ' selected="selected"';
+                       if ((!empty($default)) && ($default == $content['menu'])) {
+                               $OUT .= ' selected="selected"';
+                       } // END - if
                        $OUT .= '>' . $content['title'] . '</option>';
                } // END - while
 
                        $OUT .= '>' . $content['title'] . '</option>';
                } // END - while
 
@@ -556,37 +561,40 @@ function adminSaveSettings (&$postData, $tableName = '_config', $whereStatement
        // Now, walk through all entries and prepare them for saving
        foreach ($postData as $id => $val) {
                // Process only formular field but not submit buttons ;)
        // Now, walk through all entries and prepare them for saving
        foreach ($postData as $id => $val) {
                // Process only formular field but not submit buttons ;)
-               if ($id != 'ok') {
-                       // Do not save the ok value
-                       convertSelectionsToEpocheTime($postData, $tableData, $id, $skip);
-
-                       // Shall we process this id? It muss not be empty, of course
-                       if (($skip === false) && (!empty($id)) && ((!isset($GLOBALS['skip_config'][$id]))) || ($tableName != '_config')) {
-                               // Translate the value? (comma to dot!)
-                               if ((is_array($translateComma)) && (in_array($id, $translateComma))) {
-                                       // Then do it here... :)
-                                       $val = convertCommaToDot($val);
-                               } // END - if
-
-                               // Shall we add numbers or strings?
-                               $test = (float) $val;
-                               if ('' . $val . '' == '' . $test . '') {
-                                       // Add numbers
-                                       $tableData[] = sprintf("`%s`=%s", $id, $test);
-                               } elseif (is_null($val)) {
-                                       // Add NULL
-                                       $tableData[] = sprintf("`%s`=NULL", $id);
-                               } else {
-                                       // Add strings
-                                       $tableData[] = sprintf("`%s`='%s'", $id, trim($val));
-                               }
+               if ($id == 'ok') {
+                       // Skip this button
+                       continue;
+               } // END - if
 
 
-                               // Do not add a config entry twice
-                               $GLOBALS['skip_config'][$id] = true;
+               // Do not save the ok value
+               convertSelectionsToEpocheTime($postData, $tableData, $id, $skip);
 
 
-                               // Update current configuration
-                               setConfigEntry($id, $val);
+               // Shall we process this id? It muss not be empty, of course
+               if (($skip === false) && (!empty($id)) && ((!isset($GLOBALS['skip_config'][$id]))) || ($tableName != '_config')) {
+                       // Translate the value? (comma to dot!)
+                       if ((is_array($translateComma)) && (in_array($id, $translateComma))) {
+                               // Then do it here... :)
+                               $val = convertCommaToDot($val);
                        } // END - if
                        } // END - if
+
+                       // Shall we add numbers or strings?
+                       $test = (float) $val;
+                       if ('' . $val . '' == '' . $test . '') {
+                               // Add numbers
+                               array_push($tableData, sprintf("`%s`=%s", $id, $test));
+                       } elseif (is_null($val)) {
+                               // Add NULL
+                               array_push($tableData, sprintf("`%s`=NULL", $id));
+                       } else {
+                               // Add strings
+                               array_push($tableData, sprintf("`%s`='%s'", $id, trim($val)));
+                       }
+
+                       // Do not add a config entry twice
+                       $GLOBALS['skip_config'][$id] = true;
+
+                       // Update current configuration
+                       setConfigEntry($id, $val);
                } // END - if
        } // END - foreach
 
                } // END - if
        } // END - foreach
 
@@ -616,13 +624,13 @@ function adminSaveSettings (&$postData, $tableName = '_config', $whereStatement
                foreach ($tableData as $entry) {
                        // Split up
                        $line = explode('=', $entry);
                foreach ($tableData as $entry) {
                        // Split up
                        $line = explode('=', $entry);
-                       $keys[] = $line[0];
-                       $values[] = $line[1];
+                       array_push($keys  , $line[0]);
+                       array_push($values, $line[1]);
                } // END - foreach
 
                // Add both in one line
                } // END - foreach
 
                // Add both in one line
-               $keys = implode('`,`', $keys);
-               $values = implode(', ', $values);
+               $keys   = implode('`,`', $keys);
+               $values = implode(', ' , $values);
 
                // Generate SQL string
                $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}%s` (%s) VALUES (%s)",
 
                // Generate SQL string
                $sql = sprintf("INSERT INTO `{?_MYSQL_PREFIX?}%s` (%s) VALUES (%s)",
@@ -673,9 +681,11 @@ function adminAddMenuSelectionBox ($menu, $type, $name, $default = '') {
                                $part = substr($part, 0, -4);
 
                                // Is that part different from the overview?
                                $part = substr($part, 0, -4);
 
                                // Is that part different from the overview?
-                               if ($part != 'overview') {
+                               if ($part != 'welcome') {
                                        $OUT .= '<option value="' . $part . '"';
                                        $OUT .= '<option value="' . $part . '"';
-                                       if ($part == $default) $OUT .= ' selected="selected"';
+                                       if ($part == $default) {
+                                               $OUT .= ' selected="selected"';
+                                       } // END - if
                                        $OUT .= '>' . $part . '</option>';
                                } // END - if
                        } // END - if
                                        $OUT .= '>' . $part . '</option>';
                                } // END - if
                        } // END - if
@@ -702,6 +712,8 @@ function generateUserProfileLink ($userid, $title = '', $what = 'list_user') {
        if (($title == '0') && ($what == 'list_refs')) {
                // Return title again
                return $title;
        if (($title == '0') && ($what == 'list_refs')) {
                // Return title again
                return $title;
+       } elseif (!empty($title)) {
+               // Not empty, so skip next one
        } elseif (isExtensionActive('nickname')) {
                // Get nickname
                $nick = getNickname($userid);
        } elseif (isExtensionActive('nickname')) {
                // Get nickname
                $nick = getNickname($userid);
@@ -823,10 +835,10 @@ function sendAdminBuildMails ($mode, $tableName, $content, $id, $subjectPart = '
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // $tableName is no array
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // $tableName is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) {
                // $tableName is no array
        } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) {
                // $tableName is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } // END - if
 
        // Default subject is the subject part
        } // END - if
 
        // Default subject is the subject part
@@ -867,20 +879,20 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e
        // $tableName and $idColumn must bove be arrays!
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // $tableName is no array
        // $tableName and $idColumn must bove be arrays!
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // $tableName is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) {
                // $tableName is no array
        } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) {
                // $tableName is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn);
        }
 
        // Init row output
        $OUT = '';
 
        // "Walk" through all entries
        }
 
        // Init row output
        $OUT = '';
 
        // "Walk" through all entries
-       //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'listType=<pre>'.print_r($listType,true).'</pre>,tableName<pre>'.print_r($tableName,true).'</pre>,columns=<pre>'.print_r($columns,true).'</pre>,filterFunctions=<pre>'.print_r($filterFunctions,true).'</pre>,extraValues=<pre>'.print_r($extraValues,true).'</pre>,idColumn=<pre>'.print_r($idColumn,true).'</pre>,userIdColumn=<pre>'.print_r($userIdColumn,true).'</pre>,rawUserId=<pre>'.print_r($rawUserId,true).'</pre>');
+       //* DEBUG: */ reportBug(__FUNCTION__, __LINE__, 'listType=<pre>'.print_r($listType,true).'</pre>,tableName<pre>'.print_r($tableName,true).'</pre>,columns=<pre>'.print_r($columns,true).'</pre>,filterFunctions=<pre>'.print_r($filterFunctions,true).'</pre>,extraValues=<pre>'.print_r($extraValues,true).'</pre>,idColumn=<pre>'.print_r($idColumn,true).'</pre>,userIdColumn=<pre>'.print_r($userIdColumn,true).'</pre>,rawUserId=<pre>'.print_r($rawUserId,true).'</pre>');
        foreach (postRequestElement($idColumn[0]) as $id => $selected) {
                // Secure id number
                $id = bigintval($id);
        foreach (postRequestElement($idColumn[0]) as $id => $selected) {
                // Secure id number
                $id = bigintval($id);
@@ -901,7 +913,7 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e
                                // Skip any missing entries
                                if ($idx === false) {
                                        // Skip this one
                                // Skip any missing entries
                                if ($idx === false) {
                                        // Skip this one
-                                       //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'key=' . $key . ' - SKIPPED!');
+                                       //* DEBUG: */ reportBug(__FUNCTION__, __LINE__, 'key=' . $key . ' - SKIPPED!');
                                        continue;
                                } // END - if
 
                                        continue;
                                } // END - if
 
@@ -909,22 +921,26 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e
                                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',userIdColumn=' . $userIdColumn[0]);
                                if ($key == $userIdColumn[0]) {
                                        // Add it again as raw id
                                //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',userIdColumn=' . $userIdColumn[0]);
                                if ($key == $userIdColumn[0]) {
                                        // Add it again as raw id
-                                       //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'key=' . $key . ',userIdColumn=' . $userIdColumn[0]);
+                                       //* DEBUG: */ reportBug(__FUNCTION__, __LINE__, 'key=' . $key . ',userIdColumn=' . $userIdColumn[0]);
                                        $content[$userIdColumn[0]] = convertZeroToNull($value);
                                        $content[$userIdColumn[0] . '_raw'] = $content[$userIdColumn[0]];
                                } // END - if
 
                                // If the key matches the idColumn variable, we need to temporary remember it
                                        $content[$userIdColumn[0]] = convertZeroToNull($value);
                                        $content[$userIdColumn[0] . '_raw'] = $content[$userIdColumn[0]];
                                } // END - if
 
                                // If the key matches the idColumn variable, we need to temporary remember it
-                               //* DEBUG: */ debugOutput('key=' . $key . ',idColumn=' . $idColumn[0] . ',value=' . $value);
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',idColumn=' . $idColumn[0] . ',value=' . $value);
                                if ($key == $idColumn[0]) {
                                if ($key == $idColumn[0]) {
-                                       // Found, so remember it
-                                       $GLOBALS['admin_list_builder_id_value'] = $value;
+                                       /*
+                                        * Found, so remember it securely (to make sure only id
+                                        * numbers can pass, don't use alpha-numerical values!)
+                                        */
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' - set as admin_list_builder_id_value!');
+                                       $GLOBALS['admin_list_builder_id_value'] = bigintval($value);
                                } // END - if
 
                                // Do we have a call-back function and extra-value pair?
                                if ((isset($filterFunctions[$idx])) && (isset($extraValues[$idx]))) {
                                        // Handle the call in external function
                                } // END - if
 
                                // Do we have a call-back function and extra-value pair?
                                if ((isset($filterFunctions[$idx])) && (isset($extraValues[$idx]))) {
                                        // Handle the call in external function
-                                       //* DEBUG: */ debugOutput('key=' . $key . ',fucntion=' . $filterFunctions[$idx] . ',value=' . $value);
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',fucntion=' . $filterFunctions[$idx] . ',value=' . $value);
                                        $content[$key] = handleExtraValues(
                                                $filterFunctions[$idx],
                                                $value,
                                        $content[$key] = handleExtraValues(
                                                $filterFunctions[$idx],
                                                $value,
@@ -932,7 +948,7 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e
                                        );
                                } elseif ((isset($columns[$idx]['name'])) && (isset($filterFunctions[$columns[$idx]['name']])) && (isset($extraValues[$columns[$idx]['name']]))) {
                                        // Handle the call in external function
                                        );
                                } elseif ((isset($columns[$idx]['name'])) && (isset($filterFunctions[$columns[$idx]['name']])) && (isset($extraValues[$columns[$idx]['name']]))) {
                                        // Handle the call in external function
-                                       //* DEBUG: */ debugOutput('key=' . $key . ',fucntion=' . $filterFunctions[$columns[$idx]['name']] . ',value=' . $value);
+                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',fucntion=' . $filterFunctions[$columns[$idx]['name']] . ',value=' . $value);
                                        $content[$key] = handleExtraValues(
                                                $filterFunctions[$columns[$idx]['name']],
                                                $value,
                                        $content[$key] = handleExtraValues(
                                                $filterFunctions[$columns[$idx]['name']],
                                                $value,
@@ -962,289 +978,298 @@ function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $e
 }
 
 // Change status of "build" list
 }
 
 // Change status of "build" list
-function adminBuilderStatusHandler ($mode, $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray, $rawUserId = array('userid')) {
+function adminBuilderStatusHandler ($mode, $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray, $rawUserId = array('userid'), $cacheFiles = array()) {
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) {
                // $tableName is no array
        } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) {
                // $tableName is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } // END - if
 
        } // END - if
 
-       // All valid entries? (We hope so here!)
-       if ((count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues)) && (count($statusArray) > 0)) {
-               // "Walk" through all entries
-               foreach (postRequestElement($idColumn[0]) as $id => $sel) {
-                       // Construct SQL query
-                       $sql = sprintf("UPDATE `{?_MYSQL_PREFIX?}_%s` SET", SQL_ESCAPE($tableName[0]));
-
-                       // Load data of entry
-                       $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1",
-                               array(
-                                       $tableName[0],
-                                       $idColumn[0],
-                                       $id
-                               ), __FUNCTION__, __LINE__);
+       // "Walk" through all entries
+       foreach (postRequestElement($idColumn[0]) as $id => $sel) {
+               // Construct SQL query
+               $sql = sprintf("UPDATE `{?_MYSQL_PREFIX?}_%s` SET", SQL_ESCAPE($tableName[0]));
 
 
-                       // Fetch the data
-                       $content = SQL_FETCHARRAY($result);
+               // Load data of entry
+               $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1",
+                       array(
+                               $tableName[0],
+                               $idColumn[0],
+                               $id
+                       ), __FUNCTION__, __LINE__);
 
 
-                       // Free the result
-                       SQL_FREERESULT($result);
+               // Fetch the data
+               $content = SQL_FETCHARRAY($result);
 
 
-                       // Add all status entries (e.g. status column last_updated or so)
-                       $newStatus = 'UNKNOWN';
-                       $oldStatus = 'UNKNOWN';
-                       $statusColumn = 'unknown';
-                       foreach ($statusArray as $column => $statusInfo) {
-                               // Does the entry exist?
-                               if ((isset($content[$column])) && (isset($statusInfo[$content[$column]]))) {
-                                       // Add these entries for update
-                                       $sql .= sprintf(" `%s`='%s',", SQL_ESCAPE($column), SQL_ESCAPE($statusInfo[$content[$column]]));
-
-                                       // Remember status
-                                       if ($statusColumn == 'unknown') {
-                                               // Always (!!!) change status column first!
-                                               $oldStatus = $content[$column];
-                                               $newStatus = $statusInfo[$oldStatus];
-                                               $statusColumn = $column;
-                                       } // END - if
-                               } elseif (isset($content[$column])) {
-                                       // Unfinished!
-                                       debug_report_bug(__FUNCTION__, __LINE__, ':UNFINISHED: id=' . $id . ',column=' . $column . '[' . gettype($statusInfo) . '] = ' . $content[$column]);
-                               }
-                       } // END - foreach
+               // Free the result
+               SQL_FREERESULT($result);
 
 
-                       // Add other columns as well
-                       foreach (postRequestArray() as $key => $entries) {
-                               // Debug message
-                               logDebugMessage(__FUNCTION__, __LINE__, 'Found entry: ' . $key);
-
-                               // Skip id, raw userid and 'do_$mode'
-                               if (!in_array($key, array($idColumn[0], $rawUserId[0], ('do_' . $mode)))) {
-                                       // Are there brackets () at the end?
-                                       if (substr($entries[$id], -2, 2) == '()') {
-                                               // Direct SQL command found
-                                               $sql .= sprintf(" `%s`=%s,", SQL_ESCAPE($key), SQL_ESCAPE($entries[$id]));
-                                       } else {
-                                               // Add regular entry
-                                               $sql .= sprintf(" `%s`='%s',", SQL_ESCAPE($key), SQL_ESCAPE($entries[$id]));
+               // Add all status entries (e.g. status column last_updated or so)
+               $newStatus = 'UNKNOWN';
+               $oldStatus = 'UNKNOWN';
+               $statusColumn = 'unknown';
+               foreach ($statusArray as $column => $statusInfo) {
+                       // Does the entry exist?
+                       if ((isset($content[$column])) && (isset($statusInfo[$content[$column]]))) {
+                               // Add these entries for update
+                               $sql .= sprintf(" `%s`='%s',", SQL_ESCAPE($column), SQL_ESCAPE($statusInfo[$content[$column]]));
+
+                               // Remember status
+                               if ($statusColumn == 'unknown') {
+                                       // Always (!!!) change status column first!
+                                       $oldStatus = $content[$column];
+                                       $newStatus = $statusInfo[$oldStatus];
+                                       $statusColumn = $column;
+                               } // END - if
+                       } elseif (isset($content[$column])) {
+                               // Unfinished!
+                               reportBug(__FUNCTION__, __LINE__, ':UNFINISHED: id=' . $id . ',column=' . $column . '[' . gettype($statusInfo) . '] = ' . $content[$column]);
+                       }
+               } // END - foreach
 
 
-                                               // Add entry
-                                               $content[$key] = $entries[$id];
-                                       }
+               // Add other columns as well
+               foreach (postRequestArray() as $key => $entries) {
+                       // Debug message
+                       logDebugMessage(__FUNCTION__, __LINE__, 'Found entry: ' . $key);
+
+                       // Skip id, raw userid and 'do_$mode'
+                       if (!in_array($key, array($idColumn[0], $rawUserId[0], ('do_' . $mode)))) {
+                               // Are there brackets () at the end?
+                               if (substr($entries[$id], -2, 2) == '()') {
+                                       // Direct SQL command found
+                                       $sql .= sprintf(" `%s`=%s,", SQL_ESCAPE($key), SQL_ESCAPE($entries[$id]));
                                } else {
                                } else {
-                                       // Skipped entry
-                                       logDebugMessage(__FUNCTION__, __LINE__, 'Skipped: ' . $key);
-                               }
-                       } // END - foreach
+                                       // Add regular entry
+                                       $sql .= sprintf(" `%s`='%s',", SQL_ESCAPE($key), SQL_ESCAPE($entries[$id]));
 
 
-                       // Finish SQL statement
-                       $sql = substr($sql, 0, -1) . sprintf(" WHERE `%s`=%s AND `%s`='%s' LIMIT 1",
-                               $idColumn[0],
-                               bigintval($id),
-                               $statusColumn,
-                               $oldStatus
-                       );
+                                       // Add entry
+                                       $content[$key] = $entries[$id];
+                               }
+                       } else {
+                               // Skipped entry
+                               logDebugMessage(__FUNCTION__, __LINE__, 'Skipped: ' . $key);
+                       }
+               } // END - foreach
 
 
-                       // Run the SQL
-                       SQL_QUERY($sql, __FUNCTION__, __LINE__);
+               // Finish SQL statement
+               $sql = substr($sql, 0, -1) . sprintf(" WHERE `%s`=%s AND `%s`='%s' LIMIT 1",
+                       $idColumn[0],
+                       bigintval($id),
+                       $statusColumn,
+                       $oldStatus
+               );
 
 
-                       // Do we have an URL?
-                       if (isset($content['url'])) {
-                               // Then add a framekiller test as well
-                               $content['frametester'] = generateFrametesterUrl($content['url']);
-                       } // END - if
+               // Run the SQL
+               SQL_QUERY($sql, __FUNCTION__, __LINE__);
 
 
-                       // Send "build mails" out
-                       sendAdminBuildMails($mode, $tableName, $content, $id, $statusInfo[$content[$column]], $userIdColumn);
-               } // END - foreach
-       } // END - if
+               // Send "build mails" out
+               sendAdminBuildMails($mode, $tableName, $content, $id, $statusInfo[$content[$column]], $userIdColumn);
+       } // END - foreach
 }
 
 // Delete rows by given id numbers
 }
 
 // Delete rows by given id numbers
-function adminDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid')) {
+function adminDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) {
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($userIdColumn)) {
                // $userIdColumn is no array
        } elseif (!is_array($userIdColumn)) {
                // $userIdColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($deleteNow)) {
                // $deleteNow is no array
        } elseif (!is_array($deleteNow)) {
                // $deleteNow is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'deleteNow[]=' . gettype($deleteNow) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'deleteNow[]=' . gettype($deleteNow) . '!=array: userIdColumn=' . $userIdColumn);
        } // END - if
 
        } // END - if
 
-       // All valid entries? (We hope so here!)
-       if ((count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues))) {
-               // Shall we delete here or list for deletion?
-               if ($deleteNow[0] === true) {
-                       // The base SQL command:
-                       $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s` IN (%s)";
-
-                       // Delete them all
-                       $idList = '';
-                       foreach (postRequestElement($idColumn[0]) as $id => $sel) {
-                               // Is there a userid?
-                               if (isPostRequestElementSet($rawUserId[0], $id)) {
-                                       // Load all data from that id
-                                       $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1",
-                                               array(
-                                                       $tableName[0],
-                                                       $idColumn[0],
-                                                       $id
-                                               ), __FUNCTION__, __LINE__);
+       // Shall we delete here or list for deletion?
+       if ($deleteNow[0] === true) {
+               // The base SQL command:
+               $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s` IN (%s)";
+
+               // Delete them all
+               $idList = '';
+               foreach (postRequestElement($idColumn[0]) as $id => $sel) {
+                       // Is there a userid?
+                       if (isPostRequestElementSet($rawUserId[0], $id)) {
+                               // Load all data from that id
+                               $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1",
+                                       array(
+                                               $tableName[0],
+                                               $idColumn[0],
+                                               $id
+                                       ), __FUNCTION__, __LINE__);
 
 
-                                       // Fetch the data
-                                       $content = SQL_FETCHARRAY($result);
+                               // Fetch the data
+                               $content = SQL_FETCHARRAY($result);
 
 
-                                       // Free the result
-                                       SQL_FREERESULT($result);
+                               // Free the result
+                               SQL_FREERESULT($result);
 
 
-                                       // Send "build mails" out
-                                       sendAdminBuildMails('delete', $tableName, $content, $id, '', $userIdColumn);
-                               } // END - if
+                               // Send "build mails" out
+                               sendAdminBuildMails('delete', $tableName, $content, $id, '', $userIdColumn);
+                       } // END - if
 
 
-                               // Add id number
-                               $idList .= $id . ',';
-                       } // END - foreach
+                       // Add id number
+                       $idList .= $id . ',';
+               } // END - foreach
 
 
-                       // Run the query
-                       SQL_QUERY_ESC($sql, array($tableName[0], $idColumn[0], substr($idList, 0, -1)), __FUNCTION__, __LINE__);
+               // Run the query
+               SQL_QUERY_ESC($sql, array($tableName[0], $idColumn[0], substr($idList, 0, -1)), __FUNCTION__, __LINE__);
 
 
-                       // Was this fine?
-                       if (SQL_AFFECTEDROWS() == count(postRequestElement($idColumn[0]))) {
-                               // All deleted
-                               displayMessage('{--ADMIN_ALL_ENTRIES_REMOVED--}');
-                       } else {
-                               // Some are still there :(
-                               displayMessage(sprintf(getMessage('ADMIN_SOME_ENTRIES_NOT_DELETED'), SQL_AFFECTEDROWS(), count(postRequestElement($idColumn[0]))));
-                       }
+               // Was this fine?
+               if (SQL_AFFECTEDROWS() == countPostSelection($idColumn[0])) {
+                       // All deleted
+                       displayMessage('{--ADMIN_ALL_ENTRIES_REMOVED--}');
                } else {
                } else {
-                       // List for deletion confirmation
-                       adminListBuilder('delete', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
+                       // Some are still there :(
+                       displayMessage(sprintf(getMessage('ADMIN_SOME_ENTRIES_NOT_DELETED'), SQL_AFFECTEDROWS(), countPostSelection($idColumn[0])));
                }
                }
-       } // END - if
+       } else {
+               // List for deletion confirmation
+               adminListBuilder('delete', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
+       }
 }
 
 // Edit rows by given id numbers
 }
 
 // Edit rows by given id numbers
-function adminEditEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $editNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid')) {
+function adminEditEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $timeColumns = array(), $editNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) {
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($userIdColumn)) {
                // $userIdColumn is no array
        } elseif (!is_array($userIdColumn)) {
                // $userIdColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($editNow)) {
                // $editNow is no array
        } elseif (!is_array($editNow)) {
                // $editNow is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'editNow[]=' . gettype($editNow) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'editNow[]=' . gettype($editNow) . '!=array: userIdColumn=' . $userIdColumn);
        } // END - if
 
        } // END - if
 
-       // All valid entries? (We hope so here!)
-       //* DEBUG: */ debug_report_bug(__FUNCTION__, __LINE__, 'idColumn=<pre>'.print_r($idColumn,true).'</pre>,tableName<pre>'.print_r($tableName,true).'</pre>,columns=<pre>'.print_r($columns,true).'</pre>,filterFunctions=<pre>'.print_r($filterFunctions,true).'</pre>,extraValues=<pre>'.print_r($extraValues,true).'</pre>,editNow=<pre>'.print_r($editNow,true).'</pre>,userIdColumn=<pre>'.print_r($userIdColumn,true).'</pre>,rawUserId=<pre>'.print_r($rawUserId,true).'</pre>');
-       //if ((count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues))) {
-       if (true) {
-               // Shall we change here or list for editing?
-               if ($editNow[0] === true) {
-                       // Change them all
-                       $affected = '0';
-                       foreach (postRequestElement($idColumn[0]) as $id => $sel) {
-                               // Prepare content array (new values)
-                               $content = array();
-
-                               // Prepare SQL for this row
-                               $sql = sprintf("UPDATE `{?_MYSQL_PREFIX?}_%s` SET",
-                                       SQL_ESCAPE($tableName[0])
-                               );
-                               foreach (postRequestArray() as $key => $entries) {
-                                       // Skip raw userid which is always invalid
-                                       if ($key == $rawUserId[0]) {
-                                               // Continue with next field
-                                               continue;
-                                       } // END - if
+       // Shall we change here or list for editing?
+       if ($editNow[0] === true) {
+               // Change them all
+               $affected = '0';
+               foreach (postRequestElement($idColumn[0]) as $id => $sel) {
+                       // Prepare content array (new values)
+                       $content = array();
 
 
-                                       // Is entries an array?
-                                       if (($key != $idColumn[0]) && (is_array($entries)) && (isset($entries[$id]))) {
-                                               // Add this entry to content
-                                               $content[$key] = $entries[$id];
+                       // Prepare SQL for this row
+                       $sql = sprintf("UPDATE `{?_MYSQL_PREFIX?}_%s` SET",
+                               SQL_ESCAPE($tableName[0])
+                       );
 
 
-                                               // Send data through the filter function if found
-                                               if ((isset($filterFunctions[$key])) && (isset($extraValues[$key]))) {
-                                                       // Filter function set!
-                                                       $entries[$id] = handleExtraValues($filterFunctions[$key], $entries[$id], $extraValues[$key]);
-                                               } // END - if
+                       // "Walk" through all entries
+                       foreach (postRequestArray() as $key => $entries) {
+                               // Skip raw userid which is always invalid
+                               if ($key == $rawUserId[0]) {
+                                       // Continue with next field
+                                       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',idColumn[0]=' . $idColumn[0] . ',rawUserId=' . $rawUserId[0]);
+                                       continue;
+                               } // END - if
+
+                               // Debug message
+                               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',idColumn[0]=' . $idColumn[0] . ',entries=<pre>'.print_r($entries,true).'</pre>');
+
+                               // Is entries an array?
+                               if (($key != $idColumn[0]) && (is_array($entries)) && (isset($entries[$id]))) {
+                                       // Add this entry to content
+                                       $content[$key] = $entries[$id];
+
+                                       // Send data through the filter function if found
+                                       if ($key == $userIdColumn[0]) {
+                                               // Is the userid, we have to process it with convertZeroToNull()
+                                               $entries[$id] = convertZeroToNull($entries[$id]);
+                                       } elseif ((isset($filterFunctions[$key])) && (isset($extraValues[$key]))) {
+                                               // Filter function set!
+                                               $entries[$id] = handleExtraValues($filterFunctions[$key], $entries[$id], $extraValues[$key]);
+                                       }
 
 
-                                               // Then add this value
+                                       // Is the value NULL?
+                                       if ($entries[$id] == 'NULL') {
+                                               // Add it directly
+                                               $sql .= sprintf(' `%s`=NULL,',
+                                                       SQL_ESCAPE($key)
+                                               );
+                                       } else {
+                                               // Else add the value covered
                                                $sql .= sprintf(" `%s`='%s',",
                                                        SQL_ESCAPE($key),
                                                        SQL_ESCAPE($entries[$id])
                                                );
                                                $sql .= sprintf(" `%s`='%s',",
                                                        SQL_ESCAPE($key),
                                                        SQL_ESCAPE($entries[$id])
                                                );
-                                       } elseif (($key != $idColumn[0]) && (!is_array($entries))) {
-                                               // Add normal entries as well!
-                                               $content[$key] =  $entries;
                                        }
                                        }
+                               } elseif (($key != $idColumn[0]) && (!is_array($entries))) {
+                                       // Add normal entries as well!
+                                       $content[$key] =  $entries;
+                               }
+                       } // END - foreach
 
 
-                                       // Do we have an URL?
-                                       if ($key == 'url') {
-                                               // Then add a framekiller test as well
-                                               $content['frametester'] = generateFrametesterUrl($content[$key]);
-                                       } // END - if
-                               } // END - foreach
+                       // Finish SQL command
+                       $sql = substr($sql, 0, -1) . " WHERE `" . SQL_ESCAPE($idColumn[0]) . "`=" . bigintval($id) . " LIMIT 1";
 
 
-                               // Finish SQL command
-                               $sql = substr($sql, 0, -1) . " WHERE `" . $idColumn[0] . "`=" . bigintval($id) . " LIMIT 1";
+                       // Run this query
+                       SQL_QUERY($sql, __FUNCTION__, __LINE__);
 
 
-                               // Run this query
-                               SQL_QUERY($sql, __FUNCTION__, __LINE__);
+                       // Add affected rows
+                       $affected += SQL_AFFECTEDROWS();
 
 
-                               // Add affected rows
-                               $affected += SQL_AFFECTEDROWS();
+                       // Load all data from that id
+                       $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1",
+                               array(
+                                       $tableName[0],
+                                       $idColumn[0],
+                                       $id
+                               ), __FUNCTION__, __LINE__);
 
 
-                               // Load all data from that id
-                               $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1",
-                                       array(
-                                               $tableName[0],
-                                               $idColumn[0],
-                                               $id
-                                       ), __FUNCTION__, __LINE__);
+                       // Fetch the data and merge it into $content
+                       $content = merge_array($content, SQL_FETCHARRAY($result));
 
 
-                               // Fetch the data and merge it into $content
-                               $content = merge_array($content, SQL_FETCHARRAY($result));
+                       // Free the result
+                       SQL_FREERESULT($result);
 
 
-                               // Free the result
-                               SQL_FREERESULT($result);
+                       // Send "build mails" out
+                       sendAdminBuildMails('edit', $tableName, $content, $id, '', $userIdColumn);
+               } // END - foreach
 
 
-                               // Send "build mails" out
-                               sendAdminBuildMails('edit', $tableName, $content, $id, '', $userIdColumn);
-                       } // END - foreach
+               // Delete cache?
+               if ((count($cacheFiles) > 0) && (!empty($cacheFiles[0]))) {
+                       // Delete cache file(s)
+                       foreach ($cacheFiles as $cacheFile) {
+                               // Skip any empty entries
+                               if (empty($cacheFile)) {
+                                       // This may cause trouble in loadCacheFile()
+                                       continue;
+                               } // END - if
 
 
-                       // Was this fine?
-                       if ($affected == count(postRequestElement($idColumn[0]))) {
-                               // All deleted
-                               displayMessage('{--ADMIN_ALL_ENTRIES_EDITED--}');
-                       } else {
-                               // Some are still there :(
-                               displayMessage(sprintf(getMessage('ADMIN_SOME_ENTRIES_NOT_EDITED'), $affected, count(postRequestElement($idColumn[0]))));
-                       }
+                               // Is the cache file loadable?
+                               if ($GLOBALS['cache_instance']->loadCacheFile($cacheFile)) {
+                                       // Then remove it
+                                       $GLOBALS['cache_instance']->removeCacheFile();
+                               } // END - if
+                       } // END - if
+               } // END - if
+
+               // Was this fine?
+               if ($affected == countPostSelection($idColumn[0])) {
+                       // All deleted
+                       displayMessage('{--ADMIN_ALL_ENTRIES_EDITED--}');
                } else {
                } else {
-                       // List for editing
-                       adminListBuilder('edit', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
+                       // Some are still there :(
+                       displayMessage(sprintf(getMessage('ADMIN_SOME_ENTRIES_NOT_EDITED'), $affected, countPostSelection($idColumn[0])));
                }
        } else {
                }
        } else {
-               // Maybe some invalid parameters
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName=' . $tableName[0] . ',columns[]=' . gettype($columns) . ',filterFunctions[]=' . gettype($filterFunctions) . ',extraValues[]=' . gettype($extraValues) . ',idColumn=' . $idColumn[0] . ',userIdColumn=' . $userIdColumn[0] . ' - INVALID!');
+               // List for editing
+               adminListBuilder('edit', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
        }
 }
 
        }
 }
 
@@ -1253,26 +1278,23 @@ function adminLockEntriesConfirm ($tableName, $columns = array(), $filterFunctio
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($lockNow)) {
                // $lockNow is no array
        } elseif (!is_array($lockNow)) {
                // $lockNow is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'lockNow[]=' . gettype($lockNow) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'lockNow[]=' . gettype($lockNow) . '!=array: userIdColumn=' . $userIdColumn);
        } // END - if
 
        } // END - if
 
-       // All valid entries? (We hope so here!)
-       if ((count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues)) && (($lockNow[0] === false) || (count($statusArray) == 1))) {
-               // Shall we un-/lock here or list for locking?
-               if ($lockNow[0] === true) {
-                       // Un-/lock entries
-                       adminBuilderStatusHandler('lock', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray);
-               } else {
-                       // List for editing
-                       adminListBuilder('lock', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
-               }
-       } // END - if
+       // Shall we un-/lock here or list for locking?
+       if ($lockNow[0] === true) {
+               // Un-/lock entries
+               adminBuilderStatusHandler('lock', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray);
+       } else {
+               // List for editing
+               adminListBuilder('lock', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
+       }
 }
 
 // Undelete rows by given id numbers
 }
 
 // Undelete rows by given id numbers
@@ -1280,60 +1302,93 @@ function adminUndeleteEntriesConfirm ($tableName, $columns = array(), $filterFun
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
        // $tableName must be an array
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
        } elseif (!is_array($idColumn)) {
                // $idColumn is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (!is_array($undeleteNow)) {
                // $undeleteNow is no array
        } elseif (!is_array($undeleteNow)) {
                // $undeleteNow is no array
-               debug_report_bug(__FUNCTION__, __LINE__, 'undeleteNow[]=' . gettype($undeleteNow) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'undeleteNow[]=' . gettype($undeleteNow) . '!=array: userIdColumn=' . $userIdColumn);
        } // END - if
 
        } // END - if
 
-       // All valid entries? (We hope so here!)
-       if ((count($columns) == count($filterFunctions)) && (count($columns) == count($extraValues)) && (($undeleteNow[0] === false) || (count($statusArray) == 1))) {
-               // Shall we un-/lock here or list for locking?
-               if ($undeleteNow[0] === true) {
-                       // Undelete entries
-                       adminBuilderStatusHandler('undelete', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray);
-               } else {
-                       // List for editing
-                       adminListBuilder('undelete', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
-               }
-       } // END - if
+       // Shall we un-/lock here or list for locking?
+       if ($undeleteNow[0] === true) {
+               // Undelete entries
+               adminBuilderStatusHandler('undelete', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $statusArray);
+       } else {
+               // List for editing
+               adminListBuilder('undelete', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn);
+       }
 }
 
 // Adds a given entry to the database
 }
 
 // Adds a given entry to the database
-function adminAddEntries ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array()) {
+function adminAddEntries ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $timeColumns = array(), $columnIndex = NULL) {
        //* DEBUG: */ die('columns=<pre>'.print_r($columns,true).'</pre>,filterFunctions=<pre>'.print_r($filterFunctions,true).'</pre>,extraValues=<pre>'.print_r($extraValues,true).'</pre>,POST=<pre>'.print_r($_POST,true).'</pre>');
        // Verify that tableName and columns are not empty
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
        //* DEBUG: */ die('columns=<pre>'.print_r($columns,true).'</pre>,filterFunctions=<pre>'.print_r($filterFunctions,true).'</pre>,extraValues=<pre>'.print_r($extraValues,true).'</pre>,POST=<pre>'.print_r($_POST,true).'</pre>');
        // Verify that tableName and columns are not empty
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array');
+               reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn);
        } elseif (count($columns) == 0) {
                // No columns specified
        } elseif (count($columns) == 0) {
                // No columns specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'columns is not given. Please fix your XML.');
+               reportBug(__FUNCTION__, __LINE__, 'columns is not given. Please fix your XML.');
        }
 
        // Init columns and value elements
        $sqlColumns = array();
        $sqlValues  = array();
 
        }
 
        // Init columns and value elements
        $sqlColumns = array();
        $sqlValues  = array();
 
+       // Do we have "time columns"?
+       if (count($timeColumns) > 0) {
+               // Then "walk" through all entries
+               foreach ($timeColumns as $column) {
+                       // Convert all (possible) selections
+                       convertSelectionsToEpocheTimeInPostData($column . '_ye');
+               } // END - foreach
+       } // END - if
+
        // Add columns and values
        foreach ($columns as $key => $columnName) {
        // Add columns and values
        foreach ($columns as $key => $columnName) {
-               // Copy entry to final arrays
-               $sqlColumns[$key] = $columnName;
-               $sqlValues[$key]  = postRequestElement($columnName);
-               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key='.$key.',columnName='.$columnName.',filterFunctions='.$filterFunctions[$key].',extraValues='.intval(isset($extraValues[$key])).',extraValuesName='.intval(isset($extraValues[$columnName . '_list'])).'<br />');
+               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',columnName=' . $columnName);
+               // Is columnIndex set?
+               if (!is_null($columnIndex)) {
+                       // Check conditions
+                       //* DEBUG: */ die('columnIndex=<pre>'.print_r($columnIndex,true).'</pre>'.debug_get_printable_backtrace());
+                       assert((is_array($columnName)) && (isset($columnName[$columnIndex])));
+
+                       // Then use that index "blindly"
+                       $columnName = $columnName[$columnIndex];
+               } // END - if
+
+               // Debug message
+               /* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',columnName[' . gettype($columnName) . ']=' . $columnName . ',filterFunctions=' . $filterFunctions[$key] . ',extraValues=' . intval(isset($extraValues[$key])) . ',extraValuesName=' . intval(isset($extraValues[$columnName . '_list'])) . '<br />');
+
+               // Copy entry securely to the final arrays
+               $sqlColumns[$key] = SQL_ESCAPE($columnName);
+               $sqlValues[$key]  = SQL_ESCAPE(postRequestElement($columnName));
 
                // Send data through the filter function if found
                if ((isset($filterFunctions[$key])) && (isset($extraValues[$key . '_list']))) {
                        // Filter function set!
 
                // Send data through the filter function if found
                if ((isset($filterFunctions[$key])) && (isset($extraValues[$key . '_list']))) {
                        // Filter function set!
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - BEFORE!');
                        $sqlValues[$key] = call_user_func_array($filterFunctions[$key], merge_array(array($columnName), $extraValues[$key . '_list']));
                        $sqlValues[$key] = call_user_func_array($filterFunctions[$key], merge_array(array($columnName), $extraValues[$key . '_list']));
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - AFTER!');
+               } elseif ((isset($filterFunctions[$key])) && (!empty($filterFunctions[$key]))) {
+                       // Run through an extra filter
+                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - BEFORE!');
+                       $sqlValues[$key] = handleExtraValues($filterFunctions[$key], $sqlValues[$key], '');
+                       /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key] . ' - AFTER!');
+               }
+
+               // Is the value not a number?
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sqlValues[' . $key . '][' . gettype($sqlValues[$key]) . ']=' . $sqlValues[$key]);
+               if (($sqlValues[$key] != 'NULL') && (is_string($sqlValues[$key]))) {
+                       // Add quotes around it
+                       $sqlValues[$key] = chr(39) . $sqlValues[$key] . chr(39);
                } // END - if
        } // END - foreach
 
        // Build the SQL query
                } // END - if
        } // END - foreach
 
        // Build the SQL query
-       $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES ('" . implode("','", $sqlValues) . "')";
+       $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES (" . implode(',', $sqlValues) . ')';
 
        // Run the SQL query
        SQL_QUERY($SQL, __FUNCTION__, __LINE__);
 
        // Run the SQL query
        SQL_QUERY($SQL, __FUNCTION__, __LINE__);
@@ -1349,14 +1404,14 @@ function adminAddEntries ($tableName, $columns = array(), $filterFunctions = arr
 }
 
 // List all given rows (callback function from XML)
 }
 
 // List all given rows (callback function from XML)
-function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tableName, $columns, $whereColumns, $orderByColumns, $callbackColumns, $extraParameters = array()) {
+function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tableName, $columns, $whereColumns, $orderByColumns, $callbackColumns, $extraParameters = array(), $conditions = array()) {
        // Verify that tableName and columns are not empty
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
        // Verify that tableName and columns are not empty
        if ((!is_array($tableName)) || (count($tableName) != 1)) {
                // No tableName specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate);
+               reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate);
        } elseif (count($columns) == 0) {
                // No columns specified
        } elseif (count($columns) == 0) {
                // No columns specified
-               debug_report_bug(__FUNCTION__, __LINE__, 'columns is not given. Please fix your XML,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate . ',tableName[0]=' . $tableName[0]);
+               reportBug(__FUNCTION__, __LINE__, 'columns is not given. Please fix your XML,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate . ',tableName[0]=' . $tableName[0]);
        }
 
        // This is the minimum query, so at least columns and tableName must have entries
        }
 
        // This is the minimum query, so at least columns and tableName must have entries
@@ -1382,10 +1437,34 @@ function adminListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, $tab
                        } // END - if
 
                        // Add the rest
                        } // END - if
 
                        // Add the rest
-                       $SQL .= '`' . $whereColumns[0]['column'] . '`' . $whereColumns[0]['condition'] . "'" . $whereColumns[0]['look_for'] . "'";
+                       $SQL .= '`' . $whereColumns[0]['column'] . '`' . $whereColumns[0]['condition'] . chr(39) . $whereColumns[0]['look_for'] . chr(39);
+               } elseif ((count($whereColumns > 1)) && (count($conditions) > 0)) {
+                       // More than one "WHERE" + condition found
+                       foreach ($whereColumns as $idx => $columnArray) {
+                               // Default is WHERE
+                               $condition = 'WHERE';
+
+                               // Is the condition element there?
+                               if (isset($conditions[$columnArray['column']])) {
+                                       // Assume the condition
+                                       $condition = $conditions[$columnArray['column']];
+                               } // END - if
+
+                               // Add to SQL query
+                               $SQL .= ' ' . $condition;
+
+                               // Table/alias included?
+                               if (!empty($whereColumns[$idx]['table'])) {
+                                       // Add it as well
+                                       $SQL .= $whereColumns[$idx]['table'] . '.';
+                               } // END - if
+
+                               // Add the rest
+                               $SQL .= '`' . $whereColumns[$idx]['column'] . '`' . $whereColumns[$idx]['condition'] . chr(39) . convertDollarDataToGetElement($whereColumns[$idx]['look_for']) . chr(39);
+                       } // END - foreach
                } else {
                } else {
-                       // More than one entry -> Unsupported
-                       debug_report_bug(__FUNCTION__, __LINE__, 'More than one WHERE statement found. This is currently not supported.');
+                       // Did not set $conditions
+                       reportBug(__FUNCTION__, __LINE__, 'Supplied more than &quot;whereColumns&quot; entries but no conditions! Please fix your XML template.');
                }
        } // END - if
 
                }
        } // END - if
 
@@ -1427,7 +1506,7 @@ function doAdminListEntries ($SQL, $tableTemplate, $noEntryMessageId, $rowTempla
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        // "Translate" content
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        // "Translate" content
-                       foreach ($callbackColumns as $columnName => $callbackFunction) {
+                       foreach ($callbackColumns as $columnName => $callbackName) {
                                // Fill the callback arguments
                                $args = array($content[$columnName]);
 
                                // Fill the callback arguments
                                $args = array($content[$columnName]);
 
@@ -1438,9 +1517,9 @@ function doAdminListEntries ($SQL, $tableTemplate, $noEntryMessageId, $rowTempla
                                } // END - if
 
                                // Call the callback-function
                                } // END - if
 
                                // Call the callback-function
-                               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'callbackFunction=' . $callbackFunction . ',args=<pre>'.print_r($args, true).'</pre>');
+                               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'callbackFunction=' . $callbackName . ',args=<pre>'.print_r($args, true).'</pre>');
                                // @TODO If we can rewrite the EL sub-system to support more than one parameter, this call_user_func_array() can be avoided
                                // @TODO If we can rewrite the EL sub-system to support more than one parameter, this call_user_func_array() can be avoided
-                               $content[$columnName] = call_user_func_array($callbackFunction, $args);
+                               $content[$columnName] = call_user_func_array($callbackName, $args);
                        } // END - foreach
 
                        // Load row template
                        } // END - foreach
 
                        // Load row template
@@ -1577,10 +1656,10 @@ function adminUpdateTaskData ($id, $row, $data) {
        // Should be admin and valid id
        if (!isAdmin()) {
                // Not an admin so redirect better
        // Should be admin and valid id
        if (!isAdmin()) {
                // Not an admin so redirect better
-               debug_report_bug(__FUNCTION__, __LINE__, 'id=' . $id . ',row=' . $row . ',data=' . $data . ' - isAdmin()=false');
+               reportBug(__FUNCTION__, __LINE__, 'id=' . $id . ',row=' . $row . ',data=' . $data . ' - isAdmin()=false');
        } elseif ($id <= 0) {
                // Initiate backtrace
        } elseif ($id <= 0) {
                // Initiate backtrace
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("id is invalid: %s. row=%s, data=%s",
+               reportBug(__FUNCTION__, __LINE__, sprintf("id is invalid: %s. row=%s, data=%s",
                        $id,
                        $row,
                        $data
                        $id,
                        $row,
                        $data
@@ -1596,7 +1675,7 @@ function adminUpdateTaskData ($id, $row, $data) {
                ), __FUNCTION__, __LINE__);
 }
 
                ), __FUNCTION__, __LINE__);
 }
 
-// Checks wether if the admin menu has entries
+// Checks whether if the admin menu has entries
 function ifAdminMenuHasEntries ($action) {
        return (
                ((
 function ifAdminMenuHasEntries ($action) {
        return (
                ((
@@ -1635,7 +1714,7 @@ function generateAdminLink ($adminId) {
        $adminLink = '{--ADMIN_NO_ADMIN_ASSIGNED--}';
 
        // Zero? = Not assigned
        $adminLink = '{--ADMIN_NO_ADMIN_ASSIGNED--}';
 
        // Zero? = Not assigned
-       if (bigintval($adminId) > 0) {
+       if (isValidUserId($adminId)) {
                // Load admin's login
                $login = getAdminLogin($adminId);
 
                // Load admin's login
                $login = getAdminLogin($adminId);
 
index 9084025f2f84bdb3a57f8e2e1699382eb3a47ab6..97fb5e43642801524dbd376d180ed17eb8fe2072 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -102,7 +102,13 @@ function outputStandardOverview (&$result_tasks) {
 
        // At last - but not least - check for own and new unassigned tasks...
        $result_tasks = SQL_QUERY_ESC("SELECT
 
        // At last - but not least - check for own and new unassigned tasks...
        $result_tasks = SQL_QUERY_ESC("SELECT
-       `id`,`assigned_admin`,`userid`,`task_type`,`subject`,`text`,`task_created`
+       `id`,
+       `assigned_admin`,
+       `userid`,
+       `task_type`,
+       `subject`,
+       `text`,
+       `task_created`
 FROM
        `{?_MYSQL_PREFIX?}_task_system`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_task_system`
 WHERE
@@ -256,7 +262,7 @@ LIMIT 1",
                                        $taskData['text'] .= getExtensionNotes();
                                } else {
                                        // This should not normally happen!
                                        $taskData['text'] .= getExtensionNotes();
                                } else {
                                        // This should not normally happen!
-                                       debug_report_bug(__FILE__, __LINE__, 'ext_name(' . $ext_name . ') or ext_ver(' . $ext_ver . ') is empty! isVerboseSqlEnabled=' . intval(isVerboseSqlEnabled()));
+                                       reportBug(__FILE__, __LINE__, 'ext_name(' . $ext_name . ') or ext_ver(' . $ext_ver . ') is empty! isVerboseSqlEnabled=' . intval(isVerboseSqlEnabled()));
                                }
 
                                // Prepare array for the template
                                }
 
                                // Prepare array for the template
@@ -265,7 +271,7 @@ LIMIT 1",
                                        'add'          => $add,
                                        'text'         => $taskData['text'],
                                        'task_created' => generateDateTime($taskData['task_created'], '1'),
                                        'add'          => $add,
                                        'text'         => $taskData['text'],
                                        'task_created' => generateDateTime($taskData['task_created'], '1'),
-                                       'extension'    => $ext_name
+                                       'ext_name'     => $ext_name
                                );
 
                                // Load template
                                );
 
                                // Load template
@@ -309,7 +315,7 @@ LIMIT 1",
                                                // @TODO This may also be rewritten to include files
                                                switch ($mode) {
                                                        default: // @TODO Unknown support mode
                                                // @TODO This may also be rewritten to include files
                                                switch ($mode) {
                                                        default: // @TODO Unknown support mode
-                                                       logDebugMessage(__FILE__, __LINE__, sprintf("Unknown support mode %s detected. This part is under construction!", $mode));
+                                                       logDebugMessage(__FILE__, __LINE__, sprintf("Unknown support mode %s detected. This part is under construction.", $mode));
                                                        $OUT .= '<div class="notice medium">{%message,ADMIN_UNKNOWN_SUPPORT_MODE=' . $mode . '%}</div>';
                                                        break;
                                                } // END - switch
                                                        $OUT .= '<div class="notice medium">{%message,ADMIN_UNKNOWN_SUPPORT_MODE=' . $mode . '%}</div>';
                                                        break;
                                                } // END - switch
@@ -400,7 +406,7 @@ LIMIT 1",
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `assigned_admin`=NULL WHERE `id`=%s AND `assigned_admin`=%s LIMIT 1",
                                                array(bigintval($taskId), getCurrentAdminId()), __FILE__, __LINE__);
                                } // END - foreach
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `assigned_admin`=NULL WHERE `id`=%s AND `assigned_admin`=%s LIMIT 1",
                                                array(bigintval($taskId), getCurrentAdminId()), __FILE__, __LINE__);
                                } // END - foreach
-                       } elseif (isset($postData['delete'])) {
+                       } elseif (!empty($postData['delete'])) {
                                // Delete tasks
                                foreach ($postData['sel'] as $taskId => $sel) {
                                        SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `id`=%s AND `assigned_admin` IN (%s,0,NULL) LIMIT 1",
                                // Delete tasks
                                foreach ($postData['sel'] as $taskId => $sel) {
                                        SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_task_system` WHERE `id`=%s AND `assigned_admin` IN (%s,0,NULL) LIMIT 1",
@@ -408,7 +414,7 @@ LIMIT 1",
                                } // END - foreach
                        } else {
                                // Unknown action
                                } // END - foreach
                        } else {
                                // Unknown action
-                               debug_report_bug(__FILE__, __LINE__, sprintf("Unknown task action performed. data=<pre>%s</pre>", print_r($postData, true)));
+                               reportBug(__FILE__, __LINE__, sprintf("Unknown task action performed. data=<pre>%s</pre>", print_r($postData, true)));
                        }
 
                        // Update query
                        }
 
                        // Update query
index 4fb66b0b8a3d5c927a46ae18049a84b42d4dde89..8486fe4b820ddcc03d4f59e7d5c214b0f1bb63b7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 52d6eb00a957a0eac62730e783867c052dbae5ba..2dc02ed1d5ae58c9ddbf754888bb7dec723e07d7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 6f3dcddca67b8e302c1c2e9b509e863a216a893b..4d22025578e0facffc5409dbd76264faeeb47fac 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,7 @@ addYouAreHereLink('admin', __FILE__);
 
 if (isFormSent()) {
        // @TODO Check if category does already exist
 
 if (isFormSent()) {
        // @TODO Check if category does already exist
-       debug_report_bug(__FILE__, __LINE__, 'Unfinished area!');
+       reportBug(__FILE__, __LINE__, 'Unfinished area!');
 } else {
        // Display form
        loadTemplate('admin_add_guestnl_cat');
 } else {
        // Display form
        loadTemplate('admin_add_guestnl_cat');
index 7c96f3acc35c85ffa11d666eff68f94c255e37b4..8b36b7955569cfa2d1e17e0c42a004916442e188 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -58,8 +58,11 @@ if (getRequestElement('userid') == 'all') {
                        // Merge $row into $content
                        $content = merge_array($content, $row);
 
                        // Merge $row into $content
                        $content = merge_array($content, $row);
 
+                       // Init referral system
+                       initReferralSystem();
+
                        // Ok, add points and send an email to him...
                        // Ok, add points and send an email to him...
-                       addPointsDirectly('admin_add_all', $content['userid'], bigintval(postRequestElement('points')));
+                       addPointsThroughReferralSystem('admin_add_all', $content['userid'], bigintval(postRequestElement('points')));
 
                        // Prepare content
                        $content = array(
 
                        // Prepare content
                        $content = array(
@@ -90,8 +93,11 @@ if (getRequestElement('userid') == 'all') {
                $content = getUserDataArray();
 
                if ((isFormSent()) && (isPostRequestElementSet('points'))) {
                $content = getUserDataArray();
 
                if ((isFormSent()) && (isPostRequestElementSet('points'))) {
+                       // Init referral system
+                       initReferralSystem();
+
                        // Add points and send an email to him...
                        // Add points and send an email to him...
-                       addPointsDirectly('admin_add_single', bigintval(getRequestElement('userid')), bigintval(postRequestElement('points')));
+                       addPointsThroughReferralSystem('admin_add_single', bigintval(getRequestElement('userid')), bigintval(postRequestElement('points')));
 
                        // Prepare content
                        $content = array(
 
                        // Prepare content
                        $content = array(
@@ -106,7 +112,7 @@ if (getRequestElement('userid') == 'all') {
                        // Send the email out
                        sendEmail(bigintval(getRequestElement('userid')), '{--ADMIN_ADD_SUBJECT--}', $message);
 
                        // Send the email out
                        sendEmail(bigintval(getRequestElement('userid')), '{--ADMIN_ADD_SUBJECT--}', $message);
 
-                       // .. and display a message
+                       // ... and display a message
                        displayMessage('{--ADMIN_POINTS_ADDED--}');
                } else {
                        // Prepare content
                        displayMessage('{--ADMIN_POINTS_ADDED--}');
                } else {
                        // Prepare content
index 1b0aad03c9297174020a2bb25a3cd9af1f209676..8697560930fec671c3e4ba14d13febac8ed28c62 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,8 +45,8 @@ addYouAreHereLink('admin', __FILE__);
 
 if (isFormSent()) {
        // Generate timestamps
 
 if (isFormSent()) {
        // Generate timestamps
-       $START = mktime(postRequestElement('start_hour'), postRequestElement('start_min'), postRequestElement('start_sec'), postRequestElement('start_month'), postRequestElement('start_day'), postRequestElement('start_year'));
-       $END   = mktime(postRequestElement('end_hour')  , postRequestElement('end_min')  , postRequestElement('end_sec')  , postRequestElement('end_month')  , postRequestElement('end_day')  , postRequestElement('end_year')  );
+       $START = mktime(postRequestElement('start_time_hour'), postRequestElement('start_time_min'), 0, postRequestElement('start_time_month'), postRequestElement('start_time_day'), postRequestElement('start_time_year'));
+       $END   = mktime(postRequestElement('end_time_hour')  , postRequestElement('end_time_min')  , 0, postRequestElement('end_time_month')  , postRequestElement('end_time_day')  , postRequestElement('end_time_year')  );
 
        // Is there already a rallye running?
        $result = SQL_QUERY_ESC("SELECT `id`,`admin_id` FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE (`start_time` <= %s AND `end_time` >= %s) OR (`start_time` >= %s AND `start_time` <= %s) LIMIT 1",
 
        // Is there already a rallye running?
        $result = SQL_QUERY_ESC("SELECT `id`,`admin_id` FROM `{?_MYSQL_PREFIX?}_rallye_data` WHERE (`start_time` <= %s AND `end_time` >= %s) OR (`start_time` >= %s AND `start_time` <= %s) LIMIT 1",
@@ -65,7 +65,9 @@ if (isFormSent()) {
        `end_time`,
        `auto_add_new_user`,
        `is_active`,
        `end_time`,
        `auto_add_new_user`,
        `is_active`,
-       `send_notify`
+       `send_notify`,
+       `min_users`,
+       `min_prices`
 ) VALUES (
        %s,
        '%s',
 ) VALUES (
        %s,
        '%s',
@@ -75,7 +77,9 @@ if (isFormSent()) {
        %s,
        '%s',
        '%s',
        %s,
        '%s',
        '%s',
-       '%s'
+       '%s',
+       %s,
+       %s
 )",
                        array(
                                getCurrentAdminId(),
 )",
                        array(
                                getCurrentAdminId(),
@@ -87,6 +91,8 @@ if (isFormSent()) {
                                postRequestElement('auto_add'),
                                postRequestElement('active'),
                                postRequestElement('notify'),
                                postRequestElement('auto_add'),
                                postRequestElement('active'),
                                postRequestElement('notify'),
+                               bigintval(postRequestElement('min_users')),
+                               bigintval(postRequestElement('min_prices'))
                        ), __FILE__, __LINE__);
 
                // Load id
                        ), __FILE__, __LINE__);
 
                // Load id
@@ -94,38 +100,37 @@ if (isFormSent()) {
 
                if (!empty($id)) {
                        // Reload to prices...
 
                if (!empty($id)) {
                        // Reload to prices...
-                       redirectToUrl('modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye='.$id);
+                       redirectToUrl('modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=' . bigintval($id));
                } else {
                        // Problem detected...
                } else {
                        // Problem detected...
-                       displayMessage('{--RALLYE_PROBLEM_CREATE--}');
+                       displayMessage('{--ADMIN_RALLYE_PROBLEM_CREATE--}');
                }
        } else {
                }
        } else {
-               // Free memory
-               SQL_FREERESULT($result);
 
                // Overlapping detected
 
                // Overlapping detected
-               displayMessage('{--RALLYE_OVERLAP_TIMES--}');
+               displayMessage('{--ADMIN_RALLYE_OVERLAP_TIMES--}');
        }
        }
+
+       // Free memory
+       SQL_FREERESULT($result);
 } // END - if
 
 // Starting day
 } // END - if
 
 // Starting day
-$content['start_sec']   = addSelectionBox('sec'  , 0                   , 'start');
-$content['start_min']   = addSelectionBox('min'  , 0                   , 'start');
-$content['start_hour']  = addSelectionBox('hour' , getShortHour()      , 'start');
-$content['start_day']   = addSelectionBox('day'  , getDay()            , 'start');
-$content['start_month'] = addSelectionBox('month', getMonth()          , 'start');
-$content['start_year']  = addSelectionBox('year' , getYear()           , 'start');
+$content['start_min']   = addSelectionBox('min'  , 0                   , 'start_time');
+$content['start_hour']  = addSelectionBox('hour' , getShortHour()      , 'start_time');
+$content['start_day']   = addSelectionBox('day'  , getDay()            , 'start_time');
+$content['start_month'] = addSelectionBox('month', getMonth()          , 'start_time');
+$content['start_year']  = addSelectionBox('year' , getYear()           , 'start_time');
 
 // Ending timestamp
 $endingStamp = time() + (getOneDay() * 7);
 
 // Ending day
 
 // Ending timestamp
 $endingStamp = time() + (getOneDay() * 7);
 
 // Ending day
-$content['end_sec']   = addSelectionBox('sec'  , 0                     , 'end');
-$content['end_min']   = addSelectionBox('min'  , 0                     , 'end');
-$content['end_hour']  = addSelectionBox('hour' , getShortHour()        , 'end');
-$content['end_day']   = addSelectionBox('day'  , getDay($endingStamp)  , 'end');
-$content['end_month'] = addSelectionBox('month', getMonth($endingStamp), 'end');
-$content['end_year']  = addSelectionBox('year' , getYear($endingStamp) , 'end');
+$content['end_min']   = addSelectionBox('min'  , 0                     , 'end_time');
+$content['end_hour']  = addSelectionBox('hour' , getShortHour()        , 'end_time');
+$content['end_day']   = addSelectionBox('day'  , getDay($endingStamp)  , 'end_time');
+$content['end_month'] = addSelectionBox('month', getMonth($endingStamp), 'end_time');
+$content['end_year']  = addSelectionBox('year' , getYear($endingStamp) , 'end_time');
 
 // Load template
 loadTemplate('admin_add_rallye', false, $content);
 
 // Load template
 loadTemplate('admin_add_rallye', false, $content);
index 15abfe58a5df173b118216fbfc65c98471628a2f..ea2b44939817f4494e7d4524451866ca7f33419b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a4bce3ff69ed754891a9bb3f53793ec35a277803..eefa72e692cd0d5748d288442ec24c449c691c48 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,18 +45,11 @@ addYouAreHereLink('admin', __FILE__);
 
 // Was an URL added?
 if ((isFormSent('add')) && (isPostRequestElementSet('url'))) {
 
 // Was an URL added?
 if ((isFormSent('add')) && (isPostRequestElementSet('url'))) {
-       // Initialize variables
-       $content = array();
-       $id = 'reload_ye';
-       $skip = false;
-       $postData = postRequestArray();
-
        // Convert the "reload selections"
        // Convert the "reload selections"
-       // @TODO Find all convertSelectionsToEpocheTime() calls and rewrite postRequestElement() calls to $postData
-       convertSelectionsToEpocheTime($postData, $content, $id, $skip);
+       convertSelectionsToEpocheTimeInPostArray('reload_ye');
 
        // Then add this URL
 
        // Then add this URL
-       if (SURFBAR_ADMIN_ADD_URL($postData['url'], $postData['limit'], $postData['reload'])) {
+       if (doSurfbaradminAddUrl(postRequestElement('url'), postRequestElement('limit'), postRequestElement('reload'))) {
                // URL was added
                displayMessage('{--ADMIN_SURFBAR_URL_ADDED--}');
        } else {
                // URL was added
                displayMessage('{--ADMIN_SURFBAR_URL_ADDED--}');
        } else {
diff --git a/inc/modules/admin/what-add_tester_user.php b/inc/modules/admin/what-add_tester_user.php
new file mode 100644 (file)
index 0000000..920aa29
--- /dev/null
@@ -0,0 +1,71 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 05/12/2011 *
+ * ===================                          Last change: 05/12/2011 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-add_tester_user.php                         *
+ * -------------------------------------------------------------------- *
+ * Short description : Easy creation of tester accounts and their refs  *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einfaches Anlegen von Testbenutzern + Referrals  *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+       die();
+} // END - if
+
+// Add description as navigation point
+addYouAreHereLink('admin', __FILE__);
+
+// Is the form sent or something did go wrong?
+if (!isNewUserTesterAllowed()) {
+       // No more accounts allowed to create (maximum reached)
+       displayMessage('{--ADMIN_MAXIMUM_USER_TESTER_REACHED--}');
+
+       // Abort here
+       return;
+} elseif (isFormSent()) {
+       // Yes, so try to create the tester account
+       if (createTesterUserAccount()) {
+               // Account has been created
+               displayMessage('{--ADMIN_TESTER_USER_ACCOUNT_CREATION_DONE--}');
+       } else {
+               // Account not created
+               displayMessage('{--ADMIN_TESTER_USER_ACCOUNT_CREATION_FAILED--}');
+       }
+} // END - if
+
+// Generate max-receive selection
+$content['max_receive_selection'] = addMaxReceiveList('admin', '', true);
+
+// Display form
+loadTemplate('admin_add_tester_user', false, $content);
+
+// [EOF]
+?>
index ddcfa970cbf0e8ab844493e0e0666e42d6687382..abf421126ed8db612903486595bcc4fa9f15bf80 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,7 +50,9 @@ if ((isFormSent()) && ((!isPostRequestElementSet('title')) || (!isPostRequestEle
 
 if (!isFormSent()) {
        // Create arrays
 
 if (!isFormSent()) {
        // Create arrays
-       $menus = array(); $titles = array(); $below = array();
+       $menus = array();
+       $titles = array();
+       $below = array();
 
        // Get all available main menus
        $result = SQL_QUERY("SELECT `action`,`title`,`sort` FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE (`what`='' OR `what` IS NULL) ORDER BY `sort` ASC", __FILE__, __LINE__);
 
        // Get all available main menus
        $result = SQL_QUERY("SELECT `action`,`title`,`sort` FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE (`what`='' OR `what` IS NULL) ORDER BY `sort` ASC", __FILE__, __LINE__);
@@ -59,13 +61,13 @@ if (!isFormSent()) {
                // @TODO Cant this be rewritten?
                while ($content = SQL_FETCHARRAY($result)) {
                        // Menu actions
                // @TODO Cant this be rewritten?
                while ($content = SQL_FETCHARRAY($result)) {
                        // Menu actions
-                       $menus[] = $content['action'];
+                       array_push($menus, $content['action']);
 
                        // Menu titles
 
                        // Menu titles
-                       $titles[] = $content['title'];
+                       array_push($titles, $content['title']);
 
                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
 
                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
-                       $below[] = $content['sort'] + 1;
+                       array_push($below, $content['sort'] + 1);
                } // END - while
 
                // Free memory
                } // END - while
 
                // Free memory
@@ -102,13 +104,13 @@ if (!isFormSent()) {
                                // Read menu structure
                                while ($content = SQL_FETCHARRAY($result)) {
                                        // Menu actions
                                // Read menu structure
                                while ($content = SQL_FETCHARRAY($result)) {
                                        // Menu actions
-                                       $menus[$value_main][] = $content['what'];
+                                       array_push($menus[$value_main], $content['what']);
 
                                        // Menu titles
 
                                        // Menu titles
-                                       $titles[$value_main][] = $content['title'];
+                                       array_push($titles[$value_main], $content['title']);
 
                                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
 
                                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
-                                       $below[$value_main][] = $content['sort'] + 1;
+                                       array_push($below[$value_main], $content['sort'] + 1);
                                } // END - while
 
                                // Free memory
                                } // END - while
 
                                // Free memory
index 00764f8505834c2312b27a41d698d0601b9929bb..dbb7740b9c1a48ec18870dab7df2417aac82be7e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -215,7 +215,7 @@ LIMIT 1",
                        if (($content['sort'] == '0') || (($content['sort'] == 1) && (!empty($subMenu)))) {
                                // Is highest position
                                $content['navi'] = '<a href="{%url=modules.php?module=admin&amp;what=adminedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']+1) . '&amp;fid=' . $content['sort'] . '%}">{--LOWER--}</a>';
                        if (($content['sort'] == '0') || (($content['sort'] == 1) && (!empty($subMenu)))) {
                                // Is highest position
                                $content['navi'] = '<a href="{%url=modules.php?module=admin&amp;what=adminedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']+1) . '&amp;fid=' . $content['sort'] . '%}">{--LOWER--}</a>';
-                       } elseif ($count == SQL_NUMROWS($result)) {
+                       } elseif (SQL_NUMROWS($result) == $count) {
                                // Is lowest position
                                $content['navi'] = '<a href="{%url=modules.php?module=admin&amp;what=adminedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']-1) . '&amp;fid=' . $content['sort'] . '%}">{--HIGHER--}</a>';
                        } elseif ($content['sort'] > 0) {
                                // Is lowest position
                                $content['navi'] = '<a href="{%url=modules.php?module=admin&amp;what=adminedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']-1) . '&amp;fid=' . $content['sort'] . '%}">{--HIGHER--}</a>';
                        } elseif ($content['sort'] > 0) {
index 43162f011a0a1cfb9d18eae393415ee9c74aafd2..d6916e00dc9db404abac4e47ce73f8e1c350730d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 07393bc2012eef7c7cece53f8f1225d8f9732cbf..36f8b9a8e7e000bdbbdefe9662108839e17a68b5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8f45314ccc77ca581cd723ea75c7af4cfe486267..8ac0ecb36ee12375da83e3c02265c08dac657b22 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -61,7 +61,7 @@ if (isGetRequestElementSet('admin')) {
 if ((isFormSent('edit')) && (ifPostContainsSelections())) {
        // Edit account(s)
        adminsEditAdminAccount(postRequestArray());
 if ((isFormSent('edit')) && (ifPostContainsSelections())) {
        // Edit account(s)
        adminsEditAdminAccount(postRequestArray());
-} elseif ((isFormSent('do_edit')) && (count(postRequestElement('login')) > 0)) {
+} elseif ((isFormSent('do_edit')) && (ifPostContainsSelections('login'))) {
        // Change admin accounts
        adminsChangeAdminAccount(postRequestArray());
 } elseif ((isFormSent('delete')) && (ifPostContainsSelections())) {
        // Change admin accounts
        adminsChangeAdminAccount(postRequestArray());
 } elseif ((isFormSent('delete')) && (ifPostContainsSelections())) {
index 39d7f99b38b05d000f2ccaf7f68d2d60002c7dd4..47f0fa9dfab9324916e8901d787ffa0d2bc47dcc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -71,7 +71,7 @@ if (isFormSent('edit')) {
                                        $OUT .= '>{--ADMIN_ADMINS_TO_USER_EVENTS--}</option>';
                                } // END - if
 
                                        $OUT .= '>{--ADMIN_ADMINS_TO_USER_EVENTS--}</option>';
                                } // END - if
 
-                               $OUT .= generateOptionList('admins', 'id', 'login', $content['admin_id'], 'email');
+                               $OUT .= generateOptions('admins', 'id', 'login', $content['admin_id'], 'email');
                                $OUT .= '</select>';
 
                                // Transfer ids
                                $OUT .= '</select>';
 
                                // Transfer ids
@@ -85,9 +85,9 @@ if (isFormSent('edit')) {
                        // Prepare content
                        $content['id']            = $id;
                        $content['mail_template'] = $template;
                        // Prepare content
                        $content['id']            = $id;
                        $content['mail_template'] = $template;
-                       $content['admins']        = generateOptionList('admins', 'id', 'login', '', 'email');;
+                       $content['admins']        = generateOptions('admins', 'id', 'login', '', 'email');;
 
 
-                       if ($adminId2 > 0) {
+                       if (isValidUserId($adminId2)) {
                                // Add form for an additional admin
                                $OUT .= loadTemplate('admin_admins_mails_edit_form', true, $content);
                        } // END - if
                                // Add form for an additional admin
                                $OUT .= loadTemplate('admin_admins_mails_edit_form', true, $content);
                        } // END - if
@@ -137,7 +137,7 @@ ORDER BY
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admins_mails` SET `admin_id`=%s WHERE `id`=%s ORDER BY `id` LIMIT 1",
                                        array($content['admin_id'], $id), __FILE__, __LINE__, false));
 
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admins_mails` SET `admin_id`=%s WHERE `id`=%s ORDER BY `id` LIMIT 1",
                                        array($content['admin_id'], $id), __FILE__, __LINE__, false));
 
-                               if (($content['admin_id'] < 1) && (isPostRequestElementSet('template', $id))) {
+                               if ((!isValidUserId($content['admin_id'])) && (isPostRequestElementSet('template', $id))) {
                                        // Remove any other admin entries
                                        addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE mail_template='%s' AND id != '%s'",
                                        array(postRequestElement('template', $id), $id), __FILE__, __LINE__, false));
                                        // Remove any other admin entries
                                        addSql(SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE mail_template='%s' AND id != '%s'",
                                        array(postRequestElement('template', $id), $id), __FILE__, __LINE__, false));
index 7ec23cded917865362e26c8cb70296a7b76fd6b1..b6e3279a5e0aec8f8d2014ca0155db86d3542836 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 589d69ae2a824e2f0aaec36cc5973a5a5dec0512..dfa33c8949e02649a229448ef01ace49a81e5957 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -46,8 +46,6 @@ addYouAreHereLink('admin', __FILE__);
 // Activated?
 if (ifInternalStatsEnabled()) {
        // Prepare data for the template
 // Activated?
 if (ifInternalStatsEnabled()) {
        // Prepare data for the template
-       $content['db_hits']    = getStatsEntry('db_hits');
-       $content['cache_hits'] = getStatsEntry('cache_hits');
        $content['total_hits'] = (getStatsEntry('db_hits') + getStatsEntry('cache_hits'));
        $content['cache_perc'] = (getStatsEntry('cache_hits') / $content['total_hits'] * 100);
 
        $content['total_hits'] = (getStatsEntry('db_hits') + getStatsEntry('cache_hits'));
        $content['cache_perc'] = (getStatsEntry('cache_hits') / $content['total_hits'] * 100);
 
index 2c7d39d59ea2523811b7df8a5ba840fabebc4c44..dec9005dcccef2eaf3f8b6e8af629932368205ce 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index d8f77a1a90e736787b67de37df57451ee29ea4e1..c75c29dafbf9f3da07db82067ce666839673a449 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5c0d96621d1c07e30976138a75c7407e35795e13..02b1803549a19e214962e0bf852fba0a9f94eed7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 22da0498b752d5539d212ddae8453314c5454c7b..bf00a05fe908b1aa338fc66735557b063fc9f622 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 853d037f81f7f3f78e68cfd4ba1b8f4f3fb5ccaf..323428b03da70b9d82faf8f88b4c17300c22993b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 951158287428490bdb701e21d94861a5e4525de9..d42f8d90882e4e584efb44d85ec7e6663131097a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 0bc5676d6a78211c49bfb4e24f246f8886b639c4..00ab82d3a28b3579b1638ec69a13efd67ff5b5c0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,8 +51,12 @@ if (isFormSent()) {
        setPostRequestElement('turbo_rates', '');
        $RATES = array();
        foreach (postRequestElement('rate') as $rate) {
        setPostRequestElement('turbo_rates', '');
        $RATES = array();
        foreach (postRequestElement('rate') as $rate) {
+               // Convert German comma to dot
                $rate = trim(convertCommaToDot($rate));
                $rate = trim(convertCommaToDot($rate));
-               if (!empty($rate)) $RATES[] = $rate;
+
+               if (!empty($rate)) {
+                       array_push($RATES, $rate);
+               } // END - if
        } // END - foreach
        setPostRequestElement('turbo_rates', trim(implode(';', $RATES)));
        unsetPostRequestElement('rate');
        } // END - foreach
        setPostRequestElement('turbo_rates', trim(implode(';', $RATES)));
        unsetPostRequestElement('rate');
index 5fd1ef8f9290033beaceccbcae8317b51b051c67..0cd9676bc761b190e971eccb0078b629322245e4 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -70,7 +70,7 @@ if (isFormSent('add')) {
 
        // Display message
        displayMessage($content);
 
        // Display message
        displayMessage($content);
-} elseif ((isFormSent()) && (isPostRequestElementSet('id')) && (is_array(postRequestElement('id')))) {
+} elseif ((isFormSent()) && (ifPostContainsSelections('id'))) {
        // Change or delete categories...
        $TEXT = '';
        foreach (postRequestElement('id') as $id => $cat) {
        // Change or delete categories...
        $TEXT = '';
        foreach (postRequestElement('id') as $id => $cat) {
index 1637fbe46ec6996d5da3ba8cfa53d8b6a7d6cbe1..e21ae269b2c11b367054971d444727d7c175048a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 1e9c9915b9e7a418a979a3204c7d32a29e477702..d207c70492f3f87ef2bf4fa67015c794887ecebd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -65,7 +65,7 @@ if (isFormSent()) {
 
        // Number of rows to display (option lines!!!)
        foreach (array('new','pay','old') as $entry) {
 
        // Number of rows to display (option lines!!!)
        foreach (array('new','pay','old') as $entry) {
-               $content['display_' . $entry] = generateOptionList(
+               $content['display_' . $entry] = generateOptions(
                        '/ARRAY/',
                        array(
                                5,
                        '/ARRAY/',
                        array(
                                5,
index 361ec31082f2eefc253394a5ce88503805f0b355..bbcbf612309327fd928374aa5efb817c95a5d0d4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a4f93e62d179fcde0f5dd03877488f31357d6202..288ac131bdb77696319a3f5b1dbcc57efe3ebbef 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index aecc2ca5f64f25b1c43c1c89bb295c1b3b5b6eee..def2a8c5d0309ebf4ffadd971799544611ff5b6c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 132470cd8a1509a04bbcd666421e30eb83d120f8..9330d322aa403292bd5d575ad59542aea16ac79a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 132897acc43b233d222a9d836e817abcab28fa98..d5c0f8595fcc07793f70b1460cc3d768a102ae87 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -72,9 +72,9 @@ if (isFormSent()) {
        adminSaveSettingsFromPostData();
 } else {
        // Start of this exchange
        adminSaveSettingsFromPostData();
 } else {
        // Start of this exchange
-       if (getConfig('mt_start') > 0) {
+       if (getMtStart() > 0) {
                // Only show start
                // Only show start
-               $content['mt_start'] = '<strong>' . generateDateTime(getConfig('mt_start'), 3) . '</strong>';
+               $content['mt_start'] = '<strong>' . generateDateTime(getMtStart(), 3) . '</strong>';
        } else {
                // Make start editable
                $content['mt_start'] =
        } else {
                // Make start editable
                $content['mt_start'] =
index 406d4325f8b553eb6eecf0141603545a60b6b323..0d7f41dc97ef19ed71f50e913bdaaa5d84d268b3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c5b66e5602b5831f769e25352f7c8e56990b93ef..2d5f2e810d27d7da287686a0a2e620b4a277313c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8ab691266e97d6043cea594c7b22ee89cc76a85c..341d1e4b14b2d534b84431635d37cd80dee22c93 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index fd4efcfe2ca03f6fbd71774c24e51243ad623eb5..f6af185807b7978fab4f46dca6912330c47205d5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c2028fc2f7a36a8f9b7e203ac002789409b1cfc9..7bc1cdd86dcc0f94bbbd2bbf7b978d3f048913a5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index bbbc0f2faaef1175738b5789ae5f9f073b980d36..0815ab941e79e1dbe932093ed8f445ab6ae90791 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2eb9838eef852f12bf3714381fdb868ddfb529a3..e1773f1355facc02ddfab8d676289a8c2eda3771 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 27e28fc05f6db1c154beded9954090bb6113dc9a..f789d2a38474a5b0f93f504aeede7a2e07798fd0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 022278ebe6648fc471ee39b60ba589365f4134c8..43d6d7354dd7a02dafcd1ead2726b9f5306d8a28 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 11c547539044e670e291999fe8ed28110c8b8ba9..f444ac4459569a27946b6757f52a1b6dcfad68ec 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -119,14 +119,18 @@ if (isFormSent()) {
                                array('allow_direct_pay', 'ref_payout'),
                                array(postRequestElement('allow_direct_pay'), $REF)
                        );
                                array('allow_direct_pay', 'ref_payout'),
                                array(postRequestElement('allow_direct_pay'), $REF)
                        );
-                       if ((getConfig('ref_payout') == '0') && (postRequestElement('ref_payout') > 0)) {
+                       if ((getRefPayout() == '0') && (postRequestElement('ref_payout') > 0)) {
                                // Update account's ref_payout for "must-confirm"
                                // Update account's ref_payout for "must-confirm"
-                               addSql(sprintf("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `ref_payout`=(%s - `mails_confirmed`)
+                               addSql(sprintf("UPDATE
+       `{?_MYSQL_PREFIX?}_user_data`
+SET
+       `ref_payout`=(%s - `mails_confirmed`)
 WHERE
        `mails_confirmed` < %s", $REF, $REF));
 WHERE
        `mails_confirmed` < %s", $REF, $REF));
-                       } elseif ((getConfig('ref_payout') > 0) && (postRequestElement('ref_payout') == '0')) {
+                       } elseif ((getRefPayout() > 0) && (postRequestElement('ref_payout') == '0')) {
                                // Update account's ref_payout for "not-must-confirm"
                                addSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `ref_payout`=0 WHERE `ref_payout` > 0");
                                // Update account's ref_payout for "not-must-confirm"
                                addSql("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `ref_payout`=0 WHERE `ref_payout` > 0");
+                               // @TODO Rewrite these two lines for new user_points columns (e.g. locked_order_points) with a filter
                                addSql("UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `points`=`points`+`locked_points` WHERE `locked_points` > 0");
                                addSql("UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `locked_points`=0 WHERE `locked_points` > 0");
                        }
                                addSql("UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `points`=`points`+`locked_points` WHERE `locked_points` > 0");
                                addSql("UPDATE `{?_MYSQL_PREFIX?}_user_points` SET `locked_points`=0 WHERE `locked_points` > 0");
                        }
index 6079d3bdcb5528027706562a3d8f8a4cb76b475c..b83af2ffd234c65b280840f744fa70614ce646b6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 95ec3815839bcdae35124ac26bd95bb620f129c2..96d315663e7e4e9bc629f0dee13f185e58340b35 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 addYouAreHereLink('admin', __FILE__);
 
 } // END - if
 
 // Add description as navigation point
 addYouAreHereLink('admin', __FILE__);
 
-if (isGetRequestElementSet('rallye')) {
+if (isGetRequestElementSet('rallye_id')) {
        // Price submitted?
        if (isFormSent('add')) {
                if ((isPostRequestElementSet('level')) && ((isPostRequestElementSet('points')) || (isPostRequestElementSet('info')))) {
                        // Submitted data is valid, but maybe we already have this price level?
                        $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `rallye_id`=%s AND `price_level`='%s' LIMIT 1",
        // Price submitted?
        if (isFormSent('add')) {
                if ((isPostRequestElementSet('level')) && ((isPostRequestElementSet('points')) || (isPostRequestElementSet('info')))) {
                        // Submitted data is valid, but maybe we already have this price level?
                        $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `rallye_id`=%s AND `price_level`='%s' LIMIT 1",
-                       array(bigintval(getRequestElement('rallye')), bigintval(postRequestElement('level'))), __FILE__, __LINE__);
+                       array(bigintval(getRequestElement('rallye_id')), bigintval(postRequestElement('level'))), __FILE__, __LINE__);
 
                        if (SQL_HASZERONUMS($result)) {
                                // Ok, new price level entered!
 
                        if (SQL_HASZERONUMS($result)) {
                                // Ok, new price level entered!
@@ -59,18 +59,18 @@ if (isGetRequestElementSet('rallye')) {
        VALUES
 (%s, %s, '%s', '%s')",
                                array(
        VALUES
 (%s, %s, '%s', '%s')",
                                array(
-                                       bigintval(getRequestElement('rallye')),
+                                       bigintval(getRequestElement('rallye_id')),
                                        bigintval(postRequestElement('level')),
                                        bigintval(postRequestElement('level')),
-                                       postRequestElement('points'),
+                                       convertCommaToDot(postRequestElement('points')),
                                        postRequestElement('info')
                                ), __FILE__, __LINE__);
                                        postRequestElement('info')
                                ), __FILE__, __LINE__);
-                               displayMessage('{--RALLYE_PRICE_LEVEL_SAVED--}');
+                               displayMessage('{--ADMIN_RALLYE_PRICE_LEVEL_SAVED--}');
                        } else {
                                // Free memory
                                SQL_FREERESULT($result);
 
                                // Price level found
                        } else {
                                // Free memory
                                SQL_FREERESULT($result);
 
                                // Price level found
-                               displayMessage('{--RALLYE_PRICE_ALREADY_FOUND--}');
+                               displayMessage('{--ADMIN_RALLYE_PRICE_ALREADY_FOUND--}');
                        }
                }
        } elseif (isFormSent('do_delete')) {
                        }
                }
        } elseif (isFormSent('do_delete')) {
@@ -83,9 +83,9 @@ if (isGetRequestElementSet('rallye')) {
                        } // END - foreach
 
                        // Output message
                        } // END - foreach
 
                        // Output message
-                       displayMessage('{--RALLYE_ENTRIES_DELETED--}');
+                       displayMessage('{--ADMIN_RALLYE_PRICES_DELETED--}');
                } else {
                } else {
-                       displayMessage('{--RALLYE_ENTRIES_NOT_DELETED--}');
+                       displayMessage('{--ADMIN_RALLYE_PRICES_NOT_DELETED--}');
                }
        } elseif (isFormSent('do_edit')) {
                // Change entries
                }
        } elseif (isFormSent('do_edit')) {
                // Change entries
@@ -107,14 +107,14 @@ LIMIT 1",
                                array(
                                        postRequestElement('rallye_id', $id),
                                        bigintval($level),
                                array(
                                        postRequestElement('rallye_id', $id),
                                        bigintval($level),
-                                       postRequestElement('points', $id),
-                                       postRequestElement('infos', $id),
+                                       convertCommaToDot(postRequestElement('points', $id)),
+                                       postRequestElement('info', $id),
                                        $id
                                ), __FILE__, __LINE__);
                }
 
                // Output message
                                        $id
                                ), __FILE__, __LINE__);
                }
 
                // Output message
-               displayMessage('{--RALLYE_ENTRIES_CHANGED--}');
+               displayMessage('{--ADMIN_RALLYE_PRICES_CHANGED--}');
        }
 
        if (isFormSent('edit')) {
        }
 
        if (isFormSent('edit')) {
@@ -124,30 +124,43 @@ LIMIT 1",
                        $OUT = '';
                        foreach (postRequestElement('sel') as $id => $sel) {
                                // Load data to selected rallye
                        $OUT = '';
                        foreach (postRequestElement('sel') as $id => $sel) {
                                // Load data to selected rallye
-                               $result = SQL_QUERY_ESC("SELECT `rallye_id`,`price_level`,`points`,`info` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `id`=%s LIMIT 1",
+                               $result = SQL_QUERY_ESC("SELECT
+       `id`,
+       `rallye_id`,
+       `price_level`,
+       `points`,
+       `info`
+FROM
+       `{?_MYSQL_PREFIX?}_rallye_prices`
+WHERE
+       `id`=%s
+LIMIT 1",
                                        array(bigintval($id)), __FILE__, __LINE__);
                                        array(bigintval($id)), __FILE__, __LINE__);
+
+                               // Fetch data
                                $content = SQL_FETCHARRAY($result);
                                $content = SQL_FETCHARRAY($result);
+
+                               // Free result
                                SQL_FREERESULT($result);
 
                                // Add more content
                                SQL_FREERESULT($result);
 
                                // Add more content
-                               $content['rallye_content'] = generateOptionList('rallye_data', 'id', 'title', $content['rallye_id']);
+                               $content['rallye_content'] = generateOptions('rallye_data', 'id', 'title', $content['rallye_id']);
 
                                // Load row template and switch color
 
                                // Load row template and switch color
-                               $OUT .= loadTemplate('admin_config_rallye_edit_row', true, $content);
+                               $OUT .= loadTemplate('admin_edit_rallye_prices_row', true, $content);
                        } // END - foreach
 
                        // Remember row content
                        $content['rows'] = $OUT;
 
                        // Prepare data for the main template
                        } // END - foreach
 
                        // Remember row content
                        $content['rows'] = $OUT;
 
                        // Prepare data for the main template
-                       $content['rallye'] = getRequestElement('rallye');
+                       $content['rallye_id'] = bigintval(getRequestElement('rallye_id'));
 
                        // Load main template
 
                        // Load main template
-                       loadTemplate('admin_config_rallye_edit', false, $content);
+                       loadTemplate('admin_edit_rallye_prices', false, $content);
                } else {
                        // Nothing selected
                } else {
                        // Nothing selected
-                       $content = '{--RALLYE_NO_PRICES_SELECTED_1--}<a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=' . getRequestElement('rallye') . '%}">{--RALLYE_NO_PRICES_SELECTED_2--}</a>{--RALLYE_NO_PRICES_SELECTED_3--}';
-                       displayMessage($content);
+                       displayMessage('{%message,ADMIN_RALLYE_NO_PRICES_SELECTED=' . getRequestElement('rallye_id') . '%}');
                }
        } elseif (isFormSent('delete')) {
                // Check if at last one line is selected
                }
        } elseif (isFormSent('delete')) {
                // Check if at last one line is selected
@@ -156,37 +169,51 @@ LIMIT 1",
                        $OUT = '';
                        foreach (postRequestElement('sel') as $id => $sel) {
                                // Load data to selected rallye
                        $OUT = '';
                        foreach (postRequestElement('sel') as $id => $sel) {
                                // Load data to selected rallye
-                               $result = SQL_QUERY_ESC("SELECT `rallye_id`,`price_level`,`points`,`info` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `id`=%s LIMIT 1",
+                               $result = SQL_QUERY_ESC("SELECT
+       `id`,
+       `rallye_id`,
+       `price_level`,
+       `points`,
+       `info`
+FROM
+       `{?_MYSQL_PREFIX?}_rallye_prices`
+WHERE
+       `id`=%s
+LIMIT 1",
                                        array(bigintval($id)), __FILE__, __LINE__);
                                        array(bigintval($id)), __FILE__, __LINE__);
+
+                               // Fetch data
                                $content = SQL_FETCHARRAY($result);
                                $content = SQL_FETCHARRAY($result);
+
+                               // Free result
                                SQL_FREERESULT($result);
 
                                // Load row template and switch color
                                SQL_FREERESULT($result);
 
                                // Load row template and switch color
-                               $OUT .= loadTemplate('admin_config_rallye_del_row', true, $content);
+                               $OUT .= loadTemplate('admin_delete_rallye_prices_row', true, $content);
                        } // END - foreach
                        $content['rows'] = $OUT;
 
                        // Prepare data for the main template
                        } // END - foreach
                        $content['rows'] = $OUT;
 
                        // Prepare data for the main template
-                       $content['rallye'] = getRequestElement('rallye');
+                       $content['rallye_id'] = bigintval(getRequestElement('rallye_id'));
 
                        // Load main template
 
                        // Load main template
-                       loadTemplate('admin_config_rallye_del', false, $content);
+                       loadTemplate('admin_delete_rallye_prices', false, $content);
                } else {
                        // Nothing selected
                } else {
                        // Nothing selected
-                       $content = '{--RALLYE_NO_PRICES_SELECTED_1--}<a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=' . getRequestElement('rallye') . '%}">{--RALLYE_NO_PRICES_SELECTED_2--}</a>{--RALLYE_NO_PRICES_SELECTED_3--}';
+                       $content = '{--RALLYE_NO_PRICES_SELECTED_1--}<a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=' . getRequestElement('rallye_id') . '%}">{--RALLYE_NO_PRICES_SELECTED_2--}</a>{--RALLYE_NO_PRICES_SELECTED_3--}';
                        displayMessage($content);
                }
        } else {
                        displayMessage($content);
                }
        } else {
-               // a rallye was selected, so check if there are already prices assigned...
+               // A rallye was selected, so check if there are already prices assigned...
                $result = SQL_QUERY_ESC("SELECT `id`,`price_level`,`points`,`info` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `rallye_id`=%s ORDER BY `price_level` ASC",
                $result = SQL_QUERY_ESC("SELECT `id`,`price_level`,`points`,`info` FROM `{?_MYSQL_PREFIX?}_rallye_prices` WHERE `rallye_id`=%s ORDER BY `price_level` ASC",
-                       array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__);
+                       array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__);
 
                if (!SQL_HASZERONUMS($result)) {
                        // Load all prices for the selected rallye
                        $OUT = '';
                        while ($content = SQL_FETCHARRAY($result)) {
                                // Load row template and switch color
 
                if (!SQL_HASZERONUMS($result)) {
                        // Load all prices for the selected rallye
                        $OUT = '';
                        while ($content = SQL_FETCHARRAY($result)) {
                                // Load row template and switch color
-                               $OUT .= loadTemplate('admin_config_rallye_prices_row', true, $content);
+                               $OUT .= loadTemplate('admin_list_rallye_prices_simple_row', true, $content);
                        } // END - while
 
                        // Free memory
                        } // END - while
 
                        // Free memory
@@ -196,21 +223,27 @@ LIMIT 1",
                        $content['rows'] = $OUT;
 
                        // Prepare data for the main template
                        $content['rows'] = $OUT;
 
                        // Prepare data for the main template
-                       $content['rallye'] = getRequestElement('rallye');
+                       $content['rallye_id'] = bigintval(getRequestElement('rallye_id'));
 
                        // Load main template
 
                        // Load main template
-                       loadTemplate('admin_config_rallye_prices', false, $content);
+                       loadTemplate('admin_list_rallye_prices_simple', false, $content);
                } // END - if
        }
 
        // Add form for adding new price level
                } // END - if
        }
 
        // Add form for adding new price level
-       if (!isFormSent('edit')) {
-               loadTemplate('admin_add_rallye_prices', false, getRequestElement('rallye'));
+       if ((!isFormSent('edit')) && (!isFormSent('delete'))) {
+               loadTemplate('admin_add_rallye_prices', false, getRequestElement('rallye_id'));
        } // END - if
 } else {
        // No rallye selected so display all available without prices
        $result = SQL_QUERY("SELECT
        } // END - if
 } else {
        // No rallye selected so display all available without prices
        $result = SQL_QUERY("SELECT
-       d.id, d.admin_id, d.start_time, d.end_time, d.title, a.login, d.is_active
+       d.id AS `rallye_id`,
+       d.admin_id,
+       d.start_time,
+       d.end_time,
+       d.title,
+       a.login,
+       d.is_active
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data` AS d
 LEFT JOIN
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data` AS d
 LEFT JOIN
@@ -224,9 +257,8 @@ ORDER BY
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        // Prepare data for the row template
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        // Prepare data for the row template
-                       // @TODO rename: start->start_time, end->end_time
-                       $content['start'] = generateDateTime($content['start_time'], '3');
-                       $content['end']   = generateDateTime($content['end_time']  , '3');
+                       $content['start_time'] = generateDateTime($content['start_time'], '3');
+                       $content['end_time']   = generateDateTime($content['end_time']  , '3');
 
                        // Load row template and switch color
                        $OUT .= loadTemplate('admin_list_rallye_prices_row', true, $content);
 
                        // Load row template and switch color
                        $OUT .= loadTemplate('admin_list_rallye_prices_row', true, $content);
@@ -239,7 +271,7 @@ ORDER BY
                loadTemplate('admin_list_rallye_prices', false, $OUT);
        } else {
                // No rallyes setup so far
                loadTemplate('admin_list_rallye_prices', false, $OUT);
        } else {
                // No rallyes setup so far
-               displayMessage('{--RALLYE_NO_RALLYES_SETUP--}');
+               displayMessage('{--ADMIN_RALLYE_NO_RALLYES_SETUP--}');
        }
 }
 
        }
 }
 
index 2139750b766ac5b752a873e7c5b17695fdc489d6..b064ea0c8e51dddb93cdc37c51dd21bca8a55f0a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 41bc8009c52fc2f9d0485f6a4c70bea525ab4e8d..04b4387c95f0205c2e401e97a38d481f0663f897 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 12d75fc4c9b9e7a0cb917693339a0596c069d40d..b48a3737755e8c42d1cda23d336c6f5720855dae 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 711c093e322241a1bb2520fd9b98b6442daf586d..340d36aeb4bd2d933be1fd0973ef9ca6d298160c 100644 (file)
@@ -18,7 +18,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 8b69aff5cfff7650f60a05d19aeebdc07f63bbd9..1954b8fc40688264ca4062fd4f13e76e6ab00f3b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index fbdad66842446c4c7a333020b9d0003d027d496e..55439336130c495514a982f83a2540469df3eec8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,9 +50,9 @@ if (isFormSent()) {
                // Now you can never deselect the admin module, bah!!! ;-)
                if (($sel == 'Y') || ($mod == 'admin')) {
                        // Add module to queue
                // Now you can never deselect the admin module, bah!!! ;-)
                if (($sel == 'Y') || ($mod == 'admin')) {
                        // Add module to queue
-                       $MODs[] = $mod;
-               }
-       }
+                       array_push($MODs, $mod);
+               } // END - if
+       } // END - foreach
 
        // Implode array to string and remove posted mod array
        setPostRequestElement('rewrite_skip', implode(':', $MODs));
 
        // Implode array to string and remove posted mod array
        setPostRequestElement('rewrite_skip', implode(':', $MODs));
index 7093bde856d264fa2c86c3ddbd0d9219ebdb8f3f..934acac81b154bc6e350468d673cc1ce807fb638 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 48c0ef5d3a18e1e2c4686fffa30888f12ac2718d..d0c87d962627c3d3e6d9211c6bd8f7aa10d98847 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 61f8e265a9e8762078c96b81c1dc1c0f21f42a55..2dfb880e6d619aad74730ca7abe157bda685e24c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4dd8807488bffd87a4033ad9eb412b3758a5a6f8..6936eb4702c064ddbdafb229d89eeeda2b5799a5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3503ac0d0b122b8f2657b74d90acafd2fd784b2e..def280a4f84283a3cd3ef9a93d06ea0b0f47af54 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index bde15b5fb54220387b96a61280c70cba193a4aa7..cbd48fa65fef7fc30fbdc1ecc1d198bd5567e0ff 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 0079af39c5d91d11102f38d2b1288be3963f479b..d591b3c59980975fba902b3298ea8b194c990c05 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 6848e1777256d084639e81415ef9f7c6ac9d4648..ad048afc37eb2b7d1be3d3736ff3077cfbd6dc95 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3fcdb93b5b7b39151aac1c3f33046ec5a75f0a73..e905ac3300debd444c4e5a2ac0d00302c9e6c2e8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4d867cf1ee6a314a4cccef3a7305c0bca068ec86..698c20abaf7a3299dac151ee92d44cdc68f7a500 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,8 +47,11 @@ if (isFormSent()) {
        // Save settings
        adminSaveSettingsFromPostData();
 } else {
        // Save settings
        adminSaveSettingsFromPostData();
 } else {
+       // Prepare gender selection box
+       $content['tester_user_gender_selection'] = generateGenderSelectionBox(getConfig('tester_user_gender'), 'tester_user_gender');
+
        // Load form template
        // Load form template
-       loadTemplate('admin_config_user');
+       loadTemplate('admin_config_user', false, $content);
 }
 
 // [EOF]
 }
 
 // [EOF]
index 8af98671e60e795bbee9185c2c7ee02928b311e5..b239445ad923033c30cb02f157d12fdef5fd3bf7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 8bfd67aeb15fcf17156a6355e0bf2d48c4836e8d..1b9fd7b9f8efed326946a85d33a4eb0fe2893235 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index d7a1ea4658ee156814e75e96cd02f4d9c8175c8a..26717ff11516a894bcca569d88fad24dbeda3c54 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -55,7 +55,7 @@ if (isFormSent()) {
        }
 } else {
        // Erotic selection
        }
 } else {
        // Erotic selection
-       for ($idx = '0'; $idx <= 2; $idx++) {
+       for ($idx = 0; $idx <= 2; $idx++) {
                $content['yoomedia_erotic_allowed_' . $idx] = '';
        } // END - for
 
                $content['yoomedia_erotic_allowed_' . $idx] = '';
        } // END - for
 
index 9b566b697bf38f31cb06b30d5629445e81f1b3d4..2651db4b79215d083b2e2afe29551bfd4189e206 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index b416b3d0bd9e609af77e62ea6879b1914b8c05e6..8db0aa4c2e7833630c58c4158629bbe0fa36ea38 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3b7a9b0db21be1a93fe4be644dda22719642f378..07673f76160740e18799f39aa176e8279e5e6f80 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -57,7 +57,7 @@ if (isGetRequestElementSet('id')) {
                        $content['reason']  = postRequestElement('reason');
 
                        // Prepare message and send it away
                        $content['reason']  = postRequestElement('reason');
 
                        // Prepare message and send it away
-                       $message = loadEmailTemplate('del_sponsor', $content, bigintval(getRequestElement('id')));
+                       $message = loadEmailTemplate('sponsor_deleted', $content, bigintval(getRequestElement('id')));
                        sendEmail($content['email'], '{--ADMIN_SPONSOR_DELETE_SUBJECT--}', $message);
 
                        // Remove account
                        sendEmail($content['email'], '{--ADMIN_SPONSOR_DELETE_SUBJECT--}', $message);
 
                        // Remove account
index acc7054d03ec474c72f20e84e7fcf4021efea829..246ab3297312161c55cb1c6997184919c527f9f3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -107,7 +107,7 @@ $content['title'] = '{--TRANSFER_LIST_ALL--}';
 
 // Show delete button here
 $content['delete'] = '<input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
 
 // Show delete button here
 $content['delete'] = '<input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
-<input type="submit" name="delete" class="form_delete" value="{--TRANSFER_DELETE--}" />';
+<input type="submit" name="delete" class="form_delete" value="{--ADMIN_DELETE_TRANSFERS_SUBMIT--}" />';
 
 // Load final template
 loadTemplate('admin_list_transfer', false, $content);
 
 // Load final template
 loadTemplate('admin_list_transfer', false, $content);
index 00e7e343abccce83a1410c076863fec5d8a6acc3..69698955e8efde020fcb15ee8728c76ab389feae 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 887262cb61f4c47886aeab6332f3e82472f7ba3b..78665e009f19590555ee15a7ab1878bd05fad02f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 93d133e3a1b5aad54b757318f316fcb42aa89979..8dff51a427e9c2bdca78fe76b3fd0c7695dea0b5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -128,8 +128,7 @@ LIMIT 1",
                                        } // END - if
 
                                        // Convert time selection
                                        } // END - if
 
                                        // Convert time selection
-                                       $content = array(); $id = 'warning_interval_ye'; $skip = false;
-                                       convertSelectionsToEpocheTime(postRequestArray(), $content, $id, $skip);
+                                       convertSelectionsToEpocheTimeInPostData('warning_interval_ye');
 
                                        // Save the sponsor
                                        handleSponsorRequest(postRequestArray());
 
                                        // Save the sponsor
                                        handleSponsorRequest(postRequestArray());
index 617549bc50752bff2bd8c98e18f08fb77ccf919f..73b1ff59781ee020139f24d0c26daf5989f77b82 100644 (file)
@@ -18,7 +18,7 @@
  * @TODO Add support for ext-country                                    *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * @TODO Add support for ext-country                                    *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 043bfdd40f488dfdc3908c94c0015192adc3a7f7..a2c6ec2cd7850c7b9b3c846474acbb3fe610f55a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 428a6be1e112d9a70f0f98d2f62f7a9741923763..226fa76ffbabc322c0311413deb3400f3eea84bb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 3bb7cfbdda7795fea882517c731a9ff0c48e8b2f..10866a91194950aaec64c9fb4b8ebb50df749f02 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 10641a59075988bc64f37c9f29f177afde137f50..b346d479b1a77efb3cbf115e204f17609e2eb151 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4e53ff7d3ec535ee9cc497c1b20511b6b4ac708d..8e7c9ca55c964d39060d4f1bca025eb32f3ca52a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -67,13 +67,13 @@ ORDER BY
                // @TODO Cant this be rewritten?
                while ($content = SQL_FETCHARRAY($result_menu)) {
                        // Menu actions
                // @TODO Cant this be rewritten?
                while ($content = SQL_FETCHARRAY($result_menu)) {
                        // Menu actions
-                       $menus[] = $content['action'];
+                       array_push($menus, $content['action']);
 
                        // Menu titles
 
                        // Menu titles
-                       $titles[] = $content['title'];
+                       array_push($titles, $content['title']);
 
                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
 
                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
-                       $below[] = $content['sort'] + 1;
+                       array_push($below, $content['sort'] + 1);
                } // END - while
 
                // Remove double eintries
                } // END - while
 
                // Remove double eintries
@@ -116,13 +116,13 @@ ORDER BY `sort` ASC",
                                // Read menu structure
                                while ($content = SQL_FETCHARRAY($result)) {
                                        // Menu actions
                                // Read menu structure
                                while ($content = SQL_FETCHARRAY($result)) {
                                        // Menu actions
-                                       $menus[$value_main][] = $content['what'];
+                                       array_push($menus[$value_main], $content['what']);
 
                                        // Menu titles
 
                                        // Menu titles
-                                       $titles[$value_main][] = $content['title'];
+                                       array_push($titles[$value_main], $content['title']);
 
                                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
 
                                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
-                                       $below[$value_main][] = $content['sort'] + 1;
+                                       array_push($below[$value_main], $content['sort'] + 1);
                                } // END - while
 
                                // Remove double eintries
                                } // END - while
 
                                // Remove double eintries
index 4bfdc91a1d4fa1823faeac529cee9b8772907504..bca220d8f9b896f0bb57db6612a2a3e23cb1f49f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -215,7 +215,7 @@ if ((isFormSent('edit')) && (ifPostContainsSelections()) && (!isDemoModeActive()
                        if (($content['sort'] == '0') || (($content['sort'] == 1) && (!empty($subMenu)))) {
                                // Is highest position
                                $NAVI = '<a href="{%url=modules.php?module=admin&amp;what=guestedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']+1) . '&amp;fid=' . $content['sort'] . '%}">{--LOWER--}</a>';
                        if (($content['sort'] == '0') || (($content['sort'] == 1) && (!empty($subMenu)))) {
                                // Is highest position
                                $NAVI = '<a href="{%url=modules.php?module=admin&amp;what=guestedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']+1) . '&amp;fid=' . $content['sort'] . '%}">{--LOWER--}</a>';
-                       } elseif ($count == SQL_NUMROWS($result)) {
+                       } elseif (SQL_NUMROWS($result) == $count) {
                                // Is lowest position
                                $NAVI = '<a href="{%url=modules.php?module=admin&amp;what=guestedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']-1) . '&amp;fid=' . $content['sort'] . '%}">{--HIGHER--}</a>';
                        } elseif ($content['sort'] > 0) {
                                // Is lowest position
                                $NAVI = '<a href="{%url=modules.php?module=admin&amp;what=guestedit&amp;sub=' . $content['sub'] . '&amp;act=' . $content['action'] . '&amp;w=' . $content['what'] . '&amp;tid=' . ($content['sort']-1) . '&amp;fid=' . $content['sort'] . '%}">{--HIGHER--}</a>';
                        } elseif ($content['sort'] > 0) {
index 50ba8e5bd880534a1b1acbc5dc7523cc495d332a..9c0e7c3aaed1386f187dd986bb0521cb869e4ebf 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index b932544dd5ffe4c1cbf80cbf02f134bec714ad62..8bfec71caa776e8509b53c87409a1995a8b478df 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 559223c08f1924c5741bd9cca81a07c35ace54ba..c1de42d5fab37a1dbf941e80daa78546bb2a75c1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -60,7 +60,7 @@ if ((isFormSent('edit')) && (ifPostContainsSelections())) {
                // Prepare data for the row template
                $content = array(
                        'id'               => $content['id'],
                // Prepare data for the row template
                $content = array(
                        'id'               => $content['id'],
-                       'admins_selection' => generateOptionList('admins', 'id', 'login', $content['admin_id'], 'default_acl'),
+                       'admins_selection' => generateOptions('admins', 'id', 'login', $content['admin_id'], 'default_acl'),
                        'action_selection' => adminMenuSelectionBox_DEPRECATED('action', $content['action_menu'], $content['id']),
                        'what_selection'   => adminMenuSelectionBox_DEPRECATED('what', $content['what_menu'], $content['id']),
                );
                        'action_selection' => adminMenuSelectionBox_DEPRECATED('action', $content['action_menu'], $content['id']),
                        'what_selection'   => adminMenuSelectionBox_DEPRECATED('what', $content['what_menu'], $content['id']),
                );
@@ -221,7 +221,7 @@ VALUES (%s,'%s','%s','%s')",
        } // END - if
 
        // Prepare some constants for the template
        } // END - if
 
        // Prepare some constants for the template
-       $content['admins_selection'] = generateOptionList('admins', 'id', 'login', '', 'default_acl');
+       $content['admins_selection'] = generateOptions('admins', 'id', 'login', '', 'default_acl');
        $content['action_selection'] = adminMenuSelectionBox_DEPRECATED('action');
        $content['what_selection']   = adminMenuSelectionBox_DEPRECATED('what');
 
        $content['action_selection'] = adminMenuSelectionBox_DEPRECATED('action');
        $content['what_selection']   = adminMenuSelectionBox_DEPRECATED('what');
 
index a3126637473e7780cc0e2e0e669c611d9b61c617..5bad1b57795fe3def52dc3bdf95851fdbb1bb33d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 33e0b206c093b74183e57cf377013f40aaea5a79..a8d1c1720c82a0d026dd17eef44bd389ea53cd38 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,7 @@ addYouAreHereLink('admin', __FILE__);
 
 // Check if there is enougth selected
 $show = true;
 
 // Check if there is enougth selected
 $show = true;
-if ((isPostRequestElementSet('id')) && (is_array(postRequestElement('id'))) && (count(postRequestElement('id')) > 0)) {
+if (ifPostContainsSelections('id')) {
        // Okay, which button was pressed?
        if (isFormSent('change')) {
                // Change permissions
        // Okay, which button was pressed?
        if (isFormSent('change')) {
                // Change permissions
index 03656ae7038bdf9ef3e653b0fae8857123f44092..c168877428d6e60bd9769d2c9f34bb12e2adb222 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -64,13 +64,17 @@ if (isBegRallyeEnabled()) {
 
        // Check if at least one is in the active rallye
        $result = SQL_QUERY("SELECT
 
        // Check if at least one is in the active rallye
        $result = SQL_QUERY("SELECT
-       `userid`,`email`,`beg_points`,`last_online`
+       `userid`,
+       `email`,
+       `beg_points`,
+       `last_online`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED' AND
        `beg_points` > 0
        " . $lastOnline . "
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED' AND
        `beg_points` > 0
        " . $lastOnline . "
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 ORDER BY
        `beg_points` DESC,
        `last_online` DESC,
 ORDER BY
        `beg_points` DESC,
        `last_online` DESC,
@@ -81,7 +85,8 @@ ORDER BY
                $OUT = ''; $count = 1; $total = '0';
                while ($content = SQL_FETCHARRAY($result)) {
                        // Init variables
                $OUT = ''; $count = 1; $total = '0';
                while ($content = SQL_FETCHARRAY($result)) {
                        // Init variables
-                       $WIN1 = ''; $WIN2 = '';
+                       $WIN1 = '';
+                       $WIN2 = '';
 
                        // Maybe he can win his active beg?
                        if ($count <= getBegRanks()) {
 
                        // Maybe he can win his active beg?
                        if ($count <= getBegRanks()) {
index 7b3524d3cdba3dfb0b3a7374b6c47be13cccc593..068106e5d4b15cf1e4f882bb047917ff92c2a501 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,7 +54,7 @@ if (isBonusRallyeActive()) {
        } // END - if
 
        // Old version ???
        } // END - if
 
        // Old version ???
-       $USE = '`turbo_bonus`';
+       $pointsColumns = '`turbo_bonus`';
 
        // Run filter chain to find more columns
        $add = runFilterChain('add_bonus_points_user_columns', '');
 
        // Run filter chain to find more columns
        $add = runFilterChain('add_bonus_points_user_columns', '');
@@ -62,7 +62,7 @@ if (isBonusRallyeActive()) {
        // Add them, if some where configured
        if (!empty($add)) {
                // Add more bonus points here
        // Add them, if some where configured
        if (!empty($add)) {
                // Add more bonus points here
-               $USE = '(0' . $add . ')';
+               $pointsColumns = '(0' . $add . ')';
        } // END - if
 
        // Init variables
        } // END - if
 
        // Init variables
@@ -78,14 +78,15 @@ if (isBonusRallyeActive()) {
        $result = SQL_QUERY("SELECT
        `userid`,
        `email`,
        $result = SQL_QUERY("SELECT
        `userid`,
        `email`,
-       " . $USE . " AS `points`,
+       " . $pointsColumns . " AS `points`,
        `last_online`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED' AND
        `last_online`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `status`='CONFIRMED' AND
-       " . $USE . " > 0
+       " . $pointsColumns . " > 0
        " . $lastOnline . "
        " . $lastOnline . "
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 ORDER BY
        `points` DESC,
        `last_online` DESC,
 ORDER BY
        `points` DESC,
        `last_online` DESC,
index fecc5764b043c7ba5e33acb0f963c206f6a34038..d7d6dd1e4218f0b3f2dcb0049a248c12be3cc1c8 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 2523a39fe130f4b84638341d2a92997284007791..35cb31746597b727eef8dba7671e790fe4e6ac5a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -79,7 +79,9 @@ if ((isFormSent('add')) && (isPostRequestElementSet('code')) && (isPostRequestEl
                'title' => '{--ADMIN_COUNTRY_ACTIVATION_NEXT_LINK--}'
        ));
 } elseif (((isFormSent('edit')) || (isPostRequestElementSet('delete'))) && (isPostRequestElementSet('id'))) {
                'title' => '{--ADMIN_COUNTRY_ACTIVATION_NEXT_LINK--}'
        ));
 } elseif (((isFormSent('edit')) || (isPostRequestElementSet('delete'))) && (isPostRequestElementSet('id'))) {
-       if (count(postRequestElement('id')) > 0) {
+       // Do we have entries?
+       if (ifPostContainsSelections('id')) {
+               // Is the proper form sent?
                if (isFormSent('edit')) {
                        // Edit template
                        $row    = 'admin_edit_country_row';
                if (isFormSent('edit')) {
                        // Edit template
                        $row    = 'admin_edit_country_row';
@@ -155,7 +157,7 @@ LIMIT 1");
        } elseif ((isFormSent('do_delete')) && (isPostRequestElementSet('id'))) {
                // Remove
                $IDs = implode(',', array_keys(postRequestElement('id')));
        } elseif ((isFormSent('do_delete')) && (isPostRequestElementSet('id'))) {
                // Remove
                $IDs = implode(',', array_keys(postRequestElement('id')));
-               addSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_countries` WHERE `id` IN (".$IDs.") LIMIT ".count(postRequestElement('id'))."");
+               addSql('DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_countries` WHERE `id` IN (' . $IDs . ') LIMIT ' . countPostSelection('id') . '');
 
                // Create message
                $message = '{--ADMIN_COUNTRIES_REMOVED--}';
 
                // Create message
                $message = '{--ADMIN_COUNTRIES_REMOVED--}';
index e438316d82af88660e5a81c52f579b22d9c15d8f..ff5474fdd8d28ab2dcf790481762e900c70f8560 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,7 +51,10 @@ if (isGetRequestElementSet('coupon_id')) {
        UNIX_TIMESTAMP(u.`cashed_on`) AS `cashed_on`,
        UNIX_TIMESTAMP(d.`coupon_created`) AS `coupon_created`,
        UNIX_TIMESTAMP(d.`coupon_expired`) AS `coupon_expired`,
        UNIX_TIMESTAMP(u.`cashed_on`) AS `cashed_on`,
        UNIX_TIMESTAMP(d.`coupon_created`) AS `coupon_created`,
        UNIX_TIMESTAMP(d.`coupon_expired`) AS `coupon_expired`,
-       d.`points`, d.`total_created`, d.`total_cashed`, d.`coupon_description`
+       d.`points`,
+       d.`total_created`,
+       d.`total_cashed`,
+       d.`coupon_description`
 FROM
        `{?_MYSQL_PREFIX?}_user_coupons` AS u
 INNER JOIN
 FROM
        `{?_MYSQL_PREFIX?}_user_coupons` AS u
 INNER JOIN
@@ -67,7 +70,7 @@ ORDER BY
                ), __FILE__, __LINE__);
 
        // Do we have entries?
                ), __FILE__, __LINE__);
 
        // Do we have entries?
-       if (SQL_NUMROWS($result) > 0) {
+       if (!SQL_HASZERONUMS($result)) {
                // Init variable
                $OUT = '';
 
                // Init variable
                $OUT = '';
 
@@ -107,7 +110,7 @@ ORDER BY
        d.`id` ASC', __FILE__, __LINE__);
 
        // Do we have entries?
        d.`id` ASC', __FILE__, __LINE__);
 
        // Do we have entries?
-       if (SQL_NUMROWS($result) > 0) {
+       if (!SQL_HASZERONUMS($result)) {
                // Init variable
                $OUT = '';
 
                // Init variable
                $OUT = '';
 
index 4ede5eee5067722e7822c8a58ce73cb9a6ecee7c..4bcb982a760b9b4f8cddbf371b2501a7fb179445 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index cae2ae147525eaefa834ec6da4376f9b89856df1..12c9599acce27c43d0a3f810c1ee1740f34214dd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index c1e30869e33cd0d81a227fd9e39c5d9a4e3feb4a..b728277d3ded9b81e92583d71e28026e34dbfeaa 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,7 @@ addYouAreHereLink('admin', __FILE__);
 $show = true;
 
 // Check for 'url_id' element
 $show = true;
 
 // Check for 'url_id' element
-if ((countRequestPost() > 0) && ((!isPostRequestElementSet('forced_ads_id')) || (!is_array(postRequestElement('forced_ads_id'))) || (count(postRequestElement('forced_ads_id')) == 0))) {
+if ((!isFormSent('add')) && (countRequestPost() > 0) && (!ifPostContainsSelections('forced_ads_id'))) {
        // Not found so output message
        displayMessage('{--ADMIN_FORCED_ADS_NO_SELECTIONS--}');
 
        // Not found so output message
        displayMessage('{--ADMIN_FORCED_ADS_NO_SELECTIONS--}');
 
index 48992aec85dc5b9d46f81311d42c31862293b956..3a1ad98836ea9583cabb480e37fff7c339d15d30 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,7 @@ addYouAreHereLink('admin', __FILE__);
 $show = true;
 
 // Check for 'url_id' element
 $show = true;
 
 // Check for 'url_id' element
-if ((countRequestPost() > 0) && ((!isPostRequestElementSet('forced_campaigns_id')) || (!is_array(postRequestElement('forced_campaigns_id'))) || (count(postRequestElement('forced_campaigns_id')) == 0))) {
+if ((!isFormSent('add')) && (countRequestPost() > 0) && (!ifPostContainsSelections('forced_campaign_id'))) {
        // Not found so output message
        displayMessage('{--ADMIN_FORCED_CAMPAIGNS_NO_SELECTIONS--}');
 
        // Not found so output message
        displayMessage('{--ADMIN_FORCED_CAMPAIGNS_NO_SELECTIONS--}');
 
@@ -77,6 +77,24 @@ if (isFormSent('add')) {
 } elseif (isFormSent('do_delete')) {
        // Remove entries from database
        showEntriesByXmlCallback('admin_delete_do_forced_campaigns');
 } elseif (isFormSent('do_delete')) {
        // Remove entries from database
        showEntriesByXmlCallback('admin_delete_do_forced_campaigns');
+} elseif (isFormSent('lock')) {
+       // Un-/lock selected campaigns. This does not work for pending campaigns
+       showEntriesByXmlCallback('admin_lock_show_forced_campaigns');
+
+       // Do not show the list of URLs after this template
+       $show = false;
+} elseif (isFormSent('do_lock')) {
+       // Un-/lock selected campaigns. This does not work for pending campaigns
+       showEntriesByXmlCallback('admin_lock_do_forced_campaigns');
+} elseif (isFormSent('activate')) {
+       // List activation of selected campaigns. This does not work for locked campaigns
+       if (doForcedAdminActivateCampaigns()) {
+               // Has all worked
+               displayMessage('{--ADMIN_FORCED_CAMPAIGNS_ACTIVATED_DONE--}');
+       } else {
+               // Something went wrong
+               displayMessage('{--ADMIN_FORCED_CAMPAIGNS_ACTIVATED_FAILED--}');
+       }
 }
 
 // Show entries?
 }
 
 // Show entries?
@@ -85,11 +103,16 @@ if ($show === false) {
        return false;
 } // END - if
 
        return false;
 } // END - if
 
-// List all URLs
+// List all campaigns
 showEntriesByXmlCallback('admin_list_forced_campaigns');
 
 showEntriesByXmlCallback('admin_list_forced_campaigns');
 
+// Init array
+$content = array(
+       'reload' => createTimeSelections(0, 'forced_campaign_reload_lock', 'Dhms')
+);
+
 // Display form for adding a forced-ad
 // Display form for adding a forced-ad
-loadTemplate('admin_add_forced_campaign');
+loadTemplate('admin_add_forced_campaign', false, $content);
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
index 57bb08b4aa197a895cb9e067265aaa63c38c636f..81c683069e2b9a9fa44cf1221e7a85e58f0ac312 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,7 @@ addYouAreHereLink('admin', __FILE__);
 $show = true;
 
 // Check for 'url_id' element
 $show = true;
 
 // Check for 'url_id' element
-if ((countRequestPost() > 0) && ((!isPostRequestElementSet('forced_costs_id')) || (!is_array(postRequestElement('forced_costs_id'))) || (count(postRequestElement('forced_costs_id')) == 0))) {
+if ((!isFormSent('add')) && (countRequestPost() > 0) && (!ifPostContainsSelections('forced_costs_id'))) {
        // Not found so output message
        displayMessage('{--ADMIN_FORCED_COSTS_NO_SELECTIONS--}');
 
        // Not found so output message
        displayMessage('{--ADMIN_FORCED_COSTS_NO_SELECTIONS--}');
 
index f69f814f289bd3341bad83afef0175fc07e144c4..772b46616b6af198532cd96d6809e765d101eef5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 0acde7aa1984e9364687c6e7e10031988a531c34..714045236c816d2e9eddd697302e7b8825ac726f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,22 +51,26 @@ if (!isExtensionActive('mailid')) {
 if (isGetRequestElementSet('userid')) {
        // Check if the user already exists
        if (fetchUserData(getRequestElement('userid'))) {
 if (isGetRequestElementSet('userid')) {
        // Check if the user already exists
        if (fetchUserData(getRequestElement('userid'))) {
-               // Grab user's all unconfirmed mails
-               // @TODO Try to rewrite this to a filter
+               // Default is ext-bonus is not installed
+               $rowName = 'stats_id';
+
+               // Is ext-bonus installed?
                if (isExtensionActive('bonus')) {
                if (isExtensionActive('bonus')) {
-                       // Load bonus id
-                       $result = SQL_QUERY_ESC("SELECT `stats_id`,`bonus_id`,`link_type` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `userid`=%s ORDER BY `id` ASC",
-                               array(bigintval(getRequestElement('userid'))), __FILE__, __LINE__);
-               } else {
-                       // Load stats id (2nd will be ignored later! But it is needed for the same fetchrow command)
-                       $result = SQL_QUERY_ESC("SELECT `stats_id`,`stats_id`,`link_type` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `userid`=%s ORDER BY `id` ASC",
-                               array(bigintval(getRequestElement('userid'))), __FILE__, __LINE__);
-               }
+                       // Use bonus_id
+                       $linkDataName = 'bonus_id';
+               } // END - if
+
+               // Load user links data
+               $result = SQL_QUERY_ESC("SELECT `userid`, `stats_id`, `%s`, `link_type` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `userid`=%s ORDER BY `id` ASC",
+                       array(
+                               $linkDataName,
+                               bigintval(getRequestElement('userid'))
+                       ), __FILE__, __LINE__);
 
                // Do we have some entries?
                if (!SQL_HASZERONUMS($result)) {
                        // Some unconfirmed mails left
 
                // Do we have some entries?
                if (!SQL_HASZERONUMS($result)) {
                        // Some unconfirmed mails left
-                       if (getRequestElement('delete') == "all") {
+                       if (getRequestElement('delete') == 'all') {
                                // Delete all unconfirmed mails by this user
                                SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `userid`=%s LIMIT %s",
                                        array(bigintval(getRequestElement('userid')), SQL_NUMROWS($result)), __FILE__, __LINE__);
                                // Delete all unconfirmed mails by this user
                                SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `userid`=%s LIMIT %s",
                                        array(bigintval(getRequestElement('userid')), SQL_NUMROWS($result)), __FILE__, __LINE__);
@@ -82,61 +86,55 @@ if (isGetRequestElementSet('userid')) {
                                $OUT = '';
 
                                // List all unconfirmed mails
                                $OUT = '';
 
                                // List all unconfirmed mails
-                               // @TODO Find a way to rewrite this. See some lines above for different queries
-                               while (list($id, $id2, $type) = SQL_FETCHROW($result)) {
-                                       // Initializes all variables
-                                       $mailId = '';
-                                       $problemMessage = '{--ADMIN_GENERAL_MAIL_PROBLEM--}';
+                               while ($linkData = SQL_FETCHARRAY($result)) {
+                                       // Initializes all other elements
+                                       $linkData['mail_id'] = '';
+                                       $linkData['problem'] = '{--ADMIN_GENERAL_MAIL_PROBLEM--}';
                                        $result_data = false;
 
                                        // Load data from stats table...
                                        // @TODO Rewrite this to includes/filter
                                        $result_data = false;
 
                                        // Load data from stats table...
                                        // @TODO Rewrite this to includes/filter
-                                       switch ($type) {
+                                       switch ($linkData['link_type']) {
                                                case 'NORMAL':
                                                case 'NORMAL':
-                                                       $result_data = SQL_QUERY_ESC("SELECT `subject`,`timestamp_ordered` AS `timestamp`,`cat_id` FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `id`=%s LIMIT 1",
-                                                               array(bigintval($id)), __FILE__, __LINE__);
-                                                       $type = 'mailid'; $mailId = $id; $problemMessage = '{--NORMAL_MAIL_PROBLEM--}';
-                                                       $LINK = '<a href="{%url=mailid.php?userid=' . getRequestElement('userid') . '&amp;mailid=' . $id . '%}" target="_blank">' . $id . '</a>';
+                                                       $result_data = SQL_QUERY_ESC("SELECT `subject`, `timestamp_ordered` AS `timestamp`, `cat_id` FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `id`=%s LIMIT 1",
+                                                               array(bigintval($linkData['stats_id'])), __FILE__, __LINE__);
+                                                       $linkData['link_type'] = 'mailid';
+                                                       $linkData['mail_id']   = $linkData['stats_id'];
+                                                       $linkData['problem']   = '{--NORMAL_MAIL_PROBLEM--}';
                                                        break;
 
                                                case 'BONUS':
                                                        break;
 
                                                case 'BONUS':
-                                                       $result_data = SQL_QUERY_ESC("SELECT `subject`,`timestamp`,`cat_id` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
-                                                               array(bigintval($id2)), __FILE__, __LINE__);
-                                                       $type = 'bonusid'; $mailId = $id2; $problemMessage = '{--BONUS_MAIL_PROBLEM--}';
-                                                       $LINK = '<a href="{%url=mailid.php?userid=' . getRequestElement('userid') . '&amp;bonusid=' . $id2 . '%}" target="_blank">' . $id2 . '</a>';
+                                                       $result_data = SQL_QUERY_ESC("SELECT `subject`, `timestamp`, `cat_id` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
+                                                               array(bigintval($linkData['bonus_id'])), __FILE__, __LINE__);
+                                                       $linkData['link_type'] = 'bonusid';
+                                                       $linkData['mail_id']   = $linkData['bonus_id'];
+                                                       $linkData['problem']   = '{--BONUS_MAIL_PROBLEM--}';
                                                        break;
 
                                                default: // Problem in application detected!
                                                        break;
 
                                                default: // Problem in application detected!
-                                                       // Log the error
-                                                       logDebugMessage(__FILE__, __LINE__, sprintf("Invalid email type %s detected.", $type));
+                                                       reportBug(__FILE__, __LINE__, sprintf("Invalid email type %s detected.", $linkData['link_type']));
                                                        break;
                                        } // END - switch
 
                                        // Do we have an entry?
                                        if (SQL_NUMROWS($result_data) == 1) {
                                                // Mail was found
                                                        break;
                                        } // END - switch
 
                                        // Do we have an entry?
                                        if (SQL_NUMROWS($result_data) == 1) {
                                                // Mail was found
-                                               $content = SQL_FETCHARRAY($result_data);
+                                               $mailData = merge_array($linkData, SQL_FETCHARRAY($result_data));
 
                                                // Fix empty subject
 
                                                // Fix empty subject
-                                               if (empty($content['subject'])) {
+                                               if (empty($mailData['subject'])) {
                                                        // The subject line is empty so we use the default
                                                        // The subject line is empty so we use the default
-                                                       $content['subject'] = '{--DEFAULT_SUBJECT_LINE--}';
+                                                       $mailData['subject'] = '{--DEFAULT_SUBJECT_LINE--}';
                                                } // END - if
 
                                                // Prepare data for the row template
                                                } // END - if
 
                                                // Prepare data for the row template
-                                               $content['link']      = $LINK;
-                                               $content['timestamp'] = generateDateTime($content['timestamp'], 0);
+                                               $mailData['timestamp'] = generateDateTime($mailData['timestamp'], 0);
 
                                                // Load row template
 
                                                // Load row template
-                                               $OUT .= loadTemplate('admin_list_links_row', true, $content);
+                                               $OUT .= loadTemplate('admin_list_links_row', true, $mailData);
                                        } else {
                                                // Load template for error
                                        } else {
                                                // Load template for error
-                                               $OUT .= loadTemplate('admin_list_links_problem', true,
-                                                       array(
-                                                               'problem' => $problemMessage,
-                                                               'mail_id' => $mailId
-                                                       )
-                                               );
+                                               $OUT .= loadTemplate('admin_list_links_problem', true, $linkData);
                                        }
 
                                        // Free result
                                        }
 
                                        // Free result
@@ -144,10 +142,12 @@ if (isGetRequestElementSet('userid')) {
                                } // END - while
 
                                // Remember list in constant for the template
                                } // END - while
 
                                // Remember list in constant for the template
-                               $content['email']   = '<a href="' . generateEmailLink(getUserData('email'), 'user_data') . '">' . getUserData('email') . '</a>';
-                               $content['rows']    = $OUT;
-                               $content['nums']    = SQL_NUMROWS($result);
-                               $content['userid']  = bigintval(getRequestElement('userid'));
+                               $content = array(
+                                       'email'   => '<a href="' . generateEmailLink(getUserData('email'), 'user_data') . '">' . getUserData('email') . '</a>',
+                                       'rows'    => $OUT,
+                                       'nums'    => SQL_NUMROWS($result),
+                                       'userid'  => bigintval(getRequestElement('userid')),
+                               );
 
                                // Free memory
                                SQL_FREERESULT($result);
 
                                // Free memory
                                SQL_FREERESULT($result);
index 4b7a3734d3582d2b35b985e2aafe19b8094dd846..85cebb6d00fc6d38c24bca76e887f6065add7bae 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 78d8887e6bf4501c1e3c3e609af2b8e6105102d5..116c9592bbea90d676952c590d1ba1f1f7bd361d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5366184a771877512180b9f5b80536cee3e7ccf0..859fe3852eb4e23bd18c2836df6cbd6722490919 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index b0347f8e3682e98c9bdf45729432694069379f42..167c49953420c7c82a4abdc8194d94ef190f2fcf 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 8a686a1002fa28d97db8a531b05957fc36eda394..1f90f6ea5ca86af30367d4f28bffe93c9472cfce 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7f6f70e4653466368e049ff396e2e2ed5339d22d..a52ef8323d26627fee8322b9abedeecfad83e983 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index d1c7db19efc4e55f83f251962421202f654b063e..82fc0c9317d6c6e53a9c10a6a348f8fceb75142d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 1ad813d8af72d96916d7ba5f5ae5845a199afbd8..58bb57a2ddfd218e8c4869d7dedd367256faf75d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -70,7 +70,7 @@ if (isGetRequestElementSet('pid')) {
                // Load user's data
                if (!fetchUserData($userid)) {
                        // Abort here because it is not valid!
                // Load user's data
                if (!fetchUserData($userid)) {
                        // Abort here because it is not valid!
-                       debug_report_bug(__FILE__, __LINE__, 'No user account ' . $userid . ' found.');
+                       reportBug(__FILE__, __LINE__, 'No user account ' . $userid . ' found.');
                } // END - if
 
                if ((getRequestElement('do') == 'accept') && (getUserData('email') != '')) {
                } // END - if
 
                if ((getRequestElement('do') == 'accept') && (getUserData('email') != '')) {
@@ -131,7 +131,7 @@ LIMIT 1",
                                                // Clear task
                                                if ($taskId > 0) {
                                                        runFilterChain('solve_task', $taskId);
                                                // Clear task
                                                if ($taskId > 0) {
                                                        runFilterChain('solve_task', $taskId);
-                                               }
+                                               } // END - if
 
                                                // Clear payout request
                                                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_payouts` SET `status`='ACCEPTED' WHERE `id`=%s LIMIT 1",
 
                                                // Clear payout request
                                                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_payouts` SET `status`='ACCEPTED' WHERE `id`=%s LIMIT 1",
index 8549996049e4b8dabf012c9e0abe0b819e8b384e..b6f542d442643f63c0289d3be02499bd22571653 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,5 +43,59 @@ if ((!defined('__SECURITY')) || (!isAdmin())) {
 // Add description as navigation point
 addYouAreHereLink('admin', __FILE__);
 
 // Add description as navigation point
 addYouAreHereLink('admin', __FILE__);
 
+// By default show the list...
+$show = true;
+
+// Check for 'url_id' element
+if ((!isFormSent('add')) && (countRequestPost() > 0) && (!ifPostContainsSelections('id'))) {
+       // Not found so output message
+       displayMessage('{--ADMIN_POINT_ACCOUNTS_NO_SELECTIONS--}');
+
+       // Abort here
+       return;
+} // END - if
+
+// Edit or delete button hit?
+if (isFormSent('add')) {
+       // Add new forced ad
+       if (doAdminAddPointsAccountByType(postRequestArray(), 'CUSTOM')) {
+               // Did work
+               displayMessage('{--ADMIN_POINT_ACCOUNT_ADDED--}');
+       } else {
+               // Doesn't work
+               displayMessage('{--ADMIN_POINT_ACCOUNT_NOT_ADDED--}');
+       }
+} elseif (isFormSent('edit')) {
+       // Show only custom entries for editing
+       showEntriesByXmlCallback('admin_edit_show_point_accounts');
+
+       // Do not show the list of URLs after this template
+       $show = false;
+} elseif (isFormSent('do_edit')) {
+       // Change data of only custom entries
+       showEntriesByXmlCallback('admin_edit_do_point_accounts');
+} elseif ((isFormSent('delete')) && (ifPointsAccountTypeMatchesPost('CUSTOM'))) {
+       // Show only custom entries for deleting
+       showEntriesByXmlCallback('admin_delete_show_point_accounts');
+
+       // Do not show the list of URLs after this template
+       $show = false;
+} elseif ((isFormSent('do_delete')) && (ifPointsAccountTypeMatchesPost('CUSTOM'))) {
+       // Remove only custom entries
+       showEntriesByXmlCallback('admin_delete_do_point_accounts');
+}
+
+// Show entries?
+if ($show === false) {
+       // No, a form has already been show
+       return false;
+} // END - if
+
+// List all campaigns
+showEntriesByXmlCallback('admin_list_point_accounts');
+
+// Display form for adding a forced-ad
+loadTemplate('admin_add_point_accounts');
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index c4eafb6ad1fa8c39df148f9e921aad0f688fa5d2..14c2124e01451da752ae8e4431ed8ff7b87d8e5b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,7 @@ addYouAreHereLink('admin', __FILE__);
 $message = '';
 
 // Quick actions on a rallye
 $message = '';
 
 // Quick actions on a rallye
-if (isGetRequestElementSet('rallye')) {
+if (isGetRequestElementSet('rallye_id')) {
        // Init SQL queries
        initSqls();
 
        // Init SQL queries
        initSqls();
 
@@ -56,13 +56,13 @@ if (isGetRequestElementSet('rallye')) {
                switch (getRequestElement('activate')) {
                        case '1': // Activate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `is_active`='Y' WHERE `id`=%s AND `is_active`='N' LIMIT 1",
                switch (getRequestElement('activate')) {
                        case '1': // Activate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `is_active`='Y' WHERE `id`=%s AND `is_active`='N' LIMIT 1",
-                                       array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__, false)
+                                       array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__, false)
                                );
                                break;
 
                        case '0': // Deactivate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `is_active`='N' WHERE `id`=%s AND `is_active`='Y' LIMIT 1",
                                );
                                break;
 
                        case '0': // Deactivate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `is_active`='N' WHERE `id`=%s AND `is_active`='Y' LIMIT 1",
-                                       array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__, false)
+                                       array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__, false)
                                );
                                break;
                } // END - switch
                                );
                                break;
                } // END - switch
@@ -71,13 +71,13 @@ if (isGetRequestElementSet('rallye')) {
                switch (getRequestElement('notify')) {
                        case '1': // Activate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `send_notify`='Y' WHERE `id`=%s AND `send_notify`='N' LIMIT 1",
                switch (getRequestElement('notify')) {
                        case '1': // Activate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `send_notify`='Y' WHERE `id`=%s AND `send_notify`='N' LIMIT 1",
-                                       array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__, false)
+                                       array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__, false)
                                );
                                break;
 
                        case '0': // Deactivate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `send_notify`='N' WHERE `id`=%s AND `send_notify`='Y' LIMIT 1",
                                );
                                break;
 
                        case '0': // Deactivate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `send_notify`='N' WHERE `id`=%s AND `send_notify`='Y' LIMIT 1",
-                                       array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__, false)
+                                       array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__, false)
                                );
                                break;
                } // END - switch
                                );
                                break;
                } // END - switch
@@ -86,13 +86,13 @@ if (isGetRequestElementSet('rallye')) {
                switch (getRequestElement('auto')) {
                        case '1': // Activate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `auto_add_new_user`='Y' WHERE `id`=%s AND `auto_add_new_user`='N' LIMIT 1",
                switch (getRequestElement('auto')) {
                        case '1': // Activate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `auto_add_new_user`='Y' WHERE `id`=%s AND `auto_add_new_user`='N' LIMIT 1",
-                                       array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__, false)
+                                       array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__, false)
                                );
                                break;
 
                        case '0': // Deactivate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `auto_add_new_user`='N' WHERE `id`=%s AND `auto_add_new_user`='Y' LIMIT 1",
                                );
                                break;
 
                        case '0': // Deactivate
                                addSql(SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_rallye_data` SET `auto_add_new_user`='N' WHERE `id`=%s AND `auto_add_new_user`='Y' LIMIT 1",
-                                       array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__, false)
+                                       array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__, false)
                                );
                                break;
                } // END - switch
                                );
                                break;
                } // END - switch
@@ -121,10 +121,10 @@ if (isGetRequestElementSet('rallye')) {
                runFilterChain('run_sqls');
 
                // Output message
                runFilterChain('run_sqls');
 
                // Output message
-               $message = '{--RALLYE_DELETED--}';
+               $message = '{--ADMIN_RALLYE_DELETED--}';
        } else {
                // No rallye selected to delete!
        } else {
                // No rallye selected to delete!
-               $message = '{--RALLYE_DELETE_NOTHING_SELECTED--}';
+               $message = '{--ADMIN_RALLYE_DELETE_NOTHING_SELECTED--}';
        }
 } elseif (isFormSent('do_edit')) {
        // Change rallye
        }
 } elseif (isFormSent('do_edit')) {
        // Change rallye
@@ -138,8 +138,8 @@ if (isGetRequestElementSet('rallye')) {
                        $id = bigintval($id);
 
                        // Generate timestamps
                        $id = bigintval($id);
 
                        // Generate timestamps
-                       $START = mktime(postRequestElement('start_hour', $id), postRequestElement('start_min', $id), postRequestElement('start_sec', $id), postRequestElement('start_month', $id), postRequestElement('start_day', $id), postRequestElement('start_year', $id));
-                       $END   = mktime(postRequestElement('end_hour', $id)  , postRequestElement('end_min', $id)  , postRequestElement('end_sec', $id)  , postRequestElement('end_month', $id)  , postRequestElement('end_day', $id)  , postRequestElement('end_year', $id)  );
+                       $START = mktime(postRequestElement('start_time_hour', $id), postRequestElement('start_time_min', $id), 0, postRequestElement('start_time_month', $id), postRequestElement('start_time_day', $id), postRequestElement('start_time_year', $id));
+                       $END   = mktime(postRequestElement('end_time_hour', $id)  , postRequestElement('end_time_min', $id)  , 0, postRequestElement('end_time_month', $id)  , postRequestElement('end_time_day', $id)  , postRequestElement('end_time_year', $id)  );
 
                        // Update entry
                        addSql(SQL_QUERY_ESC("UPDATE
 
                        // Update entry
                        addSql(SQL_QUERY_ESC("UPDATE
@@ -171,11 +171,21 @@ LIMIT 1",
                runFilterChain('run_sqls');
 
                // Output message
                runFilterChain('run_sqls');
 
                // Output message
-               $message = '{--RALLYE_CHANGED--}';
+               $message = '{--ADMIN_RALLYE_CHANGED--}';
        }
 }
 
        }
 }
 
-if (isFormSent('edit')) {
+// edit/delete are both handled the same way
+if ((isFormSent('edit')) || (isFormSent('delete'))) {
+       // Default is 'edit'
+       $mode = 'edit';
+
+       // Is delete button used?
+       if (isFormSent('delete')) {
+               // Then set it
+               $mode = 'delete';
+       } // END - if
+       
        // Check for selections
        if (ifPostContainsSelections()) {
                // Make all selected and deactivated rallyes editable
        // Check for selections
        if (ifPostContainsSelections()) {
                // Make all selected and deactivated rallyes editable
@@ -183,63 +193,79 @@ if (isFormSent('edit')) {
                foreach (postRequestElement('sel') as $id => $selected) {
                        // Load rallye basic data
                        $result = SQL_QUERY_ESC("SELECT
                foreach (postRequestElement('sel') as $id => $selected) {
                        // Load rallye basic data
                        $result = SQL_QUERY_ESC("SELECT
-       `title`,`descr`,`template`,`start_time`,`end_time`,`min_users`,`min_prices`
+       `title`,
+       `descr`,
+       `template`,
+       `start_time`,
+       `end_time`,
+       `min_users`,
+       `min_prices`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
        `id`=%s
 LIMIT 1",
                                array(bigintval($id)), __FILE__, __LINE__);
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 WHERE
        `id`=%s
 LIMIT 1",
                                array(bigintval($id)), __FILE__, __LINE__);
+
                        // Fetch an array
                        $content = SQL_FETCHARRAY($result);
 
                        // Free result
                        SQL_FREERESULT($result);
 
                        // Fetch an array
                        $content = SQL_FETCHARRAY($result);
 
                        // Free result
                        SQL_FREERESULT($result);
 
-                       // Starting day
-                       $content['s_sec']   = addSelectionBox('sec'  , getSecond($content['start_time'])   , 'start', $id);
-                       $content['s_min']   = addSelectionBox('min'  , getMinute($content['start_time'])   , 'start', $id);
-                       $content['s_hour']  = addSelectionBox('hour' , getShortHour($content['start_time']), 'start', $id);
-                       $content['s_day']   = addSelectionBox('day'  , getDay($content['start_time'])      , 'start', $id);
-                       $content['s_month'] = addSelectionBox('month', getMonth($content['start_time'])    , 'start', $id);
-                       $content['s_year']  = addSelectionBox('year' , getYear($content['start_time'])     , 'start', $id);
-
-                       // Ending day
-                       $content['e_sec']   = addSelectionBox('sec'  , getSecond($content['end_time'])     , 'end'  , $id);
-                       $content['e_min']   = addSelectionBox('min'  , getMinute($content['end_time'])     , 'end'  , $id);
-                       $content['e_hour']  = addSelectionBox('hour' , getShortHour($content['end_time'])  , 'end'  , $id);
-                       $content['e_day']   = addSelectionBox('day'  , getDay($content['end_time'])        , 'end'  , $id);
-                       $content['e_month'] = addSelectionBox('month', getMonth($content['end_time'])      , 'end'  , $id);
-                       $content['e_year']  = addSelectionBox('year' , getYear($content['end_time'])       , 'end'  , $id);
-
-                       // Remember other values
-                       $content['templ']      = addReferralRallyeTemplateSelection('templ['.$id.']', $content['template']);
-                       $content['id']         = $id;
+                       // Only for editing ...
+                       if ($mode == 'edit') {
+                               // Starting day
+                               $content['s_min']   = addSelectionBox('min'  , getMinute($content['start_time'])   , 'start_time', $id);
+                               $content['s_hour']  = addSelectionBox('hour' , getShortHour($content['start_time']), 'start_time', $id);
+                               $content['s_day']   = addSelectionBox('day'  , getDay($content['start_time'])      , 'start_time', $id);
+                               $content['s_month'] = addSelectionBox('month', getMonth($content['start_time'])    , 'start_time', $id);
+                               $content['s_year']  = addSelectionBox('year' , getYear($content['start_time'])     , 'start_time', $id);
+
+                               // Ending day
+                               $content['e_min']   = addSelectionBox('min'  , getMinute($content['end_time'])     , 'end_time'  , $id);
+                               $content['e_hour']  = addSelectionBox('hour' , getShortHour($content['end_time'])  , 'end_time'  , $id);
+                               $content['e_day']   = addSelectionBox('day'  , getDay($content['end_time'])        , 'end_time'  , $id);
+                               $content['e_month'] = addSelectionBox('month', getMonth($content['end_time'])      , 'end_time'  , $id);
+                               $content['e_year']  = addSelectionBox('year' , getYear($content['end_time'])       , 'end_time'  , $id);
+
+                               // Remember other values
+                               $content['templ']      = addReferralRallyeTemplateSelection('templ[' . $id . ']', $content['template']);
+                       } else {
+                               // Convert timestamps into human-readable
+                               $content['start_time'] = generateDateTime($content['start_time'], '2');
+                               $content['end_time']   = generateDateTime($content['end_time']  , '2');
+                       }
+
+                       // Remember id number
+                       $content['rallye_id']         = bigintval($id);
 
                        // Output row
 
                        // Output row
-                       $OUT .= loadTemplate('admin_edit_rallyes_row', true, $content);
+                       $OUT .= loadTemplate('admin_' . $mode . '_rallyes_row', true, $content);
                } // END - foreach
 
                // Load final template
                } // END - foreach
 
                // Load final template
-               loadTemplate('admin_edit_rallyes', false, $OUT);
+               loadTemplate('admin_' . $mode . '_rallyes', false, $OUT);
        } else {
                // Nothing selected to edit
        } else {
                // Nothing selected to edit
-               displayMessage('{--RALLYE_NO_RALLYES_SELECTED--}');
+               displayMessage('{--ADMIN_RALLYE_NO_RALLYES_SELECTED--}');
        }
        }
-} elseif ((getRequestElement('sub') == 'users') && (getRequestElement('rallye') > 0)) {
+} elseif ((getRequestElement('sub') == 'users') && (getRequestElement('rallye_id') > 0)) {
        // List users and their refs before start and current
        $result = SQL_QUERY_ESC("SELECT
        // List users and their refs before start and current
        $result = SQL_QUERY_ESC("SELECT
-       `userid`,`refs`,`curr_points`
+       `userid`,
+       `refs`,
+       `curr_points`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_users`
 WHERE
        `rallye_id`=%s
 ORDER BY
        `userid` ASC",
 FROM
        `{?_MYSQL_PREFIX?}_rallye_users`
 WHERE
        `rallye_id`=%s
 ORDER BY
        `userid` ASC",
-               array(bigintval(getRequestElement('rallye'))), __FILE__, __LINE__);
+               array(bigintval(getRequestElement('rallye_id'))), __FILE__, __LINE__);
        if (!SQL_HASZERONUMS($result)) {
                $OUT = '';
        if (!SQL_HASZERONUMS($result)) {
                $OUT = '';
-               $content['rallye'] = getRequestElement('rallye');
+               $content['rallye_id'] = bigintval(getRequestElement('rallye_id'));
                while ($row = SQL_FETCHARRAY($result)) {
                        // Check for referral count
                        $count = getReferralRallyeRefsCount($row['userid'], $row['refs']);
                while ($row = SQL_FETCHARRAY($result)) {
                        // Check for referral count
                        $count = getReferralRallyeRefsCount($row['userid'], $row['refs']);
@@ -255,7 +281,7 @@ ORDER BY
                        } // END - if
 
                        // Get user points
                        } // END - if
 
                        // Get user points
-                       $points = countSumTotalData($row['userid'], 'user_points', 'points', 'userid', false, " AND `ref_depth`=1 LIMIT 1");
+                       $points = countSumTotalData($row['userid'], 'user_points', 'points', 'userid', false, " AND `ref_depth`=1");
                        //* DEBUG: */ debugOutput(basename(__FILE__).':userid='.$row['userid'].',points='.$points.',opoints='.$row['curr_points']);
 
                        // Prepare content
                        //* DEBUG: */ debugOutput(basename(__FILE__).':userid='.$row['userid'].',points='.$points.',opoints='.$row['curr_points']);
 
                        // Prepare content
@@ -273,8 +299,8 @@ ORDER BY
                } // END - while
 
                // Remember rows
                } // END - while
 
                // Remember rows
-               $content['rows']   = $OUT;
-               $content['rallye'] = getRequestElement('rallye');
+               $content['rows']      = $OUT;
+               $content['rallye_id'] = bigintval(getRequestElement('rallye_id'));
 
                // Free memory
                SQL_FREERESULT($result);
 
                // Free memory
                SQL_FREERESULT($result);
@@ -283,13 +309,24 @@ ORDER BY
                loadTemplate('admin_list_rallye_usr', false, $content);
        } else {
                // No entries found?
                loadTemplate('admin_list_rallye_usr', false, $content);
        } else {
                // No entries found?
-               displayMessage('{--RALLYE_ADMIN_USERS_404--}');
+               displayMessage('{--ADMIN_RALLYE_USERS_404--}');
        }
 } else {
        // Start listing rallyes
        $result = SQL_QUERY("SELECT
        }
 } else {
        // Start listing rallyes
        $result = SQL_QUERY("SELECT
-       `id`,`admin_id`,`title`,`descr`,`template`,`start_time`,`end_time`,
-       `auto_add_new_user`,`is_active`,`send_notify`,`notified`,`min_users`,`min_prices`
+       `id` AS `rallye_id`,
+       `admin_id`,
+       `title`,
+       `descr`,
+       `template`,
+       `start_time`,
+       `end_time`,
+       `auto_add_new_user`,
+       `is_active`,
+       `send_notify`,
+       `notified`,
+       `min_users`,
+       `min_prices`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 ORDER BY
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data`
 ORDER BY
@@ -301,19 +338,19 @@ ORDER BY
                $OUT = '';
                while ($data = SQL_FETCHARRAY($result)) {
                        // Count joined userids
                $OUT = '';
                while ($data = SQL_FETCHARRAY($result)) {
                        // Count joined userids
-                       $users = countSumTotalData($data['id'], 'rallye_users', 'id', 'rallye_id', true);
+                       $users = countSumTotalData($data['rallye_id'], 'rallye_users', 'rallye_id', 'rallye_id', true);
 
                        // Did some users joined this rallye?
                        if ($users > 0) {
                                // List joined users
 
                        // Did some users joined this rallye?
                        if ($users > 0) {
                                // List joined users
-                               $users = '<a href="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;sub=users&amp;rallye=' . $data['id'] . '%}" title="{--RALLYE_LIST_USERS_TITLE--}">' . $users . '</a>';
+                               $users = '<a href="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;sub=users&amp;rallye_id=' . $data['rallye_id'] . '%}" title="{--ADMIN_LIST_RALLYE_USERS_TITLE--}">{%pipe,translateComma=' . $users . '%}</a>';
                        } // END - if
 
                        // Transfer data into array for the template
                        $row = array(
                        } // END - if
 
                        // Transfer data into array for the template
                        $row = array(
-                               'select'            => '<input type="checkbox" name="sel[' . $data['id'] . ']" class="form_field" value="1" />',
+                               'select'            => '<input type="checkbox" name="sel[' . $data['rallye_id'] . ']" class="form_field" value="1" />',
                                'admin_id'          => $data['admin_id'],
                                'admin_id'          => $data['admin_id'],
-                               'id'                => $data['id'],
+                               'rallye_id'         => $data['rallye_id'],
                                'title'             => $data['title'],
                                'template'          => $data['template'],
                                'users_content'     => $users,
                                'title'             => $data['title'],
                                'template'          => $data['template'],
                                'users_content'     => $users,
@@ -323,7 +360,7 @@ ORDER BY
                                'send_notify'       => $data['send_notify'],
                                'auto_add_new_user' => $data['auto_add_new_user'],
                                'notified'          => $data['notified'],
                                'send_notify'       => $data['send_notify'],
                                'auto_add_new_user' => $data['auto_add_new_user'],
                                'notified'          => $data['notified'],
-                               'prices_cnt'        => countSumTotalData($data['id'], 'rallye_prices', 'id', 'rallye_id', true),
+                               'prices_cnt'        => countSumTotalData($data['rallye_id'], 'rallye_prices', 'rallye_id', 'rallye_id', true),
                                'descr'             => $data['descr'],
                                'min_users'         => $data['min_users'],
                                'min_prices'        => $data['min_prices'],
                                'descr'             => $data['descr'],
                                'min_users'         => $data['min_users'],
                                'min_prices'        => $data['min_prices'],
@@ -333,13 +370,13 @@ ORDER BY
                        switch ($data['is_active']) {
                                case 'Y':
                                        // Rallye is active so do not edit it!
                        switch ($data['is_active']) {
                                case 'Y':
                                        // Rallye is active so do not edit it!
-                                       $row['select']       = '<div class="big">' . $row['id'] . '</div>';
-                                       $row['active_title'] = '{--RALLYE_DEACTIVATE_NOW--}';
+                                       $row['select']       = '<div class="big">' . $row['rallye_id'] . '</div>';
+                                       $row['active_title'] = '{--ADMIN_RALLYE_DEACTIVATE_NOW--}';
                                        $row['active']       = '0';
                                        break;
 
                                case 'N':
                                        $row['active']       = '0';
                                        break;
 
                                case 'N':
-                                       $row['active_title'] = '{--RALLYE_ACTIVATE_NOW--}';
+                                       $row['active_title'] = '{--ADMIN_RALLYE_ACTIVATE_NOW--}';
                                        $row['active']       = 1;
                                        break;
                        } // END - switch
                                        $row['active']       = 1;
                                        break;
                        } // END - switch
@@ -347,12 +384,12 @@ ORDER BY
                        // Notification to members?
                        switch ($data['send_notify']) {
                                case 'Y':
                        // Notification to members?
                        switch ($data['send_notify']) {
                                case 'Y':
-                                       $row['notify_title'] = '{--RALLYE_STOP_NOTIFY_NOW--}';
+                                       $row['notify_title'] = '{--ADMIN_RALLYE_STOP_NOTIFY_NOW--}';
                                        $row['notify']       = '0';
                                        break;
 
                                case 'N':
                                        $row['notify']       = '0';
                                        break;
 
                                case 'N':
-                                       $row['notify_title'] = '{--RALLYE_START_NOTIFY_NOW--}';
+                                       $row['notify_title'] = '{--ADMIN_RALLYE_START_NOTIFY_NOW--}';
                                        $row['notify']       = 1;
                                        break;
                        } // END - switch
                                        $row['notify']       = 1;
                                        break;
                        } // END - switch
@@ -360,12 +397,12 @@ ORDER BY
                        // Auto-add of new joined members?
                        switch ($data['auto_add_new_user']) {
                                case 'Y':
                        // Auto-add of new joined members?
                        switch ($data['auto_add_new_user']) {
                                case 'Y':
-                                       $row['auto_title'] = '{--RALLYE_STOP_AUTO_ADD_NOW--}';
+                                       $row['auto_title'] = '{--ADMIN_RALLYE_STOP_AUTO_ADD_NOW--}';
                                        $row['auto']       = '0';
                                        break;
 
                                case 'N':
                                        $row['auto']       = '0';
                                        break;
 
                                case 'N':
-                                       $row['auto_title'] = '{--RALLYE_START_AUTO_ADD_NOW--}';
+                                       $row['auto_title'] = '{--ADMIN_RALLYE_START_AUTO_ADD_NOW--}';
                                        $row['auto']       = 1;
                                        break;
                        } // END - switch
                                        $row['auto']       = 1;
                                        break;
                        } // END - switch
@@ -384,7 +421,7 @@ ORDER BY
                loadTemplate('admin_list_rallyes', false, $content);
        } else {
                // No rallyes setup so far
                loadTemplate('admin_list_rallyes', false, $content);
        } else {
                // No rallyes setup so far
-               displayMessage('{--RALLYE_NO_RALLYES_SETUP--}');
+               displayMessage('{--ADMIN_RALLYE_NO_RALLYES_SETUP--}');
        }
 }
 
        }
 }
 
index 2c410a5e8af5954a446d4af0a4f0abd04323e441..c1367118a8d10893ff35070b51487fb07197680f 100644 (file)
@@ -11,7 +11,7 @@
  * Kurzbeschreibung  : Alle generierten Refs eines Mitgliedes anzeigen  *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * Kurzbeschreibung  : Alle generierten Refs eines Mitgliedes anzeigen  *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -48,15 +48,16 @@ if (isGetRequestElementSet('userid')) {
        // User found?
        if (fetchUserData($userid)) {
                // Get total refs
        // User found?
        if (fetchUserData($userid)) {
                // Get total refs
-               $menge =     countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
-               $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
+               $totalReferrals       = getUsersTotalReferrals($userid);
+               $totalLockedReferrals = getUsersTotalLockedReferrals($userid);
 
                // Output info message
 
                // Output info message
-               displayMessage(sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink(getRequestElement('userid')), $menge, $menge_lck));
+               displayMessage(sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink(getRequestElement('userid')), $totalReferrals, $totalLockedReferrals));
 
                // Load all referral levels
                $result_levels = SQL_QUERY("SELECT
 
                // Load all referral levels
                $result_levels = SQL_QUERY("SELECT
-       `level`,`percents`
+       `level`,
+       `percents`
 FROM
        `{?_MYSQL_PREFIX?}_refdepths`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_refdepths`
 WHERE
@@ -80,11 +81,11 @@ ORDER BY
                                // Do we have levels?
                                if (!SQL_HASZERONUMS($result_refs)) {
                                        // Count entries
                                // Do we have levels?
                                if (!SQL_HASZERONUMS($result_refs)) {
                                        // Count entries
-                                       $menge =     countSumTotalData($userid, 'user_data', 'userid', 'refid', true);
-                                       $menge_lck = countSumTotalData($userid, 'user_data', 'userid', 'refid', true, " AND `status` != 'CONFIRMED'");
+                                       $totalReferrals       = getUsersTotalReferrals($userid, $levels['level']);
+                                       $totalLockedReferrals = getUsersTotalLockedReferrals($userid, $levels['level']);
 
                                        // Output info message
 
                                        // Output info message
-                                       $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), $menge, $menge_lck);
+                                       $levels['info'] = sprintf(getMessage('ADMIN_USER_TOTAL_REFS'), generateUserProfileLink($userid), $totalReferrals, $totalLockedReferrals);
 
                                        // Init variables
                                        $OUT_REFS = '';
 
                                        // Init variables
                                        $OUT_REFS = '';
@@ -100,12 +101,8 @@ ORDER BY
                                                        // @TODO Try to rewrite some to EL
                                                        $content = array(
                                                                'userid'     => getUserData('userid'),
                                                        // @TODO Try to rewrite some to EL
                                                        $content = array(
                                                                'userid'     => getUserData('userid'),
-                                                               'gender'     => getUserData('gender'),
-                                                               'refs_link'  => 0,
-                                                               'surname'    => getUserData('surname'),
-                                                               'family'     => getUserData('family'),
+                                                               'refs_link'  => '0',
                                                                'email'      => '[<a href="' . generateEmailLink(getUserData('email'), 'user_data') . '">' . getUserData('email') . '</a>]',
                                                                'email'      => '[<a href="' . generateEmailLink(getUserData('email'), 'user_data') . '">' . getUserData('email') . '</a>]',
-                                                               'status'     => getUserData('status'),
                                                                'registered' => generateDateTime(getUserData('joined'), 3),
                                                        );
 
                                                                'registered' => generateDateTime(getUserData('joined'), 3),
                                                        );
 
index 2fd5305818369db3ed733f67a15b1b16a73fceee..fe3fe710ba752869f4fb410c56b5a943a92f02f2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 7655eb61c1bb3f64ed97a0c8d83930d83146af6a..77676c6544b9dbc1d89457ad090354ba3a2d5d9b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index df01ab3fbe830c6a889c68c589522f66ba3e420c..9cca77305e5f603b430478aa95dcc261401da4ea 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ff09e4c080d7216d88453d8067b408b4f5cf8364..34865328c8b877823d8d5795e056dec5e8e1b121 100644 (file)
@@ -8,7 +8,7 @@
  * -------------------------------------------------------------------- *
  * Short description : List surfbar member actions                      *
  * -------------------------------------------------------------------- *
  * -------------------------------------------------------------------- *
  * Short description : List surfbar member actions                      *
  * -------------------------------------------------------------------- *
- * Kurzbeschreibung  : Auflistung von Mitgliederaktionen der Surfbar    *
+ * Kurzbeschreibung  : Auflistung von Mitglieder-Aktionen der Surfbar   *
  * -------------------------------------------------------------------- *
  * $Revision::                                                        $ *
  * $Date::                                                            $ *
  * -------------------------------------------------------------------- *
  * $Revision::                                                        $ *
  * $Date::                                                            $ *
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e8bed5d2294295f85ce25c9fd46aa436526321b5..d06b8285a749e9757b66759fae1e06b1cf607ce1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,7 @@ addYouAreHereLink('admin', __FILE__);
 $show = true;
 
 // Check for 'url_id' element
 $show = true;
 
 // Check for 'url_id' element
-if ((countRequestPost() > 0) && ((!isPostRequestElementSet('url_id')) || (!is_array(postRequestElement('url_id'))) || (count(postRequestElement('url_id')) == 0))) {
+if ((countRequestPost() > 0) && (!ifPostContainsSelections('url_id'))) {
        // Not found so output message
        displayMessage('{--ADMIN_SURFBAR_NO_SELECTIONS--}');
 
        // Not found so output message
        displayMessage('{--ADMIN_SURFBAR_NO_SELECTIONS--}');
 
index 3d842ec5d5e42d8085f1a0a5985f614f8602306f..5d6c226cb7c985d83d5affeafd7bd81d3240b58e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -101,7 +101,7 @@ ORDER BY
                        __FILE__, __LINE__);
                if ((ifPostContainsSelections()) && (!isDemoModeActive())) {
                        // Only unassign / delete tasks when there are selected tasks posted
                        __FILE__, __LINE__);
                if ((ifPostContainsSelections()) && (!isDemoModeActive())) {
                        // Only unassign / delete tasks when there are selected tasks posted
-                       if (isPostRequestElementSet('unassign')) {
+                       if (isFormSent('unassign')) {
                                // Unassign from tasks
                                foreach (postRequestElement('sel') as $id => $sel) {
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `assigned_admin`=NULL WHERE `id`=%s AND `assigned_admin`=%s LIMIT 1",
                                // Unassign from tasks
                                foreach (postRequestElement('sel') as $id => $sel) {
                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `assigned_admin`=NULL WHERE `id`=%s AND `assigned_admin`=%s LIMIT 1",
@@ -121,7 +121,7 @@ ORDER BY
                                } // END - foreach
                        } else {
                                // Unknown action performed
                                } // END - foreach
                        } else {
                                // Unknown action performed
-                               debug_report_bug(__FILE__, __LINE__, sprintf("Unknown task action performed. data=<pre>%s</pre>", print_r(postRequestArray(), true)));
+                               reportBug(__FILE__, __LINE__, sprintf("Unknown task action performed. data=<pre>%s</pre>", print_r(postRequestArray(), true)));
                        }
 
                        // Update query
                        }
 
                        // Update query
index 959ee3f4bf0b6057d952554ff20f82a96b2ebe92..52e14432efaa323b7cbbe67c83690a383a9066bb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,12 @@ addYouAreHereLink('admin', __FILE__);
 
 // We only need outgoing transfers
 $result = SQL_QUERY('SELECT
 
 // We only need outgoing transfers
 $result = SQL_QUERY('SELECT
-       `userid` AS `from_userid`,`to_userid`,`trans_id`,`points`,`reason`,`time_trans`
+       `userid` AS `from_userid`,
+       `to_userid`,
+       `trans_id`,
+       `points`,
+       `reason`,
+       `time_trans`
 FROM
        `{?_MYSQL_PREFIX?}_user_transfers_out`
 ORDER BY
 FROM
        `{?_MYSQL_PREFIX?}_user_transfers_out`
 ORDER BY
index 0b9172531c70229e65399944e60d3ffb454373a4..6dadfa922b1e18bf3bc66403c73a89eaea5a8730 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 649aec6ab3f7c3b49cac6f06e741533622c73f49..28f967faa12f9290a9d3ac92998171d534d415d7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -75,7 +75,22 @@ if (isGetRequestElementSet('userid')) {
 
        // Does the account exists?
        $result_user = SQL_QUERY_ESC("SELECT
 
        // Does the account exists?
        $result_user = SQL_QUERY_ESC("SELECT
-       `userid`,`country`,`email`,`birth_day`,`birth_month`,`birth_year`,`last_online`,`used_points`,`emails_sent`,`joined`,`last_update`,`last_profile_sent`,`notified`,`emails_received`,`mails_confirmed`".$MORE."
+       `userid`,
+       `country`,
+       `email`,
+       `birth_day`,
+       `birth_month`,
+       `birth_year`,
+       `last_online`,
+       `used_points`,
+       `emails_sent`,
+       `joined`,
+       `last_update`,
+       `last_profile_sent`,
+       `notified`,
+       `emails_received`,
+       `mails_confirmed`
+       ".$MORE."
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
@@ -94,9 +109,15 @@ LIMIT 1",
                $content['links'] = getTotalUnconfirmedMails($userid);
 
                // Add links to the numbers
                $content['links'] = getTotalUnconfirmedMails($userid);
 
                // Add links to the numbers
-               if ($content['links'] > 0) $content['links'] = $base . '&amp;what=list_links&amp;userid=' . $userid . '%}">' . $content['links'] . '</a>]';
-               if ($content['refs']  > 0) $content['refs']  = $base . '&amp;what=list_refs&amp;userid=' . $userid . '%}">{%pipe,translateComma=' . $content['refs'] . '%}</a>]';
-               if ($content['cats']  > 0) $content['cats']  = $base . '&amp;what=list_cats&amp;userid=' . $userid . '%}">{%pipe,translateComma=' . $content['cats'] . '%}</a>]';
+               if ($content['links'] > 0) {
+                       $content['links'] = $base . '&amp;what=list_links&amp;userid=' . $userid . '%}">' . $content['links'] . '</a>]';
+               } // END - if
+               if ($content['refs']  > 0) {
+                       $content['refs']  = $base . '&amp;what=list_refs&amp;userid=' . $userid . '%}">{%pipe,translateComma=' . $content['refs'] . '%}</a>]';
+               } // END - if
+               if ($content['cats']  > 0) {
+                       $content['cats']  = $base . '&amp;what=list_cats&amp;userid=' . $userid . '%}">{%pipe,translateComma=' . $content['cats'] . '%}</a>]';
+               } // END - if
 
                // Calculate timestamp for birthday
                $stamp = mktime(0, 0, 0, $content['birth_month'], $content['birth_day'], $content['birth_year']);
 
                // Calculate timestamp for birthday
                $stamp = mktime(0, 0, 0, $content['birth_month'], $content['birth_day'], $content['birth_year']);
@@ -204,31 +225,56 @@ LIMIT 1",
                                }
                                break;
 
                                }
                                break;
 
+                       case 'testers': // Test accounts
+                               // Add statement through filter
+                               $whereStatement = runFilterChain('user_inclusion_sql', $whereStatement);
+                               break;
+
                        default: // Invalid list mode
                        default: // Invalid list mode
-                               debug_report_bug(__FILE__, __LINE__, sprintf("Invalid do %s detected.", getRequestElement('do')));
+                               reportBug(__FILE__, __LINE__, sprintf("Invalid do %s detected.", SQL_ESCAPE(secureString(getRequestElement('do')))));
                                break;
                } // END - switch
                                break;
                } // END - switch
+
+               // If it is not 'testers', add exclusion SQL
+               if (getRequestElement('do') != 'testers') {
+                       // Exclude tester users
+                       $whereStatement = runFilterChain('user_exclusion_sql', $whereStatement);
+               } // END - if
        } // END - if
 
        // Generate master query string
        } // END - if
 
        // Generate master query string
-       $sql = sprintf("SELECT `userid`,`email`,`emails_sent`,`mails_confirmed`,`emails_received`" . $MORE . " FROM `{?_MYSQL_PREFIX?}_user_data`" . $whereStatement . " ORDER BY `%s` ASC",
+       $sql = sprintf("SELECT
+       `userid`,
+       `email`,
+       `emails_sent`,
+       `mails_confirmed`,
+       `emails_received`
+       " . $MORE . "
+FROM
+       `{?_MYSQL_PREFIX?}_user_data`
+" . $whereStatement . "
+ORDER BY
+       `%s` ASC",
                getRequestElement('sortby')
        );
 
        // Prepare SQL and run it
        $result_master = SQL_QUERY($sql, __FILE__, __LINE__);
 
                getRequestElement('sortby')
        );
 
        // Prepare SQL and run it
        $result_master = SQL_QUERY($sql, __FILE__, __LINE__);
 
-       // Calculate page count (0.5 fixes a bug with page count)
-       if (getConfig('user_limit') == '0') {
+       // Is the user limit zero?
+       if (getUserLimit() == '0') {
+               // Then set it to default ...
                setConfigEntry('user_limit', 100);
                setConfigEntry('user_limit', 100);
+
+               // ... but output warning
                displayMessage('{--EXTENSION_WARNING_USER_LIMIT--}');
        } // END - if
 
                displayMessage('{--EXTENSION_WARNING_USER_LIMIT--}');
        } // END - if
 
-       // Activate the extension please!
-       $numPages = round(SQL_NUMROWS($result_master) / getConfig('user_limit') + 0.5);
+       // Calculate page count (0.5 fixes a bug with page count)
+       $numPages = round(SQL_NUMROWS($result_master) / getUserLimit() + 0.5);
 
        if (!isGetRequestElementSet('page'))   setGetRequestElement('page'  , 1);
 
        if (!isGetRequestElementSet('page'))   setGetRequestElement('page'  , 1);
-       if (!isGetRequestElementSet('offset')) setGetRequestElement('offset', getConfig('user_limit'));
+       if (!isGetRequestElementSet('offset')) setGetRequestElement('offset', getUserLimit());
 
        // Add limitation to SQL string and run him again
        $sql .= ' LIMIT ' . (getRequestElement('offset') * getRequestElement('page') - getRequestElement('offset')) . ', ' . getRequestElement('offset');
 
        // Add limitation to SQL string and run him again
        $sql .= ' LIMIT ' . (getRequestElement('offset') * getRequestElement('page') - getRequestElement('offset')) . ', ' . getRequestElement('offset');
@@ -236,9 +282,6 @@ LIMIT 1",
 
        // Are there some entries?
        if (!SQL_HASZERONUMS($result_master)) {
 
        // Are there some entries?
        if (!SQL_HASZERONUMS($result_master)) {
-               // We have some (new?) registrations!
-               $templateContent['user_count'] = getTotalConfirmedUser();
-
                // Sorting links and number of pages
                $templateContent['sort_links'] = addSortLinks(getRequestElement('letter'), getRequestElement('sortby'));
                $templateContent['num_pages'] = $numPages;
                // Sorting links and number of pages
                $templateContent['sort_links'] = addSortLinks(getRequestElement('letter'), getRequestElement('sortby'));
                $templateContent['num_pages'] = $numPages;
@@ -278,8 +321,30 @@ LIMIT 1",
                        $content['email']          = '[<a href="' . generateEmailLink($content['email'], 'user_data') . '">' . $content['email'] . '</a>]';
                        $content['lock_timestamp'] = generateDateTime($content['lock_timestamp'], '2');
                        $content['refs']           = countSumTotalData($content['userid'], 'user_refs', 'id', 'userid', true);
                        $content['email']          = '[<a href="' . generateEmailLink($content['email'], 'user_data') . '">' . $content['email'] . '</a>]';
                        $content['lock_timestamp'] = generateDateTime($content['lock_timestamp'], '2');
                        $content['refs']           = countSumTotalData($content['userid'], 'user_refs', 'id', 'userid', true);
-                       $content['own_points']     = countSumTotalData($content['userid'], 'user_points', 'points') + countSumTotalData($content['userid'], 'user_points', 'order_points');
-                       $content['locked_points']  = countSumTotalData($content['userid'], 'user_points', 'locked_points') + countSumTotalData($content['userid'], 'user_points', 'locked_order_points');
+
+                       // Prepare array for filter
+                       $data = array(
+                               'userid' => $content['userid'],
+                               'points' => 0
+                       );
+
+                       // Run the filter chain
+                       $data = runFilterChain('get_own_points', $data);
+
+                       // Copy points
+                       $content['own_points'] = $data['points'];
+
+                       // Prepare array for filter again
+                       $data = array(
+                               'userid' => $content['userid'],
+                               'points' => 0
+                       );
+
+                       // Run the filter chain
+                       $data = runFilterChain('get_locked_points', $data);
+
+                       // Copy points
+                       $content['locked_points']  = $data['points'];
 
                        // If we have at least one referral, make it clickable to referral list
                        if ($content['refs'] > 0) {
 
                        // If we have at least one referral, make it clickable to referral list
                        if ($content['refs'] > 0) {
index a2ea24fd7c3bc5af1821efc7f73df7736428eef7..91b7914e14d795a955eeef52401b773121a9e2ae 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 52a78cbd4d4a4a60b0ab0b4c217fec818ff90eb9..bf6969fcd8b2bfdf9dd667362fbe99cb3f02679b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
index cfeab36e6f17332876e5a98a055649a73972e1f9..c932979a54bfed6230e5cc9325e86214ce7d07fc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -72,7 +72,7 @@ if (isGetRequestElementSet('id')) {
                                }
 
                                // Load email message
                                }
 
                                // Load email message
-                               $message = loadEmailTemplate('lock_sponsor', $content, bigintval(getRequestElement('id')));
+                               $message = loadEmailTemplate('sponsor_locked', $content, bigintval(getRequestElement('id')));
 
                                // And send it away
                                sendEmail($content['email'], $subject, $message);
 
                                // And send it away
                                sendEmail($content['email'], $subject, $message);
index 79cc7c84e203e8ab9d08ba2b08c8605b6139c63d..7fa06f1fcf2947e0e021d2f625b7053b5b0806f1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e3ba9580c3a431f2a2396fd9389bb2ea5dad5115..3c51dfa5c9a8f0993867cbb749e92cc627a721b7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -80,7 +80,7 @@ if (isGetRequestElementSet('access')) {
 
                // Output the logfile's content and exit
                print($content);
 
                // Output the logfile's content and exit
                print($content);
-               shutdown();
+               doShutdown();
        } else {
                // Not readable!
                displayMessage('{%message,LOGFILE_NOT_READABLE=' . $access . '%}');
        } else {
                // Not readable!
                displayMessage('{%message,LOGFILE_NOT_READABLE=' . $access . '%}');
index 29fb38b59ce662d038e2c240099b6fcf3c301f68..08b729e5390f57a91a5c83b2f37b9a9a3be0d43e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index e36e9ea5ba444fc9f65e51242f1f359b6ccdb830..2ac057db6260d41cf23d6d424c28ae75cfbc81e3 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -63,13 +63,13 @@ if (!isFormSent()) {
                // @TODO Cant this be rewritten?
                while ($content = SQL_FETCHARRAY($result)) {
                        // Menu actions
                // @TODO Cant this be rewritten?
                while ($content = SQL_FETCHARRAY($result)) {
                        // Menu actions
-                       $menus[] = $content['action'];
+                       array_push($menus, $content['action']);
 
                        // Menu titles
 
                        // Menu titles
-                       $titles[] = $content['title'];
+                       array_push($titles, $content['title']);
 
                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
 
                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
-                       $below[] = $content['sort'] + 1;
+                       array_push($below, $content['sort'] + 1);
                } // END - if
 
                // Free memory
                } // END - if
 
                // Free memory
@@ -108,13 +108,13 @@ if (!isFormSent()) {
                                // Read menu structure
                                while ($content = SQL_FETCHARRAY($result)) {
                                        // Menu actions
                                // Read menu structure
                                while ($content = SQL_FETCHARRAY($result)) {
                                        // Menu actions
-                                       $menus[$value_main][] = $content['what'];
+                                       array_push($menus[$value_main], $content['what']);
 
                                        // Menu titles
 
                                        // Menu titles
-                                       $titles[$value_main][] = $content['title'];
+                                       array_push($titles[$value_main], $content['title']);
 
                                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
 
                                        // Below this menu point should the new be added so we simply increase the sort value by 1 :-)
-                                       $below[$value_main][] = $content['sort'] + 1;
+                                       array_push($below[$value_main], $content['sort'] + 1);
                                } // END - while
 
                                // Free memory
                                } // END - while
 
                                // Free memory
index e2b878f263f95903efac06477524c0ef4a844af8..05ad9b72fa3f5a969ce967f1988fd9b391447ded 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 571df6957cc8b42f97dab9e89ab9f2156c781da3..16c12d8826a04d09abf93b44346bb6da1ae40f01 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -56,7 +56,7 @@ foreach ($content['tables'] as $row_array) {
        if (empty($row_array[1])) $row_array[1] = 'NONE';
 
        // Get repair/optimization status
        if (empty($row_array[1])) $row_array[1] = 'NONE';
 
        // Get repair/optimization status
-       $repairStatus = '{--ADMIN_OPTIMIZE_STATUS_' . str_replace('__', '_', str_replace(',', '', str_replace('+', '', str_replace("'", '', str_replace(' ', '_', strtoupper($row_array[1])))))) . '--}';
+       $repairStatus = '{--ADMIN_OPTIMIZE_STATUS_' . str_replace(array('__', ',', '+', chr(39), ' '), array('_', '', '', '', '_'), strtoupper($row_array[1])) . '--}';
        $optimizeStatus = '{--ADMIN_OPTIMIZE_STATUS_UNSUPPORTED--}';
 
        if ($row_array[4] > 0) {
        $optimizeStatus = '{--ADMIN_OPTIMIZE_STATUS_UNSUPPORTED--}';
 
        if ($row_array[4] > 0) {
index 75cf7740d9d32c662eaf706be821aad06af19c3b..f551ef47b7591c74e7b59193e56a1fa6505a87ab 100644 (file)
@@ -1,103 +1,3 @@
 <?php
 <?php
-/************************************************************************
- * Mailer v0.2.1-FINAL                                Start: 09/05/2003 *
- * ===================                          Last change: 07/13/2004 *
- *                                                                      *
- * -------------------------------------------------------------------- *
- * File              : what-overview.php                                *
- * -------------------------------------------------------------------- *
- * Short description : Generate a simple task list or menu descriptions *
- * -------------------------------------------------------------------- *
- * Kurzbeschreibung  : Einfache Task-Liste oder Menuebeschreibungen     *
- * -------------------------------------------------------------------- *
- * $Revision::                                                        $ *
- * $Date::                                                            $ *
- * $Tag:: 0.2.1-FINAL                                                 $ *
- * $Author::                                                          $ *
- * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
- * For more information visit: http://mxchange.org                      *
- *                                                                      *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or    *
- * (at your option) any later version.                                  *
- *                                                                      *
- * This program is distributed in the hope that it will be useful,      *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
- * GNU General Public License for more details.                         *
- *                                                                      *
- * You should have received a copy of the GNU General Public License    *
- * along with this program; if not, write to the Free Software          *
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
- * MA  02110-1301  USA                                                  *
- ************************************************************************/
-
-// Some security stuff...
-if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
-} // END - if
-
-// Is sql_patches not yet installed?
-if (!isExtensionInstalled('sql_patches')) {
-       // Output warning
-       displayMessage('{--ADMIN_WARNING_SQL_PATCHES_MISSING--}');
-} // END - if
-
- // Load include file 'overview-inc' (old standard overview page)
-loadIncludeOnce('inc/modules/admin/overview-inc.php');
-
-// Default is that all jobs are done (why?)
-$jobsDone = true;
-
-// Default is that 'task' is not installed
-$taskExt = false;
-
-// When the admin is logging in check several things first (new jobs to complete and so on)
-if (getAction() == 'login') {
-       if ((isExtensionActive('task')) && (function_exists('outputAdvancedOverview'))) {
-               // When task extension is registered output advanced overview page
-               $jobsDone = outputAdvancedOverview($result_tasks); // This function is provided by the extension 'task'
-               $taskExt = true;
-       } else {
-               // Output standart overview (provided by overview-inc.php)
-               $jobsDone = outputStandardOverview($result_tasks);
-       }
-} // END - if
-
-// Are we in 'welcome' page and are there jobs to be done?
-if (!ifAdminMenuHasEntries(getAction())) {
-       // This menu is empty and so no content is displayed
-       displayMessage('{--ADMIN_MENU_EMPTY--}');
-} elseif ($jobsDone === true) {
-       // Generate overview of all main menus
-       if ((is_array($GLOBALS['menu']['description'])) && (count($GLOBALS['menu']['description']) > 0)) {
-               $OUT = '';
-               foreach ($GLOBALS['menu']['description'] as $key => $value) {
-                       // Prepare content
-                       $content = array(
-                               'title' => $GLOBALS['menu']['title'][$key],
-                               'text'  => $value
-                       );
-
-                       // Load row template
-                       $OUT .= loadTemplate('admin_menu_hints_row', true, $content);
-               } // END - foreach
-
-               // Load base template
-               loadTemplate('admin_menu_hints', false, $OUT);
-       }
-} elseif ($taskExt === false) {
-       if (isExtensionActive('task')) {
-               // Output warning message
-               displayMessage('{%message,EXTENSION_WARNING_EXTENSION_INACTIVE=task%}');
-       } // END - if
-
-       // List selected tasks on overview when task management is not active
-       outputSeletectedTasks(postRequestArray(), $result_tasks);
-}
-
-// [EOF]
+// @DEPRECATED
 ?>
 ?>
index 07e2a54fc4f4d1a29a3e28e90f442300f7a340cc..ef16f138e41e2b2317158a33f5537821d04e0ba0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 844cb6238b5699403119c2a1ba0b0c63a26db10d..30d7709580ea8511ce6127bf2cb6c7d4c5a21365 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 1a6d1dd7e4ced5180d400160c7fbeefae94ebfb3..6dc09178097776d9d19da630724fcb1e0a54a738 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 4993fa42a18681cb7ead020b0a8366965ba814f0..f686b5d05ff08ce7dc8179febe4e7e366b5a65d1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,7 +50,7 @@ $result_fix = SQL_QUERY("SELECT `id`,`action` FROM `{?_MYSQL_PREFIX?}_admin_menu
 $count = '0'; $repairedWeights = '0';
 while ($content = SQL_FETCHARRAY($result_fix)) {
        // Store act value for later usage in sorting sub menus
 $count = '0'; $repairedWeights = '0';
 while ($content = SQL_FETCHARRAY($result_fix)) {
        // Store act value for later usage in sorting sub menus
-       $actions[] = $content['action'];
+       array_push($actions, $content['action']);
 
        // Fix weight
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET sort=%s WHERE `id`=%s LIMIT 1",
 
        // Fix weight
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET sort=%s WHERE `id`=%s LIMIT 1",
index c1d0713c8d75fb46618c30738952c8d588b06ebf..419361d151303aef8061ea0bcfc2ee6199407e3c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -47,7 +47,7 @@ addYouAreHereLink('admin', __FILE__);
 $result = SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` GROUP BY `userid` ORDER BY `userid` ASC", __FILE__, __LINE__);
 if (!SQL_HASZERONUMS($result)) {
         // Nothing is removed for now... ;-)
 $result = SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` GROUP BY `userid` ORDER BY `userid` ASC", __FILE__, __LINE__);
 if (!SQL_HASZERONUMS($result)) {
         // Nothing is removed for now... ;-)
-       $REMOVED = '0';
+       $removedRows = '0';
 
        // Check if found userid is also found in user_data table
        while ($content = SQL_FETCHARRAY($result)) {
 
        // Check if found userid is also found in user_data table
        while ($content = SQL_FETCHARRAY($result)) {
@@ -56,13 +56,13 @@ if (!SQL_HASZERONUMS($result)) {
                        // Ok, we found something to remove
                        SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid`=%s",
                                array(bigintval($content['userid'])), __FILE__, __LINE__);
                        // Ok, we found something to remove
                        SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid`=%s",
                                array(bigintval($content['userid'])), __FILE__, __LINE__);
-                       $REMOVED += SQL_AFFECTEDROWS();
+                       $removedRows += SQL_AFFECTEDROWS();
                } // END - if
        } // END - while
 
                } // END - if
        } // END - while
 
-       if ($REMOVED > 0) {
+       if ($removedRows > 0) {
                // Entries repaired
                // Entries repaired
-               $content = '{%message,ADMIN_REPAIR_ENTRIES_FIXED=' . $REMOVED . '%}';
+               $content = '{%message,ADMIN_REPAIR_ENTRIES_FIXED=' . $removedRows . '%}';
        } else {
                // Nothing repaired
                $content = '<div class="notice">{--ADMIN_REPAIR_NOTHING_FIXED--}</div>';
        } else {
                // Nothing repaired
                $content = '<div class="notice">{--ADMIN_REPAIR_NOTHING_FIXED--}</div>';
index e9c64523d13ab473a97d1d7d74da89103bae3118..6a8a74913a1cf943f5b8709b3f1f0bf5216828b2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,7 +50,7 @@ $result_fix = SQL_QUERY("SELECT `id`,`action` FROM `{?_MYSQL_PREFIX?}_guest_menu
 $count = '0'; $repairedWeights = '0';
 while ($content = SQL_FETCHARRAY($result_fix)) {
        // Store act value for later usage in sorting sub menus
 $count = '0'; $repairedWeights = '0';
 while ($content = SQL_FETCHARRAY($result_fix)) {
        // Store act value for later usage in sorting sub menus
-       $actions[] = $content['action'];
+       array_push($actions, $content['action']);
 
        // Fix weight
        $result_sort = SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `sort`=%s WHERE `id`=%s LIMIT 1",
 
        // Fix weight
        $result_sort = SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `sort`=%s WHERE `id`=%s LIMIT 1",
index c2bc0ebdfdea77cb4f5520f484979ef27d465785..176829cb46061dfe29047029d971ef2062d14cef 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index fc1cb9d63755daa54dd1ac8f39b6c6ec2df3a343..7ac68a44f21c3f2784d15b59ff4eea496fd6d1d9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,7 +50,7 @@ $result_fix = SQL_QUERY("SELECT `id`,`action` FROM `{?_MYSQL_PREFIX?}_member_men
 $count = '0'; $repairedWeights = '0';
 while ($content = SQL_FETCHARRAY($result_fix)) {
        // Store action value for later usage in sorting sub menus
 $count = '0'; $repairedWeights = '0';
 while ($content = SQL_FETCHARRAY($result_fix)) {
        // Store action value for later usage in sorting sub menus
-       $actions[] = $content['action'];
+       array_push($actions, $content['action']);
 
        // Fix weight
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `sort`=%s WHERE `id`=%s LIMIT 1",
 
        // Fix weight
        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `sort`=%s WHERE `id`=%s LIMIT 1",
@@ -72,7 +72,7 @@ foreach ($actions as $action) {
        while ($content = SQL_FETCHARRAY($result_fix)) {
                // Fix weight
                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET sort=%s WHERE `id`=%s LIMIT 1",
        while ($content = SQL_FETCHARRAY($result_fix)) {
                // Fix weight
                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET sort=%s WHERE `id`=%s LIMIT 1",
-               array($count, $content['id']), __FILE__, __LINE__);
+                       array($count, $content['id']), __FILE__, __LINE__);
                $repairedWeights += SQL_AFFECTEDROWS();
 
                // Count one up
                $repairedWeights += SQL_AFFECTEDROWS();
 
                // Count one up
index 31cf69994f93fab2969193863db6b0a037ea3845..68f087d37083b3b8f3db9754c6588f107899955d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a66c30fea118ab73bf05b4f8051d2244984c6779..852457782e3fc21fc9b5a79e925288437cd3dae0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 469329ba74ed1f08ef0e9c234312b8d6285d8979..9cfb2f5607b754d7bd33a9d1abf5e9c6acaa2e20 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -54,11 +54,20 @@ if (isFormSent()) {
                displayMessage('{--ADMIN_SEND_COUPON_DESCRIPTION_NOT_ENTERED--}');
        } else {
                // All fields are set, so we can start looking for users who wants to receive coupons
                displayMessage('{--ADMIN_SEND_COUPON_DESCRIPTION_NOT_ENTERED--}');
        } else {
                // All fields are set, so we can start looking for users who wants to receive coupons
-               $result = SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status`='CONFIRMED' AND `receiving_coupons`='Y' ORDER BY `userid` ASC",
+               $result = SQL_QUERY("SELECT
+       `userid`
+FROM
+       `{?_MYSQL_PREFIX?}_user_data`
+WHERE
+       `status`='CONFIRMED' AND
+       `receiving_coupons`='Y'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
+ORDER BY
+       `userid` ASC",
                        __FILE__, __LINE__);
 
                // Do we have entries left?
                        __FILE__, __LINE__);
 
                // Do we have entries left?
-               if (SQL_NUMROWS($result) > 0) {
+               if (!SQL_HASZERONUMS($result)) {
                        // Convert timestamp selections
                        $expirationTime = time() + createEpocheTimeFromSelections('coupon_default_time', postRequestArray());
 
                        // Convert timestamp selections
                        $expirationTime = time() + createEpocheTimeFromSelections('coupon_default_time', postRequestArray());
 
@@ -88,7 +97,7 @@ if (isFormSent()) {
                                         * table-unique "id". The function generatePassword() can do
                                         * this job for us but we want to exclude some characters.
                                         */
                                         * table-unique "id". The function generatePassword() can do
                                         * this job for us but we want to exclude some characters.
                                         */
-                                       $couponCode = generatePassword(30, array('-','+','_','/','.'));
+                                       $couponCode = generatePassword(30, array('-', '+', '_', '/', '.'));
 
                                        // Is it really unique?
                                        $isUnique = (countSumTotalData($couponCode, 'user_coupons', 'id', 'coupon_code', true) == 0);
 
                                        // Is it really unique?
                                        $isUnique = (countSumTotalData($couponCode, 'user_coupons', 'id', 'coupon_code', true) == 0);
@@ -96,7 +105,11 @@ if (isFormSent()) {
 
                                // The above loop should always set $couponCode, so we can now insert it
                                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_coupons` (`coupon_id`,`userid`,`coupon_code`) VALUES (%s,%s,'%s')",
 
                                // The above loop should always set $couponCode, so we can now insert it
                                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_coupons` (`coupon_id`,`userid`,`coupon_code`) VALUES (%s,%s,'%s')",
-                                       array($couponId, $userid, $couponCode), __FILE__, __LINE__);
+                                       array(
+                                               $couponId,
+                                               $userid,
+                                               $couponCode
+                                       ), __FILE__, __LINE__);
 
                                // Fill array with all required data
                                $content = array(
 
                                // Fill array with all required data
                                $content = array(
@@ -114,7 +127,7 @@ if (isFormSent()) {
                                sendEmail($userid, '{--MEMBER_COUPON_SUBJECT--}', $mailText);
 
                                // Rember this user for the admin email
                                sendEmail($userid, '{--MEMBER_COUPON_SUBJECT--}', $mailText);
 
                                // Rember this user for the admin email
-                               $adminUserids[] = $userid;
+                               array_push($adminUserids, $userid);
                        } // END - while
 
                        // Prepare content for template
                        } // END - while
 
                        // Prepare content for template
index d94191ef980f3b2f5203fc2f8ba545f2173b0e31..9661bdcd0ee7188d7888ac1e188b3d32c5e57547 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -45,11 +45,13 @@ addYouAreHereLink('admin', __FILE__);
 
 if (isFormSent()) {
        $result = SQL_QUERY("SELECT
 
 if (isFormSent()) {
        $result = SQL_QUERY("SELECT
-       `userid`,`email`
+       `userid`,
+       `email`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       `status`='CONFIRMED' AND `nl_receive`='Y'
+       `status`='CONFIRMED' AND
+       `nl_receive`='Y'
 ORDER BY
        `userid` ASC", __FILE__, __LINE__);
        if (!SQL_HASZERONUMS($result)) {
 ORDER BY
        `userid` ASC", __FILE__, __LINE__);
        if (!SQL_HASZERONUMS($result)) {
index 56e294d47406039996346cbdbe9deac5ce2ceb52..6d4d26cc760b58395f831aa8e09233fcbce00b04 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 439e4a1e981ee1844a643689db9a93fae68f18c7..bef68109a756ee19c4883727f63cc0f60c2d8600 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index a414fbad4f56814839dcb362ec1fb9eaf7c48977..2f52593d773855a50252178685b9a6fb2b2045eb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 760181af57b5c2f93fade5f700d3ddcdcbf5e517..254c7d9152a9c298c45b6e1bb09e5a60bc069fa4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -80,7 +80,7 @@ if (ifPostContainsSelections()) {
        $postData['default_theme'] = getRequestElement('default_theme');
 
        // Set session
        $postData['default_theme'] = getRequestElement('default_theme');
 
        // Set session
-       setTheme($postData['default_theme']);
+       setMailerTheme($postData['default_theme']);
 
        // Set it in config and current theme as well
        setConfigEntry('default_theme', $postData['default_theme']);
 
        // Set it in config and current theme as well
        setConfigEntry('default_theme', $postData['default_theme']);
index c0fe085887283e7e9596f735fa189a589acf5fb8..7388ea48ea562acc5c0fe4099bbdb01cf4e6ec76 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
 
 // Some security stuff...
 if ((!defined('__SECURITY')) || (!isAdmin())) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -107,12 +107,12 @@ foreach ($includes as $inc) {
        loadInclude($inc);
 
        // Add found theme to array
        loadInclude($inc);
 
        // Add found theme to array
-       $themes['theme_unix'][]    = $dir;
-       $themes['theme_name'][]    = $GLOBALS['theme_data']['name'];
-       $themes['theme_author'][]  = $GLOBALS['theme_data']['author'];
-       $themes['theme_email'][]   = $GLOBALS['theme_data']['email'];
-       $themes['theme_url'][]     = $GLOBALS['theme_data']['url'];
-       $themes['theme_version'][] = $GLOBALS['theme_data']['version'];
+       array_push($themes['theme_unix']   , $dir);
+       array_push($themes['theme_name']   , $GLOBALS['theme_data']['name']);
+       array_push($themes['theme_author'] , $GLOBALS['theme_data']['author']);
+       array_push($themes['theme_email']  , $GLOBALS['theme_data']['email']);
+       array_push($themes['theme_url']    , $GLOBALS['theme_data']['url']);
+       array_push($themes['theme_version'], $GLOBALS['theme_data']['version']);
 } // END - while
 
 // Sort array by Uni* name
 } // END - while
 
 // Sort array by Uni* name
index c91c068a33879625412055905dbaa3ea80ed5df4..85bbeedc1061c2d15725cd9262ca864f702d5aff 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -84,7 +84,7 @@ LIMIT 1",
                                        // @TODO Rewrite these if-blocks to a filter
                                        if ((isExtensionActive('surfbar')) && (getConfig('surfbar_migrate_order') == 'Y')) {
                                                // Then "migrate" the URL to the surfbar
                                        // @TODO Rewrite these if-blocks to a filter
                                        if ((isExtensionActive('surfbar')) && (getConfig('surfbar_migrate_order') == 'Y')) {
                                                // Then "migrate" the URL to the surfbar
-                                               SURFBAR_ADMIN_MIGRATE_URL($content['url'], $content['sender']);
+                                               doSurfbarAdminMigrateUrl($content['url'], $content['sender']);
                                        } // END - if
 
                                        // Check for bonus extension version >= 0.4.4 for the order bonus
                                        } // END - if
 
                                        // Check for bonus extension version >= 0.4.4 for the order bonus
index b66eb9fd95b7c25f11d22c976fc11bcce1809123..052984e3910c084b8968ca47d5a456dd60bb5300 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -99,7 +99,7 @@ ORDER BY
 
                                                // Set default email
                                                $content['email'] = '{--SPONSOR_NO_ADMIN--}';
 
                                                // Set default email
                                                $content['email'] = '{--SPONSOR_NO_ADMIN--}';
-                                               if ($content['admin_id'] > 0) {
+                                               if (isValidUserId($content['admin_id'])) {
                                                        // Load admin's email address for contact
                                                        $content['email'] = getAdminEmail($content['admin_id']);
                                                } // END - if
                                                        // Load admin's email address for contact
                                                        $content['email'] = getAdminEmail($content['admin_id']);
                                                } // END - if
index bd6542d0b46c2ab7ba53c1a33924feae8ad05617..ba10c41ae6a04b4dd70217b9574796a7572b8f8b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,18 +44,18 @@ if ((!defined('__SECURITY')) || (!isAdmin())) {
 addYouAreHereLink('admin', __FILE__);
 
 // Is the form sent?
 addYouAreHereLink('admin', __FILE__);
 
 // Is the form sent?
-if ((isPostRequestElementSet('unlock')) && (is_array(postRequestElement('url_id'))) && (count(postRequestElement('url_id')) > 0)) {
+if ((isPostRequestElementSet('unlock')) && (ifPostContainsSelections('url_id'))) {
        // Unlock selected URLs
        // Unlock selected URLs
-       if (SURFBAR_ADMIN_UNLOCK_URL_IDS(postRequestElement('url_id'))) {
+       if (doSurfbaradminUnlockUrlIds(postRequestElement('url_id'))) {
                // Unlock done! :-)
                displayMessage('{--ADMIN_SURFBAR_UNLOCK_DONE--}');
        } else {
                // Unlock failed!
                displayMessage('{--ADMIN_SURFBAR_UNLOCK_FAILED--}');
        }
                // Unlock done! :-)
                displayMessage('{--ADMIN_SURFBAR_UNLOCK_DONE--}');
        } else {
                // Unlock failed!
                displayMessage('{--ADMIN_SURFBAR_UNLOCK_FAILED--}');
        }
-} elseif ((isPostRequestElementSet('reject')) && (is_array(postRequestElement('url_id'))) && (count(postRequestElement('url_id')) > 0)) {
+} elseif ((isPostRequestElementSet('reject')) && (ifPostContainsSelections('url_id'))) {
        // Reject selected URLs
        // Reject selected URLs
-       if (SURFBAR_ADMIN_REJECT_URL_IDS(postRequestElement('url_id'))) {
+       if (doSurfbaradminRejectUrlIds(postRequestElement('url_id'))) {
                // Unlock done! :-)
                displayMessage('{--ADMIN_SURFBAR_UNLOCK_DONE--}');
        } else {
                // Unlock done! :-)
                displayMessage('{--ADMIN_SURFBAR_UNLOCK_DONE--}');
        } else {
index f3b4890f3e185cc56f07ac5bda3e184d52b48951..7e893ecc0c97ca57cbb8e3d178ed2760699c86be 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -60,9 +60,9 @@ if (empty($response[0]) && empty($response[1]) && empty($response[2]) && empty($
 
                // Which is the latest version on server?
                $ONLINE = array(
 
                // Which is the latest version on server?
                $ONLINE = array(
-                       'version'  => trim(str_replace("\n", '', $response[0])),
-                       'changed'  => trim(str_replace("\n", '', $response[1])),
-                       'revision' => trim(str_replace("\n", '', $response[2])),
+                       'version'  => trim(str_replace(chr(10), '', $response[0])),
+                       'changed'  => trim(str_replace(chr(10), '', $response[1])),
+                       'revision' => trim(str_replace(chr(10), '', $response[2])),
                        'code'     => '200 OK'
                );
        } else {
                        'code'     => '200 OK'
                );
        } else {
index 70df56b23fe2132883c9a322e24db3954072b1db..b18804cc849a91ab3a4a3493719bfa07dfae004e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -59,8 +59,8 @@ if (isGetRequestElementSet('image')) {
                        getConfig('usage_base')
                );
        } else {
                        getConfig('usage_base')
                );
        } else {
-               if (strpos(getRequestElement('image'), "\\") > 0) {
-                       setGetRequestElement('image', substr(getRequestElement('image'), 0, strpos(getRequestElement('image'), "\\")));
+               if (strpos(getRequestElement('image'), chr(92)) > 0) {
+                       setGetRequestElement('image', substr(getRequestElement('image'), 0, strpos(getRequestElement('image'), chr(92))));
                } // END - if
                $FQFN = sprintf("%s%s/%s_usage_%s.png",
                        getPath(),
                } // END - if
                $FQFN = sprintf("%s%s/%s_usage_%s.png",
                        getPath(),
@@ -76,7 +76,7 @@ if (isGetRequestElementSet('image')) {
                imagepng($image);
                imagedestroy($image);
        } // END - if
                imagepng($image);
                imagedestroy($image);
        } // END - if
-       shutdown();
+       doShutdown();
 } elseif (isGetRequestElementSet('usage')) {
        $FQFN = sprintf("%s%s/usage_%s.html",
                getPath(),
 } elseif (isGetRequestElementSet('usage')) {
        $FQFN = sprintf("%s%s/usage_%s.html",
                getPath(),
@@ -91,11 +91,28 @@ if ((!empty($FQFN)) && (isFileReadable($FQFN))) {
        // Until here...
 
        // Replace URLs
        // Until here...
 
        // Replace URLs
-       $content = str_replace('usage.png'    , '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=usage&amp;image=usage', $content);
-       $content = str_replace('daily_usage_' , '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=daily&amp;image='     , $content);
-       $content = str_replace('hourly_usage_', '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=hourly&amp;image='    , $content);
-       $content = str_replace('ctry_usage_'  , '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=ctry&amp;image='      , $content);
-       $content = str_replace('usage_'       , '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;usage='                    , str_replace('.html', '', $content));
+       $content = str_replace(
+               // From:
+               array(
+                       'usage.png',
+                       'daily_usage_',
+                       'hourly_usage_',
+                       'ctry_usage_',
+                       'usage_',
+                       '.html',
+               ),
+               // To:
+               array(
+                       '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=usage&amp;image=usage',
+                       '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=daily&amp;image=',
+                       '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=hourly&amp;image=',
+                       '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;type=ctry&amp;image=',
+                       '{?URL?}/modules.php?module=admin&amp;what=' . getWhat() . '&amp;usage=',
+                       '',
+               ),
+               // Target to replace on:
+               $content
+       );
        $test = strtolower($content);
 
        // Do we need to strip out above and including <body> plus trailing </html> tag?
        $test = strtolower($content);
 
        // Do we need to strip out above and including <body> plus trailing </html> tag?
index 10d53320ab39b2671f8b28981d516e304d94c74d..7ad700cbd1e0ad122bdd46b0119f24b02c92cd3b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,7 +44,7 @@ if ((!defined('__SECURITY')) || (!isAdmin())) {
 addYouAreHereLink('admin', __FILE__);
 
 // Is a user id given?
 addYouAreHereLink('admin', __FILE__);
 
 // Is a user id given?
-if ((isGetRequestElementSet('userid')) && (bigintval(getRequestElement('userid')) > 0)) {
+if ((isGetRequestElementSet('userid')) && (isValidUserId(getRequestElement('userid')))) {
        // Is a user account found?
        if (fetchUserData(getRequestElement('userid'))) {
                // Load the data
        // Is a user account found?
        if (fetchUserData(getRequestElement('userid'))) {
                // Load the data
index 2d086315d5b92a414a157faa681b5b88aa494b10..46fa7c584bc85882cb3baf65d90c4ba4644645f5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
diff --git a/inc/modules/admin/what-welcome.php b/inc/modules/admin/what-welcome.php
new file mode 100644 (file)
index 0000000..6f99370
--- /dev/null
@@ -0,0 +1,103 @@
+<?php
+/************************************************************************
+ * Mailer v0.2.1-FINAL                                Start: 12/05/2011 *
+ * ===================                          Last change: 12/05/2011 *
+ *                                                                      *
+ * -------------------------------------------------------------------- *
+ * File              : what-welcome.php                                 *
+ * -------------------------------------------------------------------- *
+ * Short description : Generate a simple task list or menu descriptions *
+ * -------------------------------------------------------------------- *
+ * Kurzbeschreibung  : Einfache Task-Liste oder Menuebeschreibungen     *
+ * -------------------------------------------------------------------- *
+ * $Revision::                                                        $ *
+ * $Date::                                                            $ *
+ * $Tag:: 0.2.1-FINAL                                                 $ *
+ * $Author::                                                          $ *
+ * -------------------------------------------------------------------- *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
+ *                                                                      *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or    *
+ * (at your option) any later version.                                  *
+ *                                                                      *
+ * This program is distributed in the hope that it will be useful,      *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
+ * GNU General Public License for more details.                         *
+ *                                                                      *
+ * You should have received a copy of the GNU General Public License    *
+ * along with this program; if not, write to the Free Software          *
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
+ * MA  02110-1301  USA                                                  *
+ ************************************************************************/
+
+// Some security stuff...
+if ((!defined('__SECURITY')) || (!isAdmin())) {
+       die();
+} // END - if
+
+// Is sql_patches not yet installed?
+if (!isExtensionInstalled('sql_patches')) {
+       // Output warning
+       displayMessage('{--ADMIN_WARNING_SQL_PATCHES_MISSING--}');
+} // END - if
+
+ // Load include file 'overview-inc' (old standard overview page)
+loadIncludeOnce('inc/modules/admin/overview-inc.php');
+
+// Default is that all jobs are done (why?)
+$jobsDone = true;
+
+// Default is that 'task' is not installed
+$taskExt = false;
+
+// When the admin is logging in check several things first (new jobs to complete and so on)
+if (getAction() == 'login') {
+       if ((isExtensionActive('task')) && (function_exists('outputAdvancedOverview'))) {
+               // When task extension is registered output advanced overview page
+               $jobsDone = outputAdvancedOverview($result_tasks); // This function is provided by the extension 'task'
+               $taskExt = true;
+       } else {
+               // Output standart overview (provided by overview-inc.php)
+               $jobsDone = outputStandardOverview($result_tasks);
+       }
+} // END - if
+
+// Are we in 'welcome' page and are there jobs to be done?
+if (!ifAdminMenuHasEntries(getAction())) {
+       // This menu is empty and so no content is displayed
+       displayMessage('{--ADMIN_MENU_EMPTY--}');
+} elseif ($jobsDone === true) {
+       // Generate overview of all main menus
+       if ((is_array($GLOBALS['menu']['description'])) && (count($GLOBALS['menu']['description']) > 0)) {
+               $OUT = '';
+               foreach ($GLOBALS['menu']['description'] as $key => $value) {
+                       // Prepare content
+                       $content = array(
+                               'title' => $GLOBALS['menu']['title'][$key],
+                               'text'  => $value
+                       );
+
+                       // Load row template
+                       $OUT .= loadTemplate('admin_menu_hints_row', true, $content);
+               } // END - foreach
+
+               // Load base template
+               loadTemplate('admin_menu_hints', false, $OUT);
+       }
+} elseif ($taskExt === false) {
+       if (isExtensionActive('task')) {
+               // Output warning message
+               displayMessage('{%message,EXTENSION_WARNING_EXTENSION_INACTIVE=task%}');
+       } // END - if
+
+       // List selected tasks on overview when task management is not active
+       outputSeletectedTasks(postRequestArray(), $result_tasks);
+}
+
+// [EOF]
+?>
index 26fb072a5bf81d5cc494ce51aa2d48467c8c466f..5379718129b859abdcd51e79d685b6e01ef823f7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Initial message part
 } // END - if
 
 // Initial message part
index 6210bd1b7569946b6f201f05c4c114702e24f869..c8899186684ff6c35febd8717c701ba87a000f75 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 $mode = 'guest';
 } // END - if
 
 $mode = 'guest';
@@ -72,7 +72,7 @@ if (isGetRequestElementSet('order')) {
        }
 } // END - if
 
        }
 } // END - if
 
-if ((isPostRequestElementSet('url')) || (isGetRequestElementSet('url')) || (isGetRequestElementSet('frame'))) {
+if ((isPostRequestElementSet('url')) || (isGetRequestElementSet('url')) || (!isFullPage())) {
        // Default URL is ours
        $url = getUrl();
 
        // Default URL is ours
        $url = getUrl();
 
@@ -87,7 +87,12 @@ if ((isPostRequestElementSet('url')) || (isGetRequestElementSet('url')) || (isGe
 
        // Add missing element
        $frame = '';
 
        // Add missing element
        $frame = '';
-       if (isGetRequestElementSet('frame')) $frame = getRequestElement('frame');
+       if (!isFullPage()) {
+               $frame = getRequestElement('frame');
+       } // END - if
+
+       // Switch on 'frame'
+       // @TODO Rewrite this somehow
        switch ($frame) {
                case '':
                        switch ($mode) {
        switch ($frame) {
                case '':
                        switch ($mode) {
index dab55af94cd68e5b6316618e6e47ea8ff30e45f2..d2070110d80a7f6af59221ef04c6c24e2a235c22 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
index 07060b2c1a94ffcd851e99744bc5b588ab613d76..8b4b40100921cc56570d108210964fb9ad55a5a9 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
index 500698e450728e4c25ece8577bc64c3998eded87..82e94d2af1160f0c8d0d81b7a1db5610ee479002 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
index 2672040b3f6ac0a0366f5d62afd975cb6cc83d60..8e4681f2ee4ae3f22628deb9f24a57a9b0ea1388 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
index 8f90d91acfca86bb865a4cec6539775f2a9fb62b..05e5e187200430f1abc826a296275f1dfe4d7897 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif ((!isExtensionActive('online')) && (!isAdmin())) {
        // Just skip this extension
        return;
 } elseif ((!isExtensionActive('online')) && (!isAdmin())) {
        // Just skip this extension
        return;
index ad6c42e52ac234465cb30859d95752a4b8130223..06f7c4333530245d91480e6bb8c5ef4894768d48 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
@@ -36,7 +36,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
 } elseif (isBlockModeEnabled()) {
        // Block mode detected
        return;
index 1d7b578dfe84bf5cb15f9ad22d01f45da7693de0..c35eaacc6025e508aaf81804a19135fea1fb136c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isBlockModeEnabled()) {
        // Non-block mode detected
        return;
 } elseif (!isBlockModeEnabled()) {
        // Non-block mode detected
        return;
@@ -57,7 +57,10 @@ if (isAdmin()) {
        $num_themes = countSumTotalData('Y', 'themes', 'id', 'theme_active', true);
 }
 
        $num_themes = countSumTotalData('Y', 'themes', 'id', 'theme_active', true);
 }
 
+// Default is no box
 $OUT = '';
 $OUT = '';
+
+// Choose from it
 if ($num_themes > 1) {
        // If more than 1 is installed output selection box
        $OUT = generateThemeSelectionBox();
 if ($num_themes > 1) {
        // If more than 1 is installed output selection box
        $OUT = generateThemeSelectionBox();
index 398d66ae4a9d1b8e85d992ca720bd7a60f6b4469..e1fe5e1d8fa5ee1c1c0d978ed8bfade356721fa6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 }
 
 // Add description as navigation point
 }
 
 // Add description as navigation point
index 96c09bd54df646e6a62c286ed7dc42c62422cf75..76dc94f8ef28236cf11c2c8ee34050cfcc7d74ba 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -56,6 +56,7 @@ FROM
 WHERE
        `last_online` >= {?START_TDAY?} AND
        `status`='CONFIRMED'
 WHERE
        `last_online` >= {?START_TDAY?} AND
        `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 ORDER BY
        `last_online` DESC
 LIMIT {?active_limit?}", __FILE__, __LINE__);
 ORDER BY
        `last_online` DESC
 LIMIT {?active_limit?}", __FILE__, __LINE__);
index e489a784bc980e160066cd405dd6fe35555f31ca..a32cc5074c44cf9eeb46f2e222e7ee28ce900cbf 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // A simple redirect...
 } // END - if
 
 // A simple redirect...
index a47d0bbfd9b4afb097797624a0d93d27ef27cc83..9a95edc79a6ff2ad370027f393b6403b0ca99e07 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 189792dd234f63e83b9d233a4945c46787db604c..af9bedbeccf75aaba21e26bf86e187a7c53b0e64 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index d6e3e7f441406f6d2d3b514dd13b9f766f829c17..bcb07f0d4a433775edea1f73255ee029bb71c8a2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 4ab2c69a22a0c50c8e771178dd63e907bd6ddf67..4aa07a942b9769aaf0069182cb371e50d148ee73 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 96ecf8a7260b0b8eb95597d85a66a5ba92c8be82..663ef9ead239c06e76f5961a6511f139c9b483b3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 16c98fa519dee213c4bf04a1a15f2b7bb5de9659..323c50b033cdaa16e41621c7d93869ef0649c327 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 }
 
 // Add description as navigation point
 }
 
 // Add description as navigation point
index e0ec8f386486fbc0427f6da15f11c23a6adc1463..3a1ab7791dc7844f8b27a8489be5293bff043f00 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 60228452a64087e401424d8b2d586f4a6ad6044f..49228e9cf397cb6e8a404bc2f423a6744a2b42eb 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -38,7 +38,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -60,7 +60,7 @@ $add = '';
 if ((isMemberIdSet()) && (isSessionVariableSet('u_hash'))) {
        // Maybe, then continue with it
        $userid = getMemberId();
 if ((isMemberIdSet()) && (isSessionVariableSet('u_hash'))) {
        // Maybe, then continue with it
        $userid = getMemberId();
-} elseif ((isPostRequestElementSet('id')) && (isPostRequestElementSet('password')) && (isFormSent())) {
+} elseif ((isPostRequestElementSet('id')) && (isPostRequestElementSet('password')) && (isFormSent('login'))) {
        // Set userid and crypt password when login data was submitted
        if (isNicknameUsed(postRequestElement('id'))) {
                // Nickname entered
        // Set userid and crypt password when login data was submitted
        if (isNicknameUsed(postRequestElement('id'))) {
                // Nickname entered
@@ -94,12 +94,21 @@ if ((isMemberIdSet()) && (isSessionVariableSet('u_hash'))) {
 if (isMember()) {
        // Login immidiately...
        $url = 'modules.php?module=login';
 if (isMember()) {
        // Login immidiately...
        $url = 'modules.php?module=login';
-} elseif ((isFormSent()) && ('' . $userid . '' != '' . postRequestElement('id') . '')) {
+} elseif ((isFormSent('login')) && ('' . $userid . '' != '' . postRequestElement('id') . '')) {
        // Invalid input (no nickname extension installed but nickname entered)
        $errorCode = getCode('EXTENSION_PROBLEM');
        // Invalid input (no nickname extension installed but nickname entered)
        $errorCode = getCode('EXTENSION_PROBLEM');
-} elseif (isFormSent()) {
-       // Try the login (see inc/libs/user_functions.php)
-       $url = doUserLogin(postRequestElement('id'), postRequestElement('password'));
+} elseif (isFormSent('login')) {
+       // Are both 'id' and 'password' set?
+       if ((isPostRequestElementSet('id')) && (isPostRequestElementSet('password'))) {
+               // Try the login (see inc/libs/user_functions.php)
+               $url = doUserLogin(postRequestElement('id'), postRequestElement('password'));
+       } elseif (!isPostRequestElementSet('id')) {
+               // Empty 'id'
+               $errorCode = getCode('LOGIN_EMPTY_ID');
+       } else {
+               // Empty 'password'
+               $errorCode = getCode('LOGIN_EMPTY_PASSWORD');
+       }
 } elseif ((isPostRequestElementSet('new_pass')) && (!empty($userid))) {
        // Try the userid/email lookup (see inc/libs/user_functions.php)
        $errorCode = doNewUserPassword(postRequestElement('email'), $userid);
 } elseif ((isPostRequestElementSet('new_pass')) && (!empty($userid))) {
        // Try the userid/email lookup (see inc/libs/user_functions.php)
        $errorCode = doNewUserPassword(postRequestElement('email'), $userid);
@@ -117,17 +126,13 @@ $content['message'] = '';
 // Login problems?
 if (!empty($errorCode)) {
        // Do we have a userid set?
 // Login problems?
 if (!empty($errorCode)) {
        // Do we have a userid set?
-       if (isSessionVariableSet('current_userid')) {
+       if (isSessionVariableSet('userid')) {
                // Then prefetch data for this account
                // Then prefetch data for this account
-               fetchUserData(getSession('current_userid'));
+               fetchUserData(getSession('userid'));
        } // END - if
 
        // @TODO Move this HTML code into a template
        } // END - if
 
        // @TODO Move this HTML code into a template
-       $content['message'] = '<tr>
-  <td colspan="4" align="center">
-    <span class="bad">' . getMessageFromErrorCode($errorCode) . '</span>
-  </td>
-</tr>';
+       $content['message'] = loadTemplate('guest_login_error_message', true, $errorCode);
 } // END - if
 
 // Display login form with resend-password form
 } // END - if
 
 // Display login form with resend-password form
index fea217d32f8276b7d95057b8e0ee0264bb35fa04..f008903b9ed00273546bd0d497d1e5c9cb109010 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -59,13 +59,13 @@ $content['user_locked']      = getTotalLockedUser();
 $content['user_count']       = ($content['user_confirmed'] + $content['user_unconfirmed'] + $content['user_locked']);
 
 // Start of this exchange
 $content['user_count']       = ($content['user_confirmed'] + $content['user_unconfirmed'] + $content['user_locked']);
 
 // Start of this exchange
-$content['mt_start'] = generateDateTime(getConfig('mt_start'), 3);
+$content['mt_start'] = generateDateTime(getMtStart(), '3');
 
 // Project timestamp when number of members are reached
 $PROJECTED = '0';
 if ($content['user_count'] > 0) {
        // @TODO Find a better formular than this one
 
 // Project timestamp when number of members are reached
 $PROJECTED = '0';
 if ($content['user_count'] > 0) {
        // @TODO Find a better formular than this one
-       $PROJECTED = round((time() - getConfig('mt_start')) / $content['user_count'] * getConfig('mt_stage') + getConfig('mt_start'));
+       $PROJECTED = round((time() - getMtStart()) / $content['user_count'] * getConfig('mt_stage') + getMtStart());
 } // END - if
 
 // Generate timestamp
 } // END - if
 
 // Generate timestamp
@@ -90,7 +90,11 @@ $content['max'] = countSumTotalData('CONFIRMED', 'user_data', 'max_mails', 'stat
 $content['rec'] = countSumTotalData('CONFIRMED', 'user_data', 'receive_mails', 'status', false, " AND `receive_mails` > 0");
 
 // Initial lots of variables
 $content['rec'] = countSumTotalData('CONFIRMED', 'user_data', 'receive_mails', 'status', false, " AND `receive_mails` > 0");
 
 // Initial lots of variables
-$bmails = '0'; $sent = '0'; $max = '0'; $rec = '0'; $clicks = '0';
+$bmails = '0';
+$sent   = '0';
+$max    = '0';
+$rec    = '0';
+$clicks = '0';
 
 // Mail orders (only current)
 $nmails = getMediadataEntry('normal_orders');
 
 // Mail orders (only current)
 $nmails = getMediadataEntry('normal_orders');
index 55dbf0f355fdf7b0781ba90d4fd314a6a364c498..408e2c041adee9ad59b307e7b8a48e215b85debb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -52,33 +52,43 @@ if ((!isExtensionActive('rallye')) && (!isAdmin())) {
 outputHtml('<div align="center">');
 
 // Check for possible running rallyes
 outputHtml('<div align="center">');
 
 // Check for possible running rallyes
-$ADD = " AND d.is_active='Y'";
+$ADD = " AND d.`is_active`='Y'";
 if (isAdmin()) $ADD = '';
 
 $result = SQL_QUERY("SELECT
 if (isAdmin()) $ADD = '';
 
 $result = SQL_QUERY("SELECT
-       d.id, d.admin_id, a.login, d.title, d.descr, d.template, d.start_time, d.end_time, d.min_users, d.min_prices
+       d.`id`,
+       d.`admin_id`,
+       a.`login`,
+       d.`title`,
+       d.`descr`,
+       d.`template`,
+       d.`start_time`,
+       d.`end_time`,
+       d.`min_users`,
+       d.`min_prices`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data` AS d
 INNER JOIN
        `{?_MYSQL_PREFIX?}_admins` AS a
 ON
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data` AS d
 INNER JOIN
        `{?_MYSQL_PREFIX?}_admins` AS a
 ON
-       d.admin_id=a.id
+       d.`admin_id`=a.`id`
 WHERE
 WHERE
-       d.notified='Y'" . $ADD . "
+       d.`notified`='Y'
+       " . $ADD . "
 ORDER BY
 ORDER BY
-       d.end_time
+       d.`end_time` ASC
 LIMIT 1", __FILE__, __LINE__);
 
 if (SQL_NUMROWS($result) == 1) {
        // Found some (normally one...
 LIMIT 1", __FILE__, __LINE__);
 
 if (SQL_NUMROWS($result) == 1) {
        // Found some (normally one...
-       list($id, $adminId, $login, $title, $descr, $templ, $start, $end, $min_users, $min_prices) = SQL_FETCHROW($result);
+       $content = SQL_FETCHARRAY($result);
 
        $expired = false;
 
        $expired = false;
-       if ($end < time()) {
+       if (($content['end_time'] < time()) && (getTotalConfirmedUser() >= $content['min_users']) && (getTotalRallyeWinners($content['id']) >= $content['min_prices'])) {
                // Rallye is expired
                $content['extras'] = '{--RALLYE_HAS_EXPIRED--}';
                $expired = true;
                // Rallye is expired
                $content['extras'] = '{--RALLYE_HAS_EXPIRED--}';
                $expired = true;
-       } elseif (time() >= ($end - getOneDay())) {
+       } elseif (time() >= ($content['end_time'] - getOneDay())) {
                // Rallye will expire in less one day!
                $content['extras'] = '{--RALLYE_EXPIRE_ONE_DAY--}';
        } else {
                // Rallye will expire in less one day!
                $content['extras'] = '{--RALLYE_EXPIRE_ONE_DAY--}';
        } else {
@@ -86,37 +96,31 @@ if (SQL_NUMROWS($result) == 1) {
        }
 
        // Set admin line (currently set to impressum, later to contact form)
        }
 
        // Set admin line (currently set to impressum, later to contact form)
-       // @TODO Reactivate this: $content['admin'] = '<a href="{%url=modules.php?module=index&amp;what=impressum&amp;id=' . $adminId . '%}">' . $login . '</a>';
-
-       // Set title
-       $content['title'] = $title;
+       // @TODO Reactivate this: $content['admin'] = '<a href="{%url=modules.php?module=index&amp;what=impressum&amp;id=' . $content['admin_id'] . '%}">' . $content['login'] . '</a>';
 
        // Handle description...
 
        // Handle description...
-       if ((empty($descr)) && (!empty($templ))) {
+       if ((empty($content['descr'])) && (!empty($content['template']))) {
                // Use description from template
                // Use description from template
-               $content['descr'] = loadTemplate('rallye_' . $templ, true);
-       } else {
-               // Use description from database
-               $content['descr'] = $descr;
-       }
+               $content['descr'] = loadTemplate('rallye_' . $content['template'], true);
+       } // END - if
 
        // Set start and end time
 
        // Set start and end time
-       $content['start'] = generateDateTime($start, 1);
-       $content['end']   = generateDateTime($end  , 1);
+       $content['start_time'] = generateDateTime($content['start_time'], 1);
+       $content['end_time']   = generateDateTime($content['end_time']  , 1);
 
        // Determine min_users
 
        // Determine min_users
-       $content['min_users'] = determineReferralRallyeMinimumUsers($min_users);
+       $content['min_users'] = determineReferralRallyeMinimumUsers($content['min_users']);
 
        // Determine min prices (now in function)
 
        // Determine min prices (now in function)
-       $content['min_prices'] = determineReferralRallyeMinimumPrices($min_prices);
+       $content['min_prices'] = determineReferralRallyeMinimumPrices($content['min_prices']);
 
        if ($expired === true) {
 
        if ($expired === true) {
-               $content['prices']       = addReferralRallyeWinners('guest', $id);
+               $content['prices']       = addReferralRallyeWinners('guest', $content['id']);
                $content['top_users']    = '<div align="center" class="big">' . $content['extras'] . '</div>';
                $content['can_win_this'] = '{--RALLYE_OUR_WINNERS_ARE--}';
        } else {
                $content['top_users']    = '<div align="center" class="big">' . $content['extras'] . '</div>';
                $content['can_win_this'] = '{--RALLYE_OUR_WINNERS_ARE--}';
        } else {
-               $content['prices']       = addReferralRallyePrices($id, 'html');
-               $content['top_users']    = addReferralRallyeTopUsers('guest', $id, getMemberId());
+               $content['prices']       = addReferralRallyePrices($content['id'], 'html');
+               $content['top_users']    = addReferralRallyeTopUsers('guest', $content['id'], getMemberId());
                $content['can_win_this'] = '{--RALLYE_YOU_CAN_WIN--}';
        }
 
                $content['can_win_this'] = '{--RALLYE_YOU_CAN_WIN--}';
        }
 
index 04686ab297662f5fc7e57567c6ce4e7c25685fef..3ef7b69b32c1efcd9156a6390443200f35498e9f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -55,7 +55,7 @@ if (!isExtensionActive('register')) {
 //* DEBUG: */ debugOutput('isFormSent=' . intval(isFormSent()) . ',isRegistrationDataComplete=' . intval(isRegistrationDataComplete()) . ',isAdmin=' . intval(isAdmin()));
 if ((isFormSent()) && (isRegistrationDataComplete())) {
        // Do the registration here
 //* DEBUG: */ debugOutput('isFormSent=' . intval(isFormSent()) . ',isRegistrationDataComplete=' . intval(isRegistrationDataComplete()) . ',isAdmin=' . intval(isAdmin()));
 if ((isFormSent()) && (isRegistrationDataComplete())) {
        // Do the registration here
-       doRegistration();
+       doUserRegistration();
 
        // Output success registration
        displayMessage('{--REGISTRATION_DONE--}');
 
        // Output success registration
        displayMessage('{--REGISTRATION_DONE--}');
@@ -142,17 +142,8 @@ if ((isFormSent()) && (isRegistrationDataComplete())) {
                $content[$entry] = SQL_ESCAPE(postRequestElement($entry));
        } // END - foreach
 
                $content[$entry] = SQL_ESCAPE(postRequestElement($entry));
        } // END - foreach
 
-       // The admin may see all
-       $whereStatement = "WHERE `is_active`='Y'";
-       if (isAdmin()) {
-               $whereStatement = '';
-       } // END - if
-
        // Prepare country selection box
        // Prepare country selection box
-       $OUT  = '<select name="country_code" class="form_select" size="1">';
-       $OUT .= generateOptionList('countries', 'id', 'descr', postRequestElement('country_code'), 'code', $whereStatement);
-       $OUT .= '</select>';
-       $content['country'] = $OUT;
+       $content['country'] = addCountryCodeSelectionBox(postRequestElement('country_code'));
 
        // Set must-fillout fields
        $content = runFilterChain('register_must_fillout', $content);
 
        // Set must-fillout fields
        $content = runFilterChain('register_must_fillout', $content);
index 7d2179e52874e08c7a3735fab276461bca308b03..a55e1e6e56240a82a41e45773cd8e568e58d12fc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index cc3966051d1466c0b37c610a37b4b09054fdefdb..c8a724f3a4fbe0c791b95f4cb9fb2867bc475b96 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 165d9122053c6b1e7814ab675f9ef332217ef7a0..017688f261c037fa2b854c14016e42bc14a0238e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -148,12 +148,12 @@ LIMIT 1",
        SQL_FREERESULT($result);
 } elseif ($mode == 'activate') {
        // Send activation link again
        SQL_FREERESULT($result);
 } elseif ($mode == 'activate') {
        // Send activation link again
-       if (isFormSent()) {
+       if (isFormSent('login')) {
                // Check submitted data
                // Check submitted data
-               if (!isPostRequestElementSet('email')) unsetPostRequestElement('ok');
+               if (!isPostRequestElementSet('email')) unsetPostRequestElement('login');
        }
 
        }
 
-       if (isFormSent()) {
+       if (isFormSent('login')) {
                // Check email
                $result = SQL_QUERY_ESC("SELECT
        `id`,`hash`,`status`,`remote_addr`,`gender`,`surname`,`family`,
                // Check email
                $result = SQL_QUERY_ESC("SELECT
        `id`,`hash`,`status`,`remote_addr`,`gender`,`surname`,`family`,
@@ -199,12 +199,12 @@ LIMIT 1",
        }
 } elseif ($mode == 'lost_pass') {
        // Send new password
        }
 } elseif ($mode == 'lost_pass') {
        // Send new password
-       if (isFormSent()) {
+       if (isFormSent('login')) {
                // Check submitted data
                // Check submitted data
-               if (!isPostRequestElementSet('email')) unsetPostRequestElement('ok');
+               if (!isPostRequestElementSet('email')) unsetPostRequestElement('login');
        } // END - if
 
        } // END - if
 
-       if (isFormSent()) {
+       if (isFormSent('login')) {
                // Check email
                $result = SQL_QUERY_ESC("SELECT
        `id`,`hash`,`remote_addr`,`gender`,`surname`,`family`,
                // Check email
                $result = SQL_QUERY_ESC("SELECT
        `id`,`hash`,`remote_addr`,`gender`,`surname`,`family`,
@@ -254,7 +254,7 @@ LIMIT 1",
                // Load form
                loadTemplate('guest_sponsor_lost');
        }
                // Load form
                loadTemplate('guest_sponsor_lost');
        }
-} elseif (isFormSent()) {
+} elseif (isFormSent('login')) {
        // Check status and login data ...
        $result = SQL_QUERY_ESC("SELECT
        `status`
        // Check status and login data ...
        $result = SQL_QUERY_ESC("SELECT
        `status`
index 14c62e9a47c942b6197baae871fbd6641cd4148c..ed4025993a1bd3e521630c88e09273fddd5d7f59 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -58,17 +58,17 @@ if (isFormSent()) {
        // 1. Salutation / Surname / family name
        if (!isPostRequestElementSet('gender')) {
                // Surname is empty
        // 1. Salutation / Surname / family name
        if (!isPostRequestElementSet('gender')) {
                // Surname is empty
-               $formErrors[] = '{--SPONSOR_NO_GENDER_SELECTED--}';
+               array_push($formErrors, '{--SPONSOR_NO_GENDER_SELECTED--}');
        } // END - if
 
        if (!isPostRequestElementSet('surname')) {
                // Surname is empty
        } // END - if
 
        if (!isPostRequestElementSet('surname')) {
                // Surname is empty
-               $formErrors[] = '{--SPONSOR_SURNAME_EMPTY--}';
+               array_push($formErrors, '{--SPONSOR_SURNAME_EMPTY--}');
        } // END - if
 
        if (!isPostRequestElementSet('family')) {
                // Surname is empty
        } // END - if
 
        if (!isPostRequestElementSet('family')) {
                // Surname is empty
-               $formErrors[] = '{--SPONSOR_FAMILY_EMPTY--}';
+               array_push($formErrors, '{--SPONSOR_FAMILY_EMPTY--}');
        } // END - if
 
        // 2. Company name
        } // END - if
 
        // 2. Company name
@@ -76,121 +76,121 @@ if (isFormSent()) {
        if (((!isPostRequestElementSet('company')) && ((isPostRequestElementSet('tax_ident')) || (isPostRequestElementSet('position')))) || ((isPostRequestElementSet('company')) && (!isPostRequestElementSet('tax_ident')))) {
                if (!isPostRequestElementSet('company')) {
                        // Company name is empty
        if (((!isPostRequestElementSet('company')) && ((isPostRequestElementSet('tax_ident')) || (isPostRequestElementSet('position')))) || ((isPostRequestElementSet('company')) && (!isPostRequestElementSet('tax_ident')))) {
                if (!isPostRequestElementSet('company')) {
                        // Company name is empty
-                       $formErrors[] = '{--SPONSOR_COMPANY_EMPTY--}';
+                       array_push($formErrors, '{--SPONSOR_COMPANY_EMPTY--}');
                } elseif (!isPostRequestElementSet('tax_ident')) {
                        // Tax ident number name is empty
                } elseif (!isPostRequestElementSet('tax_ident')) {
                        // Tax ident number name is empty
-                       $formErrors[] = '{--SPONSOR_TAX_IDENT_EMPTY--}';
+                       array_push($formErrors, '{--SPONSOR_TAX_IDENT_EMPTY--}');
                }
 
                if (!isPostRequestElementSet('position')) {
                        // Not fatal but not nice: position in company is empty
                }
 
                if (!isPostRequestElementSet('position')) {
                        // Not fatal but not nice: position in company is empty
-                       $formErrors[] = '{--SPONSOR_POSITION_EMPTY--}';
+                       array_push($formErrors, '{--SPONSOR_POSITION_EMPTY--}');
                } // END - if
        } // END - if
 
        // 3. Street and number
        if (!isPostRequestElementSet('street_nr1')) {
                // Street name and house number are empty
                } // END - if
        } // END - if
 
        // 3. Street and number
        if (!isPostRequestElementSet('street_nr1')) {
                // Street name and house number are empty
-               $formErrors[] = '{--SPONSOR_STREET_NR1_EMPTY--}';
+               array_push($formErrors, '{--SPONSOR_STREET_NR1_EMPTY--}');
        } elseif ((isPostRequestElementSet('street_nr2')) && (!isPostRequestElementSet('street_nr1'))) {
                // 1st line for street is empty, but 2nd line not
        } elseif ((isPostRequestElementSet('street_nr2')) && (!isPostRequestElementSet('street_nr1'))) {
                // 1st line for street is empty, but 2nd line not
-               $formErrors[] = '{--SPONSOR_STREET_NR1_EMPTY_2_NOT--}';
+               array_push($formErrors, '{--SPONSOR_STREET_NR1_EMPTY_2_NOT--}');
        }
 
        // 4. Country code
        if (!isPostRequestElementSet('country')) {
                // Country code is empty
        }
 
        // 4. Country code
        if (!isPostRequestElementSet('country')) {
                // Country code is empty
-               $formErrors[] = '{--kSPONSOR_COUNTRY_EMPTY--}';
+               array_push($formErrors, '{--kSPONSOR_COUNTRY_EMPTY--}');
        } elseif (strlen(postRequestElement('country')) != 2) {
                // Country code is invalid
        } elseif (strlen(postRequestElement('country')) != 2) {
                // Country code is invalid
-               $formErrors[] = '{--SPONSOR_COUNTRY_IS_INVALID--}';
+               array_push($formErrors, '{--SPONSOR_COUNTRY_IS_INVALID--}');
        }
 
        // 3. ZIP code
        if (!isPostRequestElementSet('zip')) {
                // ZIP code is empty
        }
 
        // 3. ZIP code
        if (!isPostRequestElementSet('zip')) {
                // ZIP code is empty
-               $formErrors[] = '{--SPONSOR_ZIP_EMPTY--}';
+               array_push($formErrors, '{--SPONSOR_ZIP_EMPTY--}');
        } elseif (bigintval(postRequestElement('zip')) != postRequestElement('zip')) {
                // ZIP is invalid
        } elseif (bigintval(postRequestElement('zip')) != postRequestElement('zip')) {
                // ZIP is invalid
-               $formErrors[] = '{--SPONSOR_ZIP_IS_INVALID--}';
+               array_push($formErrors, '{--SPONSOR_ZIP_IS_INVALID--}');
                setPostRequestElement('zip', '');
        }
 
        // 4. City
        if (!isPostRequestElementSet('city')) {
                // City is empty
                setPostRequestElement('zip', '');
        }
 
        // 4. City
        if (!isPostRequestElementSet('city')) {
                // City is empty
-               $formErrors[] = '{--SPONSOR_CITY_EMPTY--}';
+               array_push($formErrors, '{--SPONSOR_CITY_EMPTY--}');
        } // END - if
 
        // 5. Phone number
        if (!isPostRequestElementSet('phone')) {
                // City is empty
        } // END - if
 
        // 5. Phone number
        if (!isPostRequestElementSet('phone')) {
                // City is empty
-               $formErrors[] = '{--SPONSOR_PHONE_EMPTY--}';
+               array_push($formErrors, '{--SPONSOR_PHONE_EMPTY--}');
        } // END - if
 
        // 6. Homepage URL
        if (!isPostRequestElementSet('url')) {
                // Homepage URL is empty
        } // END - if
 
        // 6. Homepage URL
        if (!isPostRequestElementSet('url')) {
                // Homepage URL is empty
-               $formErrors[] = '{--SPONSOR_URL_EMPTY--}';
+               array_push($formErrors, '{--SPONSOR_URL_EMPTY--}');
        } elseif (!isUrlValid(postRequestElement('url'))) {
                // Homepage URL is invalid
        } elseif (!isUrlValid(postRequestElement('url'))) {
                // Homepage URL is invalid
-               $formErrors[] = '{--SPONSOR_URL_IS_INVALID--}';
+               array_push($formErrors, '{--SPONSOR_URL_IS_INVALID--}');
                setPostRequestElement('url', '');
        }
 
        // 7. Light validation of email address
        if ((!isPostRequestElementSet('email')) || (postRequestElement('email') == '@')) {
                // Email is invalid/empty
                setPostRequestElement('url', '');
        }
 
        // 7. Light validation of email address
        if ((!isPostRequestElementSet('email')) || (postRequestElement('email') == '@')) {
                // Email is invalid/empty
-               $formErrors[] = '{--SPONSOR_EMAIL_IS_INVALID--}';
+               array_push($formErrors, '{--SPONSOR_EMAIL_IS_INVALID--}');
        } elseif (isSponsorRegisteredWithEmail(postRequestElement('email'))) {
                // Email already found in database!
        } elseif (isSponsorRegisteredWithEmail(postRequestElement('email'))) {
                // Email already found in database!
-               $formErrors[] = '{--SPONSOR_EMAIL_IS_ALREADY_REGISTERED--}';
+               array_push($formErrors, '{--SPONSOR_EMAIL_IS_ALREADY_REGISTERED--}');
                setPostRequestElement('email', '');
        }
 
        // 8. Pay type selected?
        if (!isPostRequestElementSet('pay_type')) {
                // Not pay type selected
                setPostRequestElement('email', '');
        }
 
        // 8. Pay type selected?
        if (!isPostRequestElementSet('pay_type')) {
                // Not pay type selected
-               $formErrors[] = '{--SPONSOR_NO_PAYTYPE_SELECTED--}';
+               array_push($formErrors, '{--SPONSOR_NO_PAYTYPE_SELECTED--}');
        } // END - if
 
        // 9. Interval of mails
        if (!isPostRequestElementSet('warning_interval')) {
                // No warning interval selected
        } // END - if
 
        // 9. Interval of mails
        if (!isPostRequestElementSet('warning_interval')) {
                // No warning interval selected
-               $formErrors[] = '{--SPONSOR_NO_WARNING_INTERVAL_SELECTED--}';
+               array_push($formErrors, '{--SPONSOR_NO_WARNING_INTERVAL_SELECTED--}');
        } // END - if
 
        // 10. Mail notifications disabled/enabled
        if (!isPostRequestElementSet('receive_warnings')) {
                // Option not selected!
        } // END - if
 
        // 10. Mail notifications disabled/enabled
        if (!isPostRequestElementSet('receive_warnings')) {
                // Option not selected!
-               $formErrors[] = '{--SPONSOR_NO_RECEIVE_WARNINGS_SELECTED--}';
+               array_push($formErrors, '{--SPONSOR_NO_RECEIVE_WARNINGS_SELECTED--}');
        } // END - if
 
        // Did he enter his password twice?
        if (((!isPostRequestElementSet('pass1')) || (!isPostRequestElementSet('pass2'))) || ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')))) {
                if ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2'))) {
                        // Passwords missmatch
        } // END - if
 
        // Did he enter his password twice?
        if (((!isPostRequestElementSet('pass1')) || (!isPostRequestElementSet('pass2'))) || ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2')))) {
                if ((postRequestElement('pass1') != postRequestElement('pass2')) && (isPostRequestElementSet('pass1')) && (isPostRequestElementSet('pass2'))) {
                        // Passwords missmatch
-                       $formErrors[] = '{--SPONSOR_PASSWORDS_MISMATCH--}';
+                       array_push($formErrors, '{--SPONSOR_PASSWORDS_MISMATCH--}');
                } else {
                        if (!isPostRequestElementSet('pass1')) {
                                // Password 1 is empty
                } else {
                        if (!isPostRequestElementSet('pass1')) {
                                // Password 1 is empty
-                               $formErrors[] = '{--SPONSOR_PASSWORD1_EMPTY--}';
+                               array_push($formErrors, '{--SPONSOR_PASSWORD1_EMPTY--}');
                        }
 
                        if (!isPostRequestElementSet('pass2')) {
                                // Password 2 is empty
                        }
 
                        if (!isPostRequestElementSet('pass2')) {
                                // Password 2 is empty
-                               $formErrors[] = '{--SPONSOR_PASSWORD2_EMPTY--}';
+                               array_push($formErrors, '{--SPONSOR_PASSWORD2_EMPTY--}');
                        }
                }
        } elseif (strlen(postRequestElement('pass1')) < getPassLen()) {
                // Password is to short!
                        }
                }
        } elseif (strlen(postRequestElement('pass1')) < getPassLen()) {
                // Password is to short!
-               $formErrors[] = '{--SPONSOR_PASSWORD_TOO_SHORT--}';
+               array_push($formErrors, '{--SPONSOR_PASSWORD_TOO_SHORT--}');
        }
 
        // Check if he has accepted the terms&conditions
        if (!isPostRequestElementSet('terms')) {
                // Homepage URL is empty
        }
 
        // Check if he has accepted the terms&conditions
        if (!isPostRequestElementSet('terms')) {
                // Homepage URL is empty
-               $formErrors[] = '{--SPONSOR_TERMS_NOT_ACCEPTED--}';
+               array_push($formErrors, '{--SPONSOR_TERMS_NOT_ACCEPTED--}');
        } // END - if
 
        // If there is something wrong/missing stop registration
        } // END - if
 
        // If there is something wrong/missing stop registration
index 0a0c4c267a1652039baee1ec61bb33adb62b2c35..0eb2d020421833c59d3c0c1b5a5d25e1c53bd439 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -72,7 +72,7 @@ switch (getRequestElement('do')) {
 
        default:
                // Unsupported mode
 
        default:
                // Unsupported mode
-               debug_report_bug(__FILE__, __LINE__, sprintf("Unsupported mode <span class=\"data\">%s</span> detected.", secureString(getRequestElement('do'))));
+               reportBug(__FILE__, __LINE__, sprintf("Unsupported mode <span class=\"data\">%s</span> detected.", secureString(getRequestElement('do'))));
                break;
 }
 
                break;
 }
 
@@ -83,8 +83,8 @@ $ltitle = '{--GUEST_STATS_' . strtoupper($lmode) . '--}';
 switch (getConfig('guest_stats')) {
        case 'MEMBERS': // Statistics about your members
                // Only males / females
 switch (getConfig('guest_stats')) {
        case 'MEMBERS': // Statistics about your members
                // Only males / females
-               $male   = countSumTotalData('M', 'user_data', 'userid', 'gender', true, " AND `status`='CONFIRMED'");
-               $female = countSumTotalData('F', 'user_data', 'userid', 'gender', true, " AND `status`='CONFIRMED'");
+               $male   = countSumTotalData('M', 'user_data', 'userid', 'gender', true, runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"));
+               $female = countSumTotalData('F', 'user_data', 'userid', 'gender', true, runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"));
 
                // List every month
                $months = array();
 
                // List every month
                $months = array();
@@ -93,10 +93,12 @@ switch (getConfig('guest_stats')) {
                        $month = $idx;
 
                        // Append leading zero
                        $month = $idx;
 
                        // Append leading zero
-                       if ($idx < 10) $month = '0' . $idx;
+                       if ($idx < 10) {
+                               $month = '0' . $idx;
+                       } // END - if
 
                        // Count months
 
                        // Count months
-                       $months[$month] = countSumTotalData(bigintval($month), 'user_data', 'userid', 'birth_month', true, " AND `status`='CONFIRMED'");
+                       $months[$month] = countSumTotalData(bigintval($month), 'user_data', 'userid', 'birth_month', true, runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"));
                } // END - for
 
                // Members in categories
                } // END - for
 
                // Members in categories
@@ -122,8 +124,8 @@ switch (getConfig('guest_stats')) {
                $content['unconfirmed']   = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status` != 'CONFIRMED'", __FILE__, __LINE__));
                $content['total_males']   = $male;
                $content['total_females'] = $female;
                $content['unconfirmed']   = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status` != 'CONFIRMED'", __FILE__, __LINE__));
                $content['total_males']   = $male;
                $content['total_females'] = $female;
-               $content['tmem_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `last_online` >= {?START_TDAY?} AND `status`='CONFIRMED'", __FILE__, __LINE__));
-               $content['ymem_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `last_online` >= {?START_YDAY?} AND `last_online` < {?START_TDAY?} AND `status`='CONFIRMED'", __FILE__, __LINE__));
+               $content['tmem_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `last_online` >= {?START_TDAY?}" . runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"), __FILE__, __LINE__));
+               $content['ymem_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `last_online` >= {?START_YDAY?} AND `last_online` < {?START_TDAY?}" . runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED'"), __FILE__, __LINE__));
                $content['treg_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `joined` >= {?START_TDAY?}", __FILE__, __LINE__));
                $content['yreg_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `joined` >= {?START_YDAY?} AND `joined` < {?START_TDAY?}", __FILE__, __LINE__));
                $content['lmode']         = $lmode;
                $content['treg_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `joined` >= {?START_TDAY?}", __FILE__, __LINE__));
                $content['yreg_count']    = SQL_NUMROWS(SQL_QUERY("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `joined` >= {?START_YDAY?} AND `joined` < {?START_TDAY?}", __FILE__, __LINE__));
                $content['lmode']         = $lmode;
@@ -135,7 +137,7 @@ switch (getConfig('guest_stats')) {
                        if ($SW == 2) $OUT .= '<tr>';
 
                        // Prepare data for template
                        if ($SW == 2) $OUT .= '<tr>';
 
                        // Prepare data for template
-                       $data = array(
+                       $row = array(
                                'l_class'  => $l,
                                'm_descr'  => $GLOBALS['month_descr'][$month],
                                'r_class'  => $r,
                                'l_class'  => $l,
                                'm_descr'  => $GLOBALS['month_descr'][$month],
                                'r_class'  => $r,
@@ -144,7 +146,7 @@ switch (getConfig('guest_stats')) {
                        );
 
                        // Load row template
                        );
 
                        // Load row template
-                       $OUT .= loadTemplate('guest_stats_month_row', true, $data);
+                       $OUT .= loadTemplate('guest_stats_month_row', true, $row);
 
                        if ($SW == 2) {
                                $r2 = '';
 
                        if ($SW == 2) {
                                $r2 = '';
@@ -162,13 +164,13 @@ switch (getConfig('guest_stats')) {
                $OUT = '';
                foreach ($cat_cnt as $id => $count) {
                        // Prepare data for the template
                $OUT = '';
                foreach ($cat_cnt as $id => $count) {
                        // Prepare data for the template
-                       $data = array(
+                       $row = array(
                                'cat'   => $cats[$id],
                                'count' => $count,
                        );
 
                        // Load row template and switch colors
                                'cat'   => $cats[$id],
                                'count' => $count,
                        );
 
                        // Load row template and switch colors
-                       $OUT .= loadTemplate('guest_stats_cats_row', true, $data);
+                       $OUT .= loadTemplate('guest_stats_cats_row', true, $row);
                } // END - foreach
                $content['cats_rows'] = $OUT;
 
                } // END - foreach
                $content['cats_rows'] = $OUT;
 
index 6610fa1ed16ec641ac06962cc88c4e943a304c73..f369b02da0d9efcd2f8caa612d3132b1eeedae42 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
@@ -59,6 +59,7 @@ FROM
 WHERE
        `total_logins` > 0 AND
        `status`='CONFIRMED'
 WHERE
        `total_logins` > 0 AND
        `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 ORDER BY
        `total_logins` DESC
 LIMIT {?top10_max?}", __FILE__, __LINE__);
 ORDER BY
        `total_logins` DESC
 LIMIT {?top10_max?}", __FILE__, __LINE__);
@@ -112,6 +113,7 @@ ON
 WHERE
        p.points > 0 AND
        d.`status`='CONFIRMED'
 WHERE
        p.points > 0 AND
        d.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 GROUP BY
        p.userid
 ORDER BY
 GROUP BY
        p.userid
 ORDER BY
@@ -165,6 +167,7 @@ ON
 WHERE
        r.counter > 0 AND
        d.`status`='CONFIRMED'
 WHERE
        r.counter > 0 AND
        d.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
 GROUP BY
        r.userid
 ORDER BY
 GROUP BY
        r.userid
 ORDER BY
index cd8e84353b284f87c7259b7d593a4d2b7e2bd7c0..27194d3a927dfccc48ebeb0c38f3a0561bb50ba5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Add description as navigation point
 } // END - if
 
 // Add description as navigation point
index 9365dd9f4a8b697db6da99d59a74228fd1bf2c37..586bd10650c1a51426302dd24e6463433e61f80b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Special file
 } // END - if
 
 // Special file
index 245b01f9456f91f07ed2d8b8752162e62a2b9c91..928ec04109431ae7c7fa97f053e885e791d3c829 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isExtensionInstalled('sql_patches')) {
        // Redirect to admin area
        redirectToUrl('admin.php');
 } elseif (!isExtensionInstalled('sql_patches')) {
        // Redirect to admin area
        redirectToUrl('admin.php');
index ae9528261f12f96ecc2c8a9c7d8f1760b6ffa2f7..294abf4d8378cc648e75c5e468b277f433d4626d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Is an URL specified?
 } // END - if
 
 // Is an URL specified?
index 6e71c9176a07bfedbe98493bd4197c0e0f2e6ef3..e859f451db5064023abfce759b93b929b70c45a8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        // Redirect to login form with displayed error code
        redirectToUrl('modules.php?module=index&amp;what=login&amp;code=' . getCode('MODULE_MEMBER_ONLY') . '&amp;mod=' . getModule());
 } elseif (!isMember()) {
        // Redirect to login form with displayed error code
        redirectToUrl('modules.php?module=index&amp;what=login&amp;code=' . getCode('MODULE_MEMBER_ONLY') . '&amp;mod=' . getModule());
index b8acbcf2a2a83055dac292db1bfe7c5fe71eb8df..0a397965cc46229dd0f260bfc6c65571b4d44ec8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index aa2e72f0bc1c92a38ce5eb3c0f58a777c5f9816b..30f89ce50a0ac2639d0e12c3d267476cf7def446 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index 8e151921d53d8cdac17dd4017d740e6490f1c063..2f09914657d96a4318e324a498592f39b1dab44c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index 326da6372a52d1d4a3d54f9015988e917e169073..e82aa862f03fc6141a6af05e0251348285db9b61 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index e1092c19cd617600cd8d647c28bc45e670ae6c04..0fb58b84a692f3de1d20a64c1de97db2c1f27a0e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index fc00eb79654a40690308b170ed459d7eb8066804..db755ec64cdd9deb27c863220779b4bbbeec72f6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index 0ce73a6416d21e44242ee05b253f4a3a36f1801d..eda3904c2491e30c12fdece26a12e3565c841c7a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index b5f87a21721da8bac6b748145b62e73dda994011..3230e06098a87ef5121d361159b72f5930c67cc8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index a20bc016b33cc98c11a2a26a597fc0125ac03030..f537afa2dc0d1e20ea86ef60310c5505ac980b50 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index c5042d488011e4cfd3f48d1fb00be2b954ae5b2c..fba7fa1c9ef1a211f15e807ec55be34dea21a6f8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index d343e01c00cb1ef8a96a367ccc4d70e73734592f..78acae2d2e4cf719a4f19ac0e923e22d9c3382cb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index ab9b4dd1e885da89b0e34ecec458e58a7de474f8..f93b28fbf76bd687c7838b59b42ec76646280130 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (isBlockModeEnabled()) {
index 3a97042cd01827e1165a2ee1967630a5ff78f5f7..1c0f1f7d1c4f2fc21735761ef41471fa6edfc978 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (!isBlockModeEnabled()) {
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 } elseif (!isBlockModeEnabled()) {
@@ -59,6 +59,10 @@ if (isAdmin()) {
        $num_themes = countSumTotalData('', 'themes', 'id', '', true);
 }
 
        $num_themes = countSumTotalData('', 'themes', 'id', '', true);
 }
 
+// Default is no box
+$OUT = '';
+
+// Choose from it
 if ($num_themes > 1) {
        // If more than 1 is installed output selection box
        $OUT = generateThemeSelectionBox();
 if ($num_themes > 1) {
        // If more than 1 is installed output selection box
        $OUT = generateThemeSelectionBox();
index e5cd2b45bb8526d5e608483f30392864a69e587b..6a28ff8c5ca0576b21856ae82201ca7361daa1be 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 14326b9fc76bf375a93f033ccfcc8cf75fefa531..09948bd2aeff1b3ce41671c1131a0a8c55f13bc2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 59193370fbd8f345c940bcfa137d625b12470bac..1d0f5a19176c1b2c5913c84920037701495f1ffb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 9bfc59352018aad76fdd28da2d8005fa14658121..142660a206e3a2aa54578cb69ef1b61e5c97bb34 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 14326b9fc76bf375a93f033ccfcc8cf75fefa531..09948bd2aeff1b3ce41671c1131a0a8c55f13bc2 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 9bfc59352018aad76fdd28da2d8005fa14658121..142660a206e3a2aa54578cb69ef1b61e5c97bb34 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 845ec0d56568dbf41e22df1061e7b7c95fcb06bc..5ba96f97553149497b2089c2bb7b583375e21df8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 5e97cec37edbffcef0f499846418c2d6a667309a..f6b2fb935992459b9eeadc0c0bfdbc89671cc748 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -69,6 +69,7 @@ FROM
 WHERE
        `beg_points` > 0 AND
        `status`='CONFIRMED'
 WHERE
        `beg_points` > 0 AND
        `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
        " . $lastOnline . "
 ORDER BY
        `beg_points` DESC,
        " . $lastOnline . "
 ORDER BY
        `beg_points` DESC,
index ccc9fbd0a90b07dabfaffd346b6766a953cf88bc..ee31c8b790e0037ba8d25a17b866198ea346b846 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -52,9 +52,9 @@ if ((!isExtensionActive('bonus')) && (!isAdmin())) {
 
 // Add more bonus points here
 $add = runFilterChain('add_bonus_points_user_columns', '');
 
 // Add more bonus points here
 $add = runFilterChain('add_bonus_points_user_columns', '');
-$USE = '`turbo_bunus`';
+$pointsColumns = '`turbo_bunus`';
 if (!empty($add)) {
 if (!empty($add)) {
-       $USE = '(0' . $add . ')';
+       $pointsColumns = '(0' . $add . ')';
 } // END - if
 
 // Init variables
 } // END - if
 
 // Init variables
@@ -70,13 +70,14 @@ if ((isExtensionActive('autopurge')) && ((getApInactiveSince() > 0))) {
 // Let's check if there are some points left we can 'pay'...
 $result = SQL_QUERY_ESC("SELECT
        `userid`,
 // Let's check if there are some points left we can 'pay'...
 $result = SQL_QUERY_ESC("SELECT
        `userid`,
-       ".$USE." AS `points`,
+       ".$pointsColumns." AS `points`,
        `last_online`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
        `last_online`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       " . $USE . " > 0 AND
+       " . $pointsColumns . " > 0 AND
        `status`='CONFIRMED'
        `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . "
        " . $lastOnline . "
 ORDER BY
        `points` DESC,
        " . $lastOnline . "
 ORDER BY
        `points` DESC,
index 24cc1cee032b8c3bc5e12bfc37a052bc8bb8e454..7b65d6d7fe5fde79d0e20dba645d4d70c3d8113b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        // Redirect
        redirectToIndexMemberOnlyModule();
 } elseif (!isMember()) {
        // Redirect
        redirectToIndexMemberOnlyModule();
@@ -52,7 +52,7 @@ if ((!isExtensionActive('surfbar')) && (!isAdmin())) {
 } // END - if
 
 // Still allowed to book more URLs?
 } // END - if
 
 // Still allowed to book more URLs?
-if (!SURFBAR_IF_USER_BOOK_MORE_URLS()) {
+if (!ifSurfbarMemberAllowedMoreUrls()) {
        // No more URLs allowed to book!
        displayMessage('{--MEMBER_SURFBAR_NO_MORE_ALLOWED--}');
 } elseif ((isFormSent()) && (isPostRequestElementSet('limited'))) {
        // No more URLs allowed to book!
        displayMessage('{--MEMBER_SURFBAR_NO_MORE_ALLOWED--}');
 } elseif ((isFormSent()) && (isPostRequestElementSet('limited'))) {
@@ -66,7 +66,7 @@ if (!SURFBAR_IF_USER_BOOK_MORE_URLS()) {
        $message = '{--MEMBER_SURFBAR_URL_NOT_ADDED--}';
 
        // Register the new URL
        $message = '{--MEMBER_SURFBAR_URL_NOT_ADDED--}';
 
        // Register the new URL
-       $insertId = SURFBAR_MEMBER_ADD_URL(postRequestElement('url'), postRequestElement('limit'));
+       $insertId = doSurfbarMemberAddUrl(postRequestElement('url'), postRequestElement('limit'));
 
        // Was this fine?
        if ($insertId > 0) {
 
        // Was this fine?
        if ($insertId > 0) {
index d428985dba3d948c161d9295256546d95bd76964..7211ec693dbcde3d140542385f958db4ad9172e8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 7718abc36c28129a9caedd600ecc945f5b372ca2..fedbe03e8431d1d81f0b9ad30efd6eff0a85ec02 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -110,7 +110,7 @@ LIMIT 1",
                        // Does it work?
                        if (SQL_HASZEROAFFECTED()) {
                                // Abort it here, it always must work
                        // Does it work?
                        if (SQL_HASZEROAFFECTED()) {
                                // Abort it here, it always must work
-                               debug_report_bug(__FILE__, __LINE__, 'User coupon cannot be updated! coupon_id=' . $content['coupon_id']);
+                               reportBug(__FILE__, __LINE__, 'User coupon cannot be updated! coupon_id=' . $content['coupon_id']);
                        } // END - if
 
                        // Update count as well
                        } // END - if
 
                        // Update count as well
@@ -120,7 +120,7 @@ LIMIT 1",
                        // Does it work?
                        if (SQL_HASZEROAFFECTED()) {
                                // Abort it here, it always must work
                        // Does it work?
                        if (SQL_HASZEROAFFECTED()) {
                                // Abort it here, it always must work
-                               debug_report_bug(__FILE__, __LINE__, 'Coupon data cannot be updated! coupon_id=' . $content['coupon_id']);
+                               reportBug(__FILE__, __LINE__, 'Coupon data cannot be updated! coupon_id=' . $content['coupon_id']);
                        } // END - if
 
                        // Run post filter chain
                        } // END - if
 
                        // Run post filter chain
index 26b06a457fda46bd9e83401ab26b845dd12cc2f1..1789239edf630d7799e9a5130c6c882642c274c0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -71,42 +71,33 @@ if (!SQL_HASZERONUMS($result)) {
                // Start counting all
                $count = '0';
 
                // Start counting all
                $count = '0';
 
+               // Ini SQLs here
+               initSqls();
+
                // Go through all entries
                foreach (postRequestElement('cat') as $categoryId => $joined) {
                // Go through all entries
                foreach (postRequestElement('cat') as $categoryId => $joined) {
-                       // Ini sql here
-                       $sql = '';
-
                        // Has the user joined on this category?
                        switch ($joined) {
                                case 'Y':
                        // Has the user joined on this category?
                        switch ($joined) {
                                case 'Y':
-                                       $result_user = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid`=%s AND `cat_id`=%s LIMIT 1",
-                                               array(getMemberId(), bigintval($categoryId)), __FILE__, __LINE__);
-
-                                       // Debug message
-                                       //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'categoryId='.$categoryId.',joined='.$joined.',getMemberId()='.getMemberId().',SQL_HASZERONUMS()='.intval(SQL_HASZERONUMS($result_user)));
-
-                                       if (SQL_HASZERONUMS($result_user)) {
-                                               $sql = "INSERT INTO `{?_MYSQL_PREFIX?}_user_cats` (`userid`,`cat_id`) VALUES (%s,%s)";
+                                       // Check if this category has an entry
+                                       if (countSumTotalData(getMemberId(), 'user_cats', 'id', 'userid', true, sprintf(" AND `cat_id`=%s", bigintval($categoryId))) == 0) {
+                                               // No, so add it
+                                               addSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_user_cats` (`userid`,`cat_id`) VALUES (%s,%s)", getMemberId(), bigintval($categoryId)));
                                        } // END - if
                                        } // END - if
-
-                                       // Free memory
-                                       SQL_FREERESULT($result_user);
                                        break;
 
                                case 'N':
                                        break;
 
                                case 'N':
-                                       $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid`=%s AND `cat_id`=%s LIMIT 1";
+                                       addSql(sprintf("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `userid`=%s AND `cat_id`=%s LIMIT 1", getMemberId(), bigintval($categoryId)));
                                        break;
                        } // END - switch
                                        break;
                        } // END - switch
-
-                       if (!empty($sql)) {
-                               // Run SQL command
-                               SQL_QUERY_ESC(trim($sql), array(getMemberId(), bigintval($categoryId)), __FILE__, __LINE__);
-
-                               // Count this row
-                               $count += SQL_AFFECTEDROWS();
-                       } // END - if
                } // END - foreach
 
                } // END - foreach
 
+               // Do we have entries?
+               if (countSqls() > 0) {
+                       // Run SQL commands
+                       $count = runFilterChain('run_sqls');
+               } // END - if
+
                // Categories saved?
                if ($count > 0) {
                        // Output message
                // Categories saved?
                if ($count > 0) {
                        // Output message
@@ -121,17 +112,10 @@ if (!SQL_HASZERONUMS($result)) {
                        displayMessage('{--CHOOSE_MORE_CATEGORIES--}');
                } // END - if
 
                        displayMessage('{--CHOOSE_MORE_CATEGORIES--}');
                } // END - if
 
-               // Put some data into constants for the template
-               $content['rows'] = (SQL_NUMROWS($result) * 2 + 4);
-
-               // Load header template
-               loadTemplate('member_cats_header', false, $content);
-
-               // Start switching colors and load all visible categories
-               // @TODO Rewrite this to use $OUT .= ...
+               // Load all categories of this member
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
-                       // Default he has not joined
+                       // Default he has not joined, add color switch
                        $content['jn'] = ' checked="checked"';
                        $content['jy'] = '';
 
                        $content['jn'] = ' checked="checked"';
                        $content['jy'] = '';
 
@@ -150,12 +134,15 @@ if (!SQL_HASZERONUMS($result)) {
                                } // END - if
                        }
 
                                } // END - if
                        }
 
-                       // Load row template and switch colors
-                       loadTemplate('member_cat_row', false, $content);
+                       // Load row template
+                       $OUT .= loadTemplate('member_cats_row', true, $content);
                } // END - while
 
                } // END - while
 
+               // Free result
+               SQL_FREERESULT($result);
+
                // Load footer template
                // Load footer template
-               loadTemplate('member_cats_footer');
+               loadTemplate('member_cats', false, $OUT);
        }
 } else {
        // No cateogries are defined yet
        }
 } else {
        // No cateogries are defined yet
index 76406561f14f15b0a6405527bc1e3073e7032a83..d02038b25763e3054857a0706918e295962770d6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 8c93babde9595cdc323ab130d869eeddd4acfbae..c0b2ab53434d88aa962634ac190774795627167b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -66,7 +66,7 @@ ORDER BY
        d.`earning_sorting` ASC', __FILE__, __LINE__);
 
 // Do we have entries?
        d.`earning_sorting` ASC', __FILE__, __LINE__);
 
 // Do we have entries?
-if (SQL_NUMROWS($result) > 0) {
+if (!SQL_HASZERONUMS($result)) {
        // Init output
        $OUT = '';
 
        // Init output
        $OUT = '';
 
index 97935fb0084dea82804620c40bbe628a03219679..528cb3819ef973004d7084068d1b5288c6307d4b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index fc92311e16b29b20164f84ee6ddb31e793187d3f..02816336897a01d5568e82c93048c02eb8d13920 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 9c963f71358a70d4921e949d4f31fcadf0f9f1a9..d7f695a43c07582055d2764785ca741992c537bb 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index aa364d47a499d647a4be7fb395f0624f85f61b1d..e0d0c9c6d52467d62ce1f33c986341f61e3928af 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -74,7 +74,7 @@ ORDER BY
        u.`cashed_on` DESC", array(getMemberId()), __FILE__, __LINE__);
 
 // Do we have entries?
        u.`cashed_on` DESC", array(getMemberId()), __FILE__, __LINE__);
 
 // Do we have entries?
-if (SQL_NUMROWS($result) > 0) {
+if (!SQL_HASZERONUMS($result)) {
        // Init variable
        $OUT = '';
 
        // Init variable
        $OUT = '';
 
index 39c79cbbba3fe4135af8533020514800152f3ac5..b783520296a91f7b65660d5b3aac8f5ce3378c23 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -51,15 +51,15 @@ if ((!isExtensionActive('surfbar')) && (!isAdmin())) {
 } // END - if
 
 // Load user URLs
 } // END - if
 
 // Load user URLs
-$urlArray = SURFBAR_GET_USER_URLS();
+$urlArray = getSurfbarUserUrls();
 
 // Are there entries or form is submitted?
 
 // Are there entries or form is submitted?
-if ((isFormSent()) && (isPostRequestElementSet('action')) && (isPostRequestElementSet('id'))) {
+if ((isFormSent()) && (isPostRequestElementSet('action')) && (isPostRequestElementSet('url_id'))) {
        // Process the form
        // Process the form
-       if (SURFBAR_MEMBER_DO_FORM(postRequestArray(), $urlArray)) {
+       if (doSurfbarMemberByFormData(postRequestArray(), $urlArray)) {
                // Action performed but shall we display it?
                if (((postRequestElement('action') != 'edit') && (postRequestElement('action') != 'delete')) || (isPostRequestElementSet('execute'))) {
                // Action performed but shall we display it?
                if (((postRequestElement('action') != 'edit') && (postRequestElement('action') != 'delete')) || (isPostRequestElementSet('execute'))) {
-                       // Display "action done" message if action is wether 'edit' nor 'delete' or has been executed
+                       // Display "action done" message if action is whether 'edit' nor 'delete' or has been executed
                        displayMessage('{--MEMBER_SURFBAR_ACTION_DONE--}');
                } // END - if
        } else {
                        displayMessage('{--MEMBER_SURFBAR_ACTION_DONE--}');
                } // END - if
        } else {
@@ -77,7 +77,7 @@ if ((isFormSent()) && (isPostRequestElementSet('action')) && (isPostRequestEleme
                } // END - if
                $content['url_registered']  = generateDateTime($content['url_registered'], '2');
                $content['url_last_locked'] = generateDateTime($content['url_last_locked'], '2');
                } // END - if
                $content['url_registered']  = generateDateTime($content['url_registered'], '2');
                $content['url_last_locked'] = generateDateTime($content['url_last_locked'], '2');
-               $content['actions']         = SURFBAR_MEMBER_ACTIONS($content['url_id'], $content['url_status']);
+               $content['actions']         = generateSurfbarMemberActions($content['url_id'], $content['url_status']);
 
                // Load row template
                $OUT .= loadTemplate('member_list_surfbar_row', true, $content);
 
                // Load row template
                $OUT .= loadTemplate('member_list_surfbar_row', true, $content);
index ffc1932f40df194ca14f47b168532c5e47a9c563..7bc1b6cd85b970ba8a84e6443556ed0170467b20 100644 (file)
@@ -17,7 +17,7 @@
  * @TODO Rewrite the code to a filter                                   *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * @TODO Rewrite the code to a filter                                   *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -38,7 +38,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -49,7 +49,7 @@ $url = 'modules.php?module=index&amp;code=';
 if (destroyMemberSession()) {
        // Remove theme cookie as well
        if (isExtensionActive('theme')) {
 if (destroyMemberSession()) {
        // Remove theme cookie as well
        if (isExtensionActive('theme')) {
-               setTheme('');
+               setMailerTheme('');
        } // END - if
 
        // Logout completed
        } // END - if
 
        // Logout completed
index 83392c1cb0bf2c145ae91f7c12dec9c3c85a5283..4ed6637853b689e4d3897abd6039ffa1c2eb15fa 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -98,8 +98,22 @@ switch ($mode) {
 
        case 'edit': // Edit data
                if (isExtensionActive('country', true)) {
 
        case 'edit': // Edit data
                if (isExtensionActive('country', true)) {
-                       // New way                          0          1            2             3         4       5       6           7            8              9          10         11               12            13
-                       $result = SQL_QUERY_ESC("SELECT `surname`,`family`,`street_nr`,`country_code`,`zip`,`city`,`email`,`birth_day`,`birth_month`,`birth_year`,`gender`,`max_mails`,`receive_mails`,`last_update`
+                       // New way
+                       $result = SQL_QUERY_ESC("SELECT
+       `surname`,
+       `family`,
+       `street_nr`,
+       `country_code`,
+       `zip`,
+       `city`,
+       `email`,
+       `birth_day`,
+       `birth_month`,
+       `birth_year`,
+       `gender`,
+       `max_mails`,
+       `receive_mails`,
+       `last_update`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
@@ -107,8 +121,22 @@ WHERE
 LIMIT 1",
                        array(getMemberId()), __FILE__, __LINE__);
                } else {
 LIMIT 1",
                        array(getMemberId()), __FILE__, __LINE__);
                } else {
-                       // Old way                          0          1            2          3       4       5       6           7            8              9          10         11               12            13
-                       $result = SQL_QUERY_ESC("SELECT `surname`,`family`,`street_nr`,`country`,`zip`,`city`,`email`,`birth_day`,`birth_month`,`birth_year`,`gender`,`max_mails`,`receive_mails`,`last_update`
+                       // Old way
+                       $result = SQL_QUERY_ESC("SELECT
+       `surname`,
+       `family`,
+       `street_nr`,
+       `country`,
+       `zip`,
+       `city`,
+       `email`,
+       `birth_day`,
+       `birth_month`,
+       `birth_year`,
+       `gender`,
+       `max_mails`,
+       `receive_mails`,
+       `last_update`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
@@ -118,7 +146,7 @@ LIMIT 1",
                }
 
                // Get line
                }
 
                // Get line
-               $content = merge_array($content, SQL_FETCHARRAY($result, 0, false));
+               $content = merge_array($content, SQL_FETCHARRAY($result));
 
                // Free result
                SQL_FREERESULT($result);
 
                // Free result
                SQL_FREERESULT($result);
@@ -127,6 +155,7 @@ LIMIT 1",
 
                // How far is last change on his profile away from now?
                if (($content['update_check'] > time()) && (!isAdmin()) && (getProfileLock() > 0)) {
 
                // How far is last change on his profile away from now?
                if (($content['update_check'] > time()) && (!isAdmin()) && (getProfileLock() > 0)) {
+                       // Profile is locked, so output propper message
                        $content['update_check'] = '{%message,MEMBER_PROFILE_LOCKED=' . generateDateTime($content['update_check'] + getProfileLock(), '0') . '%}';
 
                        // You cannot change your account
                        $content['update_check'] = '{%message,MEMBER_PROFILE_LOCKED=' . generateDateTime($content['update_check'] + getProfileLock(), '0') . '%}';
 
                        // You cannot change your account
@@ -168,7 +197,7 @@ LIMIT 1",
 
                                // Generate selection box
                                $OUT  = '<select name="country_code" class="form_select" size="1">';
 
                                // Generate selection box
                                $OUT  = '<select name="country_code" class="form_select" size="1">';
-                               $OUT .= generateOptionList('countries', 'id', 'descr', $content['country_code'], 'code', $whereStatement);
+                               $OUT .= generateOptions('countries', 'id', 'descr', $content['country_code'], 'code', $whereStatement);
                                $OUT .= '</select>';
                                $content['country'] = $OUT;
                        } else {
                                $OUT .= '</select>';
                                $content['country'] = $OUT;
                        } else {
@@ -231,11 +260,17 @@ LIMIT 1",
                                        SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
                                        SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
-       `gender`='%s',`surname`='%s',`family`='%s',
+       `gender`='%s',
+       `surname`='%s',
+       `family`='%s',
        `street_nr`='%s',
        `street_nr`='%s',
-       `country_code`=%s,`zip`=%s,`city`='%s',
+       `country_code`=%s,
+       `zip`=%s,
+       `city`='%s',
        `email`='%s',
        `email`='%s',
-       `birth_day`=%s,`birth_month`=%s,`birth_year`=%s,
+       `birth_day`=%s,
+       `birth_month`=%s,
+       `birth_year`=%s,
        `max_mails`='%s',
        `last_update`=UNIX_TIMESTAMP()".$AND.",
        `notified`='N',
        `max_mails`='%s',
        `last_update`=UNIX_TIMESTAMP()".$AND.",
        `notified`='N',
@@ -263,11 +298,17 @@ LIMIT 1",
                                        SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
                                        SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
-       `gender`='%s',`surname`='%s',`family`='%s',
+       `gender`='%s',
+       `surname`='%s',
+       `family`='%s',
        `street_nr`='%s',
        `street_nr`='%s',
-       `country`='%s',`zip`=%s,`city`='%s',
+       `country`='%s',
+       `zip`=%s,
+       `city`='%s',
        `email`='%s',
        `email`='%s',
-       `birth_day`=%s,`birth_month`=%s,`birth_year`=%s,
+       `birth_day`=%s,
+       `birth_month`=%s,
+       `birth_year`=%s,
        `max_mails`='%s',
        `last_update`=UNIX_TIMESTAMP()".$AND.",
        `notified`='N',
        `max_mails`='%s',
        `last_update`=UNIX_TIMESTAMP()".$AND.",
        `notified`='N',
index 1fa6fecb3fb021067b775587e521c5f1191feba5..5312676f6671a0ecc4adaf927cac5746049b2b04 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -69,14 +69,13 @@ if ($isValid === true) {
 
        // Look for nickname in database (we only need just one entry so don't worry about the "LIMIT 1" !)
        $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `nickname`='%s' AND `userid` != %s LIMIT 1",
 
        // Look for nickname in database (we only need just one entry so don't worry about the "LIMIT 1" !)
        $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `nickname`='%s' AND `userid` != %s LIMIT 1",
-               array(postRequestElement('nickname'), getMemberId()), __FILE__, __LINE__);
+               array(
+                       postRequestElement('nickname'),
+                       getMemberId()
+               ), __FILE__, __LINE__);
 
        // Is it not in use?
        if (SQL_HASZERONUMS($result)) {
 
        // Is it not in use?
        if (SQL_HASZERONUMS($result)) {
-               // Nickname not in use, so set it now
-               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `nickname`='%s' WHERE `userid`=%s LIMIT 1",
-                       array(postRequestElement('nickname'), getMemberId()), __FILE__, __LINE__);
-
                // Prepare array
                $filterData = array(
                        'history_subject' => 'NICKNAME_CHANGED',
                // Prepare array
                $filterData = array(
                        'history_subject' => 'NICKNAME_CHANGED',
@@ -87,6 +86,13 @@ if ($isValid === true) {
                // Run filter chain
                runFilterChain('add_history_entry', $filterData);
 
                // Run filter chain
                runFilterChain('add_history_entry', $filterData);
 
+               // Nickname not in use, so set it now
+               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `nickname`='%s' WHERE `userid`=%s LIMIT 1",
+                       array(
+                               postRequestElement('nickname'),
+                               getMemberId()
+                       ), __FILE__, __LINE__);
+
                // Change message
                $content = '{--MEMBER_NICKNAME_SAVED--}';
        } // END - if
                // Change message
                $content = '{--MEMBER_NICKNAME_SAVED--}';
        } // END - if
index e87be3b9acee37dcb492bc36f33a20fbd8b0876e..a44255e8acd9c33f61eadf0d3560a1fa403ad89d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -35,7 +35,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -54,7 +54,7 @@ $ALLOWED = getUserData('receive_mails') - getUserData('mail_orders');
 if (getConfig('order_max_full') == 'MAX') $ALLOWED = getUserData('receive_mails');
 
 // Now check his points amount
 if (getConfig('order_max_full') == 'MAX') $ALLOWED = getUserData('receive_mails');
 
 // Now check his points amount
-$total = getTotalPoints(getMemberId());
+$totalPoints = getTotalPoints(getMemberId());
 
 if ((isExtensionInstalledAndNewer('holiday', '0.1.3')) && (isUserDataEnabled('holiday_active'))) {
        // Holiday is active!
 
 if ((isExtensionInstalledAndNewer('holiday', '0.1.3')) && (isUserDataEnabled('holiday_active'))) {
        // Holiday is active!
@@ -63,7 +63,9 @@ if ((isExtensionInstalledAndNewer('holiday', '0.1.3')) && (isUserDataEnabled('ho
        // Continue with the frametester, we first need to store the data temporary in the pool
        //
        // First we would like to store the data and get it's pool position back...
        // Continue with the frametester, we first need to store the data temporary in the pool
        //
        // First we would like to store the data and get it's pool position back...
-       $result = SQL_QUERY_ESC("SELECT `id`,`data_type`
+       $result = SQL_QUERY_ESC("SELECT
+       `id`,
+       `data_type`
 FROM
        `{?_MYSQL_PREFIX?}_pool`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_pool`
 WHERE
@@ -98,7 +100,7 @@ LIMIT 1",
                        } // END - if
 
                        // Remove new-line and carriage-return characters
                        } // END - if
 
                        // Remove new-line and carriage-return characters
-                       $TEST = str_replace("\n", '', str_replace("\r", '', postRequestElement('text')));
+                       $TEST = str_replace(array(chr(10), chr(13)), array('', ''), postRequestElement('text'));
 
                        // Text length within allowed length?
                        if (strlen($TEST) > getConfig('max_tlength')) {
 
                        // Text length within allowed length?
                        if (strlen($TEST) > getConfig('max_tlength')) {
@@ -110,7 +112,7 @@ LIMIT 1",
                // Shall I test the subject line against URLs?
                if (getConfig('allow_url_in_subject') == 'Y') {
                        // Check the subject line for issues
                // Shall I test the subject line against URLs?
                if (getConfig('allow_url_in_subject') == 'Y') {
                        // Check the subject line for issues
-                       setPostRequestElement('subject', str_replace("\\", '[nl]', substr(postRequestElement('subject'), 0, 200)));
+                       setPostRequestElement('subject', str_replace(chr(92), '[nl]', substr(postRequestElement('subject'), 0, 200)));
                        if ((isInStringIgnoreCase('https://', postRequestElement('subject'))) || (isInStringIgnoreCase('http://', postRequestElement('subject'))) || (isInStringIgnoreCase('www', postRequestElement('subject')))) {
                                // URL in subject found
                                $url = 'modules.php?module=login&amp;what=order&amp;code=' . getCode('SUBJECT_URL');
                        if ((isInStringIgnoreCase('https://', postRequestElement('subject'))) || (isInStringIgnoreCase('http://', postRequestElement('subject'))) || (isInStringIgnoreCase('www', postRequestElement('subject')))) {
                                // URL in subject found
                                $url = 'modules.php?module=login&amp;what=order&amp;code=' . getCode('SUBJECT_URL');
@@ -158,7 +160,7 @@ LIMIT 1",
                                if (!isPostRequestElementSet('text')) $url = 'modules.php?module=login&amp;what=order&amp;code=' . getCode('INVALID_TAGS')."&amp;id=".$id;
                        } else {
                                // Remove any HTML code
                                if (!isPostRequestElementSet('text')) $url = 'modules.php?module=login&amp;what=order&amp;code=' . getCode('INVALID_TAGS')."&amp;id=".$id;
                        } else {
                                // Remove any HTML code
-                               setPostRequestElement('text', str_replace('<', '{OPEN_HTML}', str_replace('>', '{CLOSE_HTML}', postRequestElement('text'))));
+                               setPostRequestElement('text', str_replace(array('<', '>'), array('{OPEN_HTML}', '{CLOSE_HTML}'), postRequestElement('text')));
                        }
                } // END - if
 
                        }
                } // END - if
 
@@ -174,32 +176,23 @@ LIMIT 1",
 
        // Still no error?
        if (empty($url)) {
 
        // Still no error?
        if (empty($url)) {
-               // Check if category and number of receivers is okay
-               $add = '';
-               if ((isOrderMultiPageEnabled()) && (isPostRequestElementSet('zip')) && (postRequestElement('zip') != '')) {
-                       // Choose recipients by ZIP code
-                       $add = sprintf(" AND d.zip LIKE '%s%%'",
-                               bigintval(postRequestElement('zip'))
-                       );
-               } // END - if
-
                // Check for userids
                $result = SQL_QUERY_ESC("SELECT
                // Check for userids
                $result = SQL_QUERY_ESC("SELECT
-       c.userid
+       c.`userid`
 FROM
        `{?_MYSQL_PREFIX?}_user_cats` AS c
 FROM
        `{?_MYSQL_PREFIX?}_user_cats` AS c
-LEFT JOIN
+INNER JOIN
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
        `{?_MYSQL_PREFIX?}_user_data` AS d
 ON
-       c.userid=d.userid
+       c.`userid`=d.`userid`
 WHERE
 WHERE
-       c.cat_id=%s AND
-       c.userid != '%s' AND
-       d.`status`='CONFIRMED' AND
-       d.receive_mails > 0
-       ".$add."
+       c.`cat_id`=%s AND
+       c.`userid` != %s AND
+       d.`status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
+       d.`receive_mails` > 0
 ORDER BY
 ORDER BY
-       d.{?order_select?} {?order_mode?}",
+       d.`{?order_select?}` {?order_mode?}",
                        array(
                                bigintval(postRequestElement('cat')),
                                getMemberId()
                        array(
                                bigintval(postRequestElement('cat')),
                                getMemberId()
@@ -233,7 +226,7 @@ LIMIT 1",
 
                                if ($holidayContent['userid'] > 0) {
                                        // Add receiver
 
                                if ($holidayContent['userid'] > 0) {
                                        // Add receiver
-                                       $TEST[] = $holidayContent['userid'];
+                                       array_push($TEST, $holidayContent['userid']);
                                        $count++;
                                } // END - if
                        } // END - while
                                        $count++;
                                } // END - if
                        } // END - while
@@ -260,7 +253,7 @@ LIMIT 1",
                        } // END - if
 
                        // Calculate used points
                        } // END - if
 
                        // Calculate used points
-                       $USED = $content['target_send'] * getPaymentPoints(bigintval(postRequestElement('mail_type')));
+                       $usedPoints = $content['target_send'] * getPaymentPoints(bigintval(postRequestElement('mail_type')));
 
                        // Fix empty zip code
                        if (!isPostRequestElementSet('zip')) {
 
                        // Fix empty zip code
                        if (!isPostRequestElementSet('zip')) {
@@ -268,8 +261,8 @@ LIMIT 1",
                        } // END - if
 
                        // Check if he has enougth points for this order and selected more than 0 receivers
                        } // END - if
 
                        // Check if he has enougth points for this order and selected more than 0 receivers
-                       if (($USED > 0) && ($USED <= $total) && ($content['target_send'] > 0)) {
-                               // Gettings points is okay, so we can add $USED later from
+                       if (($usedPoints > 0) && ($usedPoints <= $totalPoints) && ($content['target_send'] > 0)) {
+                               // Gettings points is okay, so we can add $usedPoints later from
                                if (($id == '0') || ($type != 'TEMP')) {
                                        // New order
                                        $id = '0';
                                if (($id == '0') || ($type != 'TEMP')) {
                                        // New order
                                        $id = '0';
@@ -466,14 +459,18 @@ LIMIT 1",
 
        // Display order form
        $result_cats = SQL_QUERY("SELECT
 
        // Display order form
        $result_cats = SQL_QUERY("SELECT
-       `id`,`cat`
+       `id`,
+       `cat`
 FROM
        `{?_MYSQL_PREFIX?}_cats`
 ".$whereStatement."
 ORDER BY
        `sort` ASC", __FILE__, __LINE__);
 FROM
        `{?_MYSQL_PREFIX?}_cats`
 ".$whereStatement."
 ORDER BY
        `sort` ASC", __FILE__, __LINE__);
+
+       // Some categories found?
        if (!SQL_HASZERONUMS($result_cats)) {
        if (!SQL_HASZERONUMS($result_cats)) {
-               if ($total > 0) {
+               // Enought points left?
+               if ($totalPoints > 0) {
                        // Initialize array...
                        $categories = array(
                                'id'      => array(),
                        // Initialize array...
                        $categories = array(
                                'id'      => array(),
@@ -495,7 +492,7 @@ ORDER BY
                        // ... and begin loading stuff
                        while ($categoriesContent = SQL_FETCHARRAY($result_cats)) {
                                $categories['id'][]   = bigintval($categoriesContent['id']);
                        // ... and begin loading stuff
                        while ($categoriesContent = SQL_FETCHARRAY($result_cats)) {
                                $categories['id'][]   = bigintval($categoriesContent['id']);
-                               $categories['name'][] = $categoriesContent['cat'];
+                               array_push($categories['name'], $categoriesContent['cat']);
 
                                // Select users in current category
                                $result_userids = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `cat_id`=%s AND `userid` != '%s' ORDER BY `userid` ASC",
 
                                // Select users in current category
                                $result_userids = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `cat_id`=%s AND `userid` != '%s' ORDER BY `userid` ASC",
@@ -508,20 +505,20 @@ ORDER BY
                                        if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
                                                // Check user's holiday status
                                                $result_holiday = SQL_QUERY_ESC("SELECT
                                        if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
                                                // Check user's holiday status
                                                $result_holiday = SQL_QUERY_ESC("SELECT
-       COUNT(d.userid) AS `cnt`
+       COUNT(d.`userid`) AS `cnt`
 FROM
        `{?_MYSQL_PREFIX?}_user_data` AS d
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_holidays` AS h
 ON
 FROM
        `{?_MYSQL_PREFIX?}_user_data` AS d
 LEFT JOIN
        `{?_MYSQL_PREFIX?}_user_holidays` AS h
 ON
-       d.userid=h.userid
+       d.`userid`=h.`userid`
 WHERE
 WHERE
-       d.userid=%s AND
-       d.receive_mails > 0 AND
+       d.`userid`=%s AND
+       d.`receive_mails` > 0 AND
        d.`status`='CONFIRMED' AND
        d.`holiday_active`='Y' AND
        d.`status`='CONFIRMED' AND
        d.`holiday_active`='Y' AND
-       h.holiday_start < UNIX_TIMESTAMP() AND
-       h.holiday_end > UNIX_TIMESTAMP()
+       h.`holiday_start` < UNIX_TIMESTAMP() AND
+       h.`holiday_end` > UNIX_TIMESTAMP()
 LIMIT 1",
                                                        array(bigintval($userid)), __FILE__, __LINE__);
 
 LIMIT 1",
                                                        array(bigintval($userid)), __FILE__, __LINE__);
 
@@ -559,7 +556,7 @@ LIMIT 1",
 
                                // Free memory
                                SQL_FREERESULT($result_userids);
 
                                // Free memory
                                SQL_FREERESULT($result_userids);
-                               $categories['userids'][] = $userid_cnt;
+                               array_push($categories['userids'], $userid_cnt);
                        } // END - while
 
                        // Free memory
                        } // END - while
 
                        // Free memory
@@ -570,24 +567,22 @@ LIMIT 1",
 
                        $types = array();
                        if (!SQL_HASZERONUMS($result)) {
 
                        $types = array();
                        if (!SQL_HASZERONUMS($result)) {
-                               // Check for message id in URL
-                               $message = getMessageFromErrorCode(getRequestElement('code'));
-
-                               if (!empty($message)) {
-                                       // We got system message so we drop it out to the user
-                                       displayMessage($message);
+                               // Is the error code set?
+                               if (isGetRequestElementSet('code')) {
+                                       // Display error message
+                                       displayMessage(getMessageFromErrorCode(getRequestElement('code')));
                                } // END - if
 
                                // Load all email types...
                                } // END - if
 
                                // Load all email types...
-                               while ($types[] = SQL_FETCHROW($result)) {
-                                       // Nothing to do here... ;-)
+                               while ($type = SQL_FETCHARRAY($result)) {
+                                       array_push($types, $type);
                                } // END - while
 
                                // Free memory
                                SQL_FREERESULT($result);
 
                                // Output user's points
                                } // END - while
 
                                // Free memory
                                SQL_FREERESULT($result);
 
                                // Output user's points
-                               $content['total_points'] = $total;
+                               $content['total_points'] = $totalPoints;
 
                                // Check how many mail orders he has placed today and how many he's allowed to send
                                switch (getConfig('order_max_full')) {
 
                                // Check how many mail orders he has placed today and how many he's allowed to send
                                switch (getConfig('order_max_full')) {
@@ -616,7 +611,14 @@ LIMIT 1",
 
                                // Check if we already have an order placed and make it editable
                                $result = SQL_QUERY_ESC("SELECT
 
                                // Check if we already have an order placed and make it editable
                                $result = SQL_QUERY_ESC("SELECT
-       `subject`,`text`,`payment_id`,`timestamp`,`url`,`target_send`,`cat_id`,`zip`
+       `subject`,
+       `text`,
+       `payment_id`,
+       `timestamp`,
+       `url`,
+       `target_send`,
+       `cat_id`,
+       `zip`
 FROM
        `{?_MYSQL_PREFIX?}_pool`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_pool`
 WHERE
@@ -641,8 +643,8 @@ LIMIT 1",
                                        // Default output for that your members don't forget it...
                                        $content['url']         = 'http://';
                                        $content['target_send'] = '{?order_min?}';
                                        // Default output for that your members don't forget it...
                                        $content['url']         = 'http://';
                                        $content['target_send'] = '{?order_min?}';
-                                       $content['subject']     = '{--ORDER_DEFAULT_SUBJECT--}';
-                                       $content['text']        = '{--ORDER_DEFAULT_TEXT--}';
+                                       $content['subject']     = '';
+                                       $content['text']        = '';
                                }
 
                                // Free result
                                }
 
                                // Free result
@@ -650,21 +652,16 @@ LIMIT 1",
 
                                if ((isPostRequestElementSet('data')) || ((getOrderMultiPage() != 'Y') && ((!isAdmin()) && (!isExtensionActive('html_mail'))))) {
                                        // Pre-output categories
 
                                if ((isPostRequestElementSet('data')) || ((getOrderMultiPage() != 'Y') && ((!isAdmin()) && (!isExtensionActive('html_mail'))))) {
                                        // Pre-output categories
-                                       $content['category_selection'] = '';
-                                       foreach ($categories['id'] as $key => $value) {
-                                               $content['category_selection'] .= '      <option value="' . $value . '"';
-                                               if (($OLD_ORDER) && ($content['cat_id'] == $value)) $content['category_selection'] .= ' selected="selected"';
-                                               $content['category_selection'] .= '>' . $categories['name'][$key] . ' (' . $categories['userids'][$key] . ' {--USER_IN_CAT--})</option>';
-                                       } // END - foreach
+                                       $content['category_selection'] = generateCategoryOptionsList(((isExtensionActive('html_mail')) && (isPostRequestElementSet('html'))) ? postRequestElement('html') : 'N', getMemberId());
 
                                        // Mail type
                                        $content['type_selection'] = '';
                                        foreach ($types as $key => $value) {
                                                if (is_array($value)) {
                                                        // Output option line
 
                                        // Mail type
                                        $content['type_selection'] = '';
                                        foreach ($types as $key => $value) {
                                                if (is_array($value)) {
                                                        // Output option line
-                                                       $content['type_selection'] .= '      <option value="' . $types[$key][0] . '"';
-                                                       if (($OLD_ORDER) && ($content['payment_id'] == $types[$key][0])) $content['type_selection'] .= ' selected="selected"';
-                                                       $content['type_selection'] .= '>{%pipe,translateComma=' . $types[$key][1] . '%} {--PER_MAIL--} - ' . $types[$key][3] . ' - ' . round($types[$key][2]) . ' {--PAYMENT--}</option>';
+                                                       $content['type_selection'] .= '      <option value="' . $types[$key]['id'] . '"';
+                                                       if (($OLD_ORDER) && ($content['payment_id'] == $types[$key]['id'])) $content['type_selection'] .= ' selected="selected"';
+                                                       $content['type_selection'] .= '>{%pipe,translateComma=' . $types[$key]['price'] . '%} {--PER_MAIL--} - ' . $types[$key]['mail_title'] . ' - ' . round($types[$key]['payment']) . ' {--PAYMENT--}</option>';
                                                } // END - if
                                        } // END - foreach
 
                                                } // END - if
                                        } // END - foreach
 
@@ -673,29 +670,29 @@ LIMIT 1",
 
                                        if (isPostRequestElementSet('zip')) {
                                                // Output entered ZIP code
 
                                        if (isPostRequestElementSet('zip')) {
                                                // Output entered ZIP code
-                                               $content['zip_content'] = loadTemplate('member_order-zip2', true, postRequestElement('zip'));
+                                               $content['zip_content'] = loadTemplate('member_order_zip2', true, postRequestElement('zip'));
                                        } // END - if
 
                                        } // END - if
 
+                                       // No HTML extension installed by default
+                                       $content['html_extension'] = '<input type="hidden" name="html" value="N" />';
+
                                        // HTML extension
                                        if ((isExtensionActive('html_mail')) && (postRequestElement('html') == 'Y')) {
                                                // Extension is active so output valid HTML tags
                                        // HTML extension
                                        if ((isExtensionActive('html_mail')) && (postRequestElement('html') == 'Y')) {
                                                // Extension is active so output valid HTML tags
-                                               $content['html_extension'] = loadTemplate('member_order-html_ext', true, addValidHtmlTags());
-                                       } else {
-                                               // Extension not active and/or class not uploaded
-                                               $content['html_extension'] = '<tr><td colspan="3"><input type="hidden" name="html" value="N" /></td></tr>';
-                                       }
+                                               $content['html_extension'] = loadTemplate('member_order_html_ext', true);
+                                       } // END - if
 
                                        // Output form for page 2
                                        loadTemplate('member_order_page2', false, $content);
                                } else {
 
                                        // Output form for page 2
                                        loadTemplate('member_order_page2', false, $content);
                                } else {
+                                       // No HTML extension installed by default
+                                       $content['html_extension'] = '<input type="hidden" name="html" value="N" />';
+
                                        // Remember maybe entered ZIP code in constant
                                        if (isExtensionActive('html_mail')) {
                                                // Add some content when html extension is active
                                        // Remember maybe entered ZIP code in constant
                                        if (isExtensionActive('html_mail')) {
                                                // Add some content when html extension is active
-                                               $content['html_extension'] = loadTemplate('member_order-html_intro', true);
-                                       } else {
-                                               // No HTML extension installed
-                                               $content['html_extension'] = '<tr><td colspan="3"><input type="hidden" name="html" value="N" /></td></tr>';
-                                       }
+                                               $content['html_extension'] = loadTemplate('member_order_html_intro', true);
+                                       } // END - if
 
                                        // Default is no ZIP code
                                        $content['zip_content'] = '';
 
                                        // Default is no ZIP code
                                        $content['zip_content'] = '';
@@ -712,7 +709,7 @@ LIMIT 1",
                                                                'zip' => ''
                                                        );
                                                }
                                                                'zip' => ''
                                                        );
                                                }
-                                               $content['zip_content'] = loadTemplate('member_order-zip1', true, $data);
+                                               $content['zip_content'] = loadTemplate('member_order_zip1', true, $data);
                                        } // END - if
 
                                        // Output form for page 1 (ZIP code or HTML)
                                        } // END - if
 
                                        // Output form for page 1 (ZIP code or HTML)
index 366aa4fffb942812e6ab438db0b4b39c9ccd2d0e..f3357acd3a871ed60fd9856744373f4f21382264 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -38,7 +38,7 @@
 // Some security stuff...
 if (!defined('__SECURITY')) {
        // Don't call this directly!
 // Some security stuff...
 if (!defined('__SECURITY')) {
        // Don't call this directly!
-       die();
+       exit();
 } elseif (!isMember()) {
        // Not logged in
        redirectToIndexMemberOnlyModule();
 } elseif (!isMember()) {
        // Not logged in
        redirectToIndexMemberOnlyModule();
index 563eab9f39e225bf86089a8da62c64400a19c0d2..6b64c1a8436614d77b9eb822feb9498a187f962d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -45,6 +45,12 @@ if (!defined('__SECURITY')) {
 // Add description as navigation point
 addYouAreHereLink('member', __FILE__);
 
 // Add description as navigation point
 addYouAreHereLink('member', __FILE__);
 
+// Extension ext-user is highly required
+if ((!isExtensionActive('user')) && (!isAdmin())) {
+       displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=user%}');
+       return;
+} // END - if
+
 // Query for referral levels and percents
 $result_depths = SQL_QUERY('SELECT `level`,`percents` FROM `{?_MYSQL_PREFIX?}_refdepths` ORDER BY `level` ASC', __FILE__, __LINE__);
 
 // Query for referral levels and percents
 $result_depths = SQL_QUERY('SELECT `level`,`percents` FROM `{?_MYSQL_PREFIX?}_refdepths` ORDER BY `level` ASC', __FILE__, __LINE__);
 
@@ -53,9 +59,14 @@ $numDepths = SQL_NUMROWS($result_depths);
 
 // Add many more rows for the login/turbo/ref/order bonus
 // @TODO Should we rewrite this to a filter?
 
 // Add many more rows for the login/turbo/ref/order bonus
 // @TODO Should we rewrite this to a filter?
-if (!isExtensionActive('bonus')) $numDepths += 1;
-if (isExtensionInstalledAndNewer('bonus', '0.2.2')) $numDepths += 6;
-if (isExtensionInstalledAndNewer('bonus', '0.4.4')) $numDepths += 4;
+if (isExtensionActive('bonus')) {
+       // Extension ext-bonus is there, okay
+       if (isExtensionInstalledAndNewer('bonus', '0.2.2')) $numDepths += 6;
+       if (isExtensionInstalledAndNewer('bonus', '0.4.4')) $numDepths += 4;
+} else {
+       // Not installed ext-bonus
+       $numDepths += 1;
+}
 
 // Remember row count in constant
 $content['rowspan'] = ($numDepths * 2 + 15);
 
 // Remember row count in constant
 $content['rowspan'] = ($numDepths * 2 + 15);
@@ -89,11 +100,8 @@ while ($data = SQL_FETCHARRAY($result_depths)) {
        } // END - if
 
        // Load referral points
        } // END - if
 
        // Load referral points
-       $result_points = SQL_QUERY_ESC("SELECT
-       p.`points`,
-       p.`order_points`,
-       p.`locked_points`,
-       p.`locked_order_points`,
+       $result_points = SQL_QUERY_ESC('SELECT
+       ' . getAllPointColumns('p.', ',') . '
        r.`counter`
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
        r.`counter`
 FROM
        `{?_MYSQL_PREFIX?}_user_points` AS p
@@ -104,8 +112,8 @@ ON
        p.`ref_depth`=r.`level`
 WHERE
        p.`userid`=%s AND
        p.`ref_depth`=r.`level`
 WHERE
        p.`userid`=%s AND
-       ".$depth."
-LIMIT 1",
+       ' . $depth . '
+LIMIT 1',
                array(
                        getMemberId(),
                        convertZeroToNull($content['level'])
                array(
                        getMemberId(),
                        convertZeroToNull($content['level'])
@@ -116,11 +124,17 @@ LIMIT 1",
                // Load data
                $content = merge_array($content, SQL_FETCHARRAY($result_points));
 
                // Load data
                $content = merge_array($content, SQL_FETCHARRAY($result_points));
 
-               // Add all entries
+               // Add locked-/points
                $content['part_points']       += $content['points'];
                $content['part_points']       += $content['points'];
-               $content['part_order']        += $content['order_points'];
                $content['part_locked']       += $content['locked_points'];
                $content['part_locked']       += $content['locked_points'];
-               $content['part_locked_order'] += $content['locked_order_points'];
+
+               // For these columns, ext-order must be installed as well
+               if (isExtensionInstalled('order')) {
+                       $content['part_order']        += $content['order_points'];
+                       $content['part_locked_order'] += $content['locked_order_points'];
+               } // END - if
+
+               // Add referral counter
                $content['part_referrals']    += $content['counter'];
        } // END - if
 
                $content['part_referrals']    += $content['counter'];
        } // END - if
 
index 4ecc3cca97e98a874dfa3f44dfa226028c1c034e..70d0e433a1a3f252ab9143067aea3543cbec1ef1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -51,21 +51,31 @@ if ((!isExtensionActive('rallye')) && (!isAdmin())) {
 } // END - if
 
 // Check for possible running rallyes
 } // END - if
 
 // Check for possible running rallyes
-$ADD = " AND d.is_active='Y'";
+$ADD = " AND d.`is_active`='Y'";
 if (isAdmin()) $ADD = '';
 
 $result = SQL_QUERY("SELECT
 if (isAdmin()) $ADD = '';
 
 $result = SQL_QUERY("SELECT
-       d.id, d.admin_id, a.login, d.title, d.descr, d.template, d.start_time, d.end_time, d.min_users, d.min_prices
+       d.`id`,
+       d.`admin_id`,
+       a.`login`,
+       d.`title`,
+       d.`descr`,
+       d.`template`,
+       d.`start_time`,
+       d.`end_time`,
+       d.`min_users`,
+       d.`min_prices`
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data` AS d
 INNER JOIN
        `{?_MYSQL_PREFIX?}_admins` AS a
 ON
 FROM
        `{?_MYSQL_PREFIX?}_rallye_data` AS d
 INNER JOIN
        `{?_MYSQL_PREFIX?}_admins` AS a
 ON
-       d.admin_id=a.id
+       d.`admin_id`=a.`id`
 WHERE
 WHERE
-       d.notified='Y'" . $ADD . "
+       d.`notified`='Y'
+       " . $ADD . "
 ORDER BY
 ORDER BY
-       d.end_time ASC
+       d.`end_time` ASC
 LIMIT 1", __FILE__, __LINE__);
 
 if (SQL_NUMROWS($result) == 1) {
 LIMIT 1", __FILE__, __LINE__);
 
 if (SQL_NUMROWS($result) == 1) {
@@ -73,7 +83,7 @@ if (SQL_NUMROWS($result) == 1) {
        $content = SQL_FETCHARRAY($result);
 
        $expired = false;
        $content = SQL_FETCHARRAY($result);
 
        $expired = false;
-       if ($content['end_time'] < time()) {
+       if (($content['end_time'] < time()) && (getTotalConfirmedUser() >= $content['min_users']) && (getTotalRallyeWinners($content['id']) >= $content['min_prices'])) {
                // Rallye is expired
                $content['extras'] = '{--RALLYE_HAS_EXPIRED--}';
                $expired = true;
                // Rallye is expired
                $content['extras'] = '{--RALLYE_HAS_EXPIRED--}';
                $expired = true;
@@ -99,8 +109,8 @@ if (SQL_NUMROWS($result) == 1) {
        $content['min_prices'] = determineReferralRallyeMinimumPrices($content['min_prices']);
 
        // Set start and end time
        $content['min_prices'] = determineReferralRallyeMinimumPrices($content['min_prices']);
 
        // Set start and end time
-       $content['start'] = generateDateTime($content['start_time'], 1);
-       $content['end']   = generateDateTime($content['end_time']  , 1);
+       $content['start_time'] = generateDateTime($content['start_time'], 1);
+       $content['end_time']   = generateDateTime($content['end_time']  , 1);
 
        if ($expired === true) {
                $content['prices']       = addReferralRallyeWinners('member', $content['id']);
 
        if ($expired === true) {
                $content['prices']       = addReferralRallyeWinners('member', $content['id']);
index e4140d4747c4e13084cc89e7c3cb9c9fe64bc325..b75ce5da435cff6c05cc29a546274084085cd672 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        // User is not logged in
        redirectToIndexMemberOnlyModule();
 } elseif (!isMember()) {
        // User is not logged in
        redirectToIndexMemberOnlyModule();
@@ -67,7 +67,7 @@ if ((isFormSent('edit')) && (isPostRequestElementSet('id'))) {
                // Validate percents
                if ((($percents >= getConfig('refback_min_perc')) || (round($percents) == 0)) && ($percents <= getConfig('refback_max_perc'))) {
                        // Change ref-back for this direct id
                // Validate percents
                if ((($percents >= getConfig('refback_min_perc')) || (round($percents) == 0)) && ($percents <= getConfig('refback_max_perc'))) {
                        // Change ref-back for this direct id
-                       $status = updateMemberRefbackPercents(postRequestElement('id'), postRequestElement('refback_percents'), postRequestElement('refback_note'));
+                       $status = updateMemberRefbackPercents(postRequestElement('id'), postRequestElement('refback_percents'), postRequestElement('refback_notice'));
 
                        // Check status
                        if (isset($status['ok'])) {
 
                        // Check status
                        if (isset($status['ok'])) {
index 49f6b585e619b27b290a1be5f20c1f22808be606..51cd39a8b7969c1a73434d11beb80072eefa1a86 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 3853872b01a1cd6efb803653af618e16eb9fbcf8..e289fae8c3aba5670bed2c9865914e5b91243685 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        // User is not logged in
        redirectToIndexMemberOnlyModule();
 } elseif (!isMember()) {
        // User is not logged in
        redirectToIndexMemberOnlyModule();
index e47ab2436b9f70f48fb305ad269ef946346d6795..f7eeb29ce993cb77f4c67256356fb67646a6a483 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 4ea60d771b6414e38dee8fa66e3c75efad1d1c4d..8f037b6d562d7aed63b9d658ac554e339265e32e 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -52,14 +52,14 @@ if ((!isExtensionActive('surfbar')) && (!isAdmin())) {
 
 // Prepare content for output
 $content = array(
 
 // Prepare content for output
 $content = array(
-       'surfbar_total_urls'    => SURFBAR_GET_TOTAL_URLS('ACTIVE', 0)
+       'surfbar_total_urls'    => getSurfbarTotalUrls('ACTIVE', 0)
 );
 
 // In dynamic mode we need some more data
 if (getSurfbarPaymentModel() == 'DYNAMIC') {
        // Prepare content for dynamic surfbar
        $content = array(
 );
 
 // In dynamic mode we need some more data
 if (getSurfbarPaymentModel() == 'DYNAMIC') {
        // Prepare content for dynamic surfbar
        $content = array(
-               'surfbar_total_urls'  => SURFBAR_GET_TOTAL_URLS('ACTIVE', 0),
+               'surfbar_total_urls'  => getSurfbarTotalUrls('ACTIVE', 0),
        );
 } // END - if
 
        );
 } // END - if
 
index eda45cfd227d8058ff4dcd9014284a5db6dd5ee0..c31177ee1cbd454ccaa2882a384678a30137cc0f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index eeab36397d3c5a8ad2a2220466d11a48e0258cc8..f61680a15cffb6c3073231c0863cc77f002a744b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index ccf52971de92da40bd25546502fd966b63def185..d064e33cadd1a7428f653f1df9cc38ea1fe7c7f4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 }  elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 }  elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
index 4adcfa2f4da266bf8e0333097e1c6fed5891fa54..3e5d37b154d0ea50daea5a29a1dd9895d14a210c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -62,7 +62,7 @@ if (isPostRequestElementSet('member_theme')) {
        $newTheme = SQL_ESCAPE(postRequestElement('member_theme'));
 
        // Change to new theme
        $newTheme = SQL_ESCAPE(postRequestElement('member_theme'));
 
        // Change to new theme
-       setTheme($newTheme);
+       setMailerTheme($newTheme);
 
        // Theme saved!
        displayMessage('{--MEMBER_THEME_SAVED--}');
 
        // Theme saved!
        displayMessage('{--MEMBER_THEME_SAVED--}');
@@ -92,12 +92,12 @@ foreach ($includes as $inc) {
                loadInclude($inc);
 
                // Add found theme to array
                loadInclude($inc);
 
                // Add found theme to array
-               $themes['theme_unix'][]    = $dir;
-               $themes['theme_name'][]    = $GLOBALS['theme_data']['name'];
-               $themes['theme_author'][]  = $GLOBALS['theme_data']['author'];
-               $themes['theme_email'][]   = $GLOBALS['theme_data']['email'];
-               $themes['theme_url'][]     = $GLOBALS['theme_data']['url'];
-               $themes['theme_version'][] = $GLOBALS['theme_data']['version'];
+               array_push($themes['theme_unix']   , $dir);
+               array_push($themes['theme_name']   , $GLOBALS['theme_data']['name']);
+               array_push($themes['theme_author'] , $GLOBALS['theme_data']['author']);
+               array_push($themes['theme_email']  , $GLOBALS['theme_data']['email']);
+               array_push($themes['theme_url']    , $GLOBALS['theme_data']['url']);
+               array_push($themes['theme_version'], $GLOBALS['theme_data']['version']);
        } // END - if
 } // END - while
 
        } // END - if
 } // END - while
 
index 56a3b14ebe3b9d9ae82f99596d35f8b47ca2b18a..2d3bfaf4b137d7b3843933bfece80138cb60fc05 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -94,7 +94,7 @@ switch ($mode) {
                        $valid_recipient = isValidUserId(postRequestElement('to_userid'));
 
                        // Re-check receivers and own personal data
                        $valid_recipient = isValidUserId(postRequestElement('to_userid'));
 
                        // Re-check receivers and own personal data
-                       $result = SQL_QUERY_ESC("SELECT `userid`,`gender`,`surname`,`family`,`email` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid` IN ('%s','%s') AND `status`='CONFIRMED' LIMIT 2",
+                       $result = SQL_QUERY_ESC("SELECT `userid`,`gender`,`surname`,`family`,`email` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `userid` IN ('%s','%s') AND `status`='CONFIRMED'" . runFilterChain('user_exclusion_sql', ' ') . " LIMIT 2",
                                array(
                                        getMemberId(),
                                        bigintval(postRequestElement('to_userid'))
                                array(
                                        getMemberId(),
                                        bigintval(postRequestElement('to_userid'))
@@ -140,7 +140,7 @@ switch ($mode) {
                                $content['reason']  = postRequestElement('reason');
 
                                // Generate tranafer id
                                $content['reason']  = postRequestElement('reason');
 
                                // Generate tranafer id
-                               $content['trans_id'] = bigintval(generateRandomCode('10', mt_rand(0, 99999), getMemberId(), postRequestElement('reason')));
+                               $content['trans_id'] = bigintval(generateRandomCode('10', getRandomTan(), getMemberId(), postRequestElement('reason')));
 
                                // Add entries to both tables
                                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_transfers_in` (`userid`,`from_userid`,`points`,`reason`,`time_trans`,`trans_id`) VALUES (%s,%s,%s,'%s', UNIX_TIMESTAMP(),%s)",
 
                                // Add entries to both tables
                                SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_transfers_in` (`userid`,`from_userid`,`points`,`reason`,`time_trans`,`trans_id`) VALUES (%s,%s,%s,'%s', UNIX_TIMESTAMP(),%s)",
@@ -176,34 +176,34 @@ switch ($mode) {
                                sendEmail($content['sender']['userid'], '{--TRANSFER_MEMBER_SENDER_SUBJECT--}' . ': ' . $RECIPIENT, $message);
 
                                // At last send admin mail(s)
                                sendEmail($content['sender']['userid'], '{--TRANSFER_MEMBER_SENDER_SUBJECT--}' . ': ' . $RECIPIENT, $message);
 
                                // At last send admin mail(s)
-                               $adminSubject = sprintf("%s (%s->%s)", '{--TRANSFER_ADMIN_SUBJECT--}', $SENDER, $RECIPIENT);
+                               $adminSubject = sprintf("%s (%s->%s)", '{--ADMIN_TRANSFER_SUBJECT--}', $SENDER, $RECIPIENT);
                                sendAdminNotification($adminSubject, 'admin_transfer_points', $content);
 
                                // Transfer is completed
                                sendAdminNotification($adminSubject, 'admin_transfer_points', $content);
 
                                // Transfer is completed
-                               displayMessage('<div>{--TRANSFER_COMPLETED--}' . '</div><div><a href="{%url=modules.php?module=login&amp;what=transfer%}">{--TRANSFER_CONTINUE_OVERVIEW--}</a></div>');
+                               displayMessage('<div>{--MEMBER_TRANSFER_COMPLETED--}' . '</div><div><a href="{%url=modules.php?module=login&amp;what=transfer%}">{--MEMBER_TRANSFER_CONTINUE_OVERVIEW--}</a></div>');
                        } elseif ($valid_code === false) {
                                // Invalid Touring code!
                        } elseif ($valid_code === false) {
                                // Invalid Touring code!
-                               loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_CODE--}');
+                               loadTemplate('admin_settings_unsaved', false, '{--MEMBER_TRANSFER_INVALID_CODE--}');
                                unsetPostRequestElement('ok');
                        } elseif ($valid_pass === false) {
                                // Wrong password entered
                                unsetPostRequestElement('ok');
                        } elseif ($valid_pass === false) {
                                // Wrong password entered
-                               loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_PASSWORD--}');
+                               loadTemplate('admin_settings_unsaved', false, '{--MEMBER_TRANSFER_INVALID_PASSWORD--}');
                                unsetPostRequestElement('ok');
                        } elseif ($valid_amount === false) {
                                // Too much points entered
                                unsetPostRequestElement('ok');
                        } elseif ($valid_amount === false) {
                                // Too much points entered
-                               loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_POINTS--}');
+                               loadTemplate('admin_settings_unsaved', false, '{--MEMBER_TRANSFER_INVALID_POINTS--}');
                                unsetPostRequestElement('ok');
                        } elseif ($valid_reason === false) {
                                // No transfer reason entered
                                unsetPostRequestElement('ok');
                        } elseif ($valid_reason === false) {
                                // No transfer reason entered
-                               loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_REASON--}');
+                               loadTemplate('admin_settings_unsaved', false, '{--MEMBER_TRANSFER_INVALID_REASON--}');
                                unsetPostRequestElement('ok');
                        } elseif ($valid_recipient === false) {
                                // No recipient selected
                                unsetPostRequestElement('ok');
                        } elseif ($valid_recipient === false) {
                                // No recipient selected
-                               loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_RECIPIENT--}');
+                               loadTemplate('admin_settings_unsaved', false, '{--MEMBER_TRANSFER_INVALID_RECIPIENT--}');
                                unsetPostRequestElement('ok');
                        } elseif ($valid_data === false) {
                                // No recipient/sender selected
                                unsetPostRequestElement('ok');
                        } elseif ($valid_data === false) {
                                // No recipient/sender selected
-                               loadTemplate('admin_settings_unsaved', false, '{--TRANSFER_INVALID_DATA--}');
+                               loadTemplate('admin_settings_unsaved', false, '{--MEMBER_TRANSFER_INVALID_DATA--}');
                                unsetPostRequestElement('ok');
                        }
 
                                unsetPostRequestElement('ok');
                        }
 
@@ -213,7 +213,7 @@ switch ($mode) {
 
                if (!isFormSent()) {
                        // Load member list
 
                if (!isFormSent()) {
                        // Load member list
-                       $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status`='CONFIRMED' AND `opt_in`='Y' AND `userid` != '%s' ORDER BY `userid` ASC",
+                       $result = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `status`='CONFIRMED'" . runFilterChain('user_exclusion_sql', ' ') . " AND `opt_in`='Y' AND `userid` != '%s' ORDER BY `userid` ASC",
                                array(getMemberId()), __FILE__, __LINE__);
 
                        if (!SQL_HASZERONUMS($result)) {
                                array(getMemberId()), __FILE__, __LINE__);
 
                        if (!SQL_HASZERONUMS($result)) {
@@ -234,7 +234,7 @@ switch ($mode) {
                                SQL_FREERESULT($result);
                        } else {
                                // No one else is opt-in
                                SQL_FREERESULT($result);
                        } else {
                                // No one else is opt-in
-                               $OUT = displayMessage('{--TRANSFER_NO_ONE_ELSE_OPT_IN--}', true);
+                               $OUT = displayMessage('{--MEMBER_TRANSFER_NO_ONE_ELSE_OPT_IN--}', true);
                                $content['to_disabled'] = ' disabled="disabled"';
                        }
 
                                $content['to_disabled'] = ' disabled="disabled"';
                        }
 
@@ -244,7 +244,7 @@ switch ($mode) {
                        // Generate Code
                        if (getTransferCode() > 0) {
                                // Generate random number
                        // Generate Code
                        if (getTransferCode() > 0) {
                                // Generate random number
-                               $rand = mt_rand(0, 99999);
+                               $rand = getRandomTan();
 
                                // Generate CAPTCHA code
                                $code = generateRandomCode(getTransferCode(), $rand, getMemberId(), $content['max_transferable']);
 
                                // Generate CAPTCHA code
                                $code = generateRandomCode(getTransferCode(), $rand, getMemberId(), $content['max_transferable']);
@@ -256,7 +256,7 @@ switch ($mode) {
                                $content['captcha_code'] = '<input type="hidden" name="code_chk" value="' . $rand . '" /><input type="text" name="code" class="form_field" size="5" maxlength="7"' . $content['to_disabled'] . ' />&nbsp;' . $img;
                        } else {
                                $code = '00000';
                                $content['captcha_code'] = '<input type="hidden" name="code_chk" value="' . $rand . '" /><input type="text" name="code" class="form_field" size="5" maxlength="7"' . $content['to_disabled'] . ' />&nbsp;' . $img;
                        } else {
                                $code = '00000';
-                               $content['captcha_code'] = displayMessage('{--TRANSFER_NO_CODE--}', true);
+                               $content['captcha_code'] = displayMessage('{--MEMBER_TRANSFER_NO_CODE--}', true);
                        }
 
                        // Init points/reason
                        }
 
                        // Init points/reason
@@ -282,16 +282,16 @@ switch ($mode) {
                switch ($mode) {
                        case 'list_in':
                                $sql = 'SELECT `trans_id`,`from_userid` AS party_userid,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_in` WHERE `userid`=%s ORDER BY `time_trans` DESC LIMIT {?transfer_max?}';
                switch ($mode) {
                        case 'list_in':
                                $sql = 'SELECT `trans_id`,`from_userid` AS party_userid,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_in` WHERE `userid`=%s ORDER BY `time_trans` DESC LIMIT {?transfer_max?}';
-                               $nothingMessage     = '{--TRANSFER_NO_INCOMING_TRANSFERS--}';
-                               $content['balance'] = '{--TRANSFER_TOTAL_INCOMING--}';
-                               $content['title']   = '{--TRANSFER_LIST_INCOMING--}';
+                               $nothingMessage     = '{--MEMBER_TRANSFER_NO_INCOMING_TRANSFERS--}';
+                               $content['balance'] = '{--MEMBER_TRANSFER_TOTAL_INCOMING--}';
+                               $content['title']   = '{--MEMBER_LIST_INCOMING_TRANSFER_TITLE--}';
                                break;
 
                        case 'list_out':
                                $sql = 'SELECT `trans_id`,`to_userid` AS party_userid,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_out` WHERE `userid`=%s ORDER BY `time_trans` DESC LIMIT {?transfer_max?}';
                                break;
 
                        case 'list_out':
                                $sql = 'SELECT `trans_id`,`to_userid` AS party_userid,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_out` WHERE `userid`=%s ORDER BY `time_trans` DESC LIMIT {?transfer_max?}';
-                               $nothingMessage     = '{--TRANSFER_NO_OUTGOING_TRANSFERS--}';
+                               $nothingMessage     = '{--MEMBER_TRANSFER_NO_OUTGOING_TRANSFERS--}';
                                $content['balance'] = '{--TRANSFER_TOTAL_OUTGOING--}';
                                $content['balance'] = '{--TRANSFER_TOTAL_OUTGOING--}';
-                               $content['title']   = '{--TRANSFER_LIST_OUTGOING--}';
+                               $content['title']   = '{--MEMBER_LIST_OUTGOING_TRANSFER_TITLE--}';
                                break;
                } // END - switch
 
                                break;
                } // END - switch
 
@@ -361,7 +361,7 @@ INDEX (`party_userid`)
                $result = SQL_QUERY_ESC("SELECT `trans_id`,`from_userid`,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_in` WHERE `userid`=%s ORDER BY `id` ASC LIMIT {?transfer_max?}",
                        array(getMemberId()), __FILE__, __LINE__);
                while ($content = SQL_FETCHROW($result)) {
                $result = SQL_QUERY_ESC("SELECT `trans_id`,`from_userid`,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_in` WHERE `userid`=%s ORDER BY `id` ASC LIMIT {?transfer_max?}",
                        array(getMemberId()), __FILE__, __LINE__);
                while ($content = SQL_FETCHROW($result)) {
-                       $content[] = 'IN';
+                       array_push($content, 'IN');
                        $content = implode("','", $content);
                        $res_temp = SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_%s_transfers_tmp` (`trans_id`,`party_userid`,`points`,`reason`,`time_trans`,`trans_type`) VALUES ('" . $content . "')", array(getMemberId()), __FILE__, __LINE__);
                } // END - while
                        $content = implode("','", $content);
                        $res_temp = SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_%s_transfers_tmp` (`trans_id`,`party_userid`,`points`,`reason`,`time_trans`,`trans_type`) VALUES ('" . $content . "')", array(getMemberId()), __FILE__, __LINE__);
                } // END - while
@@ -373,7 +373,7 @@ INDEX (`party_userid`)
                $result = SQL_QUERY_ESC("SELECT `trans_id`,`to_userid`,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_out` WHERE `userid`=%s ORDER BY `id` LIMIT {?transfer_max?}",
                        array(getMemberId()), __FILE__, __LINE__);
                while ($content = SQL_FETCHROW($result)) {
                $result = SQL_QUERY_ESC("SELECT `trans_id`,`to_userid`,`points`,`reason`,`time_trans` FROM `{?_MYSQL_PREFIX?}_user_transfers_out` WHERE `userid`=%s ORDER BY `id` LIMIT {?transfer_max?}",
                        array(getMemberId()), __FILE__, __LINE__);
                while ($content = SQL_FETCHROW($result)) {
-                       $content[] = 'OUT';
+                       array_push($content, 'OUT');
                        $content = implode("','", $content);
                        $res_temp = SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_%s_transfers_tmp` (`trans_id`,`party_userid`,`points`,`reason`,`time_trans`,`trans_type`) VALUES ('" . $content . "')", array(getMemberId()), __FILE__, __LINE__);
                } // END - while
                        $content = implode("','", $content);
                        $res_temp = SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_%s_transfers_tmp` (`trans_id`,`party_userid`,`points`,`reason`,`time_trans`,`trans_type`) VALUES ('" . $content . "')", array(getMemberId()), __FILE__, __LINE__);
                } // END - while
@@ -483,11 +483,11 @@ INDEX (`party_userid`)
                // Set 'new transfer' link according to above option
                switch (getUserData('opt_in')) {
                        case 'Y':
                // Set 'new transfer' link according to above option
                switch (getUserData('opt_in')) {
                        case 'Y':
-                               $content['new_link'] = '<a href="{%url=modules.php?module=login&amp;what=transfer&amp;do=new%}" title="{--TRANSFER_NOW_TITLE--}">{--TRANSFER_NOW_LINK--}</a>';
+                               $content['new_link'] = '<a href="{%url=modules.php?module=login&amp;what=transfer&amp;do=new%}" title="{--MEMBER_TRANSFER_NOW_LINK_TITLE--}">{--MEMBER_TRANSFER_NOW_LINK--}</a>';
                                break;
 
                        case 'N':
                                break;
 
                        case 'N':
-                               $content['new_link'] = '{--TRANSFER_PLEASE_ALLOW_OPT_IN--}';
+                               $content['new_link'] = '{--MEMBER_PLEASE_ALLOW_TRANSFER_RECEIVE--}';
                                break;
                } // END - switch
 
                                break;
                } // END - switch
 
@@ -510,7 +510,7 @@ LIMIT 1",
                if (SQL_NUMROWS($result) == 1) {
                        // Load newest transaction
                        list($newest) = SQL_FETCHROW($result);
                if (SQL_NUMROWS($result) == 1) {
                        // Load newest transaction
                        list($newest) = SQL_FETCHROW($result);
-                       $content['settings'] = '{%message,TRANSFER_LATEST_IS=' . generateDateTime($newest, '3') . '%}';
+                       $content['settings'] = '{%message,MEMBER_TRANSFER_LATEST_IS=' . generateDateTime($newest, '3') . '%}';
                } else {
                        // Load template
                        $content['settings'] = loadTemplate('member_transfer_settings', true, $content);
                } else {
                        // Load template
                        $content['settings'] = loadTemplate('member_transfer_settings', true, $content);
index 88d8408cda57da357bb2b3c033d4f4c7f9708a76..16e247338a201aa782239a91d7ecb5a92a5b54de 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -194,7 +194,7 @@ LIMIT 1",
                                break;
 
                        default: // Unknown type detected!
                                break;
 
                        default: // Unknown type detected!
-                               debug_report_bug(__FILE__, __LINE__, sprintf("Unknown mail type %s detected.", $row['link_type']));
+                               reportBug(__FILE__, __LINE__, sprintf("Unknown mail type %s detected.", $row['link_type']));
                                break;
                }
 
                                break;
                }
 
index 31ff7044842ed5c2590639f1daaa4a51d1957a3f..f507e8461de994bc66bdd9cf3d1e0a563b37308b 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
 } elseif (!isMember()) {
        redirectToIndexMemberOnlyModule();
 }
@@ -48,7 +48,7 @@ addYouAreHereLink('member', basename(__FILE__));
 // Export data for template
 $content = array(
        'last_online' => generateDateTime($GLOBALS['last_online']['online']),
 // Export data for template
 $content = array(
        'last_online' => generateDateTime($GLOBALS['last_online']['online']),
-       'last_module' => getTitleFromMenu('member', $GLOBALS['last_online']['module'])
+       'last_what' => getTitleFromMenu('member', $GLOBALS['last_online']['module'])
 );
 
 // Load header template
 );
 
 // Load header template
index 401b1c88e2cde3442c79f0ab7df7deb3934219a6..2086288fef4fe2da3e5118865ddf3acf0bd5ba4c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isMember()) {
        // User is not logged in
        redirectToIndexMemberOnlyModule();
 } elseif (!isMember()) {
        // User is not logged in
        redirectToIndexMemberOnlyModule();
index d2a67e94c5cc4abb7bda2b7ded859f7734c1ee0e..484ba98daff96555d28ba2feef79bbd101586848 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -38,7 +38,7 @@
 // Some security stuff...
 $url = '';
 if (!defined('__SECURITY')) {
 // Some security stuff...
 $url = '';
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif ((!isExtensionActive('order')) && (!isAdmin())) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=order%}');
        return;
 } elseif ((!isExtensionActive('order')) && (!isAdmin())) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=order%}');
        return;
@@ -124,7 +124,7 @@ if (empty($url)) {
                );
 
                // Output back bottom
                );
 
                // Output back bottom
-               loadTemplate('member_order-back');
+               loadTemplate('member_order_thanks');
        } else {
                // Matching line not found or already 'placed' in send queue
                redirectToUrl('modules.php?module=login');
        } else {
                // Matching line not found or already 'placed' in send queue
                redirectToUrl('modules.php?module=login');
index e4c2617b850c3583774394992cfa7bd8d5b59270..108f1847a9f7d79d4d6c0406b5416bfacb8ca8f3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
@@ -36,7 +36,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif ((!isExtensionActive('sponsor'))) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
 } elseif ((!isExtensionActive('sponsor'))) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
@@ -46,7 +46,7 @@ if (!defined('__SECURITY')) {
        return;
 } elseif ((!isWhatSet()) || (getWhat() == '')) {
        // Empty what value detected!
        return;
 } elseif ((!isWhatSet()) || (getWhat() == '')) {
        // Empty what value detected!
-       debug_report_bug(__FUNCTION__, __LINE__, 'what is empty.');
+       reportBug(__FUNCTION__, __LINE__, 'what is empty.');
 }
 
 // A valid sponsor login and we are allowed to enter this module so let's
 }
 
 // A valid sponsor login and we are allowed to enter this module so let's
index 1371cc619e8959f0f2c60eebbf8e767238656dc7..6888a955a991749cb8c986e86655d6e2c752e533 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isExtensionActive('sponsor')) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
 } elseif (!isExtensionActive('sponsor')) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
index 0a23bcf0fb43c8c7e58a18faf943da84f6e98be8..f649570a90e7b64cf690dd058fe8623fdd5530d2 100644 (file)
@@ -36,7 +36,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif ((!isExtensionActive('sponsor'))) {
        addFatalMessage(__FILE__, __LINE__, '{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
 } elseif ((!isExtensionActive('sponsor'))) {
        addFatalMessage(__FILE__, __LINE__, '{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
index dc656b70187df47cf3769e034fa0de3a93f01aae..ba80c7581ad859e35d0a2d62bad36c6868f97877 100644 (file)
@@ -36,7 +36,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif ((!isExtensionActive('sponsor'))) {
        addFatalMessage(__FILE__, __LINE__, '{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
 } elseif ((!isExtensionActive('sponsor'))) {
        addFatalMessage(__FILE__, __LINE__, '{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
index ca4336143952d1e355485ca3a0b58d080032513a..006210e96add7c21345a47034a56e36881073d73 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isExtensionActive('sponsor')) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
 } elseif (!isExtensionActive('sponsor')) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
index d05758d8699f6faaf47a893cfb5b57610568ba72..ded3689a7354e81c05947162057e4cf01adf81b0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } elseif (!isExtensionActive('sponsor')) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
 } elseif (!isExtensionActive('sponsor')) {
        displayMessage('{%pipe,generateExtensionInactiveNotInstalledMessage=sponsor%}');
        return;
index 566ebae85d0ad02d2fb2af6188405727a9e8c3c6..0ebfc0def6a3e4705bfda38df699d59b99b973de 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 9f24556139a203cacc84692953fab7b6dfbf17e8..516e3a7ec6313f468c0ed9a3a4817cbf22511286 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -57,7 +57,7 @@ if ((getBegRanks() > 0) && (!isCssOutputMode())) {
        // Shall we exclude webmaster's own userid?
        if ((!isBegIncludeOwnEnabled()) && (isValidUserId(getBegUserid()))) {
                // Exclude it
        // Shall we exclude webmaster's own userid?
        if ((!isBegIncludeOwnEnabled()) && (isValidUserId(getBegUserid()))) {
                // Exclude it
-               $whereStatement = " AND `userid` != {?beg_userid?}";
+               $whereStatement .= ' AND `userid` != {?beg_userid?}';
        } // END - if
 
        // Let's check if there are some points left we can pay...
        } // END - if
 
        // Let's check if there are some points left we can pay...
@@ -73,7 +73,8 @@ if ((getBegRanks() > 0) && (!isCssOutputMode())) {
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       `status`='CONFIRMED'" . $whereStatement . " AND
+       `status`='CONFIRMED'" . $whereStatement . "
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
        `beg_points` > 0
 ORDER BY
        `beg_points` DESC,
        `beg_points` > 0
 ORDER BY
        `beg_points` DESC,
index 2d56553e2f752e6ed437e34378bfdfb40afbb5f9..68f0434bcf1447b834521d80dac0689ee7951d0f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -51,7 +51,7 @@ if (!defined('__SECURITY')) {
 
 if ((getBonusRanks() > 0) && (!isCssOutputMode())) {
        // Extension 'autopurge' is inactive or purging of inactive accounts is deactivated
 
 if ((getBonusRanks() > 0) && (!isCssOutputMode())) {
        // Extension 'autopurge' is inactive or purging of inactive accounts is deactivated
-       $whereStatement = "WHERE `status`='CONFIRMED'";
+       $whereStatement = runFilterChain('user_exclusion_sql', "WHERE `status`='CONFIRMED'");
 
        // Shall I keep inactive members away from here? (mostly wanted in an "active-rallye" ...)
        if ((isExtensionActive('autopurge')) && ((getApInactiveSince() > 0))) {
 
        // Shall I keep inactive members away from here? (mostly wanted in an "active-rallye" ...)
        if ((isExtensionActive('autopurge')) && ((getApInactiveSince() > 0))) {
@@ -69,7 +69,8 @@ if ((getBonusRanks() > 0) && (!isCssOutputMode())) {
 
        // Run SQL string to check for accounts
        $result_main = SQL_QUERY('SELECT
 
        // Run SQL string to check for accounts
        $result_main = SQL_QUERY('SELECT
-       `userid`,`email`,`gender`,`surname`,`family`, (0' . $add . ') AS `points`
+       `userid`,
+       (0' . $add . ') AS `points`
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 ' . $whereStatement . '
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 ' . $whereStatement . '
index b9332024a572330e1fd59eaabb710dafc6d5d5ce..618998950575caf1efa3565e9870d09720e32fb6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 67b2a44449ff680b3a0a645dc81c161ce7497f40..c3ef447145b592786135dbbe97f013832ecab299 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 12dd105bb298da0153e46a7f2a4cdda4a99bfdf0..92103e3663768f480725717e1287343d771f1329 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -41,7 +41,7 @@ if (!defined('__SECURITY')) {
 } // END - if
 
 // Load more function libraries or includes
 } // END - if
 
 // Load more function libraries or includes
-foreach (array('request-functions', 'session-functions', 'code-functions', 'language-functions', 'sql-functions', 'expression-functions', 'filter-functions', 'revision-functions', 'filters', 'mysql-manager', 'extensions-functions', 'handler') as $lib) {
+foreach (array('request-functions', 'session-functions', 'code-functions', 'language-functions', 'sql-functions', 'expression-functions', 'filter-functions', 'revision-functions', 'filters', 'mysql-manager', 'extensions-functions', 'email-functions', 'handler') as $lib) {
        // Load special functions
        loadIncludeOnce('inc/' . $lib . '.php');
 } // END - foreach
        // Load special functions
        loadIncludeOnce('inc/' . $lib . '.php');
 } // END - foreach
@@ -62,8 +62,8 @@ initRequest();
 initMemberId();
 
 // Set important header_sent
 initMemberId();
 
 // Set important header_sent
-if (!isset($GLOBALS['header_sent'])) {
-       $GLOBALS['header_sent'] = '0';
+if (!isset($GLOBALS['__header_sent'])) {
+       $GLOBALS['__header_sent'] = '0';
 } // END - if
 
 // Init fatal messages
 } // END - if
 
 // Init fatal messages
@@ -110,15 +110,15 @@ if ((!isInstalling()) && (!isInstallationPhase())) {
                                loadIncludeOnce('inc/load_cache.php');
                        } else {
                                // Wrong database?
                                loadIncludeOnce('inc/load_cache.php');
                        } else {
                                // Wrong database?
-                               debug_report_bug(__FILE__, __LINE__, 'Wrong database selected.');
+                               reportBug(__FILE__, __LINE__, 'Wrong database selected.');
                        }
                } else {
                        // No link to database!
                        }
                } else {
                        // No link to database!
-                       debug_report_bug(__FILE__, __LINE__, 'Database link is not yet up.');
+                       reportBug(__FILE__, __LINE__, 'Database link is not yet up.');
                }
        } else {
                // Maybe you forgot to enter your database login?
                }
        } else {
                // Maybe you forgot to enter your database login?
-               debug_report_bug(__FILE__, __LINE__, 'Database login is missing.');
+               reportBug(__FILE__, __LINE__, 'Database login is missing.');
        }
 } else {
        // Default output is 'direct' for HTML output
        }
 } else {
        // Default output is 'direct' for HTML output
@@ -145,7 +145,10 @@ if ((!isInstalling()) && (!isInstallationPhase())) {
                loadIncludeOnce('inc/' . $inc . '.php');
        } // END - foreach
 
                loadIncludeOnce('inc/' . $inc . '.php');
        } // END - foreach
 
-       // Check wether we are in installation routine
+       // Init installer
+       initInstaller();
+
+       // Check whether we are in installation routine
        if ((!isInstalling()) && (!isCssOutputMode()) && (!isRawOutputMode())) {
                // Redirect to the URL
                redirectToUrl('install.php');
        if ((!isInstalling()) && (!isCssOutputMode()) && (!isRawOutputMode())) {
                // Redirect to the URL
                redirectToUrl('install.php');
index 50b4e88d02489c41851c72c2c4c821c64336099c..c72706cbd7a135ae93c65367927a18aca8c93ab6 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,16 +42,19 @@ if (!defined('__SECURITY')) {
 
 // "Getter" for module description
 // @TODO Can we cache this?
 
 // "Getter" for module description
 // @TODO Can we cache this?
-function getTitleFromMenu ($mode, $what, $column = 'what', $ADD='') {
+function getTitleFromMenu ($mode, $what, $column = 'what', $ADD = '') {
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'mode=' . $mode . ',what=' . $what . ',column=' . $column . ',add=' . $ADD);
+
        // Fix empty 'what'
        if (empty($what)) {
                $what = getIndexHome();
        } elseif ((isGetRequestElementSet('action')) && ($column == 'what')) {
                // Get it from action
                return getTitleFromMenu($mode, getAction(), 'action', $ADD);
        // Fix empty 'what'
        if (empty($what)) {
                $what = getIndexHome();
        } elseif ((isGetRequestElementSet('action')) && ($column == 'what')) {
                // Get it from action
                return getTitleFromMenu($mode, getAction(), 'action', $ADD);
-       } elseif ($what == 'overview') {
+       } elseif ($what == 'welcome') {
                // Overview page
                // Overview page
-               return '{--WHAT_IS_OVERVIEW--}';
+               return '{--WHAT_IS_WELCOME--}';
        }
 
        // Default is not found
        }
 
        // Default is not found
@@ -163,7 +166,7 @@ function addYouAreHereLink ($accessLevel, $FQFN, $return = false) {
 
                // Can we close the you-are-here navigation?
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $type . 'getWhat()=' . getWhat());
 
                // Can we close the you-are-here navigation?
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $type . 'getWhat()=' . getWhat());
-               if (($type == 'what') || (($type == 'action') && ((!isWhatSet()) || (getWhat() == 'overview')))) {
+               if (($type == 'what') || (($type == 'action') && ((!isWhatSet()) || (getWhat() == 'welcome')))) {
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $type);
                        // Add closing div and br-tag
                        $GLOBALS['nav_depth'] = '0';
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'type=' . $type);
                        // Add closing div and br-tag
                        $GLOBALS['nav_depth'] = '0';
@@ -378,7 +381,7 @@ ORDER BY
        } // END - if
 }
 
        } // END - if
 }
 
-// Checks wether the current user is a member
+// Checks whether the current user is a member
 function isMember () {
        // By default no member
        $ret = false;
 function isMember () {
        // By default no member
        $ret = false;
@@ -423,7 +426,7 @@ function isMember () {
                // So did we now have valid data and an unlocked user?
                if ((getUserData('status') == 'CONFIRMED') && ($valPass == getSession('u_hash'))) {
                        // Transfer last module and online time
                // So did we now have valid data and an unlocked user?
                if ((getUserData('status') == 'CONFIRMED') && ($valPass == getSession('u_hash'))) {
                        // Transfer last module and online time
-                       $GLOBALS['last_online']['module'] = getUserData('last_module');
+                       $GLOBALS['last_online']['module'] = getUserData(getUserLastWhatName());
                        $GLOBALS['last_online']['online'] = getUserData('last_online');
 
                        // Account is confirmed and all cookie data is valid so he is definely logged in! :-)
                        $GLOBALS['last_online']['online'] = getUserData('last_online');
 
                        // Account is confirmed and all cookie data is valid so he is definely logged in! :-)
@@ -453,7 +456,7 @@ function fetchUserData ($value, $column = 'userid') {
                return false;
        } elseif (is_null($value)) {
                // This shall never happen, so please report it
                return false;
        } elseif (is_null($value)) {
                // This shall never happen, so please report it
-               debug_report_bug(__FUNCTION__, __LINE__, 'value=NULL,column=' . $column . ' - value can never be NULL');
+               reportBug(__FUNCTION__, __LINE__, 'value=NULL,column=' . $column . ' - value can never be NULL');
        }
 
        // If we should look for userid secure&set it here
        }
 
        // If we should look for userid secure&set it here
@@ -467,7 +470,7 @@ function fetchUserData ($value, $column = 'userid') {
                // Don't look for invalid userids...
                if (!isValidUserId($value)) {
                        // Invalid, so abort here
                // Don't look for invalid userids...
                if (!isValidUserId($value)) {
                        // Invalid, so abort here
-                       debug_report_bug(__FUNCTION__, __LINE__, 'User id ' . $value . ' is invalid.');
+                       reportBug(__FUNCTION__, __LINE__, 'User id ' . $value . ' is invalid.');
                } elseif (isUserDataValid()) {
                        // Use cache, so it is fine
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' is valid, using cache #1');
                } elseif (isUserDataValid()) {
                        // Use cache, so it is fine
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'value=' . $value . ' is valid, using cache #1');
@@ -482,14 +485,11 @@ function fetchUserData ($value, $column = 'userid') {
        // By default none was found
        $found = false;
 
        // By default none was found
        $found = false;
 
-       // Extra statements
-       $ADD = '';
-       if (isExtensionInstalledAndNewer('user', '0.3.5')) {
-               $ADD = ', UNIX_TIMESTAMP(`lock_timestamp`) AS `lock_timestamp`';
-       } // END - if
+       // Extra SQL statements
+       $ADD = runFilterChain('convert_user_data_columns', '');
 
        // Query for the user
 
        // Query for the user
-       $result = SQL_QUERY_ESC("SELECT *".$ADD." FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `%s`='%s' LIMIT 1",
+       $result = SQL_QUERY_ESC("SELECT *" . $ADD . " FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `%s`='%s' LIMIT 1",
                array($column, $value), __FUNCTION__, __LINE__);
 
        // Do we have a record?
                array($column, $value), __FUNCTION__, __LINE__);
 
        // Do we have a record?
@@ -541,7 +541,12 @@ function fetchUserData ($value, $column = 'userid') {
        return $found;
 }
 
        return $found;
 }
 
-// This patched function will reduce many SELECT queries for the specified or current admin login
+/*
+ * Checks whether the current session bears a valid admin id and password hash.
+ *
+ * This patched function will reduce many SELECT queries for the current admin
+ * login.
+ */
 function isAdmin () {
        // No admin in installation phase!
        if ((isInstallationPhase()) || (!isAdminRegistered())) {
 function isAdmin () {
        // No admin in installation phase!
        if ((isInstallationPhase()) || (!isAdminRegistered())) {
@@ -551,7 +556,7 @@ function isAdmin () {
        // Init variables
        $ret = false;
        $adminId = '0';
        // Init variables
        $ret = false;
        $adminId = '0';
-       $passCookie = '';
+       $passwordFromCookie = '';
        $valPass = '';
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminId);
 
        $valPass = '';
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $adminId);
 
@@ -559,12 +564,16 @@ function isAdmin () {
        if ((isSessionVariableSet('admin_id')) && (isSessionVariableSet('admin_md5'))) {
                // Get admin login and password from session/cookies
                $adminId    = getCurrentAdminId();
        if ((isSessionVariableSet('admin_id')) && (isSessionVariableSet('admin_md5'))) {
                // Get admin login and password from session/cookies
                $adminId    = getCurrentAdminId();
-               $passCookie = getAdminMd5();
+               $passwordFromCookie = getAdminMd5();
        } // END - if
        } // END - if
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'mainId=' . $adminId . 'passCookie=' . $passCookie);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'adminId=' . $adminId . 'passwordFromCookie=' . $passwordFromCookie);
 
        // Abort if admin id is zero
        if ($adminId == '0') {
 
        // Abort if admin id is zero
        if ($adminId == '0') {
+               // A very noisy debug message ...
+               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Current adminId is zero. isSessionVariableSet(admin_id)=' . intval(isSessionVariableSet('admin_id')) . ',isSessionVariableSet(admin_md5)=' . intval(isSessionVariableSet('admin_md5')));
+
+               // Abort here now
                return false;
        } // END - if
 
                return false;
        } // END - if
 
@@ -577,7 +586,7 @@ function isAdmin () {
                if (isset($GLOBALS['admin_hash'])) {
                        // Use cached string
                        $valPass = $GLOBALS['admin_hash'];
                if (isset($GLOBALS['admin_hash'])) {
                        // Use cached string
                        $valPass = $GLOBALS['admin_hash'];
-               } elseif ((!empty($passCookie)) && (isAdminHashSet($adminId) === true) && (!empty($adminId))) {
+               } elseif ((!empty($passwordFromCookie)) && (isAdminHashSet($adminId) === true) && (!empty($adminId))) {
                        // Login data is valid or not?
                        $valPass = encodeHashForCookie(getAdminHash($adminId));
 
                        // Login data is valid or not?
                        $valPass = encodeHashForCookie(getAdminHash($adminId));
 
@@ -596,8 +605,8 @@ function isAdmin () {
 
                if (!empty($valPass)) {
                        // Check if password is valid
 
                if (!empty($valPass)) {
                        // Check if password is valid
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '(' . $valPass . '==' . $passCookie . ')='.intval($valPass == $passCookie));
-                       $GLOBALS[__FUNCTION__][$adminId] = (($GLOBALS['admin_hash'] == $passCookie) || ((strlen($GLOBALS['admin_hash']) == 32) && ($GLOBALS['admin_hash'] == md5($passCookie))) || (($GLOBALS['admin_hash'] == '*FAILED*') && (!isExtensionActive('cache'))));
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '(' . $valPass . '==' . $passwordFromCookie . ')='.intval($valPass == $passwordFromCookie));
+                       $GLOBALS[__FUNCTION__][$adminId] = ($GLOBALS['admin_hash'] == $passwordFromCookie);
                } // END - if
        } // END - if
 
                } // END - if
        } // END - if
 
@@ -617,6 +626,7 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
                        __FUNCTION__, __LINE__);
                        break;
 
                        __FUNCTION__, __LINE__);
                        break;
 
+               case 'admin':
                case 'member':
                        // Members are allowed to set to zero mails per day (we will change this soon!)
                        $result = SQL_QUERY('SELECT `value`,`comment` FROM `{?_MYSQL_PREFIX?}_max_receive` ORDER BY `value` ASC',
                case 'member':
                        // Members are allowed to set to zero mails per day (we will change this soon!)
                        $result = SQL_QUERY('SELECT `value`,`comment` FROM `{?_MYSQL_PREFIX?}_max_receive` ORDER BY `value` ASC',
@@ -633,7 +643,11 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        $OUT .= '      <option value="' . $content['value'] . '"';
                $OUT = '';
                while ($content = SQL_FETCHARRAY($result)) {
                        $OUT .= '      <option value="' . $content['value'] . '"';
-                       if (postRequestElement('max_mails') == $content['value']) $OUT .= ' selected="selected"';
+
+                       if (postRequestElement('max_mails') == $content['value']) {
+                               $OUT .= ' selected="selected"';
+                       } // END - if
+
                        $OUT .= '>' . $content['value'] . ' {--PER_DAY--}';
                        if (!empty($content['comment'])) $OUT .= '(' . $content['comment'] . ')';
                        $OUT .= '</option>';
                        $OUT .= '>' . $content['value'] . ' {--PER_DAY--}';
                        if (!empty($content['comment'])) $OUT .= '(' . $content['comment'] . ')';
                        $OUT .= '</option>';
@@ -643,7 +657,7 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
                $OUT = loadTemplate(($mode . '_receive_table'), true, $OUT);
        } else {
                // Maybe the admin has to setup some maximum values?
                $OUT = loadTemplate(($mode . '_receive_table'), true, $OUT);
        } else {
                // Maybe the admin has to setup some maximum values?
-               debug_report_bug(__FUNCTION__, __LINE__, 'Nothing is being done here?');
+               reportBug(__FUNCTION__, __LINE__, 'Nothing is being done here?');
        }
 
        // Free result
        }
 
        // Free result
@@ -658,7 +672,7 @@ function addMaxReceiveList ($mode, $default = '', $return = false) {
        }
 }
 
        }
 }
 
-// Checks wether the given email address is used.
+// Checks whether the given email address is used.
 function isEmailTaken ($email) {
        // Default is no userid
        $useridSql = ' IS NOT NULL';
 function isEmailTaken ($email) {
        // Default is no userid
        $useridSql = ' IS NOT NULL';
@@ -723,7 +737,7 @@ function isMenuActionValid ($mode, $action, $what, $updateEntry = false) {
                                $action,
                                $what
                        ), __FUNCTION__, __LINE__, false);
                                $action,
                                $what
                        ), __FUNCTION__, __LINE__, false);
-       } elseif (($what != 'overview') && (!empty($what))) {
+       } elseif (($what != 'welcome') && (!empty($what))) {
                // Other actions
                $sql = SQL_QUERY_ESC("SELECT `id`,`what` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND `what`='%s'".$add." ORDER BY `action` DESC LIMIT 1",
                        array(
                // Other actions
                $sql = SQL_QUERY_ESC("SELECT `id`,`what` FROM `{?_MYSQL_PREFIX?}_%s_menu` WHERE `action`='%s' AND `what`='%s'".$add." ORDER BY `action` DESC LIMIT 1",
                        array(
@@ -770,16 +784,7 @@ function getActionFromModuleWhat ($module, $what) {
 
        if (!isExtensionInstalledAndNewer('sql_patches', '0.0.5')) {
                // sql_patches is missing so choose depending on mode
 
        if (!isExtensionInstalledAndNewer('sql_patches', '0.0.5')) {
                // sql_patches is missing so choose depending on mode
-               if (isWhatSet()) {
-                       // Use setted what
-                       $what = getWhat();
-               } elseif ($module == 'admin') {
-                       // Admin area
-                       $what = 'overview';
-               } else {
-                       // Everywhere else
-                       $what = 'welcome';
-               }
+               $what = determineWhat($module);
        } elseif ((empty($what)) && ($module != 'admin')) {
                // Use configured 'home'
                $what = getIndexHome();
        } elseif ((empty($what)) && ($module != 'admin')) {
                // Use configured 'home'
                $what = getIndexHome();
@@ -793,7 +798,7 @@ function getActionFromModuleWhat ($module, $what) {
                } elseif (isActionSet()) {
                        // Get it directly from URL
                        return getAction();
                } elseif (isActionSet()) {
                        // Get it directly from URL
                        return getAction();
-               } elseif (($what == 'overview') || (!isWhatSet())) {
+               } elseif (($what == 'welcome') || (!isWhatSet())) {
                        // Default value for admin area
                        $data['action'] = 'login';
                }
                        // Default value for admin area
                        $data['action'] = 'login';
                }
@@ -865,13 +870,15 @@ function getCategory ($cid) {
 }
 
 // Get a string of "mail title" and price back
 }
 
 // Get a string of "mail title" and price back
-function getPaymentTitlePrice ($pid, $full=false) {
+function getPaymentTitlePrice ($pid, $full = false) {
        // Default is not found
        $ret = '{--_PAYMENT_404--}';
 
        // Load payment data
        $result = SQL_QUERY_ESC("SELECT `mail_title`,`price` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `id`=%s LIMIT 1",
        // Default is not found
        $ret = '{--_PAYMENT_404--}';
 
        // Load payment data
        $result = SQL_QUERY_ESC("SELECT `mail_title`,`price` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `id`=%s LIMIT 1",
-               array(bigintval($pid)), __FUNCTION__, __LINE__);
+               array(
+                       bigintval($pid)
+               ), __FUNCTION__, __LINE__);
 
        // Do we have an entry?
        if (SQL_NUMROWS($result) == 1) {
 
        // Do we have an entry?
        if (SQL_NUMROWS($result) == 1) {
@@ -900,7 +907,10 @@ function getPaymentPoints ($pid, $lookFor = 'price') {
 
        // Search for it in database
        $result = SQL_QUERY_ESC("SELECT `%s` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `id`=%s LIMIT 1",
 
        // Search for it in database
        $result = SQL_QUERY_ESC("SELECT `%s` FROM `{?_MYSQL_PREFIX?}_payments` WHERE `id`=%s LIMIT 1",
-               array($lookFor, $pid), __FUNCTION__, __LINE__);
+               array(
+                       $lookFor,
+                       bigintval($pid)
+               ), __FUNCTION__, __LINE__);
 
        // Is the entry there?
        if (SQL_NUMROWS($result) == 1) {
 
        // Is the entry there?
        if (SQL_NUMROWS($result) == 1) {
@@ -938,7 +948,7 @@ function removeReceiver (&$receivers, $key, $userid, $poolId, $statsId = 0, $isB
                        } // END - if
 
                        // Try to look the entry up
                        } // END - if
 
                        // Try to look the entry up
-                       $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `%s`=%s AND `userid`=%s AND link_type='%s' LIMIT 1",
+                       $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `%s`=%s AND `userid`=%s AND `link_type`='%s' LIMIT 1",
                                array(
                                        $rowName,
                                        bigintval($statsId),
                                array(
                                        $rowName,
                                        bigintval($statsId),
@@ -949,7 +959,7 @@ function removeReceiver (&$receivers, $key, $userid, $poolId, $statsId = 0, $isB
                        // Was it *not* found?
                        if (SQL_HASZERONUMS($result)) {
                                // So we add one!
                        // Was it *not* found?
                        if (SQL_HASZERONUMS($result)) {
                                // So we add one!
-                               SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_links` (`%s`,`userid`,`link_type`) VALUES ('%s','%s','%s')",
+                               SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_user_links` (`%s`,`userid`,`link_type`) VALUES (%s,%s,'%s')",
                                        array(
                                                $rowName,
                                                bigintval($statsId),
                                        array(
                                                $rowName,
                                                bigintval($statsId),
@@ -1032,7 +1042,7 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen
        SQL_FREERESULT($result);
 
        // Fix empty values
        SQL_FREERESULT($result);
 
        // Fix empty values
-       if ((empty($data['res'])) && ($lookFor != 'counter') && ($lookFor != 'id') && ($lookFor != 'userid')) {
+       if ((empty($data['res'])) && ($lookFor != 'counter') && ($lookFor != 'id') && ($lookFor != 'userid') && ($lookFor != 'rallye_id')) {
                // Float number
                $data['res'] = '0.00000';
        } elseif (''.$data['res'].'' == '') {
                // Float number
                $data['res'] = '0.00000';
        } elseif (''.$data['res'].'' == '') {
@@ -1045,14 +1055,27 @@ function countSumTotalData ($search, $tableName, $lookFor = 'id', $whereStatemen
        return $data['res'];
 }
 
        return $data['res'];
 }
 
-// Sends out mail to all administrators. This function is no longer obsolete
-// because we need it when there is no ext-admins installed
-function sendAdminEmails ($subj, $message) {
+/**
+ * Sends out mail to all administrators. This function is no longer obsolete
+ * because we need it when there is no ext-admins installed
+ */
+function sendAdminEmails ($subject, $message, $isBugReport = false) {
+       // Default is no special header
+       $mailHeader = '';
+
+       // Is it a bug report?
+       if ($isBugReport === true) {
+               // Then add a reply-to line back to the author (me)
+               $mailHeader = 'Reply-To: webmaster@mxchange.org' . chr(10);
+       } // END - if
+
        // Load all admin email addresses
        $result = SQL_QUERY('SELECT `email` FROM `{?_MYSQL_PREFIX?}_admins` ORDER BY `id` ASC', __FUNCTION__, __LINE__);
        // Load all admin email addresses
        $result = SQL_QUERY('SELECT `email` FROM `{?_MYSQL_PREFIX?}_admins` ORDER BY `id` ASC', __FUNCTION__, __LINE__);
+
+       // And send the notification to all of them
        while ($content = SQL_FETCHARRAY($result)) {
                // Send the email out
        while ($content = SQL_FETCHARRAY($result)) {
                // Send the email out
-               sendEmail($content['email'], $subj, $message);
+               sendEmail($content['email'], $subject, $message, 'N', $mailHeader);
        } // END - if
 
        // Free result
        } // END - if
 
        // Free result
@@ -1290,7 +1313,7 @@ function getAdminMenuMode ($adminId) {
 }
 
 // Generates an option list from various parameters
 }
 
 // Generates an option list from various parameters
-function generateOptionList ($table, $id, $name, $default = '', $special = '', $whereStatement = '', $disabled = array(), $callback = '') {
+function generateOptions ($table, $id, $name, $default = '', $special = '', $whereStatement = '', $disabled = array(), $callback = '') {
        $ret = '';
        if ($table == '/ARRAY/') {
                // Selection from array
        $ret = '';
        if ($table == '/ARRAY/') {
                // Selection from array
@@ -1317,7 +1340,7 @@ function generateOptionList ($table, $id, $name, $default = '', $special = '', $
                        } // END - foreach
                } else {
                        // Problem in request
                        } // END - foreach
                } else {
                        // Problem in request
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Not all are arrays: id[' . count($id) . ']=' . gettype($id) . ',name[' . count($name) . ']=' . gettype($name) . ',callback=' . $callback);
+                       reportBug(__FUNCTION__, __LINE__, 'Not all are arrays: id[' . count($id) . ']=' . gettype($id) . ',name[' . count($name) . ']=' . gettype($name) . ',callback=' . $callback);
                }
        } else {
                // Data from database
                }
        } else {
                // Data from database
@@ -1459,14 +1482,10 @@ function getWhatFromModule ($modCheck) {
        // Default is empty
        $what = '';
 
        // Default is empty
        $what = '';
 
+       // Check on given module
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'modCheck=' . $modCheck);
        switch ($modCheck) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'modCheck=' . $modCheck);
        switch ($modCheck) {
-               case 'admin':
-                       $what = 'overview';
-                       break;
-
-               case 'login':
-               case 'index':
+               case 'index': // Guest area
                        // Is ext-sql_patches installed and newer than 0.0.5?
                        if (isExtensionInstalledAndNewer('sql_patches', '0.0.5')) {
                                // Use it from config
                        // Is ext-sql_patches installed and newer than 0.0.5?
                        if (isExtensionInstalledAndNewer('sql_patches', '0.0.5')) {
                                // Use it from config
@@ -1477,8 +1496,8 @@ function getWhatFromModule ($modCheck) {
                        }
                        break;
 
                        }
                        break;
 
-               default:
-                       $what = '';
+               default: // Default for all other menus (getIndexHome() is for index module only)
+                       $what = 'welcome';
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -1487,13 +1506,13 @@ function getWhatFromModule ($modCheck) {
 }
 
 // Returns HTML code with an option list of all categories
 }
 
 // Returns HTML code with an option list of all categories
-function generateCategoryOptionsList ($mode) {
+function generateCategoryOptionsList ($mode, $userid = NULL) {
        // Prepare WHERE statement
        $whereStatement = " WHERE `visible`='Y'";
        if (isAdmin()) $whereStatement = '';
 
        // Initialize array...
        // Prepare WHERE statement
        $whereStatement = " WHERE `visible`='Y'";
        if (isAdmin()) $whereStatement = '';
 
        // Initialize array...
-       $CATS = array(
+       $categories = array(
                'id'      => array(),
                'name'    => array(),
                'userids' => array()
                'id'      => array(),
                'name'    => array(),
                'userids' => array()
@@ -1508,12 +1527,15 @@ function generateCategoryOptionsList ($mode) {
                // ... and begin loading stuff
                while ($content = SQL_FETCHARRAY($result)) {
                        // Transfer some data
                // ... and begin loading stuff
                while ($content = SQL_FETCHARRAY($result)) {
                        // Transfer some data
-                       $CATS['id'][]   = $content['id'];
-                       $CATS['name'][] = $content['cat'];
+                       $categories['id'][]   = $content['id'];
+                       array_push($categories['name'], $content['cat']);
 
                        // Check which users are in this category
 
                        // Check which users are in this category
-                       $result_userids = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `cat_id`=%s ORDER BY `userid` ASC",
-                               array(bigintval($content['id'])), __FUNCTION__, __LINE__);
+                       $result_userids = SQL_QUERY_ESC("SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_cats` WHERE `cat_id`=%s AND `userid` != %s ORDER BY `userid` ASC",
+                               array(
+                                       bigintval($content['id']),
+                                       convertNullToZero($userid)
+                               ), __FUNCTION__, __LINE__);
 
                        // Init count
                        $userid_cnt = '0';
 
                        // Init count
                        $userid_cnt = '0';
@@ -1521,14 +1543,14 @@ function generateCategoryOptionsList ($mode) {
                        // Start adding all
                        while ($data = SQL_FETCHARRAY($result_userids)) {
                                // Add user count
                        // Start adding all
                        while ($data = SQL_FETCHARRAY($result_userids)) {
                                // Add user count
-                               $userid_cnt += countSumTotalData($data['userid'], 'user_data', 'userid', 'userid', true, " AND `status`='CONFIRMED' AND `receive_mails` > 0");
+                               $userid_cnt += countSumTotalData($data['userid'], 'user_data', 'userid', 'userid', true, runFilterChain('user_exclusion_sql', " AND `status`='CONFIRMED' AND `receive_mails` > 0"));
                        } // END - while
 
                        // Free memory
                        SQL_FREERESULT($result_userids);
 
                        // Add counter
                        } // END - while
 
                        // Free memory
                        SQL_FREERESULT($result_userids);
 
                        // Add counter
-                       $CATS['userids'][] = $userid_cnt;
+                       array_push($categories['userids'], $userid_cnt);
                } // END - while
 
                // Free memory
                } // END - while
 
                // Free memory
@@ -1536,9 +1558,8 @@ function generateCategoryOptionsList ($mode) {
 
                // Generate options
                $OUT = '';
 
                // Generate options
                $OUT = '';
-               foreach ($CATS['id'] as $key => $value) {
-                       if (strlen($CATS['name'][$key]) > 20) $CATS['name'][$key] = substr($CATS['name'][$key], 0, 17)."...";
-                       $OUT .= '      <option value="' . $value . '">' . $CATS['name'][$key] . ' (' . $CATS['userids'][$key] . ' {--USER_IN_CAT--})</option>';
+               foreach ($categories['id'] as $key => $value) {
+                       $OUT .= '      <option value="' . $value . '">' . $categories['name'][$key] . ' (' . $categories['userids'][$key] . ' {--USERS_IN_CATEGORY--})</option>';
                } // END - foreach
        } else {
                // No cateogries are defined yet
                } // END - foreach
        } else {
                // No cateogries are defined yet
@@ -1612,8 +1633,7 @@ VALUES ('%s','%s','%s',%s,%s,'NEW', UNIX_TIMESTAMP(),'%s',%s,%s,%s)",
 // Generate a receiver list for given category and maximum receivers
 function generateReceiverList ($categoryId, $receiver, $mode = '') {
        // Init variables
 // Generate a receiver list for given category and maximum receivers
 function generateReceiverList ($categoryId, $receiver, $mode = '') {
        // Init variables
-       $CAT_TABS     = '';
-       $CAT_WHERE    = '';
+       $extraColumns = '';
        $receiverList = '';
        $result       = false;
 
        $receiverList = '';
        $result       = false;
 
@@ -1627,32 +1647,32 @@ function generateReceiverList ($categoryId, $receiver, $mode = '') {
                $receiver = getTotalReceivers($mode);
        } // END - if
 
                $receiver = getTotalReceivers($mode);
        } // END - if
 
+       // Exclude (maybe exclude) testers
+       $addWhere = runFilterChain('user_exclusion_sql', ' ');
+
        // Category given?
        if ($categoryId > 0) {
                // Select category
        // Category given?
        if ($categoryId > 0) {
                // Select category
-               $CAT_TABS  = "LEFT JOIN `{?_MYSQL_PREFIX?}_user_cats` AS c ON d.`userid`=c.`userid`";
-               $CAT_WHERE = sprintf(" AND c.`cat_id`=%s", $categoryId);
+               $extraColumns  = "LEFT JOIN `{?_MYSQL_PREFIX?}_user_cats` AS c ON d.`userid`=c.`userid`";
+               $addWhere = sprintf(" AND c.`cat_id`=%s", $categoryId);
        } // END - if
 
        // Exclude users in holiday?
        if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
                // Add something for the holiday extension
        } // END - if
 
        // Exclude users in holiday?
        if (isExtensionInstalledAndNewer('holiday', '0.1.3')) {
                // Add something for the holiday extension
-               $CAT_WHERE .= " AND d.`holiday_active`='N'";
+               $addWhere .= " AND d.`holiday_active`='N'";
        } // END - if
 
        } // END - if
 
+       // Include only HTML recipients?
        if ((isExtensionActive('html_mail')) && ($mode == 'html')) {
        if ((isExtensionActive('html_mail')) && ($mode == 'html')) {
-               // Only include HTML receivers
-               $result = SQL_QUERY_ESC("SELECT d.`userid` FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED' AND d.`html`='Y'".$CAT_WHERE." ORDER BY d.`{?order_select?}` {?order_mode?} LIMIT %s",
-                       array(
-                               $receiver
-                       ), __FUNCTION__, __LINE__);
-       } else {
-               // Include all
-               $result = SQL_QUERY_ESC("SELECT d.`userid` FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$CAT_TABS." WHERE d.`status`='CONFIRMED'".$CAT_WHERE." ORDER BY d.`{?order_select?}` {?order_mode?} LIMIT %s",
-                       array(
-                               $receiver
-                       ), __FUNCTION__, __LINE__);
-       }
+               $addWhere .= " AND d.`html`='Y'";
+       } // END - if
+
+       // Run query
+       $result = SQL_QUERY_ESC("SELECT d.`userid` FROM `{?_MYSQL_PREFIX?}_user_data` AS d ".$extraColumns." WHERE d.`status`='CONFIRMED' ".$addWhere." ORDER BY d.`{?order_select?}` {?order_mode?} LIMIT %s",
+               array(
+                       $receiver
+               ), __FUNCTION__, __LINE__);
 
        // Entries found?
        if ((SQL_NUMROWS($result) >= $receiver) && ($receiver > 0)) {
 
        // Entries found?
        if ((SQL_NUMROWS($result) >= $receiver) && ($receiver > 0)) {
@@ -1736,7 +1756,6 @@ function createNewTask ($subject, $notes, $taskType, $userid = NULL, $adminId =
 }
 
 // Updates last module / online time
 }
 
 // Updates last module / online time
-// @TODO Fix inconsistency between last_module and getWhat()
 function updateLastActivity($userid) {
        // Is 'what' set?
        if (isWhatSet()) {
 function updateLastActivity($userid) {
        // Is 'what' set?
        if (isWhatSet()) {
@@ -1744,34 +1763,85 @@ function updateLastActivity($userid) {
                SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
                SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
-       `last_module`='%s',
+       `%s`='%s',
        `last_online`=UNIX_TIMESTAMP(),
        `REMOTE_ADDR`='%s'
 WHERE
        `userid`=%s
 LIMIT 1",
                array(
        `last_online`=UNIX_TIMESTAMP(),
        `REMOTE_ADDR`='%s'
 WHERE
        `userid`=%s
 LIMIT 1",
                array(
+                       getUserLastWhatName(),
                        getWhat(),
                        detectRemoteAddr(),
                        bigintval($userid)
                ), __FUNCTION__, __LINE__);
        } else {
                // No what set, needs to be ignored (last_module is last_what)
                        getWhat(),
                        detectRemoteAddr(),
                        bigintval($userid)
                ), __FUNCTION__, __LINE__);
        } else {
                // No what set, needs to be ignored (last_module is last_what)
-               // @TODO Rename last_module to last_what to make it more clear
                SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
                SQL_QUERY_ESC("UPDATE
        `{?_MYSQL_PREFIX?}_user_data`
 SET
+       `%s`=NULL,
        `last_online`=UNIX_TIMESTAMP(),
        `REMOTE_ADDR`='%s'
 WHERE
        `userid`=%s
 LIMIT 1",
                array(
        `last_online`=UNIX_TIMESTAMP(),
        `REMOTE_ADDR`='%s'
 WHERE
        `userid`=%s
 LIMIT 1",
                array(
+                       getUserLastWhatName(),
                        detectRemoteAddr(),
                        bigintval($userid)
                ), __FUNCTION__, __LINE__);
        }
 }
 
                        detectRemoteAddr(),
                        bigintval($userid)
                ), __FUNCTION__, __LINE__);
        }
 }
 
+/**
+ * Checks if given subject is found and if not, adds an SQL query to the
+ * extension registration queue.
+ */
+function registerExtensionPointsData ($subject, $columnName, $lockedMode, $paymentMethod) {
+       // Default is old extension version
+       $add = '';
+
+       // Is the extension equal or newer 0.8.9?
+       if (isExtensionInstalledAndNewer('sql_patches', '0.8.9')) {
+               // Then add provider
+               $add = " AND `account_provider`='EXTENSION'";
+       } // END - if
+
+       // Is the 'subject' there?
+       if (countSumTotalData($subject, 'points_data', 'id', 'subject', true, $add) == 0) {
+               // Not found so add an SQL query
+               addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`,`column_name`,`locked_mode`,`payment_method`) VALUES ('%s','%s','%s','%s')",
+                       $subject,
+                       $columnName,
+                       $lockedMode,
+                       $paymentMethod
+               ));
+       } // END - if
+}
+
+/**
+ * Checks if given subject is found and if so, adds an SQL query to the
+ * extension unregistration queue.
+ */
+function unregisterExtensionPointsData ($subject) {
+       // Default is old extension version
+       $add = '';
+
+       // Is the extension equal or newer 0.8.9?
+       if (isExtensionInstalledAndNewer('sql_patches', '0.8.9')) {
+               // Then add provider
+               $add = " AND `account_provider`='EXTENSION'";
+       } // END - if
+
+       // Is the 'subject' there?
+       if (countSumTotalData($subject, 'points_data', 'id', 'subject', true, $add) == 1) {
+               // Found one or more, so add an SQL query
+               addExtensionSql(sprintf("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_points_data` WHERE `subject`='%s'" . $add . " LIMIT 1",
+                       $subject
+               ));
+       } // END - if
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index d8fcdb4c8b9a774efcdd9462f5fb77efffa31804..f89e234c402100309bc6d69ba9110b7838fe8c53 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index b127dac6652dc5e2f656e95b58b81a3616db3b19..8ed43487d7bb879d87ae1d8059b65e0fd2841bcc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -49,26 +49,53 @@ if ((isResetModeEnabled()) || (!isHtmlOutputMode())) {
        return false;
 }
 
        return false;
 }
 
-// Need this here
 // Only send bonus mail when bonus extension is active and maximum send-mails is not reached
 if ($GLOBALS['pool_cnt'] < getMaxSend()) {
 // Only send bonus mail when bonus extension is active and maximum send-mails is not reached
 if ($GLOBALS['pool_cnt'] < getMaxSend()) {
+       // Default is ext-html_mail is gone
+       $add = '';
+
        // Do we need to send out bonus mails?
        if (isExtensionActive('html_mail')) {
        // Do we need to send out bonus mails?
        if (isExtensionActive('html_mail')) {
-               //                                 0        1        2          3          4        5          6            7         8        9            10           11
-               $result_bonus = SQL_QUERY("SELECT `id`,`subject`,`text`,`receivers`,`points`,`time`,`data_type`,`timestamp`,`url`,`cat_id`,`target_send`,`html_msg` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `data_type`='NEW' ORDER BY `timestamp` DESC", __FILE__, __LINE__);
-       } else {
-               //                                 0        1        2          3          4        5          6            7         8        9            10
-               $result_bonus = SQL_QUERY("SELECT `id`,`subject`,`text`,`receivers`,`points`,`time`,`data_type`,`timestamp`,`url`,`cat_id`,`target_send` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `data_type`='NEW' ORDER BY `timestamp` DESC", __FILE__, __LINE__);
-       }
-
-       if (!SQL_HASZERONUMS($result_bonus)) {
+               //  With HTML support
+               $add = ', `html_msg`';
+       } // END - if
+
+       // Run query
+       $result_main = SQL_QUERY("SELECT
+       `id`,
+       `subject`,
+       `text`,
+       `receivers`,
+       `points`,
+       `time`,
+       `data_type`,
+       `timestamp`,
+       `url`,
+       `cat_id`,
+       `target_send`
+       " . $add . "
+FROM
+       `{?_MYSQL_PREFIX?}_bonus`
+WHERE
+       `data_type`='NEW'
+ORDER BY
+       `timestamp` DESC", __FILE__, __LINE__);
+
+       // Some mails left?
+       if (!SQL_HASZERONUMS($result_main)) {
+               // Init SQLs here
+               initSqls();
+
                // Send these mails away...
                $count2 = '';
                // Send these mails away...
                $count2 = '';
-               while ($mailData = SQL_FETCHARRAY($result_bonus)) {
+               while ($mailData = SQL_FETCHARRAY($result_main)) {
                        // Message is active in queue
                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='QUEUE' WHERE `id`=%s LIMIT 1",
                                array(bigintval($mailData['id'])), __FILE__, __LINE__);
 
                        // Message is active in queue
                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `data_type`='QUEUE' WHERE `id`=%s LIMIT 1",
                                array(bigintval($mailData['id'])), __FILE__, __LINE__);
 
+                       // Default is no users left
+                       $receivers = array();
+
                        // "Explode" all receivers into an array
                        if (isInString(';', $mailData['receivers'])) {
                                // There's more than one receiver in the list...
                        // "Explode" all receivers into an array
                        if (isInString(';', $mailData['receivers'])) {
                                // There's more than one receiver in the list...
@@ -76,14 +103,13 @@ if ($GLOBALS['pool_cnt'] < getMaxSend()) {
                        } elseif (!empty($mailData['points'])) {
                                // Only one user left
                                $receivers = array($mailData['receivers']);
                        } elseif (!empty($mailData['points'])) {
                                // Only one user left
                                $receivers = array($mailData['receivers']);
-                       } else {
-                               // No users left
-                               $receivers = array(0);
                        }
                        $temporaryReceivers = $receivers;
 
                        }
                        $temporaryReceivers = $receivers;
 
-                       // Now, if we are good little boys and girls Santa Claus left us some user-ids.
-                       // We can now send mails to them...
+                       /*
+                        * Now, if we are good little boys and girls Santa Claus left us
+                        * some user-ids and send out mails to them.
+                        */
                        foreach ($receivers as $key => $userid) {
                                // Load personal data
                                if (fetchUserData($userid)) {
                        foreach ($receivers as $key => $userid) {
                                // Load personal data
                                if (fetchUserData($userid)) {
@@ -111,16 +137,17 @@ if ($GLOBALS['pool_cnt'] < getMaxSend()) {
                                                        // Count one up and remove entry from dummy array
                                                        $GLOBALS['pool_cnt']++; unset($temporaryReceivers[$key]);
 
                                                        // Count one up and remove entry from dummy array
                                                        $GLOBALS['pool_cnt']++; unset($temporaryReceivers[$key]);
 
+                                                       // Is ext-user installed?
                                                        if (isExtensionInstalledAndNewer('user', '0.1.4')) {
                                                        if (isExtensionInstalledAndNewer('user', '0.1.4')) {
+                                                               // Debug message
+                                                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',mailData[id]=' . $mailData['id']);
                                                                // Update mails received for receiver
                                                                // Update mails received for receiver
-                                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `emails_received`=`emails_received`+1 WHERE `userid`=%s LIMIT 1",
-                                                                       array(bigintval($userid)), __FILE__, __LINE__);
+                                                               addSql(sprintf("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `emails_received`=`emails_received`+1 WHERE `userid`=%s LIMIT 1", bigintval($userid)));
                                                        } // END - if
 
                                                        } // END - if
 
-                                                       // Do we have send maximum mails?
+                                                       // Is the size of pool reached or nothing to sent left?
                                                        if (($GLOBALS['pool_cnt'] >= getMaxSend()) || (countSelection($temporaryReceivers) == 0)) {
                                                        if (($GLOBALS['pool_cnt'] >= getMaxSend()) || (countSelection($temporaryReceivers) == 0)) {
-                                                               // Yes, we have
-                                                               //* DEBUG: */ debugOutput('*EXIT/L:'.__LINE__);
+                                                               // Yes, it is. So abort here
                                                                break;
                                                        } // END - if
                                                        break;
                                                                break;
                                                        } // END - if
                                                        break;
@@ -132,6 +159,9 @@ if ($GLOBALS['pool_cnt'] < getMaxSend()) {
                                } // END - if
                        } // END - foreach
 
                                } // END - if
                        } // END - foreach
 
+                       // Run all SQLs
+                       runFilterChain('run_sqls');
+
                        // Update mediadata if version is 0.0.4 or higher
                        if (isExtensionInstalledAndNewer('mediadata', '0.0.4')) {
                                // Update entry (or add missing
                        // Update mediadata if version is 0.0.4 or higher
                        if (isExtensionInstalledAndNewer('mediadata', '0.0.4')) {
                                // Update entry (or add missing
@@ -180,13 +210,16 @@ LIMIT 1",
                                                bigintval($mailData['id'])
                                        ), __FILE__, __LINE__);
                                //* DEBUG: */ debugOutput('*L:'.__LINE__.'<pre>'.print_r($temporaryReceivers, true).'</pre>!!!');
                                                bigintval($mailData['id'])
                                        ), __FILE__, __LINE__);
                                //* DEBUG: */ debugOutput('*L:'.__LINE__.'<pre>'.print_r($temporaryReceivers, true).'</pre>!!!');
+
+                               // Run any SQLs
+                               runFilterChain('run_sqls');
                                break;
                        }
                } // END - while
        } // END - if
 
        // Free memory
                                break;
                        }
                } // END - while
        } // END - if
 
        // Free memory
-       SQL_FREERESULT($result_bonus);
+       SQL_FREERESULT($result_main);
 
        // Remove variable
        unset($mailText);
 
        // Remove variable
        unset($mailText);
index 9fe3822ada72dd86be1c68122705393a3dce5037..83032754aaa984f6f3b02368d5040088563817b5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -60,8 +60,16 @@ if (isExtensionActive('html_mail')) {
 
 // Main query
 $result_main = SQL_QUERY("SELECT
 
 // Main query
 $result_main = SQL_QUERY("SELECT
-       `id`,`sender` AS `sender_userid`,`subject`,`text`,`receivers`,
-       `payment_id`,`timestamp`,`url`,`target_send`,`cat_id`
+       `id`,
+       `sender` AS `sender_userid`,
+       `subject`,
+       `text`,
+       `receivers`,
+       `payment_id`,
+       `timestamp`,
+       `url`,
+       `target_send`,
+       `cat_id`
        ".$HTML."
 FROM
        `{?_MYSQL_PREFIX?}_pool`
        ".$HTML."
 FROM
        `{?_MYSQL_PREFIX?}_pool`
@@ -78,7 +86,7 @@ $pointsBack = array(0);
 
 if (!SQL_HASZERONUMS($result_main)) {
        // Parse all mails
 
 if (!SQL_HASZERONUMS($result_main)) {
        // Parse all mails
-       while ($mailData = SQL_FETCHARRAY($result_main, 0, false)) {
+       while ($mailData = SQL_FETCHARRAY($result_main)) {
                // Set mail order as 'active'. That means it will be sent out
                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_pool` SET `data_type`='ACTIVE' WHERE `id`=%s AND `data_type`='NEW' LIMIT 1",
                        array($mailData['id']), __FILE__, __LINE__);
                // Set mail order as 'active'. That means it will be sent out
                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_pool` SET `data_type`='ACTIVE' WHERE `id`=%s AND `data_type`='NEW' LIMIT 1",
                        array($mailData['id']), __FILE__, __LINE__);
index fd579acc3ef150af85db0e892fb8e23b73f7e58a..6d2b403cc345f0b701f7225fc416474a623ba34c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index ba4249ea88687513c343d8b1598b6690cf4a4ca5..8502b3dd10617d8d86a64b765ae427ec152d2f5f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -68,7 +68,7 @@ if (SQL_NUMROWS($result) > 0) {
        // Start purging all
        while ($content = SQL_FETCHARRAY($result)) {
                // Add id
        // Start purging all
        while ($content = SQL_FETCHARRAY($result)) {
                // Add id
-               $ids[] = $content['id'];
+               array_push($ids, $content['id']);
 
                // Translate some data
                $content['coupon_created'] = generateDateTime($content['coupon_created'], '2');
 
                // Translate some data
                $content['coupon_created'] = generateDateTime($content['coupon_created'], '2');
index ad9ad46475973104e0d7a3e4e34a6d9010dd978d..77ef4a9aff52a05d74f1f6db4bc22f78ce54286a 100644 (file)
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 6786cb171482ee38032d5f91ddb456fccab3d239..d9278d309ca8a53b4fac8d39e337e12176bad718 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -75,7 +75,8 @@ if (isAutopurgeInactiveEnabled()) {
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       `status`='CONFIRMED' AND
+       `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
        (UNIX_TIMESTAMP() - `joined`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_since?}
        (UNIX_TIMESTAMP() - `joined`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_since?}
@@ -95,7 +96,7 @@ ORDER BY
                        $content = merge_array($content, $row);
 
                        // Remember userids for the admin
                        $content = merge_array($content, $row);
 
                        // Remember userids for the admin
-                       $userids[] = $content['userid'];
+                       array_push($userids, $content['userid']);
 
                        // Get date/time from timestamp
                        $content['last_online'] = generateDateTime($content['last_online'], 0);
 
                        // Get date/time from timestamp
                        $content['last_online'] = generateDateTime($content['last_online'], 0);
@@ -110,7 +111,7 @@ ORDER BY
                } // END - while
 
                // Remove last comma
                } // END - while
 
                // Remove last comma
-               $useridsContent = implode("\n", $userids);
+               $useridsContent = implode(chr(10), $userids);
 
                // Send mail notification to admin
                sendAdminNotification('{--ADMIN_AUTOPURGE_INACTIVE_SUBJECT--}', 'admin_autopurge_inactive', $useridsContent);
 
                // Send mail notification to admin
                sendAdminNotification('{--ADMIN_AUTOPURGE_INACTIVE_SUBJECT--}', 'admin_autopurge_inactive', $useridsContent);
@@ -128,7 +129,8 @@ ORDER BY
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
 FROM
        `{?_MYSQL_PREFIX?}_user_data`
 WHERE
-       `status`='CONFIRMED' AND
+       `status`='CONFIRMED'
+       " . runFilterChain('user_exclusion_sql', ' ') . " AND
        (UNIX_TIMESTAMP() - `joined`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_time?} AND
        (UNIX_TIMESTAMP() - `joined`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `last_online`) >= {?ap_inactive_since?} AND
        (UNIX_TIMESTAMP() - `ap_notified`) >= {?ap_inactive_time?} AND
@@ -144,7 +146,7 @@ ORDER BY
                // Delete inactive accounts
                while ($content = SQL_FETCHARRAY($result_inactive)) {
                        // Remember userids for the admin
                // Delete inactive accounts
                while ($content = SQL_FETCHARRAY($result_inactive)) {
                        // Remember userids for the admin
-                       $userids[] = $content['userid'];
+                       array_push($userids, $content['userid']);
 
                        // Get date/time from timestamp
                        $content['last_online'] = generateDateTime($content['last_online'], 0);
 
                        // Get date/time from timestamp
                        $content['last_online'] = generateDateTime($content['last_online'], 0);
@@ -154,7 +156,7 @@ ORDER BY
                } // END - while
 
                // Display all userids
                } // END - while
 
                // Display all userids
-               $useridsContent = implode("\n", $userids);
+               $useridsContent = implode(chr(10), $userids);
 
                // Send mail notification to admin
                if (getConfig('ap_in_notify') == 'Y') {
 
                // Send mail notification to admin
                if (getConfig('ap_in_notify') == 'Y') {
index aabaf12a79b1f260ec462d92d50bb6a5011af00b..ca8282eacf01ee907bad4720dbceb15ee7262132 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -57,7 +57,7 @@ WHERE
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
 
 ORDER BY
        `sender` ASC", __FILE__, __LINE__);
 
-// Reset counter...
+// Init counter...
 $deletedStats = '0';
 
 // Do we have "purged" mails?
 $deletedStats = '0';
 
 // Do we have "purged" mails?
@@ -72,17 +72,6 @@ if (!SQL_HASZERONUMS($result_mails)) {
 
                        // Get all affected (deleted) rows
                        $deletedStats += SQL_AFFECTEDROWS();
 
                        // Get all affected (deleted) rows
                        $deletedStats += SQL_AFFECTEDROWS();
-
-                       // Reset query (to prevent possible errors) ...;
-                       $result_mails = SQL_QUERY("SELECT
-       `sender`
-FROM
-       `{?_MYSQL_PREFIX?}_pool`
-WHERE
-       `data_type`='DELETED' AND
-       (UNIX_TIMESTAMP() - `timestamp`) >= {?ap_dm_timeout?}
-ORDER BY
-       `sender` ASC", __FILE__, __LINE__);
                } // END - if
        } // END - while
 } // END - if
                } // END - if
        } // END - while
 } // END - if
index 821297e5273e0b8c8ce152f95a1f54211c3ebf3a..c1c3a8ff914fbc274aaeed646aebb407e301b1c5 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 847ba6c0f052a988e1c1ec983da3087523799d63..0371f26ca3aacd18904e9751b5f42597f80f2718 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -79,7 +79,7 @@ ORDER BY
                } // END - while
 
                // Remove last comma
                } // END - while
 
                // Remove last comma
-               $userids = str_replace(', ', "\n", substr($userids, 0, -2));
+               $userids = str_replace(', ', chr(10), substr($userids, 0, -2));
 
                // Send mail notification to admin
                if (getConfig('ap_un_notify') == 'Y') {
 
                // Send mail notification to admin
                if (getConfig('ap_un_notify') == 'Y') {
index 39302c95b4a3b9cf72a4f23edd5103267a18f894..6078e378fa309f9a80c15a0ec5968dc2a60aa8cd 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -109,29 +109,29 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU
        setCurrentUserId($userid);
 
        // Check user account
        setCurrentUserId($userid);
 
        // Check user account
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',points=' . $points . ',paymentMethod=' . $paymentMethod . ',sendNotify=' . intval($sendNotify));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',points=' . $points . ',paymentMethod=' . $paymentMethod . ',sendNotify=' . intval($sendNotify));
        if (fetchUserData($userid)) {
        if (fetchUserData($userid)) {
-               // Determine wether the user has some mails to click before he/she gets the points
-               $locked = ifUserPointsLocked($userid);
+               // Determine whether the user has some mails to click before he/she gets the points
+               $isLocked = ifUserPointsLocked($userid);
 
                // Detect database column
 
                // Detect database column
-               $pointsColumn = determinePointsColumnFromSubjectLocked($subject, $locked);
+               $pointsColumn = determinePointsColumnFromSubjectLocked($subject, $isLocked);
 
                // Get percents
 
                // Get percents
-               $per = getReferralLevelPercents($GLOBALS['ref_level']);
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',points=' . $points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ',per=' . $per . ',mode=' . $paymentMethod . ',pointsColumn=' . $pointsColumn . ',locked=' . intval($locked) . ',refid=' . getUserData('refid'));
+               $percents = getReferralLevelPercents($GLOBALS['ref_level']);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',points=' . $points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ',percents=' . $percents . ',mode=' . $paymentMethod . ',pointsColumn=' . $pointsColumn . ',isLocked=' . intval($isLocked) . ',refid=' . getUserData('refid'));
 
                // Some percents found?
 
                // Some percents found?
-               if ($per > 0) {
+               if ($percents > 0) {
                        // Calculate new points
                        // Calculate new points
-                       $ref_points = $points * $per / 100;
+                       $ref_points = $points * $percents / 100;
 
                        // Pay refback here if level > 0 and in ref-mode
 
                        // Pay refback here if level > 0 and in ref-mode
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',points=' . $points . ',paymentMethod=' . $paymentMethod);
-                       if (($userid != $refid) && ($paymentMethod == 'REFERRAL') && (isValidUserId(getUserData('refid'))) && (isExtensionActive('refback'))) {
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',ref_points=' . $ref_points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ' - BEFORE!');
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',points=' . $points . ',paymentMethod=' . $paymentMethod);
+                       if (($userid != $refid) && (substr($subject, 0, 8) != 'refback:') &&($paymentMethod == 'REFERRAL') && (isValidUserId(getUserData('refid'))) && (isExtensionActive('refback'))) {
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',ref_points=' . $ref_points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ' - BEFORE!');
                                $ref_points = addRefbackPoints($userid, getUserData('refid'), $points, $ref_points);
                                $ref_points = addRefbackPoints($userid, getUserData('refid'), $points, $ref_points);
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',ref_points=' . $ref_points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ' - AFTER!');
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',ref_points=' . $ref_points . ',depth=' . convertNullToZero($GLOBALS['ref_level']) . ' - AFTER!');
                        } // END - if
 
                        // Update points...
                        } // END - if
 
                        // Update points...
@@ -183,7 +183,7 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU
                                'column'      => $pointsColumn,
                                'notify'      => $sendNotify,
                                'refid'       => $refid,
                                'column'      => $pointsColumn,
                                'notify'      => $sendNotify,
                                'refid'       => $refid,
-                               'locked'      => $locked,
+                               'locked'      => $isLocked,
                                'points_mode' => 'add',
                                'add_mode'    => $paymentMethod,
                                'added'       => $added
                                'points_mode' => 'add',
                                'add_mode'    => $paymentMethod,
                                'added'       => $added
@@ -196,13 +196,26 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU
                        $added = $filterData['added'];
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'added=' . intval($added) . ' - AFTER FILTER');
 
                        $added = $filterData['added'];
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'added=' . intval($added) . ' - AFTER FILTER');
 
-                       // Points updated, maybe I shall send him an email?
-                       if (($sendNotify === true) && (isValidUserId(getUserData('refid'))) && ($locked === false)) {
+                       // Debug message
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . $refid . ',paymentMethod=' . $paymentMethod . ',sendNotify=' . intval($sendNotify) . ',isLocked=' . intval($isLocked));
+
+                       // Send "referral confirmed" mails out?
+                       if ((isValidUserid($refid)) && ($refid != $userid) && ($sendNotify === true)) {
+                               // Calculate the referral's points and percents
+                               $percentsReferral = getReferralLevelPercents($GLOBALS['ref_level'] + 1);
+
+                               // Calculate new points
+                               $ref_points = $ref_points * $percentsReferral / 100;
+
                                // Prepare content
                                $content = array(
                                // Prepare content
                                $content = array(
-                                       'percents' => $per,
-                                       'level'    => bigintval($GLOBALS['ref_level']),
-                                       'points'   => $ref_points,
+                                       'userid'         => bigintval($userid),
+                                       'refid'          => $refid,
+                                       'level'          => bigintval($GLOBALS['ref_level'] + 1),
+                                       'percents'       => $percentsReferral,
+                                       'points'         => ($paymentMethod == 'REFERRAL' ? $ref_points : '0'),
+                                       'payment_method' => $paymentMethod,
+                                       'subject'        => $subject,
                                );
 
                                // Load email template
                                );
 
                                // Load email template
@@ -210,24 +223,44 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU
 
                                // Send email
                                sendEmail($userid, '{--THANX_REFERRAL_ONE_SUBJECT--}', $message);
 
                                // Send email
                                sendEmail($userid, '{--THANX_REFERRAL_ONE_SUBJECT--}', $message);
-                       } elseif (($sendNotify === true) && (!isValidUserId(getUserData('refid'))) && ($locked === false) && ($paymentMethod == 'DIRECT')) {
-                               // Prepare content
+                       } // END - if
+
+                       // Points updated, maybe I shall send him an email?
+                       if (($sendNotify === true) && ($isLocked === false)) {
+                               // "Explode" subject
+                               $subjectArray = explode(':', $subject);
+                               $subjectUserid = (isset($subjectArray[1])) ? $subjectArray[1] : '0';
+
+                               // Generic delivery of mails, so prepare data
                                $content = array(
                                $content = array(
-                                       'reason'  => '{--REASON_DIRECT_PAYMENT--}',
-                                       'subject' => $subject,
-                                       'points'  => $ref_points
+                                       'userid'         => $userid,
+                                       'percents'       => $percents,
+                                       'level'          => bigintval($GLOBALS['ref_level']),
+                                       'points'         => $ref_points,
+                                       'column'         => $pointsColumn,
+                                       'subject'        => $subjectArray[0],
+                                       'subject_userid' => $subjectUserid,
+                                       'payment_method' => $paymentMethod,
                                );
 
                                );
 
-                               // Load message
-                               $message = loadEmailTemplate('member_add_points', $content, $userid);
+                               // Load email template
+                               $message = loadEmailTemplate('member_' . $subjectArray[0] . '_' . strtolower($paymentMethod), $content, $userid);
 
 
-                               // And sent it away
-                               sendEmail($userid, '{--DIRECT_PAYMENT_SUBJECT--}', $message);
-                               if (!isGetRequestElementSet('mid')) {
-                                       // Output message to admin
-                                       displayMessage('{--ADMIN_POINTS_ADDED--}');
-                               } // END - if
-                       }
+                               // Send email
+                               sendEmail($userid, '{%message,MEMBER_' . $paymentMethod . '_' . strtoupper($subjectArray[0]) . '_SUBJECT=' . $subjectUserid . '%}', $message);
+
+                               // Also send admin notification
+                               sendAdminNotification(
+                                       // Subject
+                                       '{%message,ADMIN_' . $paymentMethod . '_' . strtoupper($subjectArray[0]) . '_SUBJECT=' . $subjectUserid . '%}',
+                                       // Template name
+                                       'admin_' . $subjectArray[0] . '_' . strtolower($paymentMethod),
+                                       // Template content (data array)
+                                       $content,
+                                       // User id
+                                       $userid
+                               );
+                       } // END - if
 
                        // Increase referral level, if payment method is REFERRAL
                        if ($paymentMethod == 'REFERRAL') {
 
                        // Increase referral level, if payment method is REFERRAL
                        if ($paymentMethod == 'REFERRAL') {
@@ -239,11 +272,20 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Referral level *NOT* increased, ref_level=' . convertNullToZero($GLOBALS['ref_level']) . ',points=' . $points . ',refid=' . convertNullToZero(getUserData('refid')) . ',userid=' . $userid . ',paymentMethod=' . $paymentMethod);
                        }
 
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Referral level *NOT* increased, ref_level=' . convertNullToZero($GLOBALS['ref_level']) . ',points=' . $points . ',refid=' . convertNullToZero(getUserData('refid')) . ',userid=' . $userid . ',paymentMethod=' . $paymentMethod);
                        }
 
+                       // Remove any :x
+                       $subject = removeDoubleDotFromSubject($subject);
+
                        // Maybe there's another ref?
                        // Maybe there's another ref?
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'points=' . $points . ',refid(var|data)=' . convertNullToZero($refid) . '|' . convertNullToZero(getUserData('refid')) . ',userid=' . $userid . ',paymentMethod=' . $paymentMethod);
+                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'points=' . $points . ',refid(var|data)=' . convertNullToZero($refid) . '|' . convertNullToZero(getUserData('refid')) . ',userid=' . $userid . ',paymentMethod=' . $paymentMethod . ',subject=' . $subject . ',ref_level=' . $GLOBALS['ref_level']);
                        if ((isValidUserId(getUserData('refid'))) && ($points > 0) && (getUserData('refid') != $userid) && ($paymentMethod == 'REFERRAL')) {
                        if ((isValidUserId(getUserData('refid'))) && ($points > 0) && (getUserData('refid') != $userid) && ($paymentMethod == 'REFERRAL')) {
+                               // Is _ref there?
+                               if (substr($subject, -4, 4) == '_ref') {
+                                       // Then remove it, no double _ref suffix!
+                                       $subject = substr($subject, 0, -4);
+                               } // END - if
+
                                // Then let's credit him here...
                                // Then let's credit him here...
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',points=' . $points . ',ref_points=' . $ref_points . ',added[' . gettype($added) . ']=' . intval($added) . ' - ADVANCE!');
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'subject=' . $subject . ',userid=' . $userid . ',refid=' . convertNullToZero(getUserData('refid')) . ',points=' . $points . ',ref_points=' . $ref_points . ',added[' . gettype($added) . ']=' . intval($added) . ',ref_level=' . $GLOBALS['ref_level'] . ' - ADVANCE!');
                                $added = ($added && addPointsThroughReferralSystem(sprintf("%s_ref:%s", $subject, $GLOBALS['ref_level']), getUserData('refid'), $points, getFetchedUserData('userid', getUserData('refid'), 'refid')));
                        } // END - if
                } // END - if
                                $added = ($added && addPointsThroughReferralSystem(sprintf("%s_ref:%s", $subject, $GLOBALS['ref_level']), getUserData('refid'), $points, getFetchedUserData('userid', getUserData('refid'), 'refid')));
                        } // END - if
                } // END - if
@@ -414,16 +456,20 @@ function getPointsDataArrayFromSubject ($subject) {
        // Extension ext-sql_patches must be up-to-date
        if (isExtensionInstalledAndOlder('sql_patches', '0.8.2')) {
                // Please update ext-sql_patches
        // Extension ext-sql_patches must be up-to-date
        if (isExtensionInstalledAndOlder('sql_patches', '0.8.2')) {
                // Please update ext-sql_patches
-               debug_report_bug(__FUNCTION__, __LINE__, 'sql_patches is out-dated. Please update to at least 0.8.2 to continue. subject=' . $subject);
-       } // END - if
+               reportBug(__FUNCTION__, __LINE__, 'sql_patches is out-dated. Please update to at least 0.8.2 to continue. subject=' . $subject);
+       } elseif (substr($subject, -8, 8) == '_ref_ref') {
+               // Please report ALL finiding
+               reportBug(__FUNCTION__, __LINE__, 'subject=' . $subject . ' contains invalid double-suffix _ref.');
+       }
 
        // Remove any double-dot from it
 
        // Remove any double-dot from it
-       $subjectArray = explode(':', $subject);
-       $subject = $subjectArray[0];
-       unset($subjectArray);
+       $subject = removeDoubleDotFromSubject($subject);
 
        // If we have cache, shortcut it here
        if (isset($GLOBALS['cache_array']['points_data'][$subject])) {
 
        // If we have cache, shortcut it here
        if (isset($GLOBALS['cache_array']['points_data'][$subject])) {
+               // Count cache hit
+               incrementStatsEntry('cache_hits');
+
                // Return it
                return $GLOBALS['cache_array']['points_data'][$subject];
        } // END - if
                // Return it
                return $GLOBALS['cache_array']['points_data'][$subject];
        } // END - if
@@ -487,7 +533,7 @@ function getPaymentMethodFromSubject ($subject) {
        return $paymentMethod;
 }
 
        return $paymentMethod;
 }
 
-// Checks wether notification of points recipient is enabled
+// Checks whether notification of points recipient is enabled
 function isPaymentRecipientNotificationEnabled ($subject) {
        // Get the points_data entry
        $pointsData = getPointsDataArrayFromSubject($subject);
 function isPaymentRecipientNotificationEnabled ($subject) {
        // Get the points_data entry
        $pointsData = getPointsDataArrayFromSubject($subject);
@@ -524,14 +570,14 @@ function loadReferralTable ($userid) {
        $GLOBALS['referral_refid'][$userid] = array();
 
        // Get all level entries from the refsystem table
        $GLOBALS['referral_refid'][$userid] = array();
 
        // Get all level entries from the refsystem table
-       $result = SQL_QUERY_ESC('SELECT `level` FROM `{?_MYSQL_PREFIX?}_refsystem` WHERE `userid`=%s ORDER BY `level` ASC',
+       $GLOBALS['referral_result'][$userid] = SQL_QUERY_ESC('SELECT `level` FROM `{?_MYSQL_PREFIX?}_refsystem` WHERE `userid`=%s ORDER BY `level` ASC',
                array($userid), __FUNCTION__, __LINE__);
 
        // Do we have entries?
                array($userid), __FUNCTION__, __LINE__);
 
        // Do we have entries?
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',SQL_NUMROWS()=' . SQL_NUMROWS($result));
-       if (SQL_NUMROWS($result) > 0) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',SQL_NUMROWS()=' . SQL_NUMROWS($GLOBALS['referral_result'][$userid]));
+       if (SQL_NUMROWS($GLOBALS['referral_result'][$userid]) > 0) {
                // Then walk through all levels
                // Then walk through all levels
-               while (list($level) = SQL_FETCHROW($result)) {
+               while (list($level) = SQL_FETCHROW($GLOBALS['referral_result'][$userid])) {
                        // Init array
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level);
                        $GLOBALS['referral_refid'][$userid][$level] = array();
                        // Init array
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level);
                        $GLOBALS['referral_refid'][$userid][$level] = array();
@@ -539,30 +585,31 @@ function loadReferralTable ($userid) {
                        // Level is = 1?
                        if ($level == 1) {
                                // Load all referrals of this user
                        // Level is = 1?
                        if ($level == 1) {
                                // Load all referrals of this user
-                               $result_refs = SQL_QUERY_ESC('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `refid`=%s ORDER BY `userid` ASC',
+                               $GLOBALS['referral_result_refs'][$userid] = SQL_QUERY_ESC('SELECT `userid` FROM `{?_MYSQL_PREFIX?}_user_data` WHERE `refid`=%s ORDER BY `userid` ASC',
                                        array($userid), __FUNCTION__, __LINE__);
 
                                // Do we have entries?
                                        array($userid), __FUNCTION__, __LINE__);
 
                                // Do we have entries?
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',SQL_NUMROWS()=' . SQL_NUMROWS($result_refs));
-                               if (SQL_NUMROWS($result_refs) > 0) {
+                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',SQL_NUMROWS()=' . SQL_NUMROWS($GLOBALS['referral_result_refs'][$userid]));
+                               if (SQL_NUMROWS($GLOBALS['referral_result_refs'][$userid]) > 0) {
                                        // Then again walk through all
                                        // Then again walk through all
-                                       while (list($refid) = SQL_FETCHROW($result_refs)) {
+                                       while (list($refid) = SQL_FETCHROW($GLOBALS['referral_result_refs'][$userid])) {
                                                // Add this refid
                                                // Add this refid
-                                               $GLOBALS['referral_refid'][$userid][$level][] = $refid;
-                                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid);
+                                               array_push($GLOBALS['referral_refid'][$userid][$level], $refid);
+                                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level=' . $level . ',refid=' . $refid . ' - ADDED!');
+
                                                // Load the refid's array as well
                                                loadReferralTable($refid);
                                        } // END - while
                                } // END - if
 
                                // Free result
                                                // Load the refid's array as well
                                                loadReferralTable($refid);
                                        } // END - while
                                } // END - if
 
                                // Free result
-                               SQL_FREERESULT($result_refs);
+                               SQL_FREERESULT($GLOBALS['referral_result_refs'][$userid]);
                        } // END - if
                } // END - while
        } // END - if
 
        // Free result
                        } // END - if
                } // END - while
        } // END - if
 
        // Free result
-       SQL_FREERESULT($result);
+       SQL_FREERESULT($GLOBALS['referral_result'][$userid]);
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
 }
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
 }
 
@@ -572,7 +619,7 @@ function addMissingReferralLevels ($userid) {
        // If the array is gone, you have called this function without calling loadReferralTable()
        if (!isset($GLOBALS['referral_refid'][$userid])) {
                // Please fix your code
        // If the array is gone, you have called this function without calling loadReferralTable()
        if (!isset($GLOBALS['referral_refid'][$userid])) {
                // Please fix your code
-               debug_report_bug(__FUNCTION__, __LINE__, 'Called without calling loadReferralTable() before! userid=' . $userid);
+               reportBug(__FUNCTION__, __LINE__, 'Called without calling loadReferralTable() before! userid=' . $userid);
        } // END - if
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['referral_refid'][$userid]));
 
        } // END - if
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['referral_refid'][$userid]));
 
@@ -603,7 +650,7 @@ function addMissingReferralLevels ($userid) {
                                                if ((!isset($GLOBALS['referral_refid'][$userid][$newLevel])) || (!in_array($refRefid, $GLOBALS['referral_refid'][$userid][$newLevel]))) {
                                                        // Then we must add this ref's refid to the userid's next level
                                                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',newLevel=' . $newLevel . ',refRefid=' . $refRefid . ' - ADDED!');
                                                if ((!isset($GLOBALS['referral_refid'][$userid][$newLevel])) || (!in_array($refRefid, $GLOBALS['referral_refid'][$userid][$newLevel]))) {
                                                        // Then we must add this ref's refid to the userid's next level
                                                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',newLevel=' . $newLevel . ',refRefid=' . $refRefid . ' - ADDED!');
-                                                       $GLOBALS['referral_refid'][$userid][$newLevel][] = $refRefid;
+                                                       array_push($GLOBALS['referral_refid'][$userid][$newLevel], $refRefid);
 
                                                        // Add also this user's (maybe) missing levels
                                                        addMissingReferralLevels($refRefid);
 
                                                        // Add also this user's (maybe) missing levels
                                                        addMissingReferralLevels($refRefid);
@@ -613,6 +660,7 @@ function addMissingReferralLevels ($userid) {
                        } // END - foreach
                } // END - foreach
        } // END - foreach
                        } // END - foreach
                } // END - foreach
        } // END - foreach
+       //die('<pre>'.print_r($GLOBALS['referral_refid'][$userid],true).'</pre>');
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
 }
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
 }
 
@@ -622,7 +670,7 @@ function flushReferralTableToDatabase ($userid) {
        // If the array is gone, you have called this function without calling loadReferralTable()
        if (!isset($GLOBALS['referral_refid'][$userid])) {
                // Please fix your code
        // If the array is gone, you have called this function without calling loadReferralTable()
        if (!isset($GLOBALS['referral_refid'][$userid])) {
                // Please fix your code
-               debug_report_bug(__FUNCTION__, __LINE__, 'Called without calling loadReferralTable() before! userid=' . $userid);
+               reportBug(__FUNCTION__, __LINE__, 'Called without calling loadReferralTable() before! userid=' . $userid);
        } // END - if
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['referral_refid'][$userid]));
 
        } // END - if
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['referral_refid'][$userid]));
 
@@ -674,5 +722,89 @@ function flushReferralTableToDatabase ($userid) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
 }
 
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - EXIT!');
 }
 
+// Generator (somewhat getter) for points_data, locked_mode
+function generatePointsLockedModeOptions ($lockedMode =  NULL) {
+       // Is this cached?
+       if (!isset($GLOBALS[__FUNCTION__][$lockedMode])) {
+               // Generate output and cache it
+               $GLOBALS[__FUNCTION__][$lockedMode] = generateOptions(
+                       '/ARRAY/',
+                       array(
+                               'LOCKED',
+                               'UNLOCKED'
+                       ),
+                       array(),
+                       $lockedMode,
+                       '', '',
+                       array(),
+                       'translatePointsLockedMode'
+               );
+       } // END - if
+
+       // Return content
+       return $GLOBALS[__FUNCTION__][$lockedMode];
+}
+
+// Generator (somewhat getter) for points_data, payment_method
+function generatePointsPaymentMethodOptions ($paymentMethod =  NULL) {
+       // Is this cached?
+       if (!isset($GLOBALS[__FUNCTION__][$paymentMethod])) {
+               // Generate output and cache it
+               $GLOBALS[__FUNCTION__][$paymentMethod] = generateOptions(
+                       '/ARRAY/',
+                       array(
+                               'DIRECT',
+                               'REFERRAL'
+                       ),
+                       array(),
+                       $paymentMethod,
+                       '', '',
+                       array(),
+                       'translatePointsPaymentMethod'
+               );
+       } // END - if
+
+       // Return content
+       return $GLOBALS[__FUNCTION__][$paymentMethod];
+}
+
+// Generator (somewhat getter) for points_data, notify_recipient
+function generatePointsNotifyRecipientOptions ($notifyRecipient =  NULL) {
+       // Is this cached?
+       if (!isset($GLOBALS[__FUNCTION__][$notifyRecipient])) {
+               // Generate output and cache it
+               $GLOBALS[__FUNCTION__][$notifyRecipient] = generateOptions(
+                       '/ARRAY/',
+                       array(
+                               'Y',
+                               'N'
+                       ),
+                       array(),
+                       $notifyRecipient,
+                       '', '',
+                       array(),
+                       'translatePointsNotifyRecipient'
+               );
+       } // END - if
+
+       // Return content
+       return $GLOBALS[__FUNCTION__][$notifyRecipient];
+}
+
+// Setter for referral id (no bigintval, or nicknames will fail!)
+function setReferralId ($refid) {
+       $GLOBALS['__refid'] = $refid;
+}
+
+// Checks if 'refid' is valid
+function isReferralIdValid () {
+       return ((isset($GLOBALS['__refid'])) && (getReferralId() !== NULL) && (getReferralId() > 0));
+}
+
+// Getter for referral id
+function getReferralId () {
+       return $GLOBALS['__refid'];
+}
+
 // [EOF]
 ?>
 // [EOF]
 ?>
index 6a17a3c324f01f4f79c86b8e66a2c8eb34427cc4..c4afd304a919d52d64ef19dbbf0f4d8a7185ffe4 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -156,7 +156,8 @@ function postRequestElement ($element, $subElement = NULL) {
 // Checks if an element in $_POST exists
 function isPostRequestElementSet ($element, $subElement = NULL) {
        if (is_null($subElement)) {
 // Checks if an element in $_POST exists
 function isPostRequestElementSet ($element, $subElement = NULL) {
        if (is_null($subElement)) {
-               return ((isset($GLOBALS['raw_request']['post'][$element])) && (('' . $GLOBALS['raw_request']['post'][$element] . '') != ''));
+               if (!is_string($element)) die(gettype($element));
+               return ((isset($GLOBALS['raw_request']['post'][$element])) && ((is_array($GLOBALS['raw_request']['post'][$element])) || (('' . $GLOBALS['raw_request']['post'][$element] . '') != '')));
        } else {
                return ((isset($GLOBALS['raw_request']['post'][$element][$subElement])) && (('' . $GLOBALS['raw_request']['post'][$element][$subElement] . '') != ''));
        }
        } else {
                return ((isset($GLOBALS['raw_request']['post'][$element][$subElement])) && (('' . $GLOBALS['raw_request']['post'][$element][$subElement] . '') != ''));
        }
@@ -230,29 +231,21 @@ function setPostRequestElement ($element, $value) {
        $GLOBALS['cache_request']['post'][$element][null] = $value;
 }
 
        $GLOBALS['cache_request']['post'][$element][null] = $value;
 }
 
-// Checks wether a form was sent. If so, the $_POST['ok'] element must be set
+// Checks whether a form was sent. If so, the $_POST['ok'] element must be set
 function isFormSent ($requestParameter = 'ok') {
        // Simply wrap it!
        return isPostRequestElementSet($requestParameter);
 }
 
 function isFormSent ($requestParameter = 'ok') {
        // Simply wrap it!
        return isPostRequestElementSet($requestParameter);
 }
 
-// Checks if 'content_type' is set
-function isContentTypeSet () {
-       return isset($GLOBALS['content_type']);
-}
-
-// Setter for content type
-function setContentType ($contentType) {
-       $GLOBALS['content_type'] = (string) $contentType;
-}
-
-// Getter for content type
-function getContentType () {
-       return $GLOBALS['content_type'];
-}
-
 // Getter for request URI
 function getRequestUri () {
 // Getter for request URI
 function getRequestUri () {
+       // Is it not set?
+       if (!isset($_SERVER['REQUEST_URI'])) {
+               // Return empty string
+               return '';
+       } // END - if
+
+       // Return it
        return $_SERVER['REQUEST_URI'];
 }
 
        return $_SERVER['REQUEST_URI'];
 }
 
index 318f337e260babbf78aad66dc1e06ab4bd07d691..40ff69b3f650568580fb4985f77f4c27f385c64d 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -55,11 +55,20 @@ function initRepositoryData () {
                // Default branch
                'Tag'      => 8
        );
                // Default branch
                'Tag'      => 8
        );
+
+       // Add Revision, Date, Tag and Author
+       $GLOBALS['repository_search_for'] = array(
+               'File',
+               'Revision',
+               'Date',
+               'Tag',
+               'Author'
+       );
 }
 
 // "Getter" for revision/version data
 function getRepositoryData ($type = 'Revision') {
 }
 
 // "Getter" for revision/version data
 function getRepositoryData ($type = 'Revision') {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ret[' . $type . '] - ENTRY!');
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ret[' . $type . '] - ENTERED!');
        // Default is an invalid value to find bugs... :-)
        $ret = 'INVALID';
 
        // Default is an invalid value to find bugs... :-)
        $ret = 'INVALID';
 
@@ -89,10 +98,10 @@ function getRepositoryData ($type = 'Revision') {
                                $new = true;
                        } else {
                                // Revision file found
                                $new = true;
                        } else {
                                // Revision file found
-                               $ins_vers = explode("\n", readFromFile($FQFN));
+                               $ins_vers = explode(chr(10), readFromFile($FQFN));
 
                                // Get array for mapping information
 
                                // Get array for mapping information
-                               $mapper = array_flip(getSearchFor());
+                               $mapper = array_flip($GLOBALS['repository_search_for']);
                                //* DEBUG: */ debugOutput('<pre>mapper='.print_r($mapper, true).'</pre>ins_vers=<pre>'.print_r($ins_vers, true).'</pre>');
 
                                // Is the content valid?
                                //* DEBUG: */ debugOutput('<pre>mapper='.print_r($mapper, true).'</pre>ins_vers=<pre>'.print_r($ins_vers, true).'</pre>');
 
                                // Is the content valid?
@@ -115,7 +124,7 @@ function getRepositoryData ($type = 'Revision') {
                // Has it been updated?
                if ($new === true)  {
                        // Write it
                // Has it been updated?
                if ($new === true)  {
                        // Write it
-                       writeToFile($FQFN, implode("\n", getArrayFromRepositoryData()));
+                       writeToFile($FQFN, implode(chr(10), getArrayFromRepositoryData()));
 
                        // ... and call recursive
                        $ret = getRepositoryData($type);
 
                        // ... and call recursive
                        $ret = getRepositoryData($type);
@@ -124,20 +133,10 @@ function getRepositoryData ($type = 'Revision') {
        }
 
        // Return the value
        }
 
        // Return the value
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ret[' . $type . ']=' . $ret);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ret[' . $type . ']=' . $ret . ' - EXIT!');
        return $ret;
 }
 
        return $ret;
 }
 
-// Repares an array we are looking for
-// The returned Array is needed twice (in getArrayFromRepositoryData() and in getRepositoryData() in the old .revision-fallback) so I puted it in an extra function to not polute the global namespace
-function getSearchFor () {
-       // Add Revision, Date, Tag and Author
-       $searchFor = array('File', 'Revision', 'Date', 'Tag', 'Author');
-
-       // Return the created array
-       return $searchFor;
-}
-
 // Extracts requested revision info from given file data
 function extractRevisionInfoFromData ($fileData, $search) {
        // Default is to return empty string
 // Extracts requested revision info from given file data
 function extractRevisionInfoFromData ($fileData, $search) {
        // Default is to return empty string
@@ -196,7 +195,7 @@ function getArrayFromRepositoryData () {
        $GLOBALS['cache_array']['revision']['File'][0] = $last_changed['path_name'];
 
        // This foreach loops the $searchFor-Tags (array('Revision', 'Date', 'Tag', 'Author') --> could easaly extended in the future)
        $GLOBALS['cache_array']['revision']['File'][0] = $last_changed['path_name'];
 
        // This foreach loops the $searchFor-Tags (array('Revision', 'Date', 'Tag', 'Author') --> could easaly extended in the future)
-       foreach (getSearchFor() as $search) {
+       foreach ($GLOBALS['repository_search_for'] as $search) {
                // This extracts the requested data $search from file data $last_file
                if ($search != 'File') {
                        // Skip 'File' because we have set it some lines above
                // This extracts the requested data $search from file data $last_file
                if ($search != 'File') {
                        // Skip 'File' because we have set it some lines above
@@ -228,12 +227,12 @@ function getArrayFromRepositoryData () {
                // Invalid request reply?
                if (!isset($version[11])) {
                        // Cannot continue here
                // Invalid request reply?
                if (!isset($version[11])) {
                        // Cannot continue here
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Invalid response from check-updates3.php, count should be at least 11, is ' . count($version));
+                       reportBug(__FUNCTION__, __LINE__, 'Invalid response from check-updates3.php, count should be at least 11, is ' . count($version));
                } // END - if
 
                // Prepare content
                // Only sets not setted or not proper values to the Online-Server-Fallback-Solution
                } // END - if
 
                // Prepare content
                // Only sets not setted or not proper values to the Online-Server-Fallback-Solution
-               foreach (getSearchFor() as $entry) {
+               foreach ($GLOBALS['repository_search_for'] as $entry) {
                        // Is it not set or empty?
                        if ((!isset($GLOBALS['cache_array']['revision'][$entry][0])) || (empty($GLOBALS['cache_array']['revision']['File'][0]))) {
                                // Is default data entry nummerical?
                        // Is it not set or empty?
                        if ((!isset($GLOBALS['cache_array']['revision'][$entry][0])) || (empty($GLOBALS['cache_array']['revision']['File'][0]))) {
                                // Is default data entry nummerical?
index 95d26340ba0295bcf7cb22d5c3a75bb6263e0804..706a483c1c71f8e841a26ea005427ed2b524a99a 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 // Some security stuff...
 if (!defined('__SECURITY')) {
        die();
 // Some security stuff...
 if (!defined('__SECURITY')) {
        die();
-}
+} // END - if
 
 // Unset/set session variables
 function setSession ($var, $value) {
        // Abort in CSS mode here
 
 // Unset/set session variables
 function setSession ($var, $value) {
        // Abort in CSS mode here
-       if (isCssOutputMode()) return true;
+       if (isCssOutputMode()) {
+               return true;
+       } // END - if
 
        // Trim value and session variable
        $var   = trim(secureString($var));
 
        // Trim value and session variable
        $var   = trim(secureString($var));
@@ -54,22 +56,22 @@ function setSession ($var, $value) {
                // Remove the session
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UNSET:' . $var . '=' . getSession($var));
                unset($GLOBALS['_SESSION'][$var]);
                // Remove the session
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UNSET:' . $var . '=' . getSession($var));
                unset($GLOBALS['_SESSION'][$var]);
-               if (phpversion() >= '5.3.1') {
-                       // session_unregister() is deprecated as of 5.3.1
+               if (isPhpVersionEqualNewer('5.3.0')) {
+                       // session_unregister() is deprecated as of 5.3.0
                        return true;
                } else {
                        return true;
                } else {
-                       // PHP version < 5.3.1
+                       // PHP version < 5.3.0
                        return session_unregister($var);
                }
        } elseif (('' . $value . '' != '') && (!isSessionVariableSet($var))) {
                // Set session
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SET:' . $var . '=' . $value);
                $GLOBALS['_SESSION'][$var] =  $value;
                        return session_unregister($var);
                }
        } elseif (('' . $value . '' != '') && (!isSessionVariableSet($var))) {
                // Set session
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SET:' . $var . '=' . $value);
                $GLOBALS['_SESSION'][$var] =  $value;
-               if (phpversion() >= '5.3.1') {
-                       // session_unregister() is deprecated as of 5.3.1
+               if (isPhpVersionEqualNewer('5.3.0')) {
+                       // session_unregister() is deprecated as of 5.3.0
                        return true;
                } else {
                        return true;
                } else {
-                       // PHP version < 5.3.1
+                       // PHP version < 5.3.0
                        return session_register($var);
                }
        } elseif (!empty($value)) {
                        return session_register($var);
                }
        } elseif (!empty($value)) {
@@ -84,13 +86,13 @@ function setSession ($var, $value) {
        return true;
 }
 
        return true;
 }
 
-// Check wether a session variable is set
+// Check whether a session variable is set
 function isSessionVariableSet ($var) {
 function isSessionVariableSet ($var) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'var=' . $var . ' set in session');
+       // Warning: DO NOT call logDebugMessage() from here, this will cause an endless loop
        return (isset($GLOBALS['_SESSION'][$var]));
 }
 
        return (isset($GLOBALS['_SESSION'][$var]));
 }
 
-// Returns wether the value of the session variable or NULL if not set
+// Returns whether the value of the session variable or NULL if not set
 function getSession ($var) {
        // Default is not found ;-)
        $value = NULL;
 function getSession ($var) {
        // Default is not found ;-)
        $value = NULL;
@@ -106,6 +108,12 @@ function getSession ($var) {
        return $value;
 }
 
        return $value;
 }
 
+// Get whole session array
+function getSessionArray () {
+       // Simply return it
+       return $GLOBALS['_SESSION'];
+}
+
 // Destroy user session
 function destroyMemberSession () {
        // Reset userid
 // Destroy user session
 function destroyMemberSession () {
        // Reset userid
index d45062c7448dfff25203852e1a2212a7c0abc15b..49c0ab12193498d8a0ed2f76312ead2f09546578 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Is ext-sql_patches there and newer?
 } // END - if
 
 // Is ext-sql_patches there and newer?
index fae901b2733c39f2ef10059e8474e31e79648685..9982711f408a4783d574b449493c67ef4ef11d80 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,10 +42,11 @@ if (!defined('__SECURITY')) {
 
 // Init SQLs array
 function initSqls () {
 
 // Init SQLs array
 function initSqls () {
-       setSqlsArray(array());
+       // Init generic array
+       setSqlsArray(array('generic' => array()));
 }
 
 }
 
-// Checks wether the sqls array is initialized
+// Checks whether the sqls array is initialized
 function isSqlsInitialized () {
        return ((isset($GLOBALS['sqls'])) && (is_array($GLOBALS['sqls'])));
 }
 function isSqlsInitialized () {
        return ((isset($GLOBALS['sqls'])) && (is_array($GLOBALS['sqls'])));
 }
@@ -69,7 +70,7 @@ function getSqls () {
 // Add an SQL to the list
 function addSql ($sql) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("sql=%s, count=%d", $sql, countSqls()));
 // Add an SQL to the list
 function addSql ($sql) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("sql=%s, count=%d", $sql, countSqls()));
-       $GLOBALS['sqls']['generic'][] = (string) $sql;
+       array_push($GLOBALS['sqls']['generic'], $sql);
 }
 
 // Merge SQLs together
 }
 
 // Merge SQLs together
@@ -112,7 +113,7 @@ function countSqls () {
        return $count;
 }
 
        return $count;
 }
 
-// Checks wether the SQLs array is filled
+// Checks whether the SQLs array is filled
 function isSqlsValid () {
        //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . intval(isSqlsInitialized()) . '/' . countSqls() . '/' . getCurrentExtensionName());
        return (
 function isSqlsValid () {
        //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . intval(isSqlsInitialized()) . '/' . countSqls() . '/' . getCurrentExtensionName());
        return (
@@ -206,7 +207,7 @@ function getInsertSqlFromArray ($array, $tableName) {
                        $SQL .= sprintf('%01.5f', $value);
                } else {
                        // Everything else might be a string, so add ticks around it
                        $SQL .= sprintf('%01.5f', $value);
                } else {
                        // Everything else might be a string, so add ticks around it
-                       $SQL .= "'" . SQL_ESCAPE($value) . "',";
+                       $SQL .= chr(39) . SQL_ESCAPE($value) . chr(39) . ',';
                }
        } // END - foreach
 
                }
        } // END - foreach
 
index 343a7c510c7284794fb4176ccb5230a0a2a7abc9..a965d71c155d583598a8b2fb052e26ba1bfdd02c 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -64,7 +64,8 @@ function isStatsEntrySet ($entry) {
 // Increments a statistics entry
 function incrementStatsEntry ($entry, $amount=1) {
        // Do we have stats enabled?
 // Increments a statistics entry
 function incrementStatsEntry ($entry, $amount=1) {
        // Do we have stats enabled?
-       if (!ifInternalStatsEnabled()) {
+       if ((!ifInternalStatsEnabled()) && ($entry != 'db_hits')) {
+               // Abort here
                return;
        } // END - if
 
                return;
        } // END - if
 
@@ -74,7 +75,7 @@ function incrementStatsEntry ($entry, $amount=1) {
                $GLOBALS['stats'][$entry] += $amount;
        } else {
                // Write it
                $GLOBALS['stats'][$entry] += $amount;
        } else {
                // Write it
-               $GLOBALS['stats'][$entry] = $amount;
+               setStatsEntry($entry, $amount);
        }
 }
 
        }
 }
 
@@ -179,6 +180,18 @@ function FILTER_FLUSH_STATS () {
        if ((isset($GLOBALS['stats'])) && (!isInstallationPhase()) && (ifInternalStatsEnabled())) {
                // Write statistics to temporary table
                writeStatsTable();
        if ((isset($GLOBALS['stats'])) && (!isInstallationPhase()) && (ifInternalStatsEnabled())) {
                // Write statistics to temporary table
                writeStatsTable();
+
+               // Count db/cache hits in database
+               updateConfiguration(
+                       array(
+                               'db_hits',
+                               'cache_hits'
+                       ), array(
+                               getStatsEntry('db_hits'),
+                               getStatsEntry('cache_hits')
+                       ),
+                       '+'
+               );
        } // END - if
 }
 
        } // END - if
 }
 
index ab881f0286af756132e5ca2f1ecd2bd2f7d6e9b3..29b7304c5ccb471498bf068e8fd4da7f129d3954 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -43,13 +43,27 @@ if (!defined('__SECURITY')) {
 // Default styles
 $stylesList = array(
                'general.css',
 // Default styles
 $stylesList = array(
                'general.css',
+               'ajax.css',
 );
 
 // Add stylesheet for installation
 );
 
 // Add stylesheet for installation
-if ((isInstallationPhase())) $stylesList[] = 'install.css';
+if ((isInstallationPhase())) {
+       array_push($stylesList, 'install.css');
+} // END - if
 
 // When no CSS output-mode is set, set it to file-output
 
 // When no CSS output-mode is set, set it to file-output
-if (!isConfigEntrySet('css_php')) setConfigEntry('css_php', 'FILE');
+if (!isConfigEntrySet('css_php')) {
+       setConfigEntry('css_php', 'FILE');
+} // END - if
+
+// Get current theme
+$currentTheme = getCurrentTheme();
+
+// Has the theme changed?
+if ($currentTheme != getSession('mailer_theme')) {
+       // Then set it
+       setMailerTheme($currentTheme);
+} // END - if
 
 // Output CSS files or content or link to css.php ?
 if ((isCssOutputMode()) || (getConfig('css_php') == 'DIRECT')) {
 
 // Output CSS files or content or link to css.php ?
 if ((isCssOutputMode()) || (getConfig('css_php') == 'DIRECT')) {
@@ -57,7 +71,7 @@ if ((isCssOutputMode()) || (getConfig('css_php') == 'DIRECT')) {
        $stylesList = merge_array($stylesList, getExtensionCssFiles());
 
        // Generate base path
        $stylesList = merge_array($stylesList, getExtensionCssFiles());
 
        // Generate base path
-       $basePath = sprintf("%stheme/%s/css/", getPath(), getCurrentTheme());
+       $basePath = sprintf("%stheme/%s/css/", getPath(), $currentTheme);
 
        // Output inclusion lines
        foreach ($stylesList as $value) {
 
        // Output inclusion lines
        foreach ($stylesList as $value) {
@@ -68,15 +82,15 @@ if ((isCssOutputMode()) || (getConfig('css_php') == 'DIRECT')) {
                if ((isFileReadable($FQFN)) && (filesize($FQFN) > 0)) {
                        switch (getConfig('css_php')) {
                                case 'DIRECT': // Just link them (unsupported)
                if ((isFileReadable($FQFN)) && (filesize($FQFN) > 0)) {
                        switch (getConfig('css_php')) {
                                case 'DIRECT': // Just link them (unsupported)
-                                       $GLOBALS['page_header'] .= '<link rel="stylesheet" type="text/css" href="{%url=theme/' . getCurrentTheme() . '/' . $value . '%}" />';
+                                       $GLOBALS['__page_header'] .= '<link rel="stylesheet" type="text/css" href="{%url=theme/' . getCurrentTheme() . '/' . $value . '%}" />';
                                        break;
 
                                case 'FILE': // Output contents
                                        break;
 
                                case 'FILE': // Output contents
-                                       $GLOBALS['page_header'] .= readFromFile($FQFN);
+                                       $GLOBALS['__page_header'] .= readFromFile($FQFN);
                                        break;
 
                                default: // Invalid mode!
                                        break;
 
                                default: // Invalid mode!
-                                       debug_report_bug(__FILE__, __LINE__, sprintf("Invalid css_php value %s detected.", getConfig('css_php')));
+                                       reportBug(__FILE__, __LINE__, sprintf("Invalid css_php value %s detected.", getConfig('css_php')));
                                        break;
                        } // END - switch
                } // END - if
                                        break;
                        } // END - switch
                } // END - if
@@ -102,7 +116,7 @@ if ((isCssOutputMode()) || (getConfig('css_php') == 'DIRECT')) {
        } // END - foreach
 
        // Load template
        } // END - foreach
 
        // Load template
-       $GLOBALS['page_header'] .= loadTemplate('css_inline', true, $OUT);
+       $GLOBALS['__page_header'] .= loadTemplate('css_inline', true, $OUT);
 } else {
        // Now we load all CSS files from css.php!
        $OUT = '<link rel="stylesheet" type="text/css" href="{%url=css.php';
 } else {
        // Now we load all CSS files from css.php!
        $OUT = '<link rel="stylesheet" type="text/css" href="{%url=css.php';
@@ -115,7 +129,7 @@ if ((isCssOutputMode()) || (getConfig('css_php') == 'DIRECT')) {
        }
 
        // Close tag
        }
 
        // Close tag
-       $GLOBALS['page_header'] .= $OUT . '%}{%ext,version=sql_patches%}" />';
+       $GLOBALS['__page_header'] .= $OUT . '%}{%ext,version=sql_patches%}" />';
 }
 
 // [EOF]
 }
 
 // [EOF]
index 205c96de97f3eda28bb30b57ae7bc91455085e7e..34469e68de3b650fa1864f8245c78be203f20224 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -50,7 +50,7 @@ function enableTemplateHtml ($enable = true) {
        $GLOBALS['is_template_html'] = (bool) $enable;
 }
 
        $GLOBALS['is_template_html'] = (bool) $enable;
 }
 
-// Checks wether the template is HTML or not by previously set flag
+// Checks whether the template is HTML or not by previously set flag
 // Default: true
 function isTemplateHtml () {
        // Is the output_mode other than 0 (HTML), then no comments are enabled
 // Default: true
 function isTemplateHtml () {
        // Is the output_mode other than 0 (HTML), then no comments are enabled
@@ -95,60 +95,62 @@ function getColorSwitchCode ($template) {
 // Output HTML code directly or 'render' it. You addionally switch the new-line character off
 function outputHtml ($htmlCode, $newLine = true) {
        // Init output
 // Output HTML code directly or 'render' it. You addionally switch the new-line character off
 function outputHtml ($htmlCode, $newLine = true) {
        // Init output
-       if (!isset($GLOBALS['output'])) {
-               $GLOBALS['output'] = '';
+       if (!isset($GLOBALS['__output'])) {
+               $GLOBALS['__output'] = '';
        } // END - if
 
        } // END - if
 
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getOutputMode()=' . getOutputMode() . ',htmlCode(length)=' . strlen($htmlCode) . ',output(length)=' . strlen($GLOBALS['__output']));
        // Do we have HTML-Code here?
        if (!empty($htmlCode)) {
                // Yes, so we handle it as you have configured
                switch (getOutputMode()) {
                        case 'render':
        // Do we have HTML-Code here?
        if (!empty($htmlCode)) {
                // Yes, so we handle it as you have configured
                switch (getOutputMode()) {
                        case 'render':
-                               // That's why you don't need any \n at the end of your HTML code... :-)
+                               // But if PHP is caching, then we don't need to do that
                                if (getPhpCaching() == 'on') {
                                        // Output into PHP's internal buffer
                                        outputRawCode($htmlCode);
 
                                        // That's why you don't need any \n at the end of your HTML code... :-)
                                        if ($newLine === true) {
                                if (getPhpCaching() == 'on') {
                                        // Output into PHP's internal buffer
                                        outputRawCode($htmlCode);
 
                                        // That's why you don't need any \n at the end of your HTML code... :-)
                                        if ($newLine === true) {
-                                               print("\n");
+                                               outputRawCode(chr(10));
                                        } // END - if
                                } else {
                                        // Render mode for old or lame servers...
                                        } // END - if
                                } else {
                                        // Render mode for old or lame servers...
-                                       $GLOBALS['output'] .= $htmlCode;
+                                       $GLOBALS['__output'] .= $htmlCode;
 
                                        // That's why you don't need any \n at the end of your HTML code... :-)
                                        if ($newLine === true) {
 
                                        // That's why you don't need any \n at the end of your HTML code... :-)
                                        if ($newLine === true) {
-                                               $GLOBALS['output'] .= "\n";
+                                               $GLOBALS['__output'] .= chr(10);
                                        } // END - if
                                }
                                break;
 
                        case 'direct':
                                        } // END - if
                                }
                                break;
 
                        case 'direct':
-                               // If we are switching from render to direct output rendered code
-                               if ((!empty($GLOBALS['output'])) && (getPhpCaching() != 'on')) {
-                                       outputRawCode($GLOBALS['output']);
-                                       $GLOBALS['output'] = '';
+                               // If we are switching from 'render' to 'direct' mode, all data in '__output' must be flushed and cleared
+                               if ((!empty($GLOBALS['__output'])) && (getPhpCaching() != 'on')) {
+                                       outputRawCode($GLOBALS['__output']);
+                                       $GLOBALS['__output'] = '';
                                } // END - if
 
                                // The same as above... ^
                                outputRawCode($htmlCode);
                                if ($newLine === true) {
                                } // END - if
 
                                // The same as above... ^
                                outputRawCode($htmlCode);
                                if ($newLine === true) {
-                                       print("\n");
+                                       outputRawCode(chr(10));
                                } // END - if
                                break;
 
                        default:
                                // Huh, something goes wrong or maybe you have edited config.php ???
                                } // END - if
                                break;
 
                        default:
                                // Huh, something goes wrong or maybe you have edited config.php ???
-                               debug_report_bug(__FUNCTION__, __LINE__, '<strong>{--FATAL_ERROR--}:</strong> {--NO_RENDER_DIRECT--}');
+                               reportBug(__FUNCTION__, __LINE__, '<strong>{--FATAL_ERROR--}:</strong> {--NO_RENDER_DIRECT--}');
                                break;
                } // END - switch
                                break;
                } // END - switch
-       } elseif ((getPhpCaching() == 'on') && ((!isset($GLOBALS['header'])) || (count($GLOBALS['header']) == 0)) && (!isRawOutputMode())) {
+       } elseif ((getPhpCaching() == 'on') && ((!isset($GLOBALS['http_header'])) || (count($GLOBALS['http_header']) == 0)) && (!isRawOutputMode())) {
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getPhpCaching()=' . getPhpCaching() . ',isset(http_header)=' . intval(isset($GLOBALS['http_header'])) . ',getScriptOutputMode()=' . getScriptOutputMode() . '');
                // Output cached HTML code
                // Output cached HTML code
-               $GLOBALS['output'] = ob_get_contents();
+               $GLOBALS['__output'] = ob_get_contents();
 
                // Clear output buffer for later output if output is found
 
                // Clear output buffer for later output if output is found
-               if (!empty($GLOBALS['output'])) {
+               if (!empty($GLOBALS['__output'])) {
                        clearOutputBuffer();
                } // END - if
 
                        clearOutputBuffer();
                } // END - if
 
@@ -159,8 +161,8 @@ function outputHtml ($htmlCode, $newLine = true) {
                compileFinalOutput();
 
                // Output code here, DO NOT REMOVE! ;-)
                compileFinalOutput();
 
                // Output code here, DO NOT REMOVE! ;-)
-               outputRawCode($GLOBALS['output']);
-       } elseif ((getOutputMode() == 'render') && (!empty($GLOBALS['output'])) && (!isRawOutputMode())) {
+               outputRawCode($GLOBALS['__output']);
+       } elseif ((getOutputMode() == 'render') && (!empty($GLOBALS['__output'])) && (!isRawOutputMode())) {
                // Send all HTTP headers
                sendHttpHeaders();
 
                // Send all HTTP headers
                sendHttpHeaders();
 
@@ -168,7 +170,7 @@ function outputHtml ($htmlCode, $newLine = true) {
                compileFinalOutput();
 
                // Output code here, DO NOT REMOVE! ;-)
                compileFinalOutput();
 
                // Output code here, DO NOT REMOVE! ;-)
-               outputRawCode($GLOBALS['output']);
+               outputRawCode($GLOBALS['__output']);
        } else {
                // And flush all headers
                flushHttpHeaders();
        } else {
                // And flush all headers
                flushHttpHeaders();
@@ -177,15 +179,17 @@ function outputHtml ($htmlCode, $newLine = true) {
 
 // Compiles the final output
 function compileFinalOutput () {
 
 // Compiles the final output
 function compileFinalOutput () {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '__output(length)=' . strlen($GLOBALS['__output']) . ',getScriptOutputMode()=' . getScriptOutputMode() . ' - ENTERED!');
        // Add page header and footer
        addPageHeaderFooter();
        // Add page header and footer
        addPageHeaderFooter();
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, '__output(length)=' . strlen($GLOBALS['__output']) . ' - After addPageHeaderFooter() call.');
 
        // Do the final compilation
 
        // Do the final compilation
-       $GLOBALS['output'] = doFinalCompilation($GLOBALS['output']);
+       $GLOBALS['__output'] = compileUriCode(doFinalCompilation($GLOBALS['__output']));
 
        // Extension 'rewrite' installed?
        if ((isExtensionActive('rewrite')) && (!isCssOutputMode())) {
 
        // Extension 'rewrite' installed?
        if ((isExtensionActive('rewrite')) && (!isCssOutputMode())) {
-               $GLOBALS['output'] = rewriteLinksInCode($GLOBALS['output']);
+               $GLOBALS['__output'] = rewriteLinksInCode($GLOBALS['__output']);
        } // END - if
 
        // Compress it?
        } // END - if
 
        // Compress it?
@@ -193,13 +197,13 @@ function compileFinalOutput () {
         * @TODO On some pages this is buggy
        if (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (isInStringIgnoreCase('gzip', $_SERVER['HTTP_ACCEPT_ENCODING']))) {
                // Compress it for HTTP gzip
         * @TODO On some pages this is buggy
        if (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (isInStringIgnoreCase('gzip', $_SERVER['HTTP_ACCEPT_ENCODING']))) {
                // Compress it for HTTP gzip
-               $GLOBALS['output'] = gzencode($GLOBALS['output'], 9);
+               $GLOBALS['__output'] = gzencode($GLOBALS['__output'], 9);
 
                // Add header
                addHttpHeader('Content-Encoding: gzip');
        } elseif (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (isInStringIgnoreCase('deflate', $_SERVER['HTTP_ACCEPT_ENCODING']))) {
                // Compress it for HTTP deflate
 
                // Add header
                addHttpHeader('Content-Encoding: gzip');
        } elseif (!empty($_SERVER['HTTP_ACCEPT_ENCODING']) && (isInStringIgnoreCase('deflate', $_SERVER['HTTP_ACCEPT_ENCODING']))) {
                // Compress it for HTTP deflate
-               $GLOBALS['output'] = gzcompress($GLOBALS['output'], 9);
+               $GLOBALS['__output'] = gzcompress($GLOBALS['__output'], 9);
 
                // Add header
                addHttpHeader('Content-Encoding: deflate');
 
                // Add header
                addHttpHeader('Content-Encoding: deflate');
@@ -207,7 +211,7 @@ function compileFinalOutput () {
        */
 
        // Add final length
        */
 
        // Add final length
-       addHttpHeader('Content-Length: ' . strlen($GLOBALS['output']));
+       addHttpHeader('Content-Length: ' . strlen($GLOBALS['__output']));
 
        // Flush all headers
        flushHttpHeaders();
 
        // Flush all headers
        flushHttpHeaders();
@@ -238,7 +242,7 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true)
                // Was that eval okay?
                if (empty($newContent)) {
                        // Something went wrong!
                // Was that eval okay?
                if (empty($newContent)) {
                        // Something went wrong!
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Evaluation error:<pre>' . linenumberCode($eval) . '</pre>', false);
+                       reportBug(__FUNCTION__, __LINE__, 'Evaluation error:<pre>' . linenumberCode($eval) . '</pre>', false);
                } // END - if
 
                // Use it again
                } // END - if
 
                // Use it again
@@ -255,7 +259,7 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true)
        } // END - while
 
        // Add debugging data in HTML code, if mode is enabled
        } // END - while
 
        // Add debugging data in HTML code, if mode is enabled
-       if ((isDebugModeEnabled()) && ($insertComments === true)) {
+       if ((isDebugModeEnabled()) && ($insertComments === true) && ((isHtmlOutputMode()) || (isCssOutputMode()))) {
                // Add loop count
                $code .= '<!-- Total compilation loop=' . $count . ' //-->';
        } // END - if
                // Add loop count
                $code .= '<!-- Total compilation loop=' . $count . ' //-->';
        } // END - if
@@ -267,7 +271,7 @@ function doFinalCompilation ($code, $insertComments = true, $enableCodes = true)
 // Output the raw HTML code
 function outputRawCode ($htmlCode) {
        // Output stripped HTML code to avoid broken JavaScript code, etc.
 // Output the raw HTML code
 function outputRawCode ($htmlCode) {
        // Output stripped HTML code to avoid broken JavaScript code, etc.
-       print(str_replace('{BACK}', "\\", $htmlCode));
+       print(str_replace('{BACK}', chr(92), $htmlCode));
 
        // Flush the output if only getPhpCaching() is not 'on'
        if (getPhpCaching() != 'on') {
 
        // Flush the output if only getPhpCaching() is not 'on'
        if (getPhpCaching() != 'on') {
@@ -281,10 +285,10 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC
        // @TODO Remove these sanity checks if all is fine
        if (!is_bool($return)) {
                // $return has to be boolean
        // @TODO Remove these sanity checks if all is fine
        if (!is_bool($return)) {
                // $return has to be boolean
-               debug_report_bug(__FUNCTION__, __LINE__, 'return[] is not bool (' . gettype($return) . ')');
+               reportBug(__FUNCTION__, __LINE__, 'return[] is not bool (' . gettype($return) . ')');
        } elseif (!is_string($template)) {
                // $template has to be string
        } elseif (!is_string($template)) {
                // $template has to be string
-               debug_report_bug(__FUNCTION__, __LINE__, 'template[] is not string (' . gettype($template) . ')');
+               reportBug(__FUNCTION__, __LINE__, 'template[] is not string (' . gettype($template) . ')');
        }
 
        // Init returned content
        }
 
        // Init returned content
@@ -327,10 +331,10 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC
                                // Normal HTML output?
                                if ((isHtmlOutputMode()) && (substr($template, 0, 3) != 'js_')) {
                                        // Add surrounding HTML comments to help finding bugs faster
                                // Normal HTML output?
                                if ((isHtmlOutputMode()) && (substr($template, 0, 3) != 'js_')) {
                                        // Add surrounding HTML comments to help finding bugs faster
-                                       $ret = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
+                                       $code = '<!-- Template ' . $template . ' - Start //-->' . $GLOBALS['tpl_content'][$template] . '<!-- Template ' . $template . ' - End //-->';
 
                                        // Prepare eval() command
 
                                        // Prepare eval() command
-                                       $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($ret), false, true, true, $compileCode) . '";';
+                                       $GLOBALS['template_eval'][$template] = '$ret = "' . getColorSwitchCode($template) . compileCode(escapeQuotes($code), false, true, true, $compileCode) . '";';
                                } elseif (substr($template, 0, 3) == 'js_') {
                                        // JavaScripts don't like entities, dollar signs and timings
                                        $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template]), false, true, true, $compileCode) . '");';
                                } elseif (substr($template, 0, 3) == 'js_') {
                                        // JavaScripts don't like entities, dollar signs and timings
                                        $GLOBALS['template_eval'][$template] = '$ret = decodeEntities("' . compileRawCode(escapeJavaScriptQuotes($GLOBALS['tpl_content'][$template]), false, true, true, $compileCode) . '");';
@@ -349,7 +353,7 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC
                } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
                        // Only admins shall see this warning or when installation mode is active
                        $ret = '<div class="para">
                } elseif ((isAdmin()) || ((isInstalling()) && (!isInstalled()))) {
                        // Only admins shall see this warning or when installation mode is active
                        $ret = '<div class="para">
-       <span class="bad">{--TEMPLATE_404--}</span>
+       {--TEMPLATE_404--}
 </div>
 <div class="para">
        (' . $template . ')
 </div>
 <div class="para">
        (' . $template . ')
@@ -367,7 +371,10 @@ function loadTemplate ($template, $return = false, $content = array(), $compileC
        // Code set?
        if ((isset($GLOBALS['template_eval'][$template])) && ($GLOBALS['template_eval'][$template] != '404')) {
                // Eval the code
        // Code set?
        if ((isset($GLOBALS['template_eval'][$template])) && ($GLOBALS['template_eval'][$template] != '404')) {
                // Eval the code
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template=' . $template . ' - BEFORE EVAL');
+               ///* DEBUG: */ print('<pre>'.htmlentities($GLOBALS['template_eval'][$template]).'</pre>');
                eval($GLOBALS['template_eval'][$template]);
                eval($GLOBALS['template_eval'][$template]);
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template=' . $template . ' - AFTER EVAL');
        } // END - if
 
        // Do we have some content to output or return?
        } // END - if
 
        // Do we have some content to output or return?
@@ -445,6 +452,9 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
        // Make sure all template names are lowercase!
        $template = strtolower($template);
 
        // Make sure all template names are lowercase!
        $template = strtolower($template);
 
+       // Set current template
+       $GLOBALS['current_template'] = $template;
+
        // Is content an array?
        if (is_array($content)) {
                // Add expiration to array
        // Is content an array?
        if (is_array($content)) {
                // Add expiration to array
@@ -460,37 +470,6 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
                }
        } // END - if
 
                }
        } // END - if
 
-       // Load user's data
-       // @DEPRECATED Loading the user data by given userid is deprecated because it is not related to template loading
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'UID=' . $userid . ',template=' . $template . ',content[]=' . gettype($content));
-       if ((isValidUserId($userid)) && (is_array($content))) {
-               // If nickname extension is installed, fetch nickname as well
-               if ((isExtensionActive('nickname')) && (isNicknameUsed($userid))) {
-                       // Load by nickname
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - NICKNAME!');
-                       fetchUserData($userid, 'nickname');
-               } elseif (isNicknameUsed($userid)) {
-                       // Non-number characters entered but no ext-nickname found
-                       debug_report_bug(__FUNCTION__, __LINE__, 'userid=' . $userid . ': is no id number and ext-nickname is gone.');
-               } else {
-                       // Load by userid
-                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - USERID!');
-                       fetchUserData($userid);
-               }
-
-               // Merge data if valid
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'content()=' . count($content) . ' - BEFORE!');
-               if ((isUserDataValid()) && ($loadUserData === true)) {
-                       // It is valid
-                       $content = merge_array($content, getUserDataArray());
-
-                       // But we don't like hashed passwords be mailed
-                       unset($content['password']);
-               } // END - if
-
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'content()=' . count($content) . ' - AFTER!');
-       } // END - if
-
        // Base directory
        $basePath = sprintf("%stemplates/%s/emails/", getPath(), getLanguage());
 
        // Base directory
        $basePath = sprintf("%stemplates/%s/emails/", getPath(), getLanguage());
 
@@ -556,28 +535,36 @@ function loadEmailTemplate ($template, $content = array(), $userid = NULL, $load
 
 // "Getter" for menu CSS classes, mainly used in templates
 function getMenuCssClasses ($data) {
 
 // "Getter" for menu CSS classes, mainly used in templates
 function getMenuCssClasses ($data) {
-       // $data needs to be converted into an array
-       $content = explode('|', $data);
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'data=' . $data);
 
 
-       // Non-existent index 2 will happen in menu blocks
-       if (!isset($content[2])) {
-               $content[2] = '';
-       } // END - if
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$data])) {
+               // $data needs to be converted into an array
+               $content = explode('|', $data);
+
+               // Non-existent index 2 will happen in menu blocks
+               if (!isset($content[2])) {
+                       $content[2] = '';
+               } // END - if
+
+               // Re-construct the array: 0=visible,1=locked,2=prefix
+               $content['visible'] = $content[0];
+               $content['locked']  = $content[1];
 
 
-       // Re-construct the array: 0=visible,1=locked,2=prefix
-       $content['visible'] = $content[0];
-       $content['locked']  = $content[1];
+               // Call our "translator" function
+               $content = translateMenuVisibleLocked($content, $content[2]);
 
 
-       // Call our "translator" function
-       $content = translateMenuVisibleLocked($content, $content[2]);
+               // Set it in cache
+               $GLOBALS[__FUNCTION__][$data] = ($content['visible_css'] . ' ' . $content['locked_css']);
+       } // END - if
 
 
-       // Return CSS classes
-       return ($content['visible_css'] . ' ' . $content['locked_css']);
+       // Return cache
+       return $GLOBALS[__FUNCTION__][$data];
 }
 
 // Generate XHTML code for the CAPTCHA
 }
 
 // Generate XHTML code for the CAPTCHA
-function generateCaptchaCode ($code, $type, $type, $userid) {
-       return '<img border="0" alt="Code ' . $code . '" src="{%url=mailid_top.php?userid=' . $userid . '&amp;' . $type . '=' . $type . '&amp;do=img&amp;code=' . $code . '%}" />';
+function generateCaptchaCode ($code, $type, $urlId, $userid) {
+       return '<img border="0" alt="Code ' . $code . '" src="{%url=mailid_top.php?userid=' . $userid . '&amp;' . $type . '=' . $urlId . '&amp;do=img&amp;code=' . $code . '%}" />';
 }
 
 // Compiles the given HTML/mail code
 }
 
 // Compiles the given HTML/mail code
@@ -595,12 +582,12 @@ function compileCode ($code, $simple = false, $constants = true, $full = true, $
        $code = compileRawCode($code, $simple, $constants, $full);
 
        // Get timing
        $code = compileRawCode($code, $simple, $constants, $full);
 
        // Get timing
-       $compiled = microtime(true);
+       $compilationTime = $startCompile - microtime(true);
 
        // Add timing if enabled
        if (isTemplateHtml()) {
                // Add timing, this should be disabled in
 
        // Add timing if enabled
        if (isTemplateHtml()) {
                // Add timing, this should be disabled in
-               $code .= '<!-- Compilation time: ' . (($compiled - $startCompile) * 1000). 'ms //-->';
+               $code .= '<!-- Compilation time: ' . ($compilationTime * 1000). 'ms //-->';
        } // END - if
 
        // Return compiled code
        } // END - if
 
        // Return compiled code
@@ -627,14 +614,16 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
        // Compile more through a filter
        $code = runFilterChain('compile_code', $code);
 
        // Compile more through a filter
        $code = runFilterChain('compile_code', $code);
 
-       // Compile message strings
-       $code = str_replace('{--', '{%message,', str_replace('--}', '%}', $code));
+       // First compile these chars
+       array_unshift($secChars['to']  , '{--'       , '--}');
+       array_unshift($secChars['from'], '{%message,', '%}' );
 
        // Compile QUOT and other non-HTML codes
        $code = str_replace($secChars['to'], $secChars['from'], $code);
 
        // Find $content[bla][blub] entries
        preg_match_all('/\$content((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches);
 
        // Compile QUOT and other non-HTML codes
        $code = str_replace($secChars['to'], $secChars['from'], $code);
 
        // Find $content[bla][blub] entries
        preg_match_all('/\$content((\[([a-zA-Z0-9-_]+)\])*)/', $code, $matches);
+       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Second regex gave ' . count($matches[0]) . ' matches.');
 
        // Are some matches found?
        if ((count($matches) > 0) && (count($matches[0]) > 0)) {
 
        // Are some matches found?
        if ((count($matches) > 0) && (count($matches[0]) > 0)) {
@@ -650,10 +639,10 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
                                $test = substr($found, 0, strlen($match));
 
                                // Does this entry exist?
                                $test = substr($found, 0, strlen($match));
 
                                // Does this entry exist?
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'found=' . $found . ',match=' . $match . ',set=' . $set);
+                               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'found=' . $found . ',match=' . $match . ',set=' . $set);
                                if ($test == $match) {
                                        // Match found
                                if ($test == $match) {
                                        // Match found
-                                       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'fuzzyFound!');
+                                       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'fuzzyFound!');
                                        $fuzzyFound = true;
                                        break;
                                } // END - if
                                        $fuzzyFound = true;
                                        break;
                                } // END - if
@@ -666,15 +655,15 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
 
                        // Take all string elements
                        if ((is_string($matches[3][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key.'_' . $matches[3][$key]]))) {
 
                        // Take all string elements
                        if ((is_string($matches[3][$key])) && (!isset($matchesFound[$match])) && (!isset($matchesFound[$key.'_' . $matches[3][$key]]))) {
-                               // Replace it in the code
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',match=' . $match);
-                               $newMatch = str_replace('[', "['", str_replace(']', "']", str_replace('$', '{COMPILE_DOLLAR}', $match)));
+                               // Replace it in the code, replace dollar sign so it won't be detected by next regex (see there)
+                               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'key=' . $key . ',match=' . $match);
+                               $newMatch = str_replace(array('[', ']', '$'), array("['", "']", '{COMPILE_DOLLAR}'), $match);
                                $code = str_replace($match, '".' . $newMatch . '."', $code);
                                $matchesFound[$key . '_' . $matches[3][$key]] = 1;
                                $matchesFound[$match] = true;
                        } elseif (!isset($matchesFound[$match])) {
                                // Not yet replaced!
                                $code = str_replace($match, '".' . $newMatch . '."', $code);
                                $matchesFound[$key . '_' . $matches[3][$key]] = 1;
                                $matchesFound[$match] = true;
                        } elseif (!isset($matchesFound[$match])) {
                                // Not yet replaced!
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match);
+                               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match);
                                $code = str_replace($match, '".' . $match . '."', $code);
                                $matchesFound[$match] = 1;
                        } else {
                                $code = str_replace($match, '".' . $match . '."', $code);
                                $matchesFound[$match] = 1;
                        } else {
@@ -684,7 +673,13 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
                } // END - foreach
        } // END - if
 
                } // END - foreach
        } // END - if
 
-       // Find $fooBar entries
+       /*
+        * Find $foobar, $foo_bar and $fooBar entries. This regex would also find
+        * $content[foo_bar] which would result in {DOLLAR}content[foo_bar] and
+        * therefore the variable's value won't be inserted. This is why
+        * {COMPILE_DOLLAR} is being used in above loop and at the end of this
+        * function being replace with the original dollar sign again.
+        */
        preg_match_all('/\$([a-z_A-Z\[\]]){0,}/', $code, $matches);
 
        // Are some matches found?
        preg_match_all('/\$([a-z_A-Z\[\]]){0,}/', $code, $matches);
 
        // Are some matches found?
@@ -694,11 +689,15 @@ function compileRawCode ($code, $simple = false, $constants = true, $full = true
                        // Trim match
                        $match = trim($match);
 
                        // Trim match
                        $match = trim($match);
 
-                       // Is the first part not $content and not empty?
+                       // Debug message
+                       //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match);
+
+                       // Is the first part not $content/$userid and not empty?
+                       // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates
                        if ((!empty($match)) && (substr($match, 0, 8) != '$content') && ($match != '$userid')) {
                        if ((!empty($match)) && (substr($match, 0, 8) != '$content') && ($match != '$userid')) {
-                               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match);
-                               // Then replace $ with &#36;
-                               $matchSecured = str_replace('$', '&#36;', $match);
+                               //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'match=' . $match . ' - SECURED!');
+                               // Then replace $ with {DOLLAR}
+                               $matchSecured = str_replace('$', '{DOLLAR}', $match);
 
                                // And in $code as well
                                $code = str_replace($match, $matchSecured, $code);
 
                                // And in $code as well
                                $code = str_replace($match, $matchSecured, $code);
@@ -798,7 +797,7 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 'fo
                case 'sec':
                case 'min':
                        for ($idx = 0; $idx < 60; $idx+=5) {
                case 'sec':
                case 'min':
                        for ($idx = 0; $idx < 60; $idx+=5) {
-                               if (strlen($idx) == 1) $idx = '0' . $idx;
+                               if (strlen($idx) == 1) $idx = 0 . $idx;
                                $OUT .= '<option value="' . $idx . '"';
                                if ($default == $idx) $OUT .= ' selected="selected"';
                                $OUT .= '>' . $idx . '</option>';
                                $OUT .= '<option value="' . $idx . '"';
                                if ($default == $idx) $OUT .= ' selected="selected"';
                                $OUT .= '>' . $idx . '</option>';
@@ -807,7 +806,7 @@ function addSelectionBox ($type, $default, $prefix = '', $id = '0', $class = 'fo
 
                case 'hour':
                        for ($idx = 0; $idx < 24; $idx++) {
 
                case 'hour':
                        for ($idx = 0; $idx < 24; $idx++) {
-                               if (strlen($idx) == 1) $idx = '0' . $idx;
+                               if (strlen($idx) == 1) $idx = 0 . $idx;
                                $OUT .= '<option value="' . $idx . '"';
                                if ($default == $idx) $OUT .= ' selected="selected"';
                                $OUT .= '>' . $idx . '</option>';
                                $OUT .= '<option value="' . $idx . '"';
                                if ($default == $idx) $OUT .= ' selected="selected"';
                                $OUT .= '>' . $idx . '</option>';
@@ -831,7 +830,7 @@ function generateImageOrCode ($img_code, $headerSent = true) {
        // Is the code size oversized or shouldn't we display it?
        if ((strlen($img_code) > 6) || (empty($img_code)) || (getCodeLength() == '0')) {
                // Stop execution of function here because of over-sized code length
        // Is the code size oversized or shouldn't we display it?
        if ((strlen($img_code) > 6) || (empty($img_code)) || (getCodeLength() == '0')) {
                // Stop execution of function here because of over-sized code length
-               debug_report_bug(__FUNCTION__, __LINE__, 'img_code ' . $img_code .' has invalid length. img_code()=' . strlen($img_code) . ' code_length=' . getCodeLength());
+               reportBug(__FUNCTION__, __LINE__, 'img_code ' . $img_code .' has invalid length. img_code(length)=' . strlen($img_code) . ' code_length=' . getCodeLength());
        } elseif ($headerSent === false) {
                // Return an HTML code here
                return '<img src="{%url=img.php?code=' . $img_code . '%}" alt="Image" />';
        } elseif ($headerSent === false) {
                // Return an HTML code here
                return '<img src="{%url=img.php?code=' . $img_code . '%}" alt="Image" />';
@@ -886,7 +885,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
        // Do not continue if ONE_DAY is absend
        if (!isConfigEntrySet('ONE_DAY')) {
                // Abort here
        // Do not continue if ONE_DAY is absend
        if (!isConfigEntrySet('ONE_DAY')) {
                // Abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Configuration entry ONE_DAY is absend. timestamp=' . $timestamp . ',prefix=' . $prefix . ',align=' . $align . ',asArray=' . intval($asArray));
+               reportBug(__FUNCTION__, __LINE__, 'Configuration entry ONE_DAY is absend. timestamp=' . $timestamp . ',prefix=' . $prefix . ',align=' . $align . ',asArray=' . intval($asArray));
        } // END - if
 
        // Calculate 2-seconds timestamp
        } // END - if
 
        // Calculate 2-seconds timestamp
@@ -1086,7 +1085,7 @@ function createTimeSelections ($timestamp, $prefix = '', $display = '', $align =
 function generateMemberAdminActionLinks ($userid) {
        // Make sure userid is a number
        if ($userid != bigintval($userid)) {
 function generateMemberAdminActionLinks ($userid) {
        // Make sure userid is a number
        if ($userid != bigintval($userid)) {
-               debug_report_bug(__FUNCTION__, __LINE__, 'userid is not a number!');
+               reportBug(__FUNCTION__, __LINE__, 'userid is not a number!');
        } // END - if
 
        // Define all main targets
        } // END - if
 
        // Define all main targets
@@ -1159,8 +1158,20 @@ function generateEmailLink ($email, $table = 'admins') {
        return $EMAIL;
 }
 
        return $EMAIL;
 }
 
-// Output error messages in a fasioned way and die...
-function app_die ($F, $L, $message) {
+/**
+ * Outputs an error message in a "fashioned way" to the user, by putting it into
+ * a nice looking web page, if one of HTML or CSS output mode is active.
+ *
+ * Please use reportBug() instead of this function. reportBug() has more helpful
+ * functionality like logging and admin notification (which you can configure
+ * through your admin area).
+ *
+ * @param      $F                      Function or file basename where the error came from
+ * @param      $L                      Line number where the error came from
+ * @param      $message        Message which shall be output to web
+ * @return     void
+ */
+function app_exit ($F, $L, $message) {
        // Check if Script is already dieing and not let it kill itself another 1000 times
        if (isset($GLOBALS['app_died'])) {
                // Script tried to kill itself twice
        // Check if Script is already dieing and not let it kill itself another 1000 times
        if (isset($GLOBALS['app_died'])) {
                // Script tried to kill itself twice
@@ -1177,7 +1188,12 @@ function app_die ($F, $L, $message) {
        loadIncludeOnce('inc/header.php');
 
        // Rewrite message for output
        loadIncludeOnce('inc/header.php');
 
        // Rewrite message for output
-       $message = sprintf(getMessage('MAILER_HAS_DIED'), basename($F), $L, $message);
+       $message = sprintf(
+               getMessage('MAILER_HAS_DIED'),
+               basename($F),
+               $L,
+               $message
+       );
 
        // Load the message template
        loadTemplate('app_die_message', false, $message);
 
        // Load the message template
        loadTemplate('app_die_message', false, $message);
@@ -1189,7 +1205,7 @@ function app_die ($F, $L, $message) {
 // Display parsing time and number of SQL queries in footer
 function displayParsingTime () {
        // Is the timer started?
 // Display parsing time and number of SQL queries in footer
 function displayParsingTime () {
        // Is the timer started?
-       if (!isset($GLOBALS['startTime'])) {
+       if (!isset($GLOBALS['__start_time'])) {
                // Abort here
                return false;
        } // END - if
                // Abort here
                return false;
        } // END - if
@@ -1198,7 +1214,7 @@ function displayParsingTime () {
        $endTime = microtime(true);
 
        // "Explode" both times
        $endTime = microtime(true);
 
        // "Explode" both times
-       $start = explode(' ', $GLOBALS['startTime']);
+       $start = explode(' ', $GLOBALS['__start_time']);
        $end = explode(' ', $endTime);
        $runTime = $end[0] - $start[0];
        if ($runTime < 0) {
        $end = explode(' ', $endTime);
        $runTime = $end[0] - $start[0];
        if ($runTime < 0) {
@@ -1213,15 +1229,28 @@ function displayParsingTime () {
        );
 
        // Load the template
        );
 
        // Load the template
-       $GLOBALS['page_footer'] .= loadTemplate('show_timings', true, $content);
+       $GLOBALS['__page_footer'] .= loadTemplate('show_timings', true, $content);
 }
 
 }
 
-// Output a debug backtrace to the user
-function debug_report_bug ($F, $L, $message = '', $sendEmail = true) {
+/**
+ * Outputs an error message and backtrace to the user, by default a mail with
+ * all relevant data is being mailed to the configured administrators.
+ *
+ * This function shall be used "publicly" because of logging, admin notification
+ * and double-call prevention (see first if() block) instead of app_exit().
+ * app_exit() is more a "private" function and will only output a bug message to
+ * the user, no email and no logging.
+ *
+ * @param      $F                      Function or file basename where the error came from
+ * @param      $L                      Line number where the error came from
+ * @param      $sendEmail      Wether to send an email to all configured administrators
+ * @return     void
+ */
+function reportBug ($F, $L, $message = '', $sendEmail = true) {
        // Is this already called?
        if (isset($GLOBALS[__FUNCTION__])) {
                // Other backtrace
        // Is this already called?
        if (isset($GLOBALS[__FUNCTION__])) {
                // Other backtrace
-               print 'Message:' . $message . '<br />Backtrace:<pre>';
+               print '[' . $F . ':' . $L . ':] ' . __FUNCTION__ . ' has already died! Message:' . $message . '<br />Backtrace:<pre>';
                debug_print_backtrace();
                die('</pre>');
        } // END - if
                debug_print_backtrace();
                die('</pre>');
        } // END - if
@@ -1229,7 +1258,7 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) {
        // Set HTTP status to 500 (e.g. for AJAX requests)
        setHttpStatus('500 Internal Server Error');
 
        // Set HTTP status to 500 (e.g. for AJAX requests)
        setHttpStatus('500 Internal Server Error');
 
-       // Set this function as called
+       // Mark this function as called
        $GLOBALS[__FUNCTION__] = true;
 
        // Init message
        $GLOBALS[__FUNCTION__] = true;
 
        // Init message
@@ -1262,32 +1291,67 @@ function debug_report_bug ($F, $L, $message = '', $sendEmail = true) {
                );
 
                // Send email to webmaster
                );
 
                // Send email to webmaster
-               sendAdminNotification('{--DEBUG_REPORT_BUG_SUBJECT--}', 'admin_report_bug', $content);
+               sendAdminNotification('{--REPORT_BUG_SUBJECT--}', 'admin_report_bug', $content);
        } // END - if
 
        } // END - if
 
-       // And abort here
-       app_die($F, $L, $debug);
+       // Do we have HTML/CSS/AJAX mode?
+       if ((isHtmlOutputMode()) || (isCssOutputMode()) || (isAjaxOutputMode())) {
+               // And abort here
+               app_exit($F, $L, $debug);
+       } else {
+               // Raw/image output mode and all other modes doesn't work well with text ...
+               die();
+       }
 }
 
 // Compile characters which are allowed in URLs
 function compileUriCode ($code, $simple = true) {
 }
 
 // Compile characters which are allowed in URLs
 function compileUriCode ($code, $simple = true) {
+       // Trim code
+       $test = trim($code);
+
+       // Is it empty?
+       if (empty($test)) {
+               // Then abort here and return the original code
+               return $code;
+       } // END - if
+
+       // Compile these by default
+       $charsCompile = array(
+               'from' => array(
+                       '{DOT}',
+                       '{SLASH}',
+                       '{QUOT}',
+                       '{DOLLAR}',
+                       '{OPEN_ANCHOR}',
+                       '{CLOSE_ANCHOR}',
+                       '{OPEN_SQR}',
+                       '{CLOSE_SQR}',
+                       '{PER}'
+               ),
+               'to' => array(
+                       '.',
+                       '/',
+                       chr(39),
+                       '$',
+                       '(',
+                       ')',
+                       '[',
+                       ']',
+                       '%'
+               )
+       );
+
        // Compile constants
        if ($simple === false) {
        // Compile constants
        if ($simple === false) {
-               $code = str_replace('{--', '".', str_replace('--}', '."', $code));
+               // Add more 'from'
+               array_push($charsCompile['from'], '{--', '--}');
+
+               // Add more 'to'
+               array_push($charsCompile['to'], '".', '."');
        } // END - if
 
        // Compile QUOT and other non-HTML codes
        } // END - if
 
        // Compile QUOT and other non-HTML codes
-       $code = str_replace('{DOT}', '.',
-               str_replace('{SLASH}', '/',
-               str_replace('{QUOT}', "'",
-               str_replace('{DOLLAR}', '$',
-               str_replace('{OPEN_ANCHOR}', '(',
-               str_replace('{CLOSE_ANCHOR}', ')',
-               str_replace('{OPEN_SQR}', '[',
-               str_replace('{CLOSE_SQR}', ']',
-               str_replace('{PER}', '%',
-               $code
-       )))))))));
+       $code = str_replace($charsCompile['from'], $charsCompile['to'], $code);
 
        // Return compiled code
        return $code;
 
        // Return compiled code
        return $code;
@@ -1318,7 +1382,7 @@ function generateExtensionOutdatedMessage ($ext_name, $ext_ver) {
        // Is the extension empty?
        if (empty($ext_name)) {
                // This should not happen
        // Is the extension empty?
        if (empty($ext_name)) {
                // This should not happen
-               debug_report_bug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
+               reportBug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
        } // END - if
 
        // Default message
        } // END - if
 
        // Default message
@@ -1339,7 +1403,7 @@ function generateExtensionInactiveMessage ($ext_name) {
        // Is the extension empty?
        if (empty($ext_name)) {
                // This should not happen
        // Is the extension empty?
        if (empty($ext_name)) {
                // This should not happen
-               debug_report_bug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
+               reportBug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
        } // END - if
 
        // Default message
        } // END - if
 
        // Default message
@@ -1360,7 +1424,7 @@ function generateExtensionNotInstalledMessage ($ext_name) {
        // Is the extension empty?
        if (empty($ext_name)) {
                // This should not happen
        // Is the extension empty?
        if (empty($ext_name)) {
                // This should not happen
-               debug_report_bug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
+               reportBug(__FUNCTION__, __LINE__, 'Parameter ext is empty. This should not happen.');
        } // END - if
 
        // Default message
        } // END - if
 
        // Default message
@@ -1404,7 +1468,14 @@ function generateExtensionInactiveNotInstalledMessage ($ext_name) {
 
 // Print code with line numbers
 function linenumberCode ($code)    {
 
 // Print code with line numbers
 function linenumberCode ($code)    {
-       if (!is_array($code)) $codeE = explode("\n", $code); else $codeE = $code;
+       // By default copy the code
+       $codeE = $code;
+
+       if (!is_array($code)) {
+               // We need an array, so try it with the new-line character
+               $codeE = explode(chr(10), $code);
+       } // END - if
+
        $count_lines = count($codeE);
 
        $r = 'Line | Code:<br />';
        $count_lines = count($codeE);
 
        $r = 'Line | Code:<br />';
@@ -1432,7 +1503,7 @@ function determinePageTitle () {
        // Config and database connection valid?
        if ((isConfigLocalLoaded()) && (isConfigurationLoaded()) && (SQL_IS_LINK_UP()) && (isExtensionInstalledAndNewer('sql_patches', '0.1.6'))) {
                // Title decoration enabled?
        // Config and database connection valid?
        if ((isConfigLocalLoaded()) && (isConfigurationLoaded()) && (SQL_IS_LINK_UP()) && (isExtensionInstalledAndNewer('sql_patches', '0.1.6'))) {
                // Title decoration enabled?
-               if ((isTitleDecorationEnabled()) && (getConfig('title_left') != '')) {
+               if ((isTitleDecorationEnabled()) && (getTitleLeft() != '')) {
                        $pageTitle .= '{%config,trim=title_left%} ';
                } // END - if
 
                        $pageTitle .= '{%config,trim=title_left%} ';
                } // END - if
 
@@ -1468,7 +1539,7 @@ function determinePageTitle () {
                } // END - if
 
                // Add title decorations? (right)
                } // END - if
 
                // Add title decorations? (right)
-               if ((isTitleDecorationEnabled()) && (getConfig('title_right') != '')) {
+               if ((isTitleDecorationEnabled()) && (getTitleRight() != '')) {
                        $pageTitle .= ' {%config,trim=title_right%}';
                } // END - if
        } elseif ((isInstalled()) && (isAdminRegistered())) {
                        $pageTitle .= ' {%config,trim=title_right%}';
                } // END - if
        } elseif ((isInstalled()) && (isAdminRegistered())) {
@@ -1487,7 +1558,7 @@ function determinePageTitle () {
                // Do not add the fatal message in installation mode
                if ((!isInstalling()) && (!isConfigurationLoaded())) {
                        // Please report this
                // Do not add the fatal message in installation mode
                if ((!isInstalling()) && (!isConfigurationLoaded())) {
                        // Please report this
-                       debug_report_bug(__FUNCTION__, __LINE__, 'No configuration data found!');
+                       reportBug(__FUNCTION__, __LINE__, 'No configuration data found!');
                } // END - if
        }
 
                } // END - if
        }
 
@@ -1495,7 +1566,7 @@ function determinePageTitle () {
        return decodeEntities($pageTitle);
 }
 
        return decodeEntities($pageTitle);
 }
 
-// Checks wethere there is a cache file there. This function is cached.
+// Checks whethere there is a cache file there. This function is cached.
 function isTemplateCached ($template) {
        // Do we have cached this result?
        if (!isset($GLOBALS['template_cache'][$template])) {
 function isTemplateCached ($template) {
        // Do we have cached this result?
        if (!isset($GLOBALS['template_cache'][$template])) {
@@ -1527,7 +1598,7 @@ function readTemplateCache ($template) {
        // Check it again
        if ((isDebuggingTemplateCache()) || (!isTemplateCached($template))) {
                // This should not happen
        // Check it again
        if ((isDebuggingTemplateCache()) || (!isTemplateCached($template))) {
                // This should not happen
-               debug_report_bug('Wether debugging of template cache is enabled or template ' . $template . ' is not cached while expected.');
+               reportBug('Wether debugging of template cache is enabled or template ' . $template . ' is not cached while expected.');
        } // END - if
 
        // Is it cached?
        } // END - if
 
        // Is it cached?
@@ -1550,11 +1621,8 @@ function escapeQuotes ($str, $single = false) {
                // Escape all (including null)
                $str = addslashes($str);
        } else {
                // Escape all (including null)
                $str = addslashes($str);
        } else {
-               // Remove escaping of single quotes
-               $str = str_replace("\\'", "'", $str);
-
-               // Escape only double-quotes but prevent double-quoting
-               $str = str_replace("\\\\", "\\", str_replace('"', "\\\"", $str));
+               // Replace all chars at once
+               $str = str_replace(array("\\'", '"', "\\\\"), array(chr(39), "\\\"", chr(92)), $str);
        }
 
        // Return the escaped string
        }
 
        // Return the escaped string
@@ -1564,7 +1632,7 @@ function escapeQuotes ($str, $single = false) {
 // Escapes the JavaScript code, prevents \r and \n becoming char 10/13
 function escapeJavaScriptQuotes ($str) {
        // Replace all double-quotes and secure back-ticks
 // Escapes the JavaScript code, prevents \r and \n becoming char 10/13
 function escapeJavaScriptQuotes ($str) {
        // Replace all double-quotes and secure back-ticks
-       $str = str_replace('"', '\"', str_replace("\\", '{BACK}', $str));
+       $str = str_replace(array(chr(92), '"'), array('{BACK}', '\"'), $str);
 
        // Return it
        return $str;
 
        // Return it
        return $str;
@@ -1600,11 +1668,11 @@ function sendModeMails ($mod, $modes) {
                                                switch ($mode) {
                                                        case 'normal': break; // Do not add any special lines
                                                        case 'email': // Email was changed!
                                                switch ($mode) {
                                                        case 'normal': break; // Do not add any special lines
                                                        case 'email': // Email was changed!
-                                                               $content['message'] = '{--MEMBER_CHANGED_EMAIL--}' . ': ' . postRequestElement('old_email') . "\n";
+                                                               $content['message'] = '{--MEMBER_CHANGED_EMAIL--}' . ': ' . postRequestElement('old_email') . chr(10);
                                                                break;
 
                                                        case 'password': // Password was changed
                                                                break;
 
                                                        case 'password': // Password was changed
-                                                               $content['message'] = '{--MEMBER_CHANGED_PASS--}' . "\n";
+                                                               $content['message'] = '{--MEMBER_CHANGED_PASS--}' . chr(10);
                                                                break;
 
                                                        default:
                                                                break;
 
                                                        default:
@@ -1679,13 +1747,44 @@ function sendModeMails ($mod, $modes) {
 }
 
 // Generates a 'selection box' from given array
 }
 
 // Generates a 'selection box' from given array
-function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionContent = '', $extraName = '', $templateName = '') {
+function generateSelectionBoxFromArray ($options, $name, $optionKey, $optionContent = '', $extraName = '', $templateName = '', $default = NULL, $nameElement = '', $allowNone = false, $useDefaultAsArray = false) {
+       // Default is empty
+       $addKey = '';
+
+       // Use default value as array key?
+       if ($useDefaultAsArray === true) {
+               // Then set it
+               $addKey = '[' . convertNullToZero($default) . ']';
+       } // END - if
+
        // Start the output
        // Start the output
-       $OUT = '<select name="' . $name . '" size="1" class="form_select">
+       $OUT = '<select name="' . $name . $addKey . '" size="1" class="form_select">
 <option value="X" disabled="disabled">{--PLEASE_SELECT--}</option>';
 
 <option value="X" disabled="disabled">{--PLEASE_SELECT--}</option>';
 
+       // Allow none?
+       if ($allowNone === true) {
+               // Then add it
+               $OUT .= '<option value="0">{--SELECT_NONE--}</option>';
+       } // END - if
+
        // Walk through all options
        foreach ($options as $option) {
        // Walk through all options
        foreach ($options as $option) {
+               // Default 'default' is not set
+               $option['default'] = '';
+
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'name=' . $name . ',default[' . gettype($default) . ']=' . $default . ',optionKey[' . gettype($optionKey) . ']=' . $optionKey);
+               // Is default value same as given value?
+               if ((!is_null($default)) && (isset($option[$optionKey])) && ($default == $option[$optionKey])) {
+                       // Then set default
+                       $option['default'] = ' selected="selected"';
+               } // END - if
+
+               // Is 'nameElement' set?
+               if ((!empty($nameElement)) && (isset($option[$nameElement]))) {
+                       // Then set this as extraName, but lower-case
+                       $extraName = '_' . strtolower($option[$nameElement]);
+               } // END - if
+
                // Add the <option> entry from ...
                if (empty($optionContent)) {
                        // Is a template name given?
                // Add the <option> entry from ...
                if (empty($optionContent)) {
                        // Is a template name given?
@@ -1698,7 +1797,7 @@ function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionCo
                        }
                } else {
                        // ... direct HTML code
                        }
                } else {
                        // ... direct HTML code
-                       $OUT .= '<option value="' . $option[$optionValue] . '">' . $option[$optionContent] . '</option>';
+                       $OUT .= '<option value="' . $option[$optionKey] . '">' . $option[$optionContent] . '</option>';
                }
        } // END - foreach
 
                }
        } // END - foreach
 
@@ -1722,17 +1821,23 @@ function generateSelectionBoxFromArray ($options, $name, $optionValue, $optionCo
 
 // Prepares the header for HTML output
 function loadHtmlHeader () {
 
 // Prepares the header for HTML output
 function loadHtmlHeader () {
-       // Run two filters:
-       // 1.) pre_page_header (mainly loads the page_header template and includes
-       //     meta description)
+       /*
+        * Run two filters:
+        * 1.) pre_page_header (mainly loads the page_header template and includes
+        *     meta description)
+        */
        runFilterChain('pre_page_header');
 
        runFilterChain('pre_page_header');
 
-       // Here can be something be added, but normally one of the two filters
-       // around this line should do the job for you.
+       /*
+        * Here can be something be added, but normally one of the two filters
+        * around this line should do the job for you.
+        */
 
 
-       // 2.) post_page_header (mainly to load stylesheet, extra JavaScripts and
-       //     to close the head-tag)
-       // Include more header data here
+       /*
+        * 2.) post_page_header (mainly to load stylesheet, extra JavaScripts and
+        *     to close the head-tag)
+        * Include more header data here
+        */
        runFilterChain('post_page_header');
 }
 
        runFilterChain('post_page_header');
 }
 
@@ -1742,24 +1847,23 @@ function addPageHeaderFooter () {
        $OUT = '';
 
        // Add them all together. This is maybe to simple
        $OUT = '';
 
        // Add them all together. This is maybe to simple
-       foreach (array('page_header', 'output', 'page_footer') as $pagePart) {
+       foreach (array('__page_header', '__output', '__page_footer') as $pagePart) {
                // Add page part if set
                // Add page part if set
-               if (isset($GLOBALS[$pagePart])) $OUT .= $GLOBALS[$pagePart];
+               if (isset($GLOBALS[$pagePart])) {
+                       $OUT .= $GLOBALS[$pagePart];
+               } // END - if
        } // END - foreach
 
        } // END - foreach
 
-       // Transfer $OUT to 'output'
-       $GLOBALS['output'] = $OUT;
+       // Transfer $OUT to '__output'
+       $GLOBALS['__output'] = $OUT;
 }
 
 // Generates meta description for current module and 'what' value
 function generateMetaDescriptionCode () {
        // Only include from guest area and if sql_patches has correct version
        if ((getModule() == 'index') && (isExtensionInstalledAndNewer('sql_patches', '0.1.6'))) {
 }
 
 // Generates meta description for current module and 'what' value
 function generateMetaDescriptionCode () {
        // Only include from guest area and if sql_patches has correct version
        if ((getModule() == 'index') && (isExtensionInstalledAndNewer('sql_patches', '0.1.6'))) {
-               // Construct dynamic description
-               $DESCR = '{?MAIN_TITLE?} ' . trim(getConfig('title_middle')) . ' ' . getTitleFromMenu('guest', getWhat());
-
                // Output it directly
                // Output it directly
-               $GLOBALS['page_header'] .= '<meta name="description" content="' . $DESCR . '" />';
+               $GLOBALS['__page_header'] .= '<meta name="description" content="' . '{?MAIN_TITLE?} ' . trim(getConfig('title_middle')) . ' ' . getTitleFromMenu('guest', getWhat()) . '" />';
        } // END - if
 
        // Initialize referral system
        } // END - if
 
        // Initialize referral system
@@ -1810,39 +1914,13 @@ function translateTimeUnit ($unit) {
        $message = '{%message,TIME_UNIT_UNKNOWN=' . $unit . '%}';
 
        // "Detect" it
        $message = '{%message,TIME_UNIT_UNKNOWN=' . $unit . '%}';
 
        // "Detect" it
-       switch ($unit) {
-               case 'Y': // Years
-                       $message = '{--TIME_UNIT_YEAR--}';
-                       break;
-
-               case 'M': // Months
-                       $message = '{--TIME_UNIT_MONTH--}';
-                       break;
-
-               case 'W': // Weeks
-                       $message = '{--TIME_UNIT_WEEK--}';
-                       break;
-
-               case 'D': // Days
-                       $message = '{--TIME_UNIT_DAY--}';
-                       break;
-
-               case 'h': // Hours
-                       $message = '{--TIME_UNIT_HOUR--}';
-                       break;
-
-               case 'm': // Minute
-                       $message = '{--TIME_UNIT_MINUTE--}';
-                       break;
-
-               case 's': // Seconds
-                       $message = '{--TIME_UNIT_SECOND--}';
-                       break;
-
-               default: // Unknown value detected
-                       logDebugMessage(__FUNCTION__, __LINE__, 'Unknown time unit ' . $unit . ' detected.');
-                       break;
-       } // END - switch
+       if (!isset($GLOBALS['time_units'][$unit])) {
+               // Not found
+               logDebugMessage(__FUNCTION__, __LINE__, 'Unknown time unit ' . $unit . ' detected.');
+       } else {
+               // Translate it with generic function
+               $message = translateGeneric('TIME_UNIT' , $GLOBALS['time_units'][$unit]);
+       }
 
        // Return message
        return $message;
 
        // Return message
        return $message;
@@ -1855,12 +1933,24 @@ function displayMessage ($message, $return = false) {
 }
 
 // Generates a selection box for (maybe) given gender
 }
 
 // Generates a selection box for (maybe) given gender
-function generateGenderSelectionBox ($selectedGender = '') {
+function generateGenderSelectionBox ($selectedGender = '', $fieldName = 'gender') {
        // Start the HTML code
        // Start the HTML code
-       $out  = '<select name="gender" size="1" class="form_select">';
+       $out  = '<select name="' . $fieldName . '" size="1" class="form_select">';
 
        // Add options
 
        // Add options
-       $out .= generateOptionList('/ARRAY/', array('M', 'F', 'C'), array('{--GENDER_M--}', '{--GENDER_F--}', '{--GENDER_C--}'), $selectedGender);
+       $out .= generateOptions(
+               '/ARRAY/',
+               array(
+                       'M',
+                       'F',
+                       'C'
+               ), array(
+                       '{--GENDER_M--}',
+                       '{--GENDER_F--}',
+                       '{--GENDER_C--}'
+               ),
+               $selectedGender
+       );
 
        // Finish HTML code
        $out .= '</select>';
 
        // Finish HTML code
        $out .= '</select>';
@@ -1877,14 +1967,14 @@ function generateTimeUnitSelectionBox ($defaultUnit, $fieldName, $unitArray) {
        // Generate message id array
        foreach ($unitArray as $unit) {
                // "Translate" it
        // Generate message id array
        foreach ($unitArray as $unit) {
                // "Translate" it
-               $messageIds[] = translateTimeUnit($unit);
+               array_push($messageIds, '{%pipe,translateTimeUnit=' . $unit . '%}');
        } // END - foreach
 
        // Start the HTML code
        $out = '<select name="' . $fieldName . '" size="1" class="form_select">';
 
        // Add options
        } // END - foreach
 
        // Start the HTML code
        $out = '<select name="' . $fieldName . '" size="1" class="form_select">';
 
        // Add options
-       $out .= generateOptionList('/ARRAY/', $unitArray, $messageIds, $defaultUnit);
+       $out .= generateOptions('/ARRAY/', $unitArray, $messageIds, $defaultUnit);
 
        // Finish HTML code
        $out .= '</select>';
 
        // Finish HTML code
        $out .= '</select>';
@@ -1893,7 +1983,7 @@ function generateTimeUnitSelectionBox ($defaultUnit, $fieldName, $unitArray) {
        return $out;
 }
 
        return $out;
 }
 
-// Function to add style tag (wether display:none/block)
+// Function to add style tag (whether display:none/block)
 function addStyleMenuContent ($menuMode, $mainAction, $action) {
        // Do we have foo_menu_javascript enabled?
        if ((!isConfigEntrySet($menuMode . '_menu_javascript')) || (getConfig($menuMode . '_menu_javascript') == 'N')) {
 function addStyleMenuContent ($menuMode, $mainAction, $action) {
        // Do we have foo_menu_javascript enabled?
        if ((!isConfigEntrySet($menuMode . '_menu_javascript')) || (getConfig($menuMode . '_menu_javascript') == 'N')) {
@@ -1930,53 +2020,56 @@ function addJavaScriptMenuContent ($menuMode, $mainAction, $action, $what) {
 //-----------------------------------------------------------------------------
 
 // Color-switch helper function
 //-----------------------------------------------------------------------------
 
 // Color-switch helper function
-function doTemplateColorSwitch ($template, $clear = false, $return = true) {
+function doTemplateColorSwitch ($templateName, $clear = false, $return = true) {
        // Is it there?
        // Is it there?
-       if (!isset($GLOBALS['color_switch'][$template])) {
+       if (!isset($GLOBALS['color_switch'][$templateName])) {
                // Initialize it
                // Initialize it
-               initTemplateColorSwitch($template);
+               initTemplateColorSwitch($templateName);
        } elseif ($clear === false) {
                // Switch color if called from loadTemplate()
        } elseif ($clear === false) {
                // Switch color if called from loadTemplate()
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SWITCH:' . $template);
-               $GLOBALS['color_switch'][$template] = 3 - $GLOBALS['color_switch'][$template];
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SWITCH:' . $templateName);
+               $GLOBALS['color_switch'][$templateName] = 3 - $GLOBALS['color_switch'][$templateName];
        }
 
        // Return CSS class name
        if ($return === true) {
        }
 
        // Return CSS class name
        if ($return === true) {
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'RETURN:' . $template . '=' . $GLOBALS['color_switch'][$template]);
-               return 'switch_sw' . $GLOBALS['color_switch'][$template];
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'RETURN:' . $templateName . '=' . $GLOBALS['color_switch'][$templateName]);
+               return 'switch_sw' . $GLOBALS['color_switch'][$templateName];
        } // END - if
 }
 
 // Helper function for extension registration link
        } // END - if
 }
 
 // Helper function for extension registration link
-function doTemplateExtensionRegistrationLink ($template, $clear, $ext_name) {
+function doTemplateExtensionRegistrationLink ($templateName, $clear, $ext_name) {
        // Default is all non-productive
        $OUT = '<div style="cursor:help" title="{%message,ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK_TITLE=' . $ext_name . '%}">{--ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK--}</div>';
 
        // Is the given extension non-productive?
        // Default is all non-productive
        $OUT = '<div style="cursor:help" title="{%message,ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK_TITLE=' . $ext_name . '%}">{--ADMIN_EXTENSION_IS_NON_PRODUCTIVE_LINK--}</div>';
 
        // Is the given extension non-productive?
-       if (isExtensionProductive($ext_name)) {
+       if (isExtensionDeprecated($ext_name)) {
+               // Is deprecated
+               $OUT = '<span title="{--ADMIN_EXTENSION_IS_DEPRECATED_TITLE--}">---</span>';
+       } elseif (isExtensionProductive($ext_name)) {
                // Productive code
                $OUT = '<a title="{--ADMIN_REGISTER_EXTENSION_TITLE--}" href="{%url=modules.php?module=admin&amp;what=extensions&amp;reg_ext=' . $ext_name . '%}">{--ADMIN_REGISTER_EXTENSION--}</a>';
                // Productive code
                $OUT = '<a title="{--ADMIN_REGISTER_EXTENSION_TITLE--}" href="{%url=modules.php?module=admin&amp;what=extensions&amp;reg_ext=' . $ext_name . '%}">{--ADMIN_REGISTER_EXTENSION--}</a>';
-       } // END - if
+       }
 
        // Return code
        return $OUT;
 }
 
 // Helper function to create bonus mail admin links
 
        // Return code
        return $OUT;
 }
 
 // Helper function to create bonus mail admin links
-function doTemplateAdminBonusMailLinks ($template, $clear, $bonusId) {
+function doTemplateAdminBonusMailLinks ($templateName, $clear, $bonusId) {
        // Call the inner function
        return generateAdminMailLinks('bid', $bonusId);
 }
 
 // Helper function to create member mail admin links
        // Call the inner function
        return generateAdminMailLinks('bid', $bonusId);
 }
 
 // Helper function to create member mail admin links
-function doTemplateAdminMemberMailLinks ($template, $clear, $mailId) {
+function doTemplateAdminMemberMailLinks ($templateName, $clear, $mailId) {
        // Call the inner function
        return generateAdminMailLinks('mid', $mailId);
 }
 
 // Helper function to create a selection box for YES/NO configuration entries
        // Call the inner function
        return generateAdminMailLinks('mid', $mailId);
 }
 
 // Helper function to create a selection box for YES/NO configuration entries
-function doTemplateConfigurationYesNoSelectionBox ($template, $clear, $configEntry) {
+function doTemplateConfigurationYesNoSelectionBox ($templateName, $clear, $configEntry) {
        // Default is a "missing entry" warning
        $OUT = '<div class="bad" style="cursor:help" title="{%message,ADMIN_CONFIG_ENTRY_MISSING=' . $configEntry . '%}">!' . $configEntry . '!</div>';
 
        // Default is a "missing entry" warning
        $OUT = '<div class="bad" style="cursor:help" title="{%message,ADMIN_CONFIG_ENTRY_MISSING=' . $configEntry . '%}">!' . $configEntry . '!</div>';
 
@@ -1984,7 +2077,7 @@ function doTemplateConfigurationYesNoSelectionBox ($template, $clear, $configEnt
        if (isConfigEntrySet($configEntry)) {
                // Configuration entry is found
                $OUT = '<select name="' . $configEntry . '" class="form_select" size="1">
        if (isConfigEntrySet($configEntry)) {
                // Configuration entry is found
                $OUT = '<select name="' . $configEntry . '" class="form_select" size="1">
-{%config,generateYesNoOptionList=' . $configEntry . '%}
+{%config,generateYesNoOptions=' . $configEntry . '%}
 </select>';
        } // END - if
 
 </select>';
        } // END - if
 
@@ -1993,10 +2086,10 @@ function doTemplateConfigurationYesNoSelectionBox ($template, $clear, $configEnt
 }
 
 // Helper function to create a selection box for YES/NO form fields
 }
 
 // Helper function to create a selection box for YES/NO form fields
-function doTemplateYesNoSelectionBox ($template, $clear, $formField) {
+function doTemplateYesNoSelectionBox ($templateName, $clear, $formField) {
        // Generate the HTML code
        $OUT = '<select name="' . $formField . '" class="form_select" size="1">
        // Generate the HTML code
        $OUT = '<select name="' . $formField . '" class="form_select" size="1">
-{%pipe,generateYesNoOptionList%}
+{%pipe,generateYesNoOptions%}
 </select>';
 
        // Return it
 </select>';
 
        // Return it
@@ -2004,10 +2097,10 @@ function doTemplateYesNoSelectionBox ($template, $clear, $formField) {
 }
 
 // Helper function to create a selection box for YES/NO form fields, by NO is default
 }
 
 // Helper function to create a selection box for YES/NO form fields, by NO is default
-function doTemplateNoYesSelectionBox ($template, $clear, $formField) {
+function doTemplateNoYesSelectionBox ($templateName, $clear, $formField) {
        // Generate the HTML code
        $OUT = '<select name="' . $formField . '" class="form_select" size="1">
        // Generate the HTML code
        $OUT = '<select name="' . $formField . '" class="form_select" size="1">
-{%pipe,generateYesNoOptionList=N%}
+{%pipe,generateYesNoOptions=N%}
 </select>';
 
        // Return it
 </select>';
 
        // Return it
@@ -2015,25 +2108,101 @@ function doTemplateNoYesSelectionBox ($template, $clear, $formField) {
 }
 
 // Helper function to add extra content for member area (module=login)
 }
 
 // Helper function to add extra content for member area (module=login)
-function doTemplateMemberFooterExtras ($template, $clear) {
+function doTemplateMemberFooterExtras ($templateName, $clear) {
        // Is a member logged in?
        if (!isMember()) {
                // This shall not happen
        // Is a member logged in?
        if (!isMember()) {
                // This shall not happen
-               debug_report_bug(__FUNCTION__, __LINE__, 'Please use this template helper only for logged-in members.');
+               reportBug(__FUNCTION__, __LINE__, 'Please use this template helper only for logged-in members.');
        } // END - if
 
        // Init filter data
        $filterData = array(
        } // END - if
 
        // Init filter data
        $filterData = array(
+               // Current user's id number
                'userid'   => getMemberId(),
                'userid'   => getMemberId(),
-               'template' => $template,
-               'output'   => '',
+               // Name of used template
+               'template' => $templateName,
+               // Target array for gathered data
+               '__data'   => array(),
+               // Where the HTML output will go
+               '__output' => '',
        );
 
        // Run the filter chain
        $filterData = runFilterChain('member_footer_extras', $filterData);
 
        // Return output
        );
 
        // Run the filter chain
        $filterData = runFilterChain('member_footer_extras', $filterData);
 
        // Return output
-       return $filterData['output'];
+       return $filterData['__output'];
+}
+
+/**
+ * Helper function to determine whether current userid is set, if none is set,
+ * return a zero, else an EL code is being returned as of this function is used
+ * only in templates.
+ *
+ * @param      $templateName   Name of template (unused)
+ * @param      $clear                  Wether to clear something (unused)
+ * @return     $userId                 Wether zero or EL code snippet
+ */
+function doTemplateUserId ($templateName, $clear) {
+       // By default no userid is set
+       $userId = '0';
+
+       // Is there a user id currently set?
+       if (isCurrentUserIdSet()) {
+               // Then get the current user id
+               $userId = getCurrentUserId();
+       } // END - if
+
+       // Return it
+       return $userId;
+}
+
+// Template helper function to generate "Terms&Conditions" link (EL code again)
+function doTemplateGetTermsConditionsLink ($templateName, $clear) {
+       /*
+        * Use default link by default ;-) This link, however, will become
+        * deprecated once ext-terms is rolled out.
+        */
+       $linkCode = '{%url=modules.php?module=index&amp;what=agb%}';
+
+       // Is ext-terms installed?
+       if (isExtensionInstalled('terms')) {
+               // Then use that link (only 'what' has changed)
+               $linkCode = '{%url=modules.php?module=index&amp;what=terms%}';
+       } // END - if
+
+       // Return link (EL) code
+       return $linkCode;
+}
+
+// Template helper function to create selection box for "locked points mode"
+function doTemplatePointsLockedModeSelectionBox ($templateName, $clear = false, $default = NULL) {
+       // Init array
+       $lockedModes = array(
+               0 => array('mode' => 'LOCKED'),
+               1 => array('mode' => 'UNLOCKED'),
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($lockedModes, 'points_locked_mode', 'mode', '', '', '', $default);
+
+       // Return prepared content
+       return $content;
+}
+
+// Template helper function to create selection box for payment method
+function doTemplatePointsPaymentMethodSelectionBox ($templateName, $clear = false, $default = NULL) {
+       // Init array
+       $paymentMethods = array(
+               0 => array('method' => 'DIRECT'),
+               1 => array('method' => 'REFERRAL'),
+       );
+
+       // Handle it over to generateSelectionBoxFromArray()
+       $content = generateSelectionBoxFromArray($paymentMethods, 'points_payment_method', 'method', '', '', '', $default);
+
+       // Return prepared content
+       return $content;
 }
 
 // [EOF]
 }
 
 // [EOF]
index 71588bb632795acd8cc5e51aa5897015e9e56def..e64026061c98109eb6d279344f69d36962c109d1 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 12f1f306376035caddc8febf0a107e8166e62503..98af59137dff5bf10af16c4d4dd6f3a74f47bf19 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index cc1a72e21bad62bc8d41d1ce59cac35cd08ecb40..b9b2c4fa5a34498742f05f17713fd0795e4d6d01 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
index 5195c0c1e7c716abe6bffe17f24367b875cb2994..3dbbfa8dc3e3b8ae5c0f11f6777ce0e2ccf867b7 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 // Read a given file
 } // END - if
 
 // Read a given file
@@ -45,7 +45,7 @@ function readFromFile ($FQFN) {
        // Sanity-check if file is there (should be there, but just to make it sure)
        if (!isFileReadable($FQFN)) {
                // This should not happen
        // Sanity-check if file is there (should be there, but just to make it sure)
        if (!isFileReadable($FQFN)) {
                // This should not happen
-               debug_report_bug(__FUNCTION__, __LINE__, 'File ' . basename($FQFN) . ' is not readable!');
+               reportBug(__FUNCTION__, __LINE__, 'File ' . basename($FQFN) . ' is not readable!');
        } elseif (!isset($GLOBALS['file_content'][$FQFN])) {
                // Load the file
                if (function_exists('file_get_contents')) {
        } elseif (!isset($GLOBALS['file_content'][$FQFN])) {
                // Load the file
                if (function_exists('file_get_contents')) {
@@ -89,7 +89,7 @@ function writeToFile ($FQFN, $content, $aquireLock = false) {
                }
        } else {
                // Write it with fopen
                }
        } else {
                // Write it with fopen
-               $fp = fopen($FQFN, 'w') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($FQFN) . '!');
+               $fp = fopen($FQFN, 'w') or reportBug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($FQFN) . '!');
 
                // Do we need to aquire a lock?
                if ($aquireLock === true) {
 
                // Do we need to aquire a lock?
                if ($aquireLock === true) {
@@ -119,11 +119,20 @@ function writeToFile ($FQFN, $content, $aquireLock = false) {
 
 // Clears the output buffer. This function does *NOT* backup sent content.
 function clearOutputBuffer () {
 
 // Clears the output buffer. This function does *NOT* backup sent content.
 function clearOutputBuffer () {
+       // Make sure this function is not called twice (no double-cleaning!)
+       if (isset($GLOBALS[__FUNCTION__])) {
+               // This function is called twice
+               reportBug(__FUNCTION__, __LINE__, 'Double call of ' . __FUNCTION__ . ' may cause more trouble.');
+       } // END - if
+
        // Trigger an error on failure
        if ((ob_get_length() > 0) && (!ob_end_clean())) {
                // Failed!
        // Trigger an error on failure
        if ((ob_get_length() > 0) && (!ob_end_clean())) {
                // Failed!
-               debug_report_bug(__FUNCTION__, __LINE__, 'Failed to clean output buffer.');
+               reportBug(__FUNCTION__, __LINE__, 'Failed to clean output buffer.');
        } // END - if
        } // END - if
+
+       // Mark this function as called
+       $GLOBALS[__FUNCTION__] = true;
 }
 
 // Encode strings
 }
 
 // Encode strings
@@ -152,16 +161,16 @@ function merge_array ($array1, $array2) {
        // Are both an array?
        if ((!is_array($array1)) && (!is_array($array2))) {
                // Both are not arrays
        // Are both an array?
        if ((!is_array($array1)) && (!is_array($array2))) {
                // Both are not arrays
-               debug_report_bug(__FUNCTION__, __LINE__, 'No arrays provided!');
+               reportBug(__FUNCTION__, __LINE__, 'No arrays provided!');
        } elseif (!is_array($array1)) {
                // Left one is not an array
        } elseif (!is_array($array1)) {
                // Left one is not an array
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("array1 is not an array. array != %s", gettype($array1)));
+               reportBug(__FUNCTION__, __LINE__, sprintf("array1 is not an array. array != %s", gettype($array1)));
        } elseif (!is_array($array2)) {
                // Right one is not an array
        } elseif (!is_array($array2)) {
                // Right one is not an array
-               debug_report_bug(__FUNCTION__, __LINE__, sprintf("array2 is not an array. array != %s", gettype($array2)));
+               reportBug(__FUNCTION__, __LINE__, sprintf("array2 is not an array. array != %s", gettype($array2)));
        }
 
        }
 
-       // Merge all together
+       // Merge both together
        return array_merge($array1, $array2);
 }
 
        return array_merge($array1, $array2);
 }
 
@@ -177,7 +186,7 @@ function isFileReadable ($FQFN) {
        return $GLOBALS['file_readable'][$FQFN];
 }
 
        return $GLOBALS['file_readable'][$FQFN];
 }
 
-// Checks wether the given FQFN is a directory and not ., .. or .svn
+// Checks whether the given FQFN is a directory and not ., .. or .svn
 function isDirectory ($FQFN) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$FQFN])) {
 function isDirectory ($FQFN) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$FQFN])) {
@@ -306,23 +315,23 @@ function detectDomainName () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Check wether we are installing
+// Check whether we are installing
 function isInstalling () {
 function isInstalling () {
-       // Determine wether we are installing
-       if (!isset($GLOBALS['mailer_installing'])) {
+       // Determine whether we are installing
+       if (!isset($GLOBALS['__mailer_installing'])) {
                // Check URL (css.php/js.php need this)
                // Check URL (css.php/js.php need this)
-               $GLOBALS['mailer_installing'] = isGetRequestElementSet('installing');
+               $GLOBALS['__mailer_installing'] = isGetRequestElementSet('installing');
        } // END - if
 
        // Return result
        } // END - if
 
        // Return result
-       return $GLOBALS['mailer_installing'];
+       return $GLOBALS['__mailer_installing'];
 }
 
 }
 
-// Check wether this script is installed
+// Check whether this script is installed
 function isInstalled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isInstalled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
-               // Determine wether this script is installed
+               // Determine whether this script is installed
                $GLOBALS[__FUNCTION__] = (
                (
                        // First is config
                $GLOBALS[__FUNCTION__] = (
                (
                        // First is config
@@ -356,7 +365,7 @@ function isInstalled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Check wether an admin is registered
+// Check whether an admin is registered
 function isAdminRegistered () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isAdminRegistered () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -368,19 +377,19 @@ function isAdminRegistered () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether the hourly reset mode is active
+// Checks whether the hourly reset mode is active
 function isHourlyResetEnabled () {
        // Now simply check it
        return ((isset($GLOBALS['hourly_enabled'])) && ($GLOBALS['hourly_enabled'] === true));
 }
 
 function isHourlyResetEnabled () {
        // Now simply check it
        return ((isset($GLOBALS['hourly_enabled'])) && ($GLOBALS['hourly_enabled'] === true));
 }
 
-// Checks wether the reset mode is active
+// Checks whether the reset mode is active
 function isResetModeEnabled () {
        // Now simply check it
        return ((isset($GLOBALS['reset_enabled'])) && ($GLOBALS['reset_enabled'] === true));
 }
 
 function isResetModeEnabled () {
        // Now simply check it
        return ((isset($GLOBALS['reset_enabled'])) && ($GLOBALS['reset_enabled'] === true));
 }
 
-// Checks wether the debug mode is enabled
+// Checks whether the debug mode is enabled
 function isDebugModeEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDebugModeEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -392,7 +401,7 @@ function isDebugModeEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether the debug reset is enabled
+// Checks whether the debug reset is enabled
 function isDebugResetEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDebugResetEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -404,7 +413,7 @@ function isDebugResetEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether SQL debugging is enabled
+// Checks whether SQL debugging is enabled
 function isSqlDebuggingEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isSqlDebuggingEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -416,7 +425,7 @@ function isSqlDebuggingEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether we shall debug regular expressions
+// Checks whether we shall debug regular expressions
 function isDebugRegularExpressionEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDebugRegularExpressionEnabled () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -428,7 +437,7 @@ function isDebugRegularExpressionEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether the cache instance is valid
+// Checks whether the cache instance is valid
 function isCacheInstanceValid () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isCacheInstanceValid () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -450,19 +459,19 @@ function copyFileVerified ($source, $dest, $chmod = '') {
        // Is the source file there?
        if (!isFileReadable($source)) {
                // Then abort here
        // Is the source file there?
        if (!isFileReadable($source)) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot read from source file ' . basename($source) . '.');
+               reportBug(__FUNCTION__, __LINE__, 'Cannot read from source file ' . basename($source) . '.');
        } // END - if
 
        // Is the target directory there?
        if (!isDirectory(dirname($dest))) {
                // Then abort here
        } // END - if
 
        // Is the target directory there?
        if (!isDirectory(dirname($dest))) {
                // Then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot find directory ' . str_replace(getPath(), '', dirname($dest)) . '.');
+               reportBug(__FUNCTION__, __LINE__, 'Cannot find directory ' . str_replace(getPath(), '', dirname($dest)) . '.');
        } // END - if
 
        // Now try to copy it
        if (!copy($source, $dest)) {
                // Something went wrong
        } // END - if
 
        // Now try to copy it
        if (!copy($source, $dest)) {
                // Something went wrong
-               debug_report_bug(__FUNCTION__, __LINE__, 'copy() has failed to copy the file.');
+               reportBug(__FUNCTION__, __LINE__, 'copy() has failed to copy the file.');
        } else {
                // Reset cache
                $GLOBALS['file_readable'][$dest] = true;
        } else {
                // Reset cache
                $GLOBALS['file_readable'][$dest] = true;
@@ -487,7 +496,7 @@ function changeMode ($FQFN, $mode) {
        // Is the file/directory there?
        if ((!isFileReadable($FQFN)) && (!isDirectory($FQFN))) {
                // Neither, so abort here
        // Is the file/directory there?
        if ((!isFileReadable($FQFN)) && (!isDirectory($FQFN))) {
                // Neither, so abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cannot chmod() on ' . basename($FQFN) . '.');
+               reportBug(__FUNCTION__, __LINE__, 'Cannot chmod() on ' . basename($FQFN) . '.');
        } // END - if
 
        // Try to set them
        } // END - if
 
        // Try to set them
@@ -518,21 +527,21 @@ function countPostSelection ($element = 'sel') {
                return countSelection(postRequestElement($element));
        } else {
                // Return zero if not found
                return countSelection(postRequestElement($element));
        } else {
                // Return zero if not found
-               return 0;
+               return '0';
        }
 }
 
        }
 }
 
-// Checks wether the config-local.php is loaded
+// Checks whether the config-local.php is loaded
 function isConfigLocalLoaded () {
        return ((isset($GLOBALS['config_local_loaded'])) && ($GLOBALS['config_local_loaded'] === true));
 }
 
 function isConfigLocalLoaded () {
        return ((isset($GLOBALS['config_local_loaded'])) && ($GLOBALS['config_local_loaded'] === true));
 }
 
-// Checks wether a nickname or userid was entered and caches the result
+// Checks whether a nickname or userid was entered and caches the result
 function isNicknameUsed ($userid) {
        // Is the cache there
        if (!isset($GLOBALS[__FUNCTION__][$userid])) {
                // Determine it
 function isNicknameUsed ($userid) {
        // Is the cache there
        if (!isset($GLOBALS[__FUNCTION__][$userid])) {
                // Determine it
-               $GLOBALS[__FUNCTION__][$userid] = ((!empty($userid)) && (('' . round($userid) . '') != $userid) && ($userid != 'NULL'));
+               $GLOBALS[__FUNCTION__][$userid] = ((!empty($userid)) && (('' . bigintval($userid, true, false) . '') != $userid) && ($userid != 'NULL'));
        } // END - if
 
        // Return the result
        } // END - if
 
        // Return the result
@@ -556,6 +565,7 @@ function getWhat ($strict = true) {
 
 // Setter for 'what' value
 function setWhat ($newWhat) {
 
 // Setter for 'what' value
 function setWhat ($newWhat) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newWhat=' . $newWhat);
        $GLOBALS['__what'] = $newWhat;
 }
 
        $GLOBALS['__what'] = $newWhat;
 }
 
@@ -568,7 +578,7 @@ function setWhatFromConfig ($configEntry) {
        setWhat($what);
 }
 
        setWhat($what);
 }
 
-// Checks wether what is set and optionally aborts on miss
+// Checks whether what is set and optionally aborts on miss
 function isWhatSet ($strict =  false) {
        // Check for it
        $isset = (isset($GLOBALS['__what']) && (!empty($GLOBALS['__what'])));
 function isWhatSet ($strict =  false) {
        // Check for it
        $isset = (isset($GLOBALS['__what']) && (!empty($GLOBALS['__what'])));
@@ -603,7 +613,7 @@ function setAction ($newAction) {
        $GLOBALS['__action'] = $newAction;
 }
 
        $GLOBALS['__action'] = $newAction;
 }
 
-// Checks wether action is set and optionally aborts on miss
+// Checks whether action is set and optionally aborts on miss
 function isActionSet ($strict =  false) {
        // Check for it
        $isset = ((isset($GLOBALS['__action'])) && (!empty($GLOBALS['__action'])));
 function isActionSet ($strict =  false) {
        // Check for it
        $isset = ((isset($GLOBALS['__action'])) && (!empty($GLOBALS['__action'])));
@@ -611,7 +621,7 @@ function isActionSet ($strict =  false) {
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
                // Output backtrace
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
                // Output backtrace
-               debug_report_bug(__FUNCTION__, __LINE__, 'action is empty.');
+               reportBug(__FUNCTION__, __LINE__, 'action is empty.');
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
@@ -639,7 +649,7 @@ function setModule ($newModule) {
        $GLOBALS['__module'] = strtolower($newModule);
 }
 
        $GLOBALS['__module'] = strtolower($newModule);
 }
 
-// Checks wether module is set and optionally aborts on miss
+// Checks whether module is set and optionally aborts on miss
 function isModuleSet ($strict =  false) {
        // Check for it
        $isset = ((isset($GLOBALS['__module'])) && (!empty($GLOBALS['__module'])));
 function isModuleSet ($strict =  false) {
        // Check for it
        $isset = ((isset($GLOBALS['__module'])) && (!empty($GLOBALS['__module'])));
@@ -647,7 +657,7 @@ function isModuleSet ($strict =  false) {
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
                // Output backtrace
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
                // Output backtrace
-               debug_report_bug(__FUNCTION__, __LINE__, 'Module is empty.');
+               reportBug(__FUNCTION__, __LINE__, 'Module is empty.');
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
@@ -656,19 +666,16 @@ function isModuleSet ($strict =  false) {
 
 // Getter for 'output_mode' value
 function getScriptOutputMode () {
 
 // Getter for 'output_mode' value
 function getScriptOutputMode () {
-       // Do we have cache?
+       // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
        if (!isset($GLOBALS[__FUNCTION__])) {
-               // Default is null
-               $output_mode = NULL;
-
-               // Is the value set?
-               if (isOutputModeSet(true)) {
-                       // Then use it
-                       $output_mode = $GLOBALS['output_mode'];
+               // Is the output mode set?
+               if (!isOutputModeSet()) {
+                       // No, then abort here
+                       reportBug(__FUNCTION__, __LINE__, 'Output mode not set.');
                } // END - if
 
                } // END - if
 
-               // Store it in cache
-               $GLOBALS[__FUNCTION__] = $output_mode;
+               // Set it in cache
+               $GLOBALS[__FUNCTION__] = $GLOBALS['__output_mode'];
        } // END - if
 
        // Return cache
        } // END - if
 
        // Return cache
@@ -678,19 +685,18 @@ function getScriptOutputMode () {
 // Setter for 'output_mode' value
 function setOutputMode ($newOutputMode) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'output_mode=' . $newOutputMode);
 // Setter for 'output_mode' value
 function setOutputMode ($newOutputMode) {
        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'output_mode=' . $newOutputMode);
-       $GLOBALS['output_mode']         = (int) $newOutputMode;
-       $GLOBALS['getScriptOutputMode'] = (int) $newOutputMode;
+       $GLOBALS['__output_mode'] = (int) $newOutputMode;
 }
 
 }
 
-// Checks wether output_mode is set and optionally aborts on miss
+// Checks whether output_mode is set and optionally aborts on miss
 function isOutputModeSet ($strict =  false) {
        // Check for it
 function isOutputModeSet ($strict =  false) {
        // Check for it
-       $isset = (isset($GLOBALS['output_mode']));
+       $isset = (isset($GLOBALS['__output_mode']));
 
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
                // Output backtrace
 
        // Should we abort here?
        if (($strict === true) && ($isset === false)) {
                // Output backtrace
-               debug_report_bug(__FUNCTION__, __LINE__, 'Output mode is not set.');
+               reportBug(__FUNCTION__, __LINE__, 'Output mode is not set.');
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
@@ -699,37 +705,19 @@ function isOutputModeSet ($strict =  false) {
 
 // Enables block-mode
 function enableBlockMode ($enabled = true) {
 
 // Enables block-mode
 function enableBlockMode ($enabled = true) {
-       $GLOBALS['block_mode'] = $enabled;
+       $GLOBALS['__block_mode'] = $enabled;
 }
 
 }
 
-// Checks wether block-mode is enabled
+// Checks whether block-mode is enabled
 function isBlockModeEnabled () {
        // Abort if not set
 function isBlockModeEnabled () {
        // Abort if not set
-       if (!isset($GLOBALS['block_mode'])) {
+       if (!isset($GLOBALS['__block_mode'])) {
                // Needs to be fixed
                // Needs to be fixed
-               debug_report_bug(__FUNCTION__, __LINE__, 'Block_mode is not set.');
+               reportBug(__FUNCTION__, __LINE__, 'Block_mode is not set.');
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
-       return $GLOBALS['block_mode'];
-}
-
-/**
- * Wrapper function for addPointsThroughReferralSystem(), you should generally
- * avoid this function and use addPointsThroughReferralSystem() directly and add
- * your special payment method entry to points_data instead.
- *
- * @param      $subject        A string-encoded subject for this add
- * @param      $userid         The recipient (member) for given points
- * @param      $points         Points to be added to member's account
- * @return     $added          Wether the points has been added to the user's account
- */
-function addPointsDirectly ($subject, $userid, $points) {
-       // Reset level here
-       initReferralSystem();
-
-       // Call more complicated method (due to more parameters)
-       return addPointsThroughReferralSystem($subject, $userid, $points, false, 0, 'DIRECT');
+       return $GLOBALS['__block_mode'];
 }
 
 // Wrapper for redirectToUrl but URL comes from a configuration entry
 }
 
 // Wrapper for redirectToUrl but URL comes from a configuration entry
@@ -816,7 +804,7 @@ function isInstallationPhase () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether the extension demo is actuve and the admin login is demo (password needs to be demo, too!)
+// Checks whether the extension demo is actuve and the admin login is demo (password needs to be demo, too!)
 function isDemoModeActive () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDemoModeActive () {
        // Is cache set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -833,12 +821,12 @@ function getPhpCaching () {
        return $GLOBALS['php_caching'];
 }
 
        return $GLOBALS['php_caching'];
 }
 
-// Checks wether the admin hash is set
+// Checks whether the admin hash is set
 function isAdminHashSet ($adminId) {
        // Is the array there?
        if (!isset($GLOBALS['cache_array']['admin'])) {
                // Missing array should be reported
 function isAdminHashSet ($adminId) {
        // Is the array there?
        if (!isset($GLOBALS['cache_array']['admin'])) {
                // Missing array should be reported
-               debug_report_bug(__FUNCTION__, __LINE__, 'Cache not set.');
+               reportBug(__FUNCTION__, __LINE__, 'Cache not set.');
        } // END - if
 
        // Check for admin hash
        } // END - if
 
        // Check for admin hash
@@ -918,7 +906,7 @@ function initUserData () {
        // User id should not be zero
        if (!isValidUserId(getCurrentUserId())) {
                // Should be always valid
        // User id should not be zero
        if (!isValidUserId(getCurrentUserId())) {
                // Should be always valid
-               debug_report_bug(__FUNCTION__, __LINE__, 'Current user id is invalid: ' . getCurrentUserId());
+               reportBug(__FUNCTION__, __LINE__, 'Current user id is invalid: ' . getCurrentUserId());
        } // END - if
 
        // Init the user
        } // END - if
 
        // Init the user
@@ -931,7 +919,7 @@ function getUserData ($column) {
        // User id should not be zero
        if (!isValidUserId(getCurrentUserId())) {
                // Should be always valid
        // User id should not be zero
        if (!isValidUserId(getCurrentUserId())) {
                // Should be always valid
-               debug_report_bug(__FUNCTION__, __LINE__, 'Current user id is invalid: ' . getCurrentUserId());
+               reportBug(__FUNCTION__, __LINE__, 'Current user id is invalid: ' . getCurrentUserId());
        } // END - if
 
        // Default is empty
        } // END - if
 
        // Default is empty
@@ -946,7 +934,7 @@ function getUserData ($column) {
        return $data;
 }
 
        return $data;
 }
 
-// Checks wether given user data is set to 'Y'
+// Checks whether given user data is set to 'Y'
 function isUserDataEnabled ($column) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][getCurrentUserId()][$column])) {
 function isUserDataEnabled ($column) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][getCurrentUserId()][$column])) {
@@ -966,7 +954,7 @@ function getUserDataArray () {
        // Is the current userid valid?
        if (!isValidUserId($userid)) {
                // Should be always valid
        // Is the current userid valid?
        if (!isValidUserId($userid)) {
                // Should be always valid
-               debug_report_bug(__FUNCTION__, __LINE__, 'Current user id is invalid: ' . $userid);
+               reportBug(__FUNCTION__, __LINE__, 'Current user id is invalid: ' . $userid);
        } // END - if
 
        // Get the whole array if found
        } // END - if
 
        // Get the whole array if found
@@ -1004,26 +992,46 @@ function setCurrentUserId ($userid) {
 
        // Unset it to re-determine the actual state
        unset($GLOBALS['is_userdata_valid'][$userid]);
 
        // Unset it to re-determine the actual state
        unset($GLOBALS['is_userdata_valid'][$userid]);
+
+       // Is the cache from below functions different?
+       if ((isset($GLOBALS['getCurrentUserId'])) && ($GLOBALS['getCurrentUserId'] != $userid)) {
+               // Then unset both
+               unset($GLOBALS['getCurrentUserId']);
+               unset($GLOBALS['isCurrentUserIdSet']);
+       } // END - if
 }
 
 // Getter for current userid
 function getCurrentUserId () {
 }
 
 // Getter for current userid
 function getCurrentUserId () {
-       // Userid must be set before it can be used
-       if (!isCurrentUserIdSet()) {
-               // Not set
-               debug_report_bug(__FUNCTION__, __LINE__, 'User id is not set.');
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Userid must be set before it can be used
+               if (!isCurrentUserIdSet()) {
+                       // Not set
+                       reportBug(__FUNCTION__, __LINE__, 'User id is not set.');
+               } // END - if
+
+               // Set userid in cache
+               $GLOBALS[__FUNCTION__] = $GLOBALS['current_userid'];
        } // END - if
 
        } // END - if
 
-       // Return the userid
-       return $GLOBALS['current_userid'];
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 // Checks if current userid is set
 function isCurrentUserIdSet () {
 }
 
 // Checks if current userid is set
 function isCurrentUserIdSet () {
-       return ((isset($GLOBALS['current_userid'])) && (isValidUserId($GLOBALS['current_userid'])));
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = ((isset($GLOBALS['current_userid'])) && (isValidUserId($GLOBALS['current_userid'])));
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 }
 
-// Checks wether we are debugging template cache
+// Checks whether we are debugging template cache
 function isDebuggingTemplateCache () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDebuggingTemplateCache () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1076,6 +1084,12 @@ function ifFatalErrorsDetected () {
        return (getTotalFatalErrors() > 0);
 }
 
        return (getTotalFatalErrors() > 0);
 }
 
+// Checks whether a HTTP status has been set
+function isHttpStatusSet () {
+       // Is it set and not empty?
+       return ((isset($GLOBALS['http_status'])) && (!empty($GLOBALS['http_status'])));
+}
+
 // Setter for HTTP status
 function setHttpStatus ($status) {
        $GLOBALS['http_status'] = (string) $status;
 // Setter for HTTP status
 function setHttpStatus ($status) {
        $GLOBALS['http_status'] = (string) $status;
@@ -1084,9 +1098,9 @@ function setHttpStatus ($status) {
 // Getter for HTTP status
 function getHttpStatus () {
        // Is the status set?
 // Getter for HTTP status
 function getHttpStatus () {
        // Is the status set?
-       if (!isset($GLOBALS['http_status'])) {
+       if (!isHttpStatusSet()) {
                // Abort here
                // Abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'No HTTP status set!');
+               reportBug(__FUNCTION__, __LINE__, 'No HTTP status set!');
        } // END - if
 
        // Return it
        } // END - if
 
        // Return it
@@ -1112,7 +1126,7 @@ function sendRawRedirect ($url) {
        clearOutputBuffer();
 
        // Clear own output buffer
        clearOutputBuffer();
 
        // Clear own output buffer
-       $GLOBALS['output'] = '';
+       $GLOBALS['__output'] = '';
 
        // To make redirects working (no content type), output mode must be raw
        setOutputMode(-1);
 
        // To make redirects working (no content type), output mode must be raw
        setOutputMode(-1);
@@ -1139,7 +1153,7 @@ function sendRawRedirect ($url) {
        }
 
        // Shutdown here
        }
 
        // Shutdown here
-       shutdown();
+       doShutdown();
 }
 
 // Determines the country of the given user id
 }
 
 // Determines the country of the given user id
@@ -1172,7 +1186,7 @@ function getTotalConfirmedUser () {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionActive('user')) {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionActive('user')) {
-                       $GLOBALS[__FUNCTION__] = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true);
+                       $GLOBALS[__FUNCTION__] = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, runFilterChain('user_exclusion_sql', ' '));
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
@@ -1188,7 +1202,7 @@ function getTotalUnconfirmedUser () {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionActive('user')) {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionActive('user')) {
-                       $GLOBALS[__FUNCTION__] = countSumTotalData('UNCONFIRMED', 'user_data', 'userid', 'status', true);
+                       $GLOBALS[__FUNCTION__] = countSumTotalData('UNCONFIRMED', 'user_data', 'userid', 'status', true, runFilterChain('user_exclusion_sql', ' '));
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
@@ -1204,7 +1218,7 @@ function getTotalLockedUser () {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionActive('user')) {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionActive('user')) {
-                       $GLOBALS[__FUNCTION__] = countSumTotalData('LOCKED', 'user_data', 'userid', 'status', true);
+                       $GLOBALS[__FUNCTION__] = countSumTotalData('LOCKED', 'user_data', 'userid', 'status', true, runFilterChain('user_exclusion_sql', ' '));
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
@@ -1220,7 +1234,7 @@ function getTotalRandomRefidUser () {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionInstalledAndNewer('user', '0.3.4')) {
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Then do it
                if (isExtensionInstalledAndNewer('user', '0.3.4')) {
-                       $GLOBALS[__FUNCTION__] = countSumTotalData('{?user_min_confirmed?}', 'user_data', 'userid', 'rand_confirmed', true, '', '>=');
+                       $GLOBALS[__FUNCTION__] = countSumTotalData('{?user_min_confirmed?}', 'user_data', 'userid', 'rand_confirmed', true, runFilterChain('user_exclusion_sql', ' '), '>=');
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
                } else {
                        $GLOBALS[__FUNCTION__] = 0;
                }
@@ -1232,6 +1246,9 @@ function getTotalRandomRefidUser () {
 
 // Is given userid valid?
 function isValidUserId ($userid) {
 
 // Is given userid valid?
 function isValidUserId ($userid) {
+       // Debug message
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid[' . gettype($userid) . ']=' . $userid);
+
        // Handle NULL
        if (is_null($userid)) {
                // Do not handle this as of below isset() will always return false
        // Handle NULL
        if (is_null($userid)) {
                // Do not handle this as of below isset() will always return false
@@ -1428,7 +1445,7 @@ function getMinute ($timestamp = NULL) {
        return $GLOBALS[__FUNCTION__][$timestamp];
 }
 
        return $GLOBALS[__FUNCTION__][$timestamp];
 }
 
-// Checks wether the title decoration is enabled
+// Checks whether the title decoration is enabled
 function isTitleDecorationEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isTitleDecorationEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1440,7 +1457,7 @@ function isTitleDecorationEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether filter usage updates are enabled (expensive queries!)
+// Checks whether filter usage updates are enabled (expensive queries!)
 function isFilterUsageUpdateEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isFilterUsageUpdateEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1452,7 +1469,7 @@ function isFilterUsageUpdateEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether debugging of weekly resets is enabled
+// Checks whether debugging of weekly resets is enabled
 function isWeeklyResetDebugEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isWeeklyResetDebugEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1464,7 +1481,7 @@ function isWeeklyResetDebugEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether debugging of monthly resets is enabled
+// Checks whether debugging of monthly resets is enabled
 function isMonthlyResetDebugEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isMonthlyResetDebugEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1476,7 +1493,7 @@ function isMonthlyResetDebugEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether displaying of debug SQLs are enabled
+// Checks whether displaying of debug SQLs are enabled
 function isDisplayDebugSqlEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDisplayDebugSqlEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1488,7 +1505,7 @@ function isDisplayDebugSqlEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether module title is enabled
+// Checks whether module title is enabled
 function isModuleTitleEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isModuleTitleEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1500,7 +1517,7 @@ function isModuleTitleEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether what title is enabled
+// Checks whether what title is enabled
 function isWhatTitleEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isWhatTitleEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1512,7 +1529,7 @@ function isWhatTitleEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether stats are enabled
+// Checks whether stats are enabled
 function ifInternalStatsEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function ifInternalStatsEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1524,7 +1541,7 @@ function ifInternalStatsEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether admin-notification of certain user actions is enabled
+// Checks whether admin-notification of certain user actions is enabled
 function isAdminNotificationEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isAdminNotificationEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -1536,7 +1553,7 @@ function isAdminNotificationEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether random referral id selection is enabled
+// Checks whether random referral id selection is enabled
 function isRandomReferralIdEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isRandomReferralIdEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -2412,7 +2429,7 @@ function getCheckDoubleEmail () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether 'check_double_email' is 'Y'
+// Checks whether 'check_double_email' is 'Y'
 function isCheckDoubleEmailEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isCheckDoubleEmailEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -2436,7 +2453,7 @@ function getDisplayHomeInIndex () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether 'display_home_in_index' is 'Y'
+// Checks whether 'display_home_in_index' is 'Y'
 function isDisplayHomeInIndexEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDisplayHomeInIndexEnabled () {
        // Is the cache entry set?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -2460,7 +2477,19 @@ function getAdminMenuJavascript () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether proxy configuration is used
+// Getter for 'points_remove_account'
+function getPointsRemoveAccount () {
+       // Is the cache entry set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // No, so determine it
+               $GLOBALS[__FUNCTION__] = getConfig('points_remove_account');
+       } // END - if
+
+       // Return cached entry
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether proxy configuration is used
 function isProxyUsed () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isProxyUsed () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -2472,19 +2501,19 @@ function isProxyUsed () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether POST data contains selections
+// Checks whether POST data contains selections
 function ifPostContainsSelections ($element = 'sel') {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$element])) {
                // Determine it
 function ifPostContainsSelections ($element = 'sel') {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$element])) {
                // Determine it
-               $GLOBALS[__FUNCTION__][$element] = ((isPostRequestElementSet($element)) && (countPostSelection($element) > 0));
+               $GLOBALS[__FUNCTION__][$element] = ((isPostRequestElementSet($element)) && (is_array(postRequestElement($element))) && (countPostSelection($element) > 0));
        } // END - if
 
        // Return cache
        return $GLOBALS[__FUNCTION__][$element];
 }
 
        } // END - if
 
        // Return cache
        return $GLOBALS[__FUNCTION__][$element];
 }
 
-// Checks wether verbose_sql is Y and returns true/false if so
+// Checks whether verbose_sql is Y and returns true/false if so
 function isVerboseSqlEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isVerboseSqlEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -2510,7 +2539,19 @@ function getTotalPoints ($userid) {
                $data = runFilterChain('get_total_points', $data);
 
                // Determine it
                $data = runFilterChain('get_total_points', $data);
 
                // Determine it
-               $GLOBALS[__FUNCTION__][$userid] = $data['points']  - countSumTotalData($userid, 'user_data', 'used_points');
+               $GLOBALS[__FUNCTION__][$userid] = $data['points']  - getUserUsedPoints($userid);
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__][$userid];
+}
+
+// Wrapper to get used points for given userid
+function getUserUsedPoints ($userid) {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$userid])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__][$userid] = countSumTotalData($userid, 'user_data', 'used_points');
        } // END - if
 
        // Return cache
        } // END - if
 
        // Return cache
@@ -2529,7 +2570,7 @@ function isUrlBlacklistEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether direct payment is allowed in configuration
+// Checks whether direct payment is allowed in configuration
 function isDirectPaymentEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
 function isDirectPaymentEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
@@ -2541,12 +2582,12 @@ function isDirectPaymentEnabled () {
        return $GLOBALS[__FUNCTION__];
 }
 
        return $GLOBALS[__FUNCTION__];
 }
 
-// Checks wether JavaScript-based admin menu is enabled
+// Checks whether JavaScript-based admin menu is enabled
 function isAdminMenuJavascriptEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
 function isAdminMenuJavascriptEnabled () {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__])) {
                // Determine it
-               $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.8.7')) && (getConfig('admin_menu_javascript') == 'Y'));
+               $GLOBALS[__FUNCTION__] = ((isExtensionInstalledAndNewer('sql_patches', '0.8.7')) && (getAdminMenuJavaScript() == 'Y'));
        } // END - if
 
        // Return cache
        } // END - if
 
        // Return cache
@@ -2558,41 +2599,100 @@ function isExtensionTask ($content) {
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$content['task_type'] . '_' . $content['infos']])) {
                // Determine it
        // Do we have cache?
        if (!isset($GLOBALS[__FUNCTION__][$content['task_type'] . '_' . $content['infos']])) {
                // Determine it
-               $GLOBALS[__FUNCTION__][$content['task_type'] . '_' . $content['infos']] = (($content['task_type'] == 'EXTENSION') && (isExtensionNameValid($content['infos'])) && (!isExtensionInstalled($content['infos'])));
+               $GLOBALS[__FUNCTION__][$content['task_type'] . '_' . $content['infos']] = (($content['task_type'] == 'EXTENSION') && ((isExtensionNameValid($content['infos'])) || (isExtensionDeprecated($content['infos']))) && (!isExtensionInstalled($content['infos'])));
        } // END - if
 
        // Return cache
        return $GLOBALS[__FUNCTION__][$content['task_type'] . '_' . $content['infos']];
 }
 
        } // END - if
 
        // Return cache
        return $GLOBALS[__FUNCTION__][$content['task_type'] . '_' . $content['infos']];
 }
 
+// Getter for 'mt_start'
+function getMtStart () {
+       // Is the cache entry set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // No, so determine it
+               $GLOBALS[__FUNCTION__] = getConfig('mt_start');
+       } // END - if
+
+       // Return cached entry
+       return $GLOBALS[__FUNCTION__];
+}
+
+// Checks whether ALLOW_TESTER_ACCOUNTS is set
+function ifTesterAccountsAllowed () {
+       // Is the cache entry set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // No, so determine it
+               $GLOBALS[__FUNCTION__] = ((isConfigEntrySet('ALLOW_TESTER_ACCOUNTS')) && (getConfig('ALLOW_TESTER_ACCOUNTS') == 'Y'));
+       } // END - if
+
+       // Return cached entry
+       return $GLOBALS[__FUNCTION__];
+}
+
 // Wrapper to check if output mode is CSS
 function isCssOutputMode () {
 // Wrapper to check if output mode is CSS
 function isCssOutputMode () {
-       // Determine it
-       return (getScriptOutputMode() == 1);
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getScriptOutputMode()=' . getScriptOutputMode());
+               $GLOBALS[__FUNCTION__] = (getScriptOutputMode() == 1);
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 // Wrapper to check if output mode is HTML
 function isHtmlOutputMode () {
 }
 
 // Wrapper to check if output mode is HTML
 function isHtmlOutputMode () {
-       // Determine it
-       return (getScriptOutputMode() == 0);
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getScriptOutputMode()=' . getScriptOutputMode());
+               $GLOBALS[__FUNCTION__] = (getScriptOutputMode() == 0);
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 // Wrapper to check if output mode is RAW
 function isRawOutputMode () {
 }
 
 // Wrapper to check if output mode is RAW
 function isRawOutputMode () {
-       // Determine it
-       return (getScriptOutputMode() == -1);
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getScriptOutputMode()=' . getScriptOutputMode());
+               $GLOBALS[__FUNCTION__] = (getScriptOutputMode() == -1);
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 // Wrapper to check if output mode is AJAX
 function isAjaxOutputMode () {
 }
 
 // Wrapper to check if output mode is AJAX
 function isAjaxOutputMode () {
-       // Determine it
-       return (getScriptOutputMode() == -2);
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getScriptOutputMode()=' . getScriptOutputMode());
+               $GLOBALS[__FUNCTION__] = (getScriptOutputMode() == -2);
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 // Wrapper to check if output mode is image
 function isImageOutputMode () {
 }
 
 // Wrapper to check if output mode is image
 function isImageOutputMode () {
-       // Determine it
-       return (getScriptOutputMode() == -3);
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getScriptOutputMode()=' . getScriptOutputMode());
+               $GLOBALS[__FUNCTION__] = (getScriptOutputMode() == -3);
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 // Wrapper to generate a user email link
 }
 
 // Wrapper to generate a user email link
@@ -2618,8 +2718,8 @@ function ifUserPointsLocked ($userid) {
 // Appends a line to an existing file or creates it instantly with given content.
 // This function does always add a new-line character to every line.
 function appendLineToFile ($file, $line) {
 // Appends a line to an existing file or creates it instantly with given content.
 // This function does always add a new-line character to every line.
 function appendLineToFile ($file, $line) {
-       $fp = fopen($file, 'a') or debug_report_bug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($file) . '!');
-       fwrite($fp, $line . "\n");
+       $fp = fopen($file, 'a') or reportBug(__FUNCTION__, __LINE__, 'Cannot write to file ' . basename($file) . '!');
+       fwrite($fp, $line . chr(10));
        fclose($fp);
 }
 
        fclose($fp);
 }
 
@@ -2697,15 +2797,15 @@ function parseFloat ($floatString){
 }
 
 // Generates a YES/NO option list from given default
 }
 
 // Generates a YES/NO option list from given default
-function generateYesNoOptionList ($defaultValue = '') {
+function generateYesNoOptions ($defaultValue = '') {
        // Generate it
        // Generate it
-       return generateOptionList('/ARRAY/', array('Y', 'N'), array('{--YES--}', '{--NO--}'), $defaultValue);
+       return generateOptions('/ARRAY/', array('Y', 'N'), array('{--YES--}', '{--NO--}'), $defaultValue);
 }
 
 // "Getter" for total available receivers
 function getTotalReceivers ($mode = 'normal') {
        // Get num rows
 }
 
 // "Getter" for total available receivers
 function getTotalReceivers ($mode = 'normal') {
        // Get num rows
-       $numRows = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, ' AND `receive_mails` > 0' . runFilterChain('exclude_users', $mode));
+       $numRows = countSumTotalData('CONFIRMED', 'user_data', 'userid', 'status', true, runFilterChain('user_exclusion_sql', ' AND `receive_mails` > 0' . runFilterChain('exclude_users', $mode)));
 
        // Return value
        return $numRows;
 
        // Return value
        return $numRows;
@@ -2723,10 +2823,16 @@ function getTotalUnconfirmedMails ($userid) {
        return $GLOBALS[__FUNCTION__][$userid];
 }
 
        return $GLOBALS[__FUNCTION__][$userid];
 }
 
-// Checks wether 'mailer_theme' was found in session
+// Checks whether 'mailer_theme' was found in session
 function isMailerThemeSet () {
 function isMailerThemeSet () {
-       // Check session
-       return isSessionVariableSet('mailer_theme');
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = isSessionVariableSet('mailer_theme');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 /**
 }
 
 /**
@@ -2743,14 +2849,234 @@ function setMailerTheme ($newTheme) {
  * session data or throws an error if not possible
  */
 function getMailerTheme () {
  * session data or throws an error if not possible
  */
 function getMailerTheme () {
-       // Is 'mailer_theme' set?
-       if (!isMailerThemeSet()) {
-               // No, then abort here
-               debug_report_bug(__FUNCTION__, __LINE__, 'mailer_theme not set in session. Please fix your code.');
+       // Is cache set?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Is 'mailer_theme' set?
+               if (!isMailerThemeSet()) {
+                       // No, then abort here
+                       reportBug(__FUNCTION__, __LINE__, 'mailer_theme not set in session. Please fix your code.');
+               } // END - if
+
+               // Get it and store it in cache
+               $GLOBALS[__FUNCTION__] = getSession('mailer_theme');
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
+}
+
+// "Getter" for last_module/last_what depending on ext-user version
+function getUserLastWhatName () {
+       // Default is old one: last_module
+       $columnName = 'last_module';
+
+       // Is ext-user up-to-date?
+       if (isExtensionInstalledAndNewer('user', '0.4.9')) {
+               // Yes, then use new one
+               $columnName = 'last_what';
+       } // END - if
+
+       // Return it
+       return $columnName;
+}
+
+// "Getter" for all columns for given alias and separator
+function getAllPointColumns ($alias = NULL, $separator = ',') {
+       // Prepare the filter array
+       $filterData = array(
+               'columns'   => '',
+               'alias'     => $alias,
+               'separator' => $separator
+       );
+
+       // Run the filter
+       $filterData = runFilterChain('get_all_point_columns', $filterData);
+
+       // Return the columns
+       return $filterData['columns'];
+}
+
+// Checks whether the copyright footer (which breaks framesets) is enabled
+function ifCopyrightFooterEnabled () {
+       // Is not unset and not 'N'?
+       return ((!isset($GLOBALS['__copyright_enabled'])) || ($GLOBALS['__copyright_enabled'] == 'Y'));
+}
+
+/**
+ * Wrapper to check whether we have a "full page". This means that the actual
+ * content is not delivered in any frame of a frameset.
+ */
+function isFullPage () {
+       /*
+        * The parameter 'frame' is generic and always indicates that this content
+        * will be output into a frame. Furthermore, if a frameset is reported or
+        * the copyright line is explicitly deactivated, this cannot be a "full
+        * page" again.
+        */
+       // @TODO Find a way to not use direct module comparison
+       $isFullPage = ((!isGetRequestElementSet('frame')) && (getModule() != 'frametester') && (!isFramesetModeEnabled()) && (ifCopyrightFooterEnabled()));
+
+       // Return it
+       return $isFullPage;
+}
+
+// Checks whether frameset_mode is set to true
+function isFramesetModeEnabled () {
+       // Check it
+       return ((isset($GLOBALS['frameset_mode'])) && ($GLOBALS['frameset_mode'] === true));
+}
+
+// Function to determine correct 'what' value
+function determineWhat ($module = NULL) {
+       // Init default 'what'
+       $what = 'welcome';
+
+       // Is module NULL?
+       if (is_null($module)) {
+               // Then use default
+               $module = getModule();
+       } // END - if
+
+       // Is what set?
+       if (isWhatSet()) {
+               // Then use it
+               $what = getWhat();
+       } else {
+               // Else try to get it from current module
+               $what = getWhatFromModule($module);
+       }
+       //* DEBUG: */ debugOutput(__LINE__.'*'.$what.'/'.$module.'/'.getAction().'/'.getWhat().'*');
+
+       // Remove any spaces from variable
+       $what = trim($what);
+
+       // Is it empty?
+       if (empty($what)) {
+               // Default action for non-admin menus
+               $what = 'welcome';
+       } else {
+               // Secure it
+               $what = secureString($what);
+       }
+
+       // Return what
+       return $what;
+}
+
+// Fills (prepend) a string with zeros. This function has been taken from user comments at de.php.net/str_pad
+function prependZeros ($mStretch, $length = 2) {
+       // Return prepended string
+       return sprintf('%0' . (int) $length . 's', $mStretch);
+}
+
+// Wraps convertSelectionsToEpocheTime()
+function convertSelectionsToEpocheTimeInPostData ($id) {
+       // Init variables
+       $content = array();
+       $skip = false;
+
+       // Get all POST data
+       $postData = postRequestArray();
+
+       // Convert given selection id
+       convertSelectionsToEpocheTime($postData, $content, $id, $skip);
+
+       // Set the POST array back
+       setPostRequestArray($postData);
+}
+
+// Wraps checking if given points account type matches with given in POST data
+function ifPointsAccountTypeMatchesPost ($type) {
+       // Check condition
+       exit(__FUNCTION__.':type='.$type.',post=<pre>'.print_r(postRequestArray(), true).'</pre>');
+}
+
+// Gets given user's total referral
+function getUsersTotalReferrals ($userid, $level = NULL) {
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$userid][$level])) {
+               // Is the level NULL?
+               if (is_null($level)) {
+                       // Get total amount (all levels)
+                       $GLOBALS[__FUNCTION__][$userid][$level] = countSumTotalData($userid, 'user_refs', 'refid', 'userid', true);
+               } else {
+                       // Get it from user refs
+                       $GLOBALS[__FUNCTION__][$userid][$level] = countSumTotalData($userid, 'user_refs', 'refid', 'userid', true, ' AND `level`=' . bigintval($level));
+               }
        } // END - if
 
        } // END - if
 
-       // Return the theme from session
-       return getSession('mailer_theme');
+       // Return it
+       return $GLOBALS[__FUNCTION__][$userid][$level];
+}
+
+// Gets given user's total referral
+function getUsersTotalLockedReferrals ($userid, $level = NULL) {
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level[' . gettype($level) . ']=' . $level . ' - ENTERED!');
+       // Do we have cache?
+       if (!isset($GLOBALS[__FUNCTION__][$userid][$level])) {
+               // Default is all refs
+               $add = '';
+
+               // Is the not level NULL?
+               if (!is_null($level)) {
+                       // Then add referral level
+                       $add = ' AND r.`level`=' . bigintval($level);
+               } // END - if
+
+               // Check for all referrals
+               $result = SQL_QUERY_ESC("SELECT
+       COUNT(d.`userid`) AS `cnt`
+FROM
+       `{?_MYSQL_PREFIX?}_user_data` AS d
+INNER JOIN
+       `{?_MYSQL_PREFIX?}_user_refs` AS r
+ON
+       d.`userid`=r.`refid`
+WHERE
+       d.`status` != 'CONFIRMED' AND
+       r.`userid`=%s
+       " . $add . "
+ORDER BY
+       d.`userid` ASC
+LIMIT 1",
+                       array(
+                               $userid
+                       ), __FUNCTION__, __LINE__);
+
+               // Load count
+               list($GLOBALS[__FUNCTION__][$userid][$level]) = SQL_FETCHROW($result);
+
+               // Free result
+               SQL_FREERESULT($result);
+       } // END - if
+
+       // Return it
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',level[' . gettype($level) . ']=' . $level . ':' . $GLOBALS[__FUNCTION__][$userid][$level] . ' - EXIT!');
+       return $GLOBALS[__FUNCTION__][$userid][$level];
+}
+
+// Converts, if found, dollar data to get element
+function convertDollarDataToGetElement ($data) {
+       // Is first char a dollar?
+       if (substr($data, 0, 1) == chr(36)) {
+               // Use last part for getRequestElement()
+               $data = getRequestElement(substr($data, 1));
+       } // END - if
+
+       // Return it
+       return $data;
+}
+
+// Wrapper function for SQL layer to speed-up things
+function SQL_DEBUG_ENABLED () {
+       // Is there cache?
+       if (!isset($GLOBALS[__FUNCTION__])) {
+               // Determine it
+               $GLOBALS[__FUNCTION__] = ((!isCssOutputMode()) && (isDebugModeEnabled()) && (isSqlDebuggingEnabled()));
+       } // END - if
+
+       // Return cache
+       return $GLOBALS[__FUNCTION__];
 }
 
 // [EOF]
 }
 
 // [EOF]
index d09e8e11fae32792dc250b08d242ef77ec27cd19..a623e70181d6dac2f41c4fa413b7821fc6adb3a0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -69,10 +69,14 @@ function showEntriesByXmlCallback ($template) {
                        'functions' => array()
                );
                $GLOBALS['__XML_ARGUMENTS'] = array();
                        'functions' => array()
                );
                $GLOBALS['__XML_ARGUMENTS'] = array();
+               $GLOBALS['__COLUMN_INDEX']  = array();
 
                // Handle it over to the parser
                parseXmlData($templateContent);
 
 
                // Handle it over to the parser
                parseXmlData($templateContent);
 
+               // Add special elements, e.g. column index
+               addXmlSpecialElements($template);
+
                // Call the call-back function
                doCallXmlCallbackFunction();
        } else {
                // Call the call-back function
                doCallXmlCallbackFunction();
        } else {
@@ -81,16 +85,31 @@ function showEntriesByXmlCallback ($template) {
        }
 }
 
        }
 }
 
+// Adds special elements by calling back another template-depending function
+function addXmlSpecialElements ($template) {
+       // Generate the FQCN (Full-Qualified CallbackName)
+       $FQCN = 'addXmlSpecial' . capitalizeUnderscoreString($template);
+
+       // Is it there?
+       if (function_exists($FQCN)) {
+               // Call it
+               call_user_func($FQCN);
+       } else {
+               // This callback function is only optional
+               logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $FQCN . ' for template ' . $template . ' does not exist.');
+       }
+}
+
 // Parses the XML content
 function parseXmlData ($content) {
        // Do we have recode?
 // Parses the XML content
 function parseXmlData ($content) {
        // Do we have recode?
-       if (function_exists('recode')) {
-               // Convert 'HTML' to UTF-8
-               $content = recode('html..utf8', $content);
-       } else {
+       if (!function_exists('recode')) {
                // No fallback ATM
                // No fallback ATM
-               debug_report_bug('PHP extension recode is missing. Please install it.');
-       }
+               reportBug('PHP extension recode is missing. Please install it.');
+       } // END - if
+
+       // Convert HTML entities to UTF-8
+       $content = recode('html..utf8', $content);
 
        // Create a new XML parser
        $xmlParser = xml_parser_create();
 
        // Create a new XML parser
        $xmlParser = xml_parser_create();
@@ -109,7 +128,7 @@ function parseXmlData ($content) {
        if (!xml_parse($xmlParser, $content)) {
                // Error found in XML!
                //* DEBUG: */ die('<pre>'.htmlentities($content).'</pre>');
        if (!xml_parse($xmlParser, $content)) {
                // Error found in XML!
                //* DEBUG: */ die('<pre>'.htmlentities($content).'</pre>');
-               debug_report_bug(__FUNCTION__, __LINE__, 'Error found in XML. errorMessage=' . xml_error_string(xml_get_error_code($xmlParser)) . ', line=' . xml_get_current_line_number($xmlParser));
+               reportBug(__FUNCTION__, __LINE__, 'Error found in XML. errorMessage=' . xml_error_string(xml_get_error_code($xmlParser)) . ', line=' . xml_get_current_line_number($xmlParser));
        } // END - if
 
        // Free the parser
        } // END - if
 
        // Free the parser
@@ -138,15 +157,15 @@ function doCallXmlCallbackFunction () {
 
                                // Is it there?
                                if (!function_exists($callbackName)) {
 
                                // Is it there?
                                if (!function_exists($callbackName)) {
-                                       debug_report_bug(__FUNCTION__, __LINE__, 'callback=' . $callback . ',function=' . $function . 'arguments()=' . count($GLOBALS['__XML_ARGUMENTS'][$callback]) . ' - execute call-back not found.');
+                                       reportBug(__FUNCTION__, __LINE__, 'callback=' . $callback . ',function=' . $function . 'arguments()=' . count($GLOBALS['__XML_ARGUMENTS'][$callback]) . ' - execute call-back does not exist.');
                                } // END - if
 
                                // Call it
                                } // END - if
 
                                // Call it
-                               call_user_func_array($callbackName, array($function, $GLOBALS['__XML_ARGUMENTS'][$callback]));
+                               call_user_func_array($callbackName, array($function, $GLOBALS['__XML_ARGUMENTS'][$callback], $GLOBALS['__COLUMN_INDEX'][$callback]));
                        } // END - foreach
                } else {
                        // Not found
                        } // END - foreach
                } else {
                        // Not found
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Entry in callbacks does exist, but not in functions, callback= ' . $callback);
+                       reportBug(__FUNCTION__, __LINE__, 'Entry in callbacks does exist, but not in functions, callback= ' . $callback);
                }
        } // END - foreach
 }
                }
        } // END - foreach
 }
@@ -163,7 +182,7 @@ function startXmlElement ($resource, $element, $attributes) {
        // Is the call-back function there?
        if (!function_exists($elementCallback)) {
                // Not there
        // Is the call-back function there?
        if (!function_exists($elementCallback)) {
                // Not there
-               debug_report_bug(__FUNCTION__, __LINE__, 'Missing call-back function ' . $elementCallback . ', please add it.');
+               reportBug(__FUNCTION__, __LINE__, 'Missing call-back function ' . $elementCallback . ', please add it.');
        } // END - if
 
        // Call the call-back function
        } // END - if
 
        // Call the call-back function
@@ -211,16 +230,16 @@ function isXmlConditionValid ($condition) {
 // Checks if given value is valid/verifyable
 function isXmlValueValid ($type, $value) {
        // Depends on type, so build a call-back
 // Checks if given value is valid/verifyable
 function isXmlValueValid ($type, $value) {
        // Depends on type, so build a call-back
-       $callbackFunction = 'isXmlType' . trim(capitalizeUnderscoreString($type));
+       $callbackName = 'isXmlType' . trim(capitalizeUnderscoreString($type));
 
        // Is the call-back function there?
 
        // Is the call-back function there?
-       if (!function_exists($callbackFunction)) {
+       if (!function_exists($callbackName)) {
                // Not there
                // Not there
-               debug_report_bug(__FUNCTION__, __LINE__, 'Missing call-back function ' . $callbackFunction . ', please add it.');
+               reportBug(__FUNCTION__, __LINE__, 'Missing call-back function ' . $callbackName . ', please add it.');
        } // END - if
 
        // Call and return it
        } // END - if
 
        // Call and return it
-       return call_user_func_array($callbackFunction, array($value));
+       return call_user_func_array($callbackName, array($value));
 }
 
 // Converts given condition into a symbol
 }
 
 // Converts given condition into a symbol
@@ -235,7 +254,7 @@ function convertXmlContion ($condition) {
                        break;
 
                default: // Unknown condition
                        break;
 
                default: // Unknown condition
-                       debug_report_bug(__FUNCTION__, __LINE__, 'Condition ' . $condition . ' is unknown/unsupported.');
+                       reportBug(__FUNCTION__, __LINE__, 'Condition ' . $condition . ' is unknown/unsupported.');
                        break;
        } // END - switch
 
                        break;
        } // END - switch
 
@@ -293,7 +312,7 @@ function searchXmlArray ($value, $columns, $childKey) {
 
                        // And abort any further searches
                        break;
 
                        // And abort any further searches
                        break;
-               } // END - foreach
+               } // END - if
        } // END - foreach
 
        // Return key/false
        } // END - foreach
 
        // Return key/false
index a2764b899f3b62421bb9a9fbe89e21976f28d937..3e3caeed41abf38a0b3796fc370820fdff53e902 100644 (file)
--- a/index.php
+++ b/index.php
@@ -17,7 +17,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  ************************************************************************/
 
 // XDEBUG call
  ************************************************************************/
 
 // XDEBUG call
-//* DEBUG: */ xdebug_start_trace();
+/* DEBUG: */ xdebug_start_trace();
 
 // Load security stuff here
 require('inc/libs/security_functions.php');
 
 // Init start time
 
 // Load security stuff here
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module/what
-$GLOBALS['__module'] = 'index';
-$GLOBALS['__what'] = 'welcome';
-
-// Set CSS mode
-$GLOBALS['output_mode'] = '0';
+// Set module/what and output mode
+$GLOBALS['__module']      = 'index';
+$GLOBALS['__what']        = 'welcome';
+$GLOBALS['__output_mode'] = '0';
 
 // Load config.php
 require('inc/config-global.php');
 
 // Load config.php
 require('inc/config-global.php');
@@ -98,7 +96,7 @@ if ((isSessionVariableSet('visited')) || (getConfig('index_delay') > -1)) {
                loadTemplate('index_forward', false, $content);
        } // END - if
 
                loadTemplate('index_forward', false, $content);
        } // END - if
 
-       // Footer (which will call shutdown() for us)
+       // Footer (which will call doShutdown() for us)
        loadIncludeOnce('inc/footer.php');
 } else {
        // Redirect to main page
        loadIncludeOnce('inc/footer.php');
 } else {
        // Redirect to main page
index 7c7bc4fc4b6047f056687268ac2c100c0c22561c..fb26cff9eb067c8f1472d91e43011ba898c20b3f 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Tell every module / require file we are installing
 
 // Tell every module / require file we are installing
-$GLOBALS['mailer_installing'] = true;
+$GLOBALS['__mailer_installing'] = true;
 
 
-// Set CSS variable for "normal mode"
-$GLOBALS['output_mode'] = '0';
-
-// Set module
-$GLOBALS['__module'] = 'install';
+// Set module and output mode
+$GLOBALS['__module']      = 'install';
+$GLOBALS['__output_mode'] = '0';
 
 // Load config file
 require('inc/config-global.php');
 
 // Load config file
 require('inc/config-global.php');
@@ -59,16 +57,17 @@ require('inc/config-global.php');
 // Set content type
 setContentType('text/html');
 
 // Set content type
 setContentType('text/html');
 
-// Reload page to page=welcome when it is not specified
-if (!isGetRequestElementSet('page')) {
-       redirectToUrl('install.php?page=welcome');
+// Is 'install_page' set?
+if (!isGetRequestElementSet('install_page')) {
+       // No, so set it to 'welcome'
+       setGetRequestElement('install_page', 'welcome');
 } // END - if
 
 // Set username
 setUsername('{--USERNAME_INSTALLER--}');
 
 // Already installed?
 } // END - if
 
 // Set username
 setUsername('{--USERNAME_INSTALLER--}');
 
 // Already installed?
-if ((isInstalled()) && (getRequestElement('page') != 'finished')) {
+if ((isInstalled()) && (getRequestElement('install_page') != 'finished')) {
        // Add fatal message
        addFatalMessage(__FILE__, __LINE__, '{--ALREADY_INSTALLED--}');
 } // END - if
        // Add fatal message
        addFatalMessage(__FILE__, __LINE__, '{--ALREADY_INSTALLED--}');
 } // END - if
@@ -79,11 +78,36 @@ loadIncludeOnce('inc/header.php');
 // Handle fatal errors
 runFilterChain('handle_fatal_errors');
 
 // Handle fatal errors
 runFilterChain('handle_fatal_errors');
 
-// Here start's our installtion stuff
-loadIncludeOnce('inc/install-inc.php');
-
-// Load main installation table
-loadTemplate('install_main');
+// Do we have plain or AJAX-enabled installation?
+if (isGetRequestElementSet('installer')) {
+       // Set installer type
+       setSession('installer', getRequestElement('installer'));
+
+       // Redirect to install.php again
+       redirectToUrl('install.php');
+} elseif (isAjaxInstaller()) {
+       // AJAX-enabled installer:
+       // Load 'init' page
+       addTemplateToInstallContent('install_page_init');
+
+       // Prepare content
+       $content = array(
+               'install_page' => getRequestElement('install_page')
+       );
+
+       // Load main installation table
+       loadTemplate('install_main_ajax', false, $content);
+} elseif (isPlainInstaller()) {
+       // Plain installer:
+       // Load include file
+       loadIncludeOnce('inc/install-inc.php');
+
+       // Load main template
+       loadTemplate('install_main_plain');
+} else {
+       // What do you want, red or blue pill? AJAX or plain installer? ;-)
+       loadTemplate('install_selector');
+}
 
 // Footer
 loadIncludeOnce('inc/footer.php');
 
 // Footer
 loadIncludeOnce('inc/footer.php');
index ee3a53a11ec65cc5200342a8812aa073bde21eda..0e8fea2963fe612f14776a0fd66df40ae3cfcafc 100644 (file)
@@ -7,7 +7,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_admin_menu` (
   `sort` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   `descr` TEXT NOT NULL,
   PRIMARY KEY  (`id`)
   `sort` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   `descr` TEXT NOT NULL,
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Admin menu';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admins`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_admins` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_admins`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_admins` (
@@ -17,7 +17,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_admins` (
   `email` VARCHAR(255) NOT NULL,
   PRIMARY KEY  (`id`),
   UNIQUE (`login`)
   `email` VARCHAR(255) NOT NULL,
   PRIMARY KEY  (`id`),
   UNIQUE (`login`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Administrator accounts';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_cats`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_cats` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_cats`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_cats` (
@@ -26,7 +26,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_cats` (
   `visible` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `sort` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
   `visible` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `sort` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'General categories';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_config`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_config` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_config`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_config` (
@@ -37,22 +37,22 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_config` (
   `least_cats` TINYINT(3) UNSIGNED NOT NULL DEFAULT 5,
   `check_double_email` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `admin_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `least_cats` TINYINT(3) UNSIGNED NOT NULL DEFAULT 5,
   `check_double_email` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `admin_notify` ENUM('Y','N') NOT NULL DEFAULT 'Y',
-  `url_tlock` BIGINT(20) UNSIGNED NOT NULL DEFAULT '86400',
-  `max_tlength` BIGINT(20) UNSIGNED NOT NULL DEFAULT '1000',
+  `url_tlock` BIGINT(20) UNSIGNED NOT NULL DEFAULT 86400,
+  `max_tlength` BIGINT(20) UNSIGNED NOT NULL DEFAULT 1000,
   `autosend_active` ENUM('Y','N') NOT NULL DEFAULT 'N',
   `autosend_active` ENUM('Y','N') NOT NULL DEFAULT 'N',
-  `max_send` TINYINT(3) UNSIGNED NOT NULL DEFAULT '100',
+  `max_send` TINYINT(3) UNSIGNED NOT NULL DEFAULT 100,
   `url_blacklist` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `url_blacklist` ENUM('Y','N') NOT NULL DEFAULT 'Y',
-  `auto_purge` TINYINT(3) UNSIGNED NOT NULL DEFAULT '14',
+  `auto_purge` TINYINT(3) UNSIGNED NOT NULL DEFAULT 14,
   `auto_purge_active` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `last_update` VARCHAR(10) NOT NULL DEFAULT 0,
   `auto_purge_active` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `last_update` VARCHAR(10) NOT NULL DEFAULT 0,
-  `unconfirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT '100',
-  `profile_lock` BIGINT(20) UNSIGNED NOT NULL DEFAULT '86400',
-  `online_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT '1800',
+  `unconfirmed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 100,
+  `profile_lock` BIGINT(20) UNSIGNED NOT NULL DEFAULT 86400,
+  `online_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT 1800,
   `mad_timestamp` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   `mad_count` BIGINT(20) UNSIGNED NOT NULL,
   `mad_timestamp` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   `mad_count` BIGINT(20) UNSIGNED NOT NULL,
-  `profile_update` BIGINT(20) UNSIGNED NOT NULL DEFAULT '15768000',
+  `profile_update` BIGINT(20) UNSIGNED NOT NULL DEFAULT 15768000,
   `send_prof_update` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `send_prof_update` ENUM('Y','N') NOT NULL DEFAULT 'Y',
-  `resend_profile_update` BIGINT(20) UNSIGNED NOT NULL DEFAULT '172800',
+  `resend_profile_update` BIGINT(20) UNSIGNED NOT NULL DEFAULT 172800,
   `patch_level` VARCHAR(100) NOT NULL DEFAULT '0',
   `patch_ctime` VARCHAR(10) NOT NULL DEFAULT 0,
   `guest_stats` ENUM('MEMBERS','MODULES','INACTIVE') NOT NULL DEFAULT 'MEMBERS',
   `patch_level` VARCHAR(100) NOT NULL DEFAULT '0',
   `patch_ctime` VARCHAR(10) NOT NULL DEFAULT 0,
   `guest_stats` ENUM('MEMBERS','MODULES','INACTIVE') NOT NULL DEFAULT 'MEMBERS',
@@ -63,7 +63,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_config` (
   `ip_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT 86400,
   `allow_direct_pay` ENUM('Y','N') NOT NULL DEFAULT 'N',
   PRIMARY KEY (`config`)
   `ip_timeout` BIGINT(20) UNSIGNED NOT NULL DEFAULT 86400,
   `allow_direct_pay` ENUM('Y','N') NOT NULL DEFAULT 'N',
   PRIMARY KEY (`config`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Configuration';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_guest_menu`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_guest_menu` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_guest_menu`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_guest_menu` (
@@ -76,7 +76,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_guest_menu` (
   `locked` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
   `locked` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Guest menu';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_max_receive`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_max_receive` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_max_receive`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_max_receive` (
@@ -84,7 +84,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_max_receive` (
   `value` MEDIUMINT(9) NOT NULL DEFAULT 0,
   `comment` VARCHAR(255) NOT NULL DEFAULT '',
   PRIMARY KEY  (`id`)
   `value` MEDIUMINT(9) NOT NULL DEFAULT 0,
   `comment` VARCHAR(255) NOT NULL DEFAULT '',
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Mails per day setup';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_member_menu`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_member_menu` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_member_menu`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_member_menu` (
@@ -97,7 +97,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_member_menu` (
   `locked` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
   `locked` ENUM('Y','N') NOT NULL DEFAULT 'Y',
   `counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Member menu';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_mod_reg`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_mod_reg` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_mod_reg`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_mod_reg` (
@@ -110,17 +110,17 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_mod_reg` (
   `mem_only` ENUM('Y','N') NOT NULL DEFAULT 'N',
   `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
   `mem_only` ENUM('Y','N') NOT NULL DEFAULT 'N',
   `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Module registry';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_payments`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_payments` (
   `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
   `time` INT(7) NOT NULL DEFAULT 0,
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_payments`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_payments` (
   `id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
   `time` INT(7) NOT NULL DEFAULT 0,
-  `payment` FLOAT(5,3) UNSIGNED NOT NULL DEFAULT '0.000',
+  `payment` FLOAT(5,3) UNSIGNED NOT NULL DEFAULT 0.000,
   `mail_title` VARCHAR(255) NOT NULL DEFAULT '',
   `mail_title` VARCHAR(255) NOT NULL DEFAULT '',
-  `price` FLOAT(5,5) UNSIGNED NOT NULL DEFAULT '0.00000',
+  `price` FLOAT(5,5) UNSIGNED NOT NULL DEFAULT 0.00000,
   PRIMARY KEY  (`id`)
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Payment types';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_pool`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_pool` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_pool`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_pool` (
@@ -140,7 +140,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_pool` (
   INDEX (`sender`),
   INDEX (`payment_id`),
   INDEX (`cat_id`)
   INDEX (`sender`),
   INDEX (`payment_id`),
   INDEX (`cat_id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Sending pool';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_refbanner`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_refbanner` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_refbanner`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_refbanner` (
@@ -151,7 +151,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_refbanner` (
   `counter` BIGINT(20) NOT NULL DEFAULT 0,
   `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
   `counter` BIGINT(20) NOT NULL DEFAULT 0,
   `clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Referral banner';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_refdepths`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_refdepths` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_refdepths`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_refdepths` (
@@ -159,7 +159,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_refdepths` (
   `level` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
   `percents` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
   `level` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
   `percents` TINYINT(3) UNSIGNED NOT NULL DEFAULT 0,
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Referral levels';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_refsystem`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_refsystem` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_refsystem`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_refsystem` (
@@ -169,7 +169,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_refsystem` (
   `counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   INDEX (`userid`),
   PRIMARY KEY  (`id`)
   `counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0,
   INDEX (`userid`),
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Referral system (not points)';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_task_system`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_task_system` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_task_system`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_task_system` (
@@ -185,7 +185,7 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_task_system` (
   INDEX (`userid`),
   INDEX (`assigned_admin`),
   PRIMARY KEY  (`id`)
   INDEX (`userid`),
   INDEX (`assigned_admin`),
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Task system';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_extensions`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_extensions` (
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_extensions`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_extensions` (
@@ -194,14 +194,14 @@ CREATE TABLE `{?_MYSQL_PREFIX?}_extensions` (
   `ext_active` ENUM('Y','N') NOT NULL DEFAULT 'N',
   `ext_version` VARCHAR(255) NOT NULL DEFAULT 'INVALID',
   PRIMARY KEY  (`id`)
   `ext_active` ENUM('Y','N') NOT NULL DEFAULT 'N',
   `ext_version` VARCHAR(255) NOT NULL DEFAULT 'INVALID',
   PRIMARY KEY  (`id`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Extension registry';
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_jackpot`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_jackpot` (
   `ok` CHAR(2) NOT NULL DEFAULT 'ok',
 
 DROP TABLE IF EXISTS `{?_MYSQL_PREFIX?}_jackpot`;
 CREATE TABLE `{?_MYSQL_PREFIX?}_jackpot` (
   `ok` CHAR(2) NOT NULL DEFAULT 'ok',
-  `points` FLOAT(20,3) NOT NULL DEFAULT '0.000',
+  `points` FLOAT(20,3) NOT NULL DEFAULT 0.000,
   PRIMARY KEY  (`ok`)
   PRIMARY KEY  (`ok`)
-) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci;
+) ENGINE = {?_TABLE_TYPE?} CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT 'Jackpot';
 
 INSERT INTO `{?_MYSQL_PREFIX?}_config` (`config`) VALUES (0);
 
 
 INSERT INTO `{?_MYSQL_PREFIX?}_config` (`config`) VALUES (0);
 
diff --git a/js.php b/js.php
index 4d96a160f7f42b3c558ce3af778e726aa3fe27fa..c2b5a879dfad50590b0504e4c453a1e75985c14f 100644 (file)
--- a/js.php
+++ b/js.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -42,7 +42,7 @@
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // This is a fake-CSS file loader, more a JavaScript loader...
 // This is in one way good and in one not. The whole reset part will be
 
 // This is a fake-CSS file loader, more a JavaScript loader...
 // This is in one way good and in one not. The whole reset part will be
@@ -50,16 +50,16 @@ $GLOBALS['startTime'] = microtime(true);
 // JS calls on this script to CSS calls. So no real "request" like in MVC
 // pattern is given...
 //
 // JS calls on this script to CSS calls. So no real "request" like in MVC
 // pattern is given...
 //
-// But mxchange 0.3.0 will show that in better way! :D :D :D
-$GLOBALS['__module'] = 'js';
-$GLOBALS['output_mode'] = 1;
+// But Mailer-Project 0.3.0 will show that in better way! :D :D :D
+$GLOBALS['__module']      = 'js';
+$GLOBALS['__output_mode'] = 1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Set header and HTTP status
 setContentType('text/javascript');
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Set header and HTTP status
 setContentType('text/javascript');
-setHttpStatus('404 NOT FOUND');
+setHttpStatus('404 Not Found');
 
 // Is 'js' is provied?
 if (isGetRequestElementSet('js')) {
 
 // Is 'js' is provied?
 if (isGetRequestElementSet('js')) {
@@ -85,7 +85,7 @@ if (isGetRequestElementSet('js')) {
 } // END - if
 
 // Shutdown
 } // END - if
 
 // Shutdown
-shutdown();
+doShutdown();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
diff --git a/js/.js b/js/.js
new file mode 100644 (file)
index 0000000..e98ee15
--- /dev/null
+++ b/js/.js
@@ -0,0 +1,27 @@
+/*
+ * JavaScript for
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
diff --git a/js/admin-common.js b/js/admin-common.js
new file mode 100644 (file)
index 0000000..684cc39
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * JavaScript for common admin functions
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
diff --git a/js/admin-data.js b/js/admin-data.js
new file mode 100644 (file)
index 0000000..1cac8ab
--- /dev/null
@@ -0,0 +1,32 @@
+/**
+ * JavaScript for admin menu data
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+// Init index->page translation array
+var indexTranslation = new Array();
+
+// Add all index->page translations:
+indexTranslation[0] = 'welcome';
diff --git a/js/ajax-common.js b/js/ajax-common.js
new file mode 100644 (file)
index 0000000..01c56a9
--- /dev/null
@@ -0,0 +1,693 @@
+/**
+ * Common JavaScript functions for AJAX requests (they are general purpose).
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+// Init variables
+var currentTabId       = null;
+var errorDisplayed     = false;
+var warningDisplayed   = false;
+var defaultTabId       = null;
+var footerElements     = new Array();
+var changedElements    = new Array();
+var formChanged        = false;
+var saveChangesId      = null;
+var lastErrorMessage   = null;
+var saveChangesPending = false;
+
+// Add all footer navigation elements
+footerElements[0] = 'next';
+footerElements[1] = 'previous';
+
+// Setter for current tab id
+function setCurrentTabId (tabId) {
+       // Set it
+       //* DEBUG: */ alert('currentTabId=' + currentTabId + ',tabId=' + tabId);
+       currentTabId = tabId;
+}
+
+// Marks a tab navigation entry
+function markTabNavigation (prefix, tab) {
+       // Get all li-tags
+       var li = document.getElementsByTagName('li');
+
+       // Set current tab name
+       var currentTabName = 'tab_enabled';
+
+       // Set tab name
+       var tabName = prefix + '_' + tab;
+
+       // Search for all menus
+       for (var i = 0; i < li.length; i++) {
+               // Debug message
+               //* DEBUG: */ document.write('className=' + li[i].className + ',prefix=' + prefix + ',tab=' + tab + '<br />');
+
+               // Check for valid tab
+               if (li[i].className.substr(0, currentTabName.length) == currentTabName) {
+                       // Okay does match (don't change any others)
+                       if (li[i].id == tabName) {
+                               // Mark this menu
+                               $('li#' + tabName).addClass('tab_active');
+                               //li[i].className += ' tab_active';
+                       } else {
+                               // Unmark this menu
+                               $('li#' + li[i].id).removeClass('tab_active');
+                               //li[i].className = currentTabName;
+                       }
+               } // END - if
+       } // END - for
+}
+
+// Enables a given element
+function enableElement (element) {
+       // Remove class and attribute
+       $(element).removeClass('disabled');
+       $(element).removeAttr('disabled');
+}
+
+// Disables a given element
+function disableElement (element) {
+       // Add class and attribute
+       $(element).addClass('disabled');
+       $(element).attr('disabled', 'disabled');
+
+       // Blur the element
+       $(element).blur();
+}
+
+// Enables a given footer navigation element
+function enableFooterNavigationPage (element) {
+       // Remove the 'disabled' class and attribute
+       enableElement('input#' + element + '_page');
+}
+
+// Resets footer navigation by adding CSS class 'disabled'
+function resetFooterNavigation () {
+       // Remove the 'disabled' class and attribute
+       for (var i = 0; i < footerElements.length; i++) {
+               $('input#' + footerElements[i] + '_page').addClass('disabled');
+               $('input#' + footerElements[i] + '_page').attr('disabled', 'disabled');
+               $('input#' + footerElements[i] + '_page').blur();
+       } // END - for
+}
+
+// Getter for AJAX content
+function getAjaxContent () {
+       // Is it defined?
+       if ($('body').data('ajax_content') == undefined) {
+               // Not set
+               throw new 'ajax_content requested but not set.';
+       } // END - if
+
+       // Return it
+       return $('body').data('ajax_content');
+}
+
+// "Setter" for AJAX content but does decode the content
+function setAjaxDecodedContent (ajax_content) {
+       // Decode URL-encoded data ...
+       var decoded = decodeUrlEncoding(ajax_content);
+
+       // ... and set it
+       setAjaxContent(decoded);
+}
+
+// Setter for AJAX content
+function setAjaxContent (ajax_content) {
+       $('body').data('ajax_content', ajax_content);
+}
+
+// Getter for AJAX success
+function getAjaxSuccess () {
+       return $('body').data('ajax_success');
+}
+
+// Setter for AJAX success
+function setAjaxSuccess (success) {
+       $('body').data('ajax_success', success);
+}
+
+// Set AJAX reply and decode JSON if requested
+function setAjaxReply (reply, isJson) {
+       // Copy reply to local variable
+       var localReply = reply;
+
+       // Is it JSON URL-encoded content?
+       if ((isJson != undefined) && (isJson == true)) {
+               // Then decode it, replace '%20' with space before because '%20' breakes JSON content
+               var obj = jQuery.parseJSON(reply.replace('%20', ' '));
+
+               // Is reply_content there
+               if (obj.reply_content == undefined) {
+                       // Not defined
+                       throw new 'obj.reply_content not returned from ajax.php, please fix your scripts.';
+               } // END - if
+
+               // ... and set it
+               setAjaxDecodedContent(obj.reply_content);
+       } else {
+               // Handle the content over to decode it
+               setAjaxDecodedContent(localReply);
+       }
+}
+
+// Sends out an AJAX request
+function sendAjaxRequest (level, doValue, extra, isJson) {
+       // By default all requests failed
+       setAjaxSuccess(false);
+
+       // Reset AJAX content
+       setAjaxContent('');
+
+       // Send out the raw request
+       $.ajax({
+               url: 'ajax.php',
+               type: 'POST',
+               data: 'level=' + level + '&do=' + doValue + extra,
+               dataType: 'json',
+               async: false,
+
+               // Called on success
+               success: function (ajax_content) {
+                       // Is ajax_content set?
+                       if (ajax_content.responseText == undefined) {
+                               // This shall not happen
+                               throw new 'ajax_content.responseText not returned from ajax.php, please fix your scripts.';
+                       } else if (ajax_content.responseText == null) {
+                               // This shall not happen, too
+                               throw new 'ajax_content.responseText=null from ajax.php, please fix your scripts.';
+                       }
+
+                       // Set AJAX reply
+                       setAjaxReply(ajax_content.responseText, isJson);
+
+                       // Mark it as success
+                       setAjaxSuccess(true);
+               },
+
+               // Called in case of an error (e.g. HTTP response status not '200 OK')
+               error: function (ajax_content) {
+                       // Is ajax_content set?
+                       if (ajax_content.responseText == undefined) {
+                               // This shall not happen
+                               throw new 'ajax_content.responseText not returned from ajax.php, please fix your scripts.';
+                       } else if (ajax_content.responseText == null) {
+                               // This shall not happen, too
+                               throw new 'ajax_content.responseText=null from ajax.php, please fix your scripts.';
+                       }
+
+                       // Set AJAX reply
+                       setAjaxReply(ajax_content.responseText, isJson);
+               }
+       });
+
+       // Return status
+       return getAjaxSuccess();
+}
+
+// Enables footer navigation buttons
+function enableFooterNavigation (prefix, tabId) {
+       // Reset both footer navigation first
+       resetFooterNavigation();
+
+       // Do the AJAX request (JSON as content is enabled)
+       if (sendAjaxRequest(prefix, 'footer_navigation', '&tab=' + tabId, true) == true) {
+               // Parse the content
+               $.each(getAjaxContent(), function (i, value) {
+                       // Enable current element
+                       enableFooterNavigationPage(value);
+               });
+       } else {
+               // Display error window
+               displayErrorWindow(prefix, getAjaxContent());
+       }
+}
+
+// Requests an AJAX content
+function requestAjaxContent (prefix, htmlId, tabId, footerNavigation) {
+       // Check if this request is disabled
+       if ($('#' + prefix + '_' + tabId).hasClass('tab_disabled')) {
+               // Clicked on a disabled tabId so blur it
+               //* DEBUG: */ alert('requestAjaxContent(): prefix=' + prefix + ',htmlId=' + htmlId + ',tabId=' + tabId + ' - DISABLED!');
+               return;
+       } else if (formChanged == true) {
+               // Has changed form , so output message to browser
+               //* DEBUG: */ alert('requestAjaxContent(): prefix=' + prefix + ',htmlId=' + htmlId + ',tabId=' + tabId + ' - FORM CHANGED!');
+               displayChangedWarningWindow(prefix, tabId);
+
+               // Abort here
+               return;
+       }
+
+       // Only request if content is different
+       //* DEBUG: */ alert('requestAjaxContent(): prefix=' + prefix + ',htmlId=' + htmlId + ',tabId=' + tabId + ',currentTabId=' + currentTabId);
+       if (tabId != currentTabId) {
+               // Set tabId as current
+               //* DEBUG: */ alert('requestAjaxContent(): prefix=' + prefix + ',htmlId=' + htmlId + ',tabId=' + tabId + ' - Calling setCurrentTabId()');
+               setCurrentTabId(tabId);
+
+               // Fade the old content out
+               $('#' + htmlId).fadeOut('fast', function() {
+                       // Send AJAX request
+                       if (sendAjaxRequest(prefix, 'request_content', '&tab=' + tabId, true) == true) {
+                               // Add the HTML content
+                               $('#' + htmlId).html(getAjaxContent());
+
+                               // Fade the content in
+                               $('#' + htmlId).fadeIn('fast', function() {
+                                       // This differs, so mark the menu and request content
+                                       markTabNavigation(prefix, tabId);
+
+                                       // Is the footer navigation enabled?
+                                       if (footerNavigation == true) {
+                                               // Change footer navigation as well
+                                               enableFooterNavigation(prefix, tabId);
+                                       } // END - if
+                               });
+                       } else {
+                               // Display error window
+                               displayErrorWindow(prefix, getAjaxContent());
+                       }
+               });
+       } else {
+               // Same id
+               //* DEBUG: */ alert('SAME!');
+       }
+}
+
+// Displays a test window
+function displayTestWindow (prefix, element) {
+       // Register click-event for error window
+       $('#' + prefix + '_error_close').click(function () {
+               // Close the window
+               closeErrorWindow(prefix);
+       });
+
+       // Register click-event for warning window
+       $('#' + prefix + '_warning_close').click(function () {
+               // Close the window
+               //* DEBUG: */ alert('displayTestWindow(): prefix=' + prefix + ' - calling closeWarningWindow()');
+               closeWarningWindow(prefix);
+       });
+
+       // Request it from the AJAX backend
+       if (sendAjaxRequest(prefix, 'test', '') == true) {
+               // Transfer the returned content to the prefix_warning_content id
+               $('#' + prefix + '_warning_content').html(getAjaxContent());
+
+               // Fade the warning in
+               $('#' + prefix + '_warning').fadeIn('slow', function() {
+                       // Enable element
+                       enableElement(element);
+               });
+
+               // Mark 'warning' as displayed
+               warningDisplayed = true;
+       } else {
+               // Display error message
+               displayErrorWindow(prefix, getAjaxContent());
+       }
+}
+
+// Displays a warning window above the form to warn about changed&unsafed fields
+function displayChangedWarningWindow (prefix, button) {
+       // Fade out warning window, if open
+       //* DEBUG: */ alert('displayChangedWarningWindow(): prefix=' + prefix + ',button=' + button + ' - calling closeWarningWindow()');
+       closeWarningWindow(prefix);
+
+       // Fade error out for eye-candy, if open
+       closeErrorWindow(prefix);
+
+       // Abort here if warningDisplayed is still true
+       if (warningDisplayed == true) {
+               // Make sure this doesn't happen
+               return;
+       } // END - if
+
+       // Request it from the AJAX backend
+       if (sendAjaxRequest(prefix, 'change_warning', '&button=' + button + '&elements=' + changedElements.join(':')) == true) {
+               // Transfer the returned content to the prefix_warning_content id
+               $('#' + prefix + '_warning_content').html(getAjaxContent());
+
+               // Fade the warning in
+               $('#' + prefix + '_warning').fadeIn('slow', function() {
+                       // Mark warning as displayed
+                       warningDisplayed = true;
+               });
+       } else {
+               // Display error message
+               displayErrorWindow(prefix, getAjaxContent());
+       }
+}
+
+// Displays the error window for given prefix and content
+function displayErrorWindow (prefix, ajax_content) {
+       // Fade out warning window, if open
+       //* DEBUG: */ alert('displayErrorWindow(): prefix=' + prefix + ' - calling closeWarningWindow()');
+       closeWarningWindow(prefix);
+
+       // Fade it out for eye-candy
+       closeErrorWindow(prefix);
+
+       // Abort here if errorDisplayed is still true
+       if (errorDisplayed == true) {
+               // Make sure this doesn't happen
+               return;
+       } // END - if
+
+       // Copy the response text to the error variable
+       if (ajax_content.responseText != undefined) {
+               $('#' + prefix + '_error_content').html(ajax_content.responseText);
+       } else {
+               $('#' + prefix + '_error_content').html(ajax_content);
+       }
+
+       // Fade the error in
+       $('#' + prefix + '_error').fadeIn('slow', function() {
+               // Mark error as displayed
+               errorDisplayed = true;
+       });
+}
+
+// Waits until the window has been closed
+function closeErrorLocked () {
+       // Has all been loaded?
+       if (errorDisplayed == false) {
+               // Then release ready()
+               $.holdReady(false);
+       } else {
+               // Recursive call again
+               window.setTimeout('closeErrorLocked()', 10);
+       }
+}
+
+// Closes an error window
+function closeErrorWindow (prefix, waitClose, resetCurrentTabId) {
+       // Is the error displayed?
+       if (errorDisplayed == true) {
+               // Shall we wait ("sync") until the animation has completed?
+               if (waitClose == true) {
+                       // Hold the ready status
+                       $.holdReady(true);
+               } // END - if
+
+               // Yes, then fade it out
+               $('#' + prefix + '_error').fadeOut('fast', function() {
+                       // Set current tab id to default
+                       if (resetCurrentTabId == true) {
+                               setCurrentTabId(defaultTabId);
+                       } // END - if
+
+                       // Mark it as closed
+                       errorDisplayed = false;
+               });
+
+               // Shall this animation be "synchronized"?
+               if (waitClose == true) {
+                       // Wait for the window has been closed
+                       closeErrorLocked();
+               } // END - if
+       } // END - if
+}
+
+// Waits until the window has been closed
+function closeWarningLocked () {
+       // Has all been loaded?
+       if (warningDisplayed == false) {
+               // Then release ready()
+               $.holdReady(false);
+       } else {
+               // Recursive call again
+               window.setTimeout('closeWarningLocked()', 10);
+       }
+}
+
+// Closes an warning window
+function closeWarningWindow (prefix, waitClose, resetCurrentTabId) {
+       //* DEBUG: */ alert('prefix=' + prefix + ',waitClose=' + waitClose + ' - ENTERED!');
+       // Is the warning displayed?
+       if (warningDisplayed == true) {
+               // Shall we wait ("sync") until the animation has completed?
+               //* DEBUG: */ alert('prefix=' + prefix + ',waitClose=' + waitClose + ',warningDisplayed=true');
+               if (waitClose == true) {
+                       // Hold the ready status
+                       $.holdReady(true);
+               } // END - if
+
+               // Yes, then fade it out
+               $('#' + prefix + '_warning').fadeOut('fast', function() {
+                       // Set current tab id to default
+                       //* DEBUG: */ alert('closeWarningWindow(): prefix=' + prefix + ',waitClose=' + waitClose + ',defaultTab=' + defaultTabId + ' - Calling setCurrentTabId()');
+                       if (resetCurrentTabId == true) {
+                               setCurrentTabId(defaultTabId);
+                       } // END - if
+
+                       // Mark it as closed
+                       warningDisplayed = false;
+                       //* DEBUG: */ alert('closeWarningWindow(): waitClose=' + waitClose + ',resetCurrentTabId=' + resetCurrentTabId + ',warningDisplayed=false');
+               });
+
+               // Shall this animation be "synchronized"?
+               if (waitClose == true) {
+                       // Wait for the window has been closed
+                       //* DEBUG: */ alert('prefix=' + prefix + ',waitClose=' + waitClose + ' - LOCKED!');
+                       closeWarningLocked();
+               } // END - if
+       } // END - if
+}
+
+// A footer navigation button has been clicked
+function doFooterPage (prefix, htmlId, button) {
+       //* DEBUG: */ alert('doFooterPage(): prefix=' + prefix + ',htmlId=' + htmlId + ',button=' + button + ' - ENTERED!');
+       // Has something being changed?
+       if (formChanged == true) {
+               // Output message to browser
+               displayChangedWarningWindow(prefix, button);
+
+               // Abort here
+               return;
+       } // END - if
+
+       // Do we have a 'next' entry?
+       //* DEBUG: */ alert('doFooterPage(): button=' + button + ',currentTabId=' + currentTabId + ',nextPage[currentTabId]=' + nextPage[currentTabId]);
+       if ((button == 'next') && (nextPage[currentTabId] != null)) {
+               // Then call the AJAX requester
+               requestAjaxContent(prefix, htmlId, nextPage[currentTabId]);
+       } else if ((button == 'previous') && (previousPage[currentTabId] != null)) {
+               // Then call the AJAX requester
+               requestAjaxContent(prefix, htmlId, previousPage[currentTabId]);
+       }
+}
+
+// Allows to save made changes (this will be called if the onchange event has been triggered)
+function allowSaveChanges (element) {
+       // Mark element as changed, unmark as failed
+       $('#' + element).addClass('field_changed');
+       $('#' + element).removeClass('field_failed');
+
+       // Is the element not there?
+       if (!in_array(element, changedElements)) {
+               // Mark the form as changed
+               formChanged = true;
+
+               // Make the 'Save changes' button clickable
+               enableElement('#' + saveChangesId);
+
+               // Remember this for later AJAX call
+               changedElements.push(element);
+       } // END - if
+}
+
+// Marks all elements as unchanged/not failed
+function markAllElementsAsUnchanged () {
+       // Remove status from all fields
+       for (var i = 0; i < changedElements.length; i++) {
+               // Mark the element as changed
+               $('#' + changedElements[i]).removeClass('field_changed');
+               $('#' + changedElements[i]).removeClass('field_failed');
+       } // END - for
+}
+
+// Function to reset the form
+function resetMailerAjaxForm () {
+       // Debug message
+       //* DEBUG: */ alert('resetMailerAjaxForm(): changedElements()=' + changedElements.length + ',saveChangesId=' + saveChangesId + ' - ENTERED!');
+
+       // Mark all elements as unchanged
+       markAllElementsAsUnchanged();
+
+       // Clear all changed elements
+       disableElement('input#' + saveChangesId);
+
+       // Reset changed elements and mark form as not changed
+       changedElements = new Array();
+       formChanged     = false;
+}
+
+// Mark given fields as failed
+function markFormFieldsFailed (failedFields) {
+       // Mark all elements as failed
+       $.each(failedFields, function (i, field) {
+               // Mark the element as 'failed'
+               $('#' + field).removeClass('field_changed');
+               $('#' + field).addClass('field_failed');
+
+               // Also register it as 'changed', if not found
+               if (!in_array(field, changedElements)) {
+                       // Okay, not yet added, so push it on the array
+                       changedElements.push(field);
+               } // END - if
+       });
+}
+
+// Processes the content from AJAX call
+function processAjaxResponseContent (prefix, ajax_content) {
+       // By default all is failed
+       var isResponseDone = false;
+
+       // Is 'status' and 'message' set?
+       if ((ajax_content.status == undefined) || (ajax_content.message == undefined)) {
+               // No status/message set
+               lastErrorMessage = 'Returned content does not provide &#36;status&#36; or &#36;message&#36; which is required.';
+       } else if ((ajax_content.status != 'done') && (ajax_content.status != 'failed')) {
+               // This is also not good, only 'failed' or 'done' is supported
+               lastErrorMessage = ajax_content.message + '<br />\nAdditionally an unknown status ' + ajax_content.status + ' was detected.';
+       } else if (ajax_content.status == 'failed') {
+               // Something bad went wrong so copy the message
+               lastErrorMessage = ajax_content.message;
+       } else {
+               // All fine
+               isResponseDone = true;
+       }
+
+       // Return status
+       return isResponseDone;
+}
+
+// Saves changes by sending the data to the AJAX backend script
+function saveChanges (prefix) {
+       // Mark all elements as unchanged
+       markAllElementsAsUnchanged();
+
+       // Do we have changed elements
+       if (changedElements.length == 0) {
+               // This should not happen
+               displayErrorWindow(prefix, '<div class="ajax_error_message">saveChanges() called with no changed elements.</div>');
+       } else if (saveChangesId == null) {
+               // saveChangesId is not det
+               displayErrorWindow(prefix, '<div class="ajax_error_message">saveChangesId is not set. Please add <em>saveChanges = \'foo_bar\';</em> to your code.</div>');
+       }
+
+       // Serialize the whole form
+       var serializedData = $('form').serialize();
+
+       // Hold the ready status
+       $.holdReady(true);
+       saveChangesPending = true;
+
+       /*
+        * Send the request to the AJAX backend, it doesn't matter from which page
+        * this was requested.
+        */
+       if (sendAjaxRequest(prefix, 'save_changes', '&tab=' + currentTabId + '&' + serializedData, true) == true) {
+               // Get the content
+               var ajax_content = getAjaxContent();
+
+               // Process the returned content
+               if (processAjaxResponseContent(prefix, ajax_content) == true) {
+                       // Mark all elements as unchanged
+                       markAllElementsAsUnchanged();
+
+                       // Reset form
+                       resetMailerAjaxForm();
+               } else {
+                       // Do we have 'failed_fields' set?
+                       if ((ajax_content.failed_fields != undefined) && (ajax_content.message != undefined)) {
+                               // Mark all fields as 'failed'
+                               markFormFieldsFailed(ajax_content.failed_fields);
+
+                               // Display the error message
+                               displayErrorWindow(prefix, '<div class="ajax_error_message">' + ajax_content.message + '</div>');
+                       } else {
+                               // This didn't work, why?
+                               displayErrorWindow(prefix, '<div class="ajax_error_message">processAjaxResponseContent() failed, please fix this.<br />\n' + lastErrorMessage + '</div>');
+                       }
+               }
+
+               // Saving changes may have worked
+               saveChangesPending = false;
+       } else {
+               // Mark all elements as unchanged
+               markAllElementsAsUnchanged();
+
+               // Display error message
+               displayErrorWindow(prefix, getAjaxContent());
+
+               // Saving changes didn't work
+               saveChangesPending = false;
+       }
+
+       // Wait for all has finished
+       saveChangesLocked();
+}
+
+// Waiting for resources being loaded
+function saveChangesLocked () {
+       // Has all been loaded?
+       if (saveChangesPending == false) {
+               // Then release ready()
+               $.holdReady(false);
+       } else {
+               // Recursive call again
+               window.setTimeout('saveChangesLocked()', 10);
+       }
+}
+
+// Saves changed settings and continues with given page (next/previous)
+function doSaveChangesPage (prefix, htmlId, page) {
+       // Save the changes
+       saveChanges(prefix);
+
+       // Close the window
+       //* DEBUG: */ alert('doSaveChangesPage(): prefix=' + prefix + ',htmlId=' + htmlId + ',page=' + page + ' - calling closeWarningWindow()');
+       closeWarningWindow(prefix, true, false);
+
+       // Load requested page
+       doFooterPage(prefix, htmlId, page);
+}
+
+// Saves changed settings and continues with given tab
+function doSaveChangesContinue (prefix, htmlId, tab) {
+       // Save the changes
+       saveChanges(prefix);
+
+       // Close the window
+       //* DEBUG: */ alert('doSaveChangesPage(): prefix=' + prefix + ',htmlId=' + htmlId + ',tab=' + tab + ' - calling closeWarningWindow()');
+       closeWarningWindow(prefix, true, false);
+
+       // Load requested content
+       requestAjaxContent(prefix, htmlId, tab);
+}
diff --git a/js/ajax-loader.js b/js/ajax-loader.js
new file mode 100644 (file)
index 0000000..7832668
--- /dev/null
@@ -0,0 +1,87 @@
+/*
+ * JavaScript for loading more JavaScripts with AJAX
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+// Loaded scripts counter
+var resourceCounter = 0;
+
+// This array holds a copy of resources which shall be loaded
+var loadResources = new Array();
+
+// Waiting for resources being loaded
+function loadScriptsLocked () {
+       // Has all been loaded?
+       if (resourceCounter == loadResources.length) {
+               // Then release ready()
+               $.holdReady(false);
+       } else {
+               // Recursive call again
+               window.setTimeout('loadScriptsLocked()', 10);
+       }
+}
+
+// Loads more JavaScript resources
+function loadScripts (resources) {
+       // Abort here if resources is not defined
+       if (resources == undefined) {
+               // This is really bad ...
+               throw new 'loadScripts() called with no resources (JavaScript files) to load!';
+       } // END - if
+
+       // Make ready() as holded
+       $.holdReady(true);
+
+       // Transfer all resources to global array
+       loadResources = resources;
+
+       // Begin the loop for all JavaScript files
+       for (var i = 0; i < resources.length; i++) {
+               // Is the script set?
+               if (resources[i] == undefined) {
+                       // Array element is missing, which means someone mades a boo boo ...
+                       throw new ('resources[' + i + '] not set. Please fix your array.');
+               } // END - if
+
+               // Load next script
+               $.getScript(resources[i], function (data, textStatus) {
+                       // Did something bad happen?
+                       if (textStatus != 'success') {
+                               // Throw an exception here
+                               throw new 'Cannot load script ' + resources[i] +  ' with status ' + textStatus + '!';
+                       } // END - if
+
+                       // Count it as loaded
+                       resourceCounter++;
+               });
+       } // END - for
+
+       // Wait until all scripts are loaded (asynchronously)
+       loadScriptsLocked();
+
+       // All loaded
+       return true;
+}
diff --git a/js/ajax-test.js b/js/ajax-test.js
new file mode 100644 (file)
index 0000000..2e06210
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ * JavaScript for testing the browser of AJAX-compatiblity
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+// Everthing starts with 3 seconds by default
+var counter = 3;
+
+// Get the element
+var element = document.getElementById('counter');
+
+// Holding the interval
+var ajaxTest = null;
+
+// Countdown function
+function ajaxTestCounter () {
+       // Do we have element set?
+       if (element != null) {
+               // Yes, then set the new counter value
+               element.innerHTML = counter;
+       } // END - if
+
+       // Do we have reached zero?
+       if (counter < 1) {
+               // Clear the interval
+               clearInterval(ajaxTest);
+
+               // Try to open AJAX window
+               try {
+                       // Is the test passed?
+                       displayTestWindow('install', '#ajax_installer');
+               } catch (e) {
+                       // Exception caught (very bad, AJAX is not working)
+                       alert(e);
+               }
+       } else {
+               // Count one down
+               counter--;
+       }
+}
+
+// Init counter test
+function initAjaxTest () {
+       // Start the test
+       ajaxTest = window.setInterval('ajaxTestCounter()', 1000);
+}
+
+// Start the test
+initAjaxTest();
diff --git a/js/core-common.js b/js/core-common.js
new file mode 100644 (file)
index 0000000..e164885
--- /dev/null
@@ -0,0 +1,58 @@
+/**
+ * JavaScript for core functions
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+// Function similar to PHP's function, except it checks only numeric indexes
+function in_array (needle, heystack) {
+       // By default it is not found
+       var isInArray = false;
+
+       // Check all elements
+       for (var i = 0; i < heystack.length; i++) {
+               // Is the element found?
+               if (heystack[i] == needle) {
+                       // Found it and abort
+                       isInArray = true;
+                       break;
+               } // END - if
+       } // END - if
+
+       // Return status
+       return isInArray;
+}
+
+// Function similar to PHP's urldecode() function
+function decodeUrlEncoding (content) {
+       // Replace plus signs with spaces
+       var removedPlus = (content + '').replace(/\+/g, '%20');
+
+       // Decode it
+       var decoded = decodeURIComponent(removedPlus);
+
+       // Return it
+       return decoded;
+}
diff --git a/js/install-common.js b/js/install-common.js
new file mode 100644 (file)
index 0000000..08aa7f3
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * JavaScript for common installer functions
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+// Switches instaler by redirecting
+function switchInstaller (installer) {
+       // Switch installer
+       document.location.href='install.php?installer=' + installer;
+}
diff --git a/js/install-data.js b/js/install-data.js
new file mode 100644 (file)
index 0000000..7d2ca7c
--- /dev/null
@@ -0,0 +1,60 @@
+/**
+ * JavaScript for installation menu data
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+// Init index->page translation array
+var indexTranslation = new Array();
+
+// Add all index->page translations:
+indexTranslation[0] = 'welcome';
+indexTranslation[1] = 'base_data';
+indexTranslation[2] = 'database_config';
+indexTranslation[3] = 'smtp_config';
+indexTranslation[4] = 'other_config';
+indexTranslation[5] = 'overview';
+indexTranslation[6] = 'finish';
+
+// 'next page' linking, key is current page, value is the next page
+var nextPage = new Array();
+
+// Add all 'next page' entries
+nextPage['welcome']         = 'base_data';
+nextPage['base_data']       = 'database_config';
+nextPage['database_config'] = 'smtp_config';
+nextPage['smtp_config']     = 'other_config';
+nextPage['other_config']    = 'overview';
+nextPage['overview']        = 'finish';
+
+// 'previous page' linking, key is current page, value is the previous page
+var previousPage = new Array();
+
+// Add all 'previous page' entries
+previousPage['base_data']       = 'welcome';
+previousPage['database_config'] = 'base_data';
+previousPage['smtp_config']     = 'database_config';
+previousPage['other_config']    = 'smtp_config';
+previousPage['overview']        = 'other_config';
+previousPage['finish']          = 'overview';
diff --git a/js/jquery-ui.custom.js b/js/jquery-ui.custom.js
new file mode 100644 (file)
index 0000000..b7d1da6
--- /dev/null
@@ -0,0 +1,21 @@
+/*! jQuery UI - v1.8.23 - 2012-08-15
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.core.js
+* Copyright (c) 2012 JQUERY-AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.23",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a("<a>").outerWidth(1).jquery||a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.widget.js
+* Copyright (c) 2012 JQUERY-AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){return c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}}),d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;return e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e,f&&e.charAt(0)==="_"?h:(f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b)return h=f,!1}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))}),h)}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(a,b){return this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.mouse.js
+* Copyright (c) 2012 JQUERY-AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent"))return a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(c)return;this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted)return b.preventDefault(),!0}return!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0,!0},_mouseMove:function(b){return!a.browser.msie||document.documentMode>=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.draggable.js
+* Copyright (c) 2012 JQUERY-AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.left<h[0]&&(f=h[0]+this.offset.click.left),b.pageY-this.offset.click.top<h[1]&&(g=h[1]+this.offset.click.top),b.pageX-this.offset.click.left>h[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.top<h[1]||j-this.offset.click.top>h[3]?j-this.offset.click.top<h[1]?j+c.grid[1]:j-c.grid[1]:j:j;var k=c.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0]:this.originalPageX;f=h?k-this.offset.click.left<h[0]||k-this.offset.click.left>h[2]?k-this.offset.click.left<h[0]?k+c.grid[0]:k-c.grid[0]:k:k}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d]),b=="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.extend(a.ui.draggable,{version:"1.8.23"}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c){var d=a(this).data("draggable"),e=d.options,f=a.extend({},c,{item:d.element});d.sortables=[],a(e.connectToSortable).each(function(){var c=a.data(this,"sortable");c&&!c.options.disabled&&(d.sortables.push({instance:c,shouldRevert:c.options.revert}),c.refreshPositions(),c._trigger("activate",b,f))})},stop:function(b,c){var d=a(this).data("draggable"),e=a.extend({},c,{item:d.element});a.each(d.sortables,function(){this.instance.isOver?(this.instance.isOver=0,d.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(b),this.instance.options.helper=this.instance.options._helper,d.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",b,e))})},drag:function(b,c){var d=a(this).data("draggable"),e=this,f=function(b){var c=this.offset.click.top,d=this.offset.click.left,e=this.positionAbs.top,f=this.positionAbs.left,g=b.height,h=b.width,i=b.top,j=b.left;return a.ui.isOver(e+c,f+d,i,j,g,h)};a.each(d.sortables,function(f){this.instance.positionAbs=d.positionAbs,this.instance.helperProportions=d.helperProportions,this.instance.offset.click=d.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return c.helper[0]},b.target=this.instance.currentItem[0],this.instance._mouseCapture(b,!0),this.instance._mouseStart(b,!0,!0),this.instance.offset.click.top=d.offset.click.top,this.instance.offset.click.left=d.offset.click.left,this.instance.offset.parent.left-=d.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=d.offset.parent.top-this.instance.offset.parent.top,d._trigger("toSortable",b),d.dropped=this.instance.element,d.currentItem=d.element,this.instance.fromOutside=d),this.instance.currentItem&&this.instance._mouseDrag(b)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",b,this.instance._uiHash(this.instance)),this.instance._mouseStop(b,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),d._trigger("fromSortable",b),d.dropped=!1)})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c){var d=a("body"),e=a(this).data("draggable").options;d.css("cursor")&&(e._cursor=d.css("cursor")),d.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;d._cursor&&a("body").css("cursor",d._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("opacity")&&(e._opacity=d.css("opacity")),d.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;d._opacity&&a(c.helper).css("opacity",d._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(b,c){var d=a(this).data("draggable");d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"&&(d.overflowOffset=d.scrollParent.offset())},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=!1;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!e.axis||e.axis!="x")d.overflowOffset.top+d.scrollParent[0].offsetHeight-b.pageY<e.scrollSensitivity?d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop-e.scrollSpeed);if(!e.axis||e.axis!="y")d.overflowOffset.left+d.scrollParent[0].offsetWidth-b.pageX<e.scrollSensitivity?d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft-e.scrollSpeed)}else{if(!e.axis||e.axis!="x")b.pageY-a(document).scrollTop()<e.scrollSensitivity?f=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<e.scrollSensitivity&&(f=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed));if(!e.axis||e.axis!="y")b.pageX-a(document).scrollLeft()<e.scrollSensitivity?f=a(document).scrollLeft(a(document).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<e.scrollSensitivity&&(f=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed))}f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c){var d=a(this).data("draggable"),e=d.options;d.snapElements=[],a(e.snap.constructor!=String?e.snap.items||":data(draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!=d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=e.snapTolerance,g=c.offset.left,h=g+d.helperProportions.width,i=c.offset.top,j=i+d.helperProportions.height;for(var k=d.snapElements.length-1;k>=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f<g&&g<m+f&&n-f<i&&i<o+f||l-f<g&&g<m+f&&n-f<j&&j<o+f||l-f<h&&h<m+f&&n-f<i&&i<o+f||l-f<h&&h<m+f&&n-f<j&&j<o+f)){d.snapElements[k].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=!1;continue}if(e.snapMode!="inner"){var p=Math.abs(n-j)<=f,q=Math.abs(o-i)<=f,r=Math.abs(l-h)<=f,s=Math.abs(m-g)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n-d.helperProportions.height,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l-d.helperProportions.width}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m}).left-d.margins.left)}var t=p||q||r||s;if(e.snapMode!="outer"){var p=Math.abs(n-i)<=f,q=Math.abs(o-j)<=f,r=Math.abs(l-g)<=f,s=Math.abs(m-h)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o-d.helperProportions.height,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m-d.helperProportions.width}).left-d.margins.left)}!d.snapElements[k].snapping&&(p||q||r||s||t)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=p||q||r||s||t}}}),a.ui.plugin.add("draggable","stack",{start:function(b,c){var d=a(this).data("draggable").options,e=a.makeArray(a(d.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});if(!e.length)return;var f=parseInt(e[0].style.zIndex)||0;a(e).each(function(a){this.style.zIndex=f+a}),this[0].style.zIndex=f+e.length}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("zIndex")&&(e._zIndex=d.css("zIndex")),d.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;d._zIndex&&a(c.helper).css("zIndex",d._zIndex)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15
+* https://github.com/jquery/jquery-ui
+* Includes: jquery.ui.droppable.js
+* Copyright (c) 2012 JQUERY-AUTHORS.txt; Licensed MIT, GPL */
+(function(a,b){a.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect"},_create:function(){var b=this.options,c=b.accept;this.isover=0,this.isout=1,this.accept=a.isFunction(c)?c:function(a){return a.is(c)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},a.ui.ddmanager.droppables[b.scope]=a.ui.ddmanager.droppables[b.scope]||[],a.ui.ddmanager.droppables[b.scope].push(this),b.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++)b[c]==this&&b.splice(c,1);return this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"),this},_setOption:function(b,c){b=="accept"&&(this.accept=a.isFunction(c)?c:function(a){return a.is(c)}),a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger("activate",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger("deactivate",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current;if(!d||(d.currentItem||d.element)[0]==this.element[0])return!1;var e=!1;return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var b=a.data(this,"droppable");if(b.options.greedy&&!b.options.disabled&&b.options.scope==d.options.scope&&b.accept.call(b.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(b,{offset:b.element.offset()}),b.options.tolerance))return e=!0,!1}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",b,this.ui(d)),this.element):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.extend(a.ui.droppable,{version:"1.8.23"}),a.ui.intersect=function(b,c,d){if(!c.offset)return!1;var e=(b.positionAbs||b.position.absolute).left,f=e+b.helperProportions.width,g=(b.positionAbs||b.position.absolute).top,h=g+b.helperProportions.height,i=c.offset.left,j=i+c.proportions.width,k=c.offset.top,l=k+c.proportions.height;switch(d){case"fit":return i<=e&&f<=j&&k<=g&&h<=l;case"intersect":return i<e+b.helperProportions.width/2&&f-b.helperProportions.width/2<j&&k<g+b.helperProportions.height/2&&h-b.helperProportions.height/2<l;case"pointer":var m=(b.positionAbs||b.position.absolute).left+(b.clickOffset||b.offset.click).left,n=(b.positionAbs||b.position.absolute).top+(b.clickOffset||b.offset.click).top,o=a.ui.isOver(n,m,k,i,c.proportions.height,c.proportions.width);return o;case"touch":return(g>=k&&g<=l||h>=k&&h<=l||g<k&&h>l)&&(e>=i&&e<=j||f>=i&&f<=j||e<i&&f>j);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h<d.length;h++){if(d[h].options.disabled||b&&!d[h].accept.call(d[h].element[0],b.currentItem||b.element))continue;for(var i=0;i<f.length;i++)if(f[i]==d[h].element[0]){d[h].proportions.height=0;continue g}d[h].visible=d[h].element.css("display")!="none";if(!d[h].visible)continue;e=="mousedown"&&d[h]._activate.call(d[h],c),d[h].offset=d[h].element.offset(),d[h].proportions={width:d[h].element[0].offsetWidth,height:d[h].element[0].offsetHeight}}},drop:function(b,c){var d=!1;return a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,c))}),d},dragStart:function(b,c){b.element.parents(":not(body,html)").bind("scroll.droppable",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var d=a.ui.intersect(b,this,this.options.tolerance),e=!d&&this.isover==1?"isout":d&&this.isover==0?"isover":null;if(!e)return;var f;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");g.length&&(f=a.data(g[0],"droppable"),f.greedyChild=e=="isover"?1:0)}f&&e=="isover"&&(f.isover=0,f.isout=1,f._out.call(f,c)),this[e]=1,this[e=="isout"?"isover":"isout"]=0,this[e=="isover"?"_over":"_out"].call(this,c),f&&e=="isout"&&(f.isout=0,f.isover=1,f._over.call(f,c))})},dragStop:function(b,c){b.element.parents(":not(body,html)").unbind("scroll.droppable"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}}})(jQuery);;
\ No newline at end of file
index f3201aacb6fb01b361b93bb21e35fe03bc6636ea..bc3fbc81b261b9dd759fd83917b93664138faa4a 100644 (file)
-/*!
- * jQuery JavaScript Library v1.6.2
- * http://jquery.com/
- *
- * Copyright 2011, John Resig
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * Includes Sizzle.js
- * http://sizzlejs.com/
- * Copyright 2011, The Dojo Foundation
- * Released under the MIT, BSD, and GPL Licenses.
- *
- * Date: Thu Jun 30 14:16:56 2011 -0400
- */
-(function( window, undefined ) {
-
-// Use the correct document accordingly with window argument (sandbox)
-var document = window.document,
-       navigator = window.navigator,
-       location = window.location;
-var jQuery = (function() {
-
-// Define a local copy of jQuery
-var jQuery = function( selector, context ) {
-               // The jQuery object is actually just the init constructor 'enhanced'
-               return new jQuery.fn.init( selector, context, rootjQuery );
-       },
-
-       // Map over jQuery in case of overwrite
-       _jQuery = window.jQuery,
-
-       // Map over the $ in case of overwrite
-       _$ = window.$,
-
-       // A central reference to the root jQuery(document)
-       rootjQuery,
-
-       // A simple way to check for HTML strings or ID strings
-       // (both of which we optimize for)
-       quickExpr = /^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,
-
-       // Check if a string has a non-whitespace character in it
-       rnotwhite = /\S/,
-
-       // Used for trimming whitespace
-       trimLeft = /^\s+/,
-       trimRight = /\s+$/,
-
-       // Check for digits
-       rdigit = /\d/,
-
-       // Match a standalone tag
-       rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>)?$/,
-
-       // JSON RegExp
-       rvalidchars = /^[\],:{}\s]*$/,
-       rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,
-       rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,
-       rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
-
-       // Useragent RegExp
-       rwebkit = /(webkit)[ \/]([\w.]+)/,
-       ropera = /(opera)(?:.*version)?[ \/]([\w.]+)/,
-       rmsie = /(msie) ([\w.]+)/,
-       rmozilla = /(mozilla)(?:.*? rv:([\w.]+))?/,
-
-       // Matches dashed string for camelizing
-       rdashAlpha = /-([a-z])/ig,
-
-       // Used by jQuery.camelCase as callback to replace()
-       fcamelCase = function( all, letter ) {
-               return letter.toUpperCase();
-       },
-
-       // Keep a UserAgent string for use with jQuery.browser
-       userAgent = navigator.userAgent,
-
-       // For matching the engine and version of the browser
-       browserMatch,
-
-       // The deferred used on DOM ready
-       readyList,
-
-       // The ready event handler
-       DOMContentLoaded,
-
-       // Save a reference to some core methods
-       toString = Object.prototype.toString,
-       hasOwn = Object.prototype.hasOwnProperty,
-       push = Array.prototype.push,
-       slice = Array.prototype.slice,
-       trim = String.prototype.trim,
-       indexOf = Array.prototype.indexOf,
-
-       // [[Class]] -> type pairs
-       class2type = {};
-
-jQuery.fn = jQuery.prototype = {
-       constructor: jQuery,
-       init: function( selector, context, rootjQuery ) {
-               var match, elem, ret, doc;
-
-               // Handle $(""), $(null), or $(undefined)
-               if ( !selector ) {
-                       return this;
-               }
-
-               // Handle $(DOMElement)
-               if ( selector.nodeType ) {
-                       this.context = this[0] = selector;
-                       this.length = 1;
-                       return this;
-               }
-
-               // The body element only exists once, optimize finding it
-               if ( selector === "body" && !context && document.body ) {
-                       this.context = document;
-                       this[0] = document.body;
-                       this.selector = selector;
-                       this.length = 1;
-                       return this;
-               }
-
-               // Handle HTML strings
-               if ( typeof selector === "string" ) {
-                       // Are we dealing with HTML string or an ID?
-                       if ( selector.charAt(0) === "<" && selector.charAt( selector.length - 1 ) === ">" && selector.length >= 3 ) {
-                               // Assume that strings that start and end with <> are HTML and skip the regex check
-                               match = [ null, selector, null ];
-
-                       } else {
-                               match = quickExpr.exec( selector );
-                       }
-
-                       // Verify a match, and that no context was specified for #id
-                       if ( match && (match[1] || !context) ) {
-
-                               // HANDLE: $(html) -> $(array)
-                               if ( match[1] ) {
-                                       context = context instanceof jQuery ? context[0] : context;
-                                       doc = (context ? context.ownerDocument || context : document);
-
-                                       // If a single string is passed in and it's a single tag
-                                       // just do a createElement and skip the rest
-                                       ret = rsingleTag.exec( selector );
-
-                                       if ( ret ) {
-                                               if ( jQuery.isPlainObject( context ) ) {
-                                                       selector = [ document.createElement( ret[1] ) ];
-                                                       jQuery.fn.attr.call( selector, context, true );
-
-                                               } else {
-                                                       selector = [ doc.createElement( ret[1] ) ];
-                                               }
-
-                                       } else {
-                                               ret = jQuery.buildFragment( [ match[1] ], [ doc ] );
-                                               selector = (ret.cacheable ? jQuery.clone(ret.fragment) : ret.fragment).childNodes;
-                                       }
-
-                                       return jQuery.merge( this, selector );
-
-                               // HANDLE: $("#id")
-                               } else {
-                                       elem = document.getElementById( match[2] );
-
-                                       // Check parentNode to catch when Blackberry 4.6 returns
-                                       // nodes that are no longer in the document #6963
-                                       if ( elem && elem.parentNode ) {
-                                               // Handle the case where IE and Opera return items
-                                               // by name instead of ID
-                                               if ( elem.id !== match[2] ) {
-                                                       return rootjQuery.find( selector );
-                                               }
-
-                                               // Otherwise, we inject the element directly into the jQuery object
-                                               this.length = 1;
-                                               this[0] = elem;
-                                       }
-
-                                       this.context = document;
-                                       this.selector = selector;
-                                       return this;
-                               }
-
-                       // HANDLE: $(expr, $(...))
-                       } else if ( !context || context.jquery ) {
-                               return (context || rootjQuery).find( selector );
-
-                       // HANDLE: $(expr, context)
-                       // (which is just equivalent to: $(context).find(expr)
-                       } else {
-                               return this.constructor( context ).find( selector );
-                       }
-
-               // HANDLE: $(function)
-               // Shortcut for document ready
-               } else if ( jQuery.isFunction( selector ) ) {
-                       return rootjQuery.ready( selector );
-               }
-
-               if (selector.selector !== undefined) {
-                       this.selector = selector.selector;
-                       this.context = selector.context;
-               }
-
-               return jQuery.makeArray( selector, this );
-       },
-
-       // Start with an empty selector
-       selector: "",
-
-       // The current version of jQuery being used
-       jquery: "1.6.2",
-
-       // The default length of a jQuery object is 0
-       length: 0,
-
-       // The number of elements contained in the matched element set
-       size: function() {
-               return this.length;
-       },
-
-       toArray: function() {
-               return slice.call( this, 0 );
-       },
-
-       // Get the Nth element in the matched element set OR
-       // Get the whole matched element set as a clean array
-       get: function( num ) {
-               return num == null ?
-
-                       // Return a 'clean' array
-                       this.toArray() :
-
-                       // Return just the object
-                       ( num < 0 ? this[ this.length + num ] : this[ num ] );
-       },
-
-       // Take an array of elements and push it onto the stack
-       // (returning the new matched element set)
-       pushStack: function( elems, name, selector ) {
-               // Build a new jQuery matched element set
-               var ret = this.constructor();
-
-               if ( jQuery.isArray( elems ) ) {
-                       push.apply( ret, elems );
-
-               } else {
-                       jQuery.merge( ret, elems );
-               }
-
-               // Add the old object onto the stack (as a reference)
-               ret.prevObject = this;
-
-               ret.context = this.context;
-
-               if ( name === "find" ) {
-                       ret.selector = this.selector + (this.selector ? " " : "") + selector;
-               } else if ( name ) {
-                       ret.selector = this.selector + "." + name + "(" + selector + ")";
-               }
-
-               // Return the newly-formed element set
-               return ret;
-       },
-
-       // Execute a callback for every element in the matched set.
-       // (You can seed the arguments with an array of args, but this is
-       // only used internally.)
-       each: function( callback, args ) {
-               return jQuery.each( this, callback, args );
-       },
-
-       ready: function( fn ) {
-               // Attach the listeners
-               jQuery.bindReady();
-
-               // Add the callback
-               readyList.done( fn );
-
-               return this;
-       },
-
-       eq: function( i ) {
-               return i === -1 ?
-                       this.slice( i ) :
-                       this.slice( i, +i + 1 );
-       },
-
-       first: function() {
-               return this.eq( 0 );
-       },
-
-       last: function() {
-               return this.eq( -1 );
-       },
-
-       slice: function() {
-               return this.pushStack( slice.apply( this, arguments ),
-                       "slice", slice.call(arguments).join(",") );
-       },
-
-       map: function( callback ) {
-               return this.pushStack( jQuery.map(this, function( elem, i ) {
-                       return callback.call( elem, i, elem );
-               }));
-       },
-
-       end: function() {
-               return this.prevObject || this.constructor(null);
-       },
-
-       // For internal use only.
-       // Behaves like an Array's method, not like a jQuery method.
-       push: push,
-       sort: [].sort,
-       splice: [].splice
-};
-
-// Give the init function the jQuery prototype for later instantiation
-jQuery.fn.init.prototype = jQuery.fn;
-
-jQuery.extend = jQuery.fn.extend = function() {
-       var options, name, src, copy, copyIsArray, clone,
-               target = arguments[0] || {},
-               i = 1,
-               length = arguments.length,
-               deep = false;
-
-       // Handle a deep copy situation
-       if ( typeof target === "boolean" ) {
-               deep = target;
-               target = arguments[1] || {};
-               // skip the boolean and the target
-               i = 2;
-       }
-
-       // Handle case when target is a string or something (possible in deep copy)
-       if ( typeof target !== "object" && !jQuery.isFunction(target) ) {
-               target = {};
-       }
-
-       // extend jQuery itself if only one argument is passed
-       if ( length === i ) {
-               target = this;
-               --i;
-       }
-
-       for ( ; i < length; i++ ) {
-               // Only deal with non-null/undefined values
-               if ( (options = arguments[ i ]) != null ) {
-                       // Extend the base object
-                       for ( name in options ) {
-                               src = target[ name ];
-                               copy = options[ name ];
-
-                               // Prevent never-ending loop
-                               if ( target === copy ) {
-                                       continue;
-                               }
-
-                               // Recurse if we're merging plain objects or arrays
-                               if ( deep && copy && ( jQuery.isPlainObject(copy) || (copyIsArray = jQuery.isArray(copy)) ) ) {
-                                       if ( copyIsArray ) {
-                                               copyIsArray = false;
-                                               clone = src && jQuery.isArray(src) ? src : [];
-
-                                       } else {
-                                               clone = src && jQuery.isPlainObject(src) ? src : {};
-                                       }
-
-                                       // Never move original objects, clone them
-                                       target[ name ] = jQuery.extend( deep, clone, copy );
-
-                               // Don't bring in undefined values
-                               } else if ( copy !== undefined ) {
-                                       target[ name ] = copy;
-                               }
-                       }
-               }
-       }
-
-       // Return the modified object
-       return target;
-};
-
-jQuery.extend({
-       noConflict: function( deep ) {
-               if ( window.$ === jQuery ) {
-                       window.$ = _$;
-               }
-
-               if ( deep && window.jQuery === jQuery ) {
-                       window.jQuery = _jQuery;
-               }
-
-               return jQuery;
-       },
-
-       // Is the DOM ready to be used? Set to true once it occurs.
-       isReady: false,
-
-       // A counter to track how many items to wait for before
-       // the ready event fires. See #6781
-       readyWait: 1,
-
-       // Hold (or release) the ready event
-       holdReady: function( hold ) {
-               if ( hold ) {
-                       jQuery.readyWait++;
-               } else {
-                       jQuery.ready( true );
-               }
-       },
-
-       // Handle when the DOM is ready
-       ready: function( wait ) {
-               // Either a released hold or an DOMready/load event and not yet ready
-               if ( (wait === true && !--jQuery.readyWait) || (wait !== true && !jQuery.isReady) ) {
-                       // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-                       if ( !document.body ) {
-                               return setTimeout( jQuery.ready, 1 );
-                       }
-
-                       // Remember that the DOM is ready
-                       jQuery.isReady = true;
-
-                       // If a normal DOM Ready event fired, decrement, and wait if need be
-                       if ( wait !== true && --jQuery.readyWait > 0 ) {
-                               return;
-                       }
-
-                       // If there are functions bound, to execute
-                       readyList.resolveWith( document, [ jQuery ] );
-
-                       // Trigger any bound ready events
-                       if ( jQuery.fn.trigger ) {
-                               jQuery( document ).trigger( "ready" ).unbind( "ready" );
-                       }
-               }
-       },
-
-       bindReady: function() {
-               if ( readyList ) {
-                       return;
-               }
-
-               readyList = jQuery._Deferred();
-
-               // Catch cases where $(document).ready() is called after the
-               // browser event has already occurred.
-               if ( document.readyState === "complete" ) {
-                       // Handle it asynchronously to allow scripts the opportunity to delay ready
-                       return setTimeout( jQuery.ready, 1 );
-               }
-
-               // Mozilla, Opera and webkit nightlies currently support this event
-               if ( document.addEventListener ) {
-                       // Use the handy event callback
-                       document.addEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-
-                       // A fallback to window.onload, that will always work
-                       window.addEventListener( "load", jQuery.ready, false );
-
-               // If IE event model is used
-               } else if ( document.attachEvent ) {
-                       // ensure firing before onload,
-                       // maybe late but safe also for iframes
-                       document.attachEvent( "onreadystatechange", DOMContentLoaded );
-
-                       // A fallback to window.onload, that will always work
-                       window.attachEvent( "onload", jQuery.ready );
-
-                       // If IE and not a frame
-                       // continually check to see if the document is ready
-                       var toplevel = false;
-
-                       try {
-                               toplevel = window.frameElement == null;
-                       } catch(e) {}
-
-                       if ( document.documentElement.doScroll && toplevel ) {
-                               doScrollCheck();
-                       }
-               }
-       },
-
-       // See test/unit/core.js for details concerning isFunction.
-       // Since version 1.3, DOM methods and functions like alert
-       // aren't supported. They return false on IE (#2968).
-       isFunction: function( obj ) {
-               return jQuery.type(obj) === "function";
-       },
-
-       isArray: Array.isArray || function( obj ) {
-               return jQuery.type(obj) === "array";
-       },
-
-       // A crude way of determining if an object is a window
-       isWindow: function( obj ) {
-               return obj && typeof obj === "object" && "setInterval" in obj;
-       },
-
-       isNaN: function( obj ) {
-               return obj == null || !rdigit.test( obj ) || isNaN( obj );
-       },
-
-       type: function( obj ) {
-               return obj == null ?
-                       String( obj ) :
-                       class2type[ toString.call(obj) ] || "object";
-       },
-
-       isPlainObject: function( obj ) {
-               // Must be an Object.
-               // Because of IE, we also have to check the presence of the constructor property.
-               // Make sure that DOM nodes and window objects don't pass through, as well
-               if ( !obj || jQuery.type(obj) !== "object" || obj.nodeType || jQuery.isWindow( obj ) ) {
-                       return false;
-               }
-
-               // Not own constructor property must be Object
-               if ( obj.constructor &&
-                       !hasOwn.call(obj, "constructor") &&
-                       !hasOwn.call(obj.constructor.prototype, "isPrototypeOf") ) {
-                       return false;
-               }
-
-               // Own properties are enumerated firstly, so to speed up,
-               // if last one is own, then all properties are own.
-
-               var key;
-               for ( key in obj ) {}
-
-               return key === undefined || hasOwn.call( obj, key );
-       },
-
-       isEmptyObject: function( obj ) {
-               for ( var name in obj ) {
-                       return false;
-               }
-               return true;
-       },
-
-       error: function( msg ) {
-               throw msg;
-       },
-
-       parseJSON: function( data ) {
-               if ( typeof data !== "string" || !data ) {
-                       return null;
-               }
-
-               // Make sure leading/trailing whitespace is removed (IE can't handle it)
-               data = jQuery.trim( data );
-
-               // Attempt to parse using the native JSON parser first
-               if ( window.JSON && window.JSON.parse ) {
-                       return window.JSON.parse( data );
-               }
-
-               // Make sure the incoming data is actual JSON
-               // Logic borrowed from http://json.org/json2.js
-               if ( rvalidchars.test( data.replace( rvalidescape, "@" )
-                       .replace( rvalidtokens, "]" )
-                       .replace( rvalidbraces, "")) ) {
-
-                       return (new Function( "return " + data ))();
-
-               }
-               jQuery.error( "Invalid JSON: " + data );
-       },
-
-       // Cross-browser xml parsing
-       // (xml & tmp used internally)
-       parseXML: function( data , xml , tmp ) {
-
-               if ( window.DOMParser ) { // Standard
-                       tmp = new DOMParser();
-                       xml = tmp.parseFromString( data , "text/xml" );
-               } else { // IE
-                       xml = new ActiveXObject( "Microsoft.XMLDOM" );
-                       xml.async = "false";
-                       xml.loadXML( data );
-               }
-
-               tmp = xml.documentElement;
-
-               if ( ! tmp || ! tmp.nodeName || tmp.nodeName === "parsererror" ) {
-                       jQuery.error( "Invalid XML: " + data );
-               }
-
-               return xml;
-       },
-
-       noop: function() {},
-
-       // Evaluates a script in a global context
-       // Workarounds based on findings by Jim Driscoll
-       // http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
-       globalEval: function( data ) {
-               if ( data && rnotwhite.test( data ) ) {
-                       // We use execScript on Internet Explorer
-                       // We use an anonymous function so that context is window
-                       // rather than jQuery in Firefox
-                       ( window.execScript || function( data ) {
-                               window[ "eval" ].call( window, data );
-                       } )( data );
-               }
-       },
-
-       // Converts a dashed string to camelCased string;
-       // Used by both the css and data modules
-       camelCase: function( string ) {
-               return string.replace( rdashAlpha, fcamelCase );
-       },
-
-       nodeName: function( elem, name ) {
-               return elem.nodeName && elem.nodeName.toUpperCase() === name.toUpperCase();
-       },
-
-       // args is for internal usage only
-       each: function( object, callback, args ) {
-               var name, i = 0,
-                       length = object.length,
-                       isObj = length === undefined || jQuery.isFunction( object );
-
-               if ( args ) {
-                       if ( isObj ) {
-                               for ( name in object ) {
-                                       if ( callback.apply( object[ name ], args ) === false ) {
-                                               break;
-                                       }
-                               }
-                       } else {
-                               for ( ; i < length; ) {
-                                       if ( callback.apply( object[ i++ ], args ) === false ) {
-                                               break;
-                                       }
-                               }
-                       }
-
-               // A special, fast, case for the most common use of each
-               } else {
-                       if ( isObj ) {
-                               for ( name in object ) {
-                                       if ( callback.call( object[ name ], name, object[ name ] ) === false ) {
-                                               break;
-                                       }
-                               }
-                       } else {
-                               for ( ; i < length; ) {
-                                       if ( callback.call( object[ i ], i, object[ i++ ] ) === false ) {
-                                               break;
-                                       }
-                               }
-                       }
-               }
-
-               return object;
-       },
-
-       // Use native String.trim function wherever possible
-       trim: trim ?
-               function( text ) {
-                       return text == null ?
-                               "" :
-                               trim.call( text );
-               } :
-
-               // Otherwise use our own trimming functionality
-               function( text ) {
-                       return text == null ?
-                               "" :
-                               text.toString().replace( trimLeft, "" ).replace( trimRight, "" );
-               },
-
-       // results is for internal usage only
-       makeArray: function( array, results ) {
-               var ret = results || [];
-
-               if ( array != null ) {
-                       // The window, strings (and functions) also have 'length'
-                       // The extra typeof function check is to prevent crashes
-                       // in Safari 2 (See: #3039)
-                       // Tweaked logic slightly to handle Blackberry 4.7 RegExp issues #6930
-                       var type = jQuery.type( array );
-
-                       if ( array.length == null || type === "string" || type === "function" || type === "regexp" || jQuery.isWindow( array ) ) {
-                               push.call( ret, array );
-                       } else {
-                               jQuery.merge( ret, array );
-                       }
-               }
-
-               return ret;
-       },
-
-       inArray: function( elem, array ) {
-
-               if ( indexOf ) {
-                       return indexOf.call( array, elem );
-               }
-
-               for ( var i = 0, length = array.length; i < length; i++ ) {
-                       if ( array[ i ] === elem ) {
-                               return i;
-                       }
-               }
-
-               return -1;
-       },
-
-       merge: function( first, second ) {
-               var i = first.length,
-                       j = 0;
-
-               if ( typeof second.length === "number" ) {
-                       for ( var l = second.length; j < l; j++ ) {
-                               first[ i++ ] = second[ j ];
-                       }
-
-               } else {
-                       while ( second[j] !== undefined ) {
-                               first[ i++ ] = second[ j++ ];
-                       }
-               }
-
-               first.length = i;
-
-               return first;
-       },
-
-       grep: function( elems, callback, inv ) {
-               var ret = [], retVal;
-               inv = !!inv;
-
-               // Go through the array, only saving the items
-               // that pass the validator function
-               for ( var i = 0, length = elems.length; i < length; i++ ) {
-                       retVal = !!callback( elems[ i ], i );
-                       if ( inv !== retVal ) {
-                               ret.push( elems[ i ] );
-                       }
-               }
-
-               return ret;
-       },
-
-       // arg is for internal usage only
-       map: function( elems, callback, arg ) {
-               var value, key, ret = [],
-                       i = 0,
-                       length = elems.length,
-                       // jquery objects are treated as arrays
-                       isArray = elems instanceof jQuery || length !== undefined && typeof length === "number" && ( ( length > 0 && elems[ 0 ] && elems[ length -1 ] ) || length === 0 || jQuery.isArray( elems ) ) ;
-
-               // Go through the array, translating each of the items to their
-               if ( isArray ) {
-                       for ( ; i < length; i++ ) {
-                               value = callback( elems[ i ], i, arg );
-
-                               if ( value != null ) {
-                                       ret[ ret.length ] = value;
-                               }
-                       }
-
-               // Go through every key on the object,
-               } else {
-                       for ( key in elems ) {
-                               value = callback( elems[ key ], key, arg );
-
-                               if ( value != null ) {
-                                       ret[ ret.length ] = value;
-                               }
-                       }
-               }
-
-               // Flatten any nested arrays
-               return ret.concat.apply( [], ret );
-       },
-
-       // A global GUID counter for objects
-       guid: 1,
-
-       // Bind a function to a context, optionally partially applying any
-       // arguments.
-       proxy: function( fn, context ) {
-               if ( typeof context === "string" ) {
-                       var tmp = fn[ context ];
-                       context = fn;
-                       fn = tmp;
-               }
-
-               // Quick check to determine if target is callable, in the spec
-               // this throws a TypeError, but we will just return undefined.
-               if ( !jQuery.isFunction( fn ) ) {
-                       return undefined;
-               }
-
-               // Simulated bind
-               var args = slice.call( arguments, 2 ),
-                       proxy = function() {
-                               return fn.apply( context, args.concat( slice.call( arguments ) ) );
-                       };
-
-               // Set the guid of unique handler to the same of original handler, so it can be removed
-               proxy.guid = fn.guid = fn.guid || proxy.guid || jQuery.guid++;
-
-               return proxy;
-       },
-
-       // Mutifunctional method to get and set values to a collection
-       // The value/s can optionally be executed if it's a function
-       access: function( elems, key, value, exec, fn, pass ) {
-               var length = elems.length;
-
-               // Setting many attributes
-               if ( typeof key === "object" ) {
-                       for ( var k in key ) {
-                               jQuery.access( elems, k, key[k], exec, fn, value );
-                       }
-                       return elems;
-               }
-
-               // Setting one attribute
-               if ( value !== undefined ) {
-                       // Optionally, function values get executed if exec is true
-                       exec = !pass && exec && jQuery.isFunction(value);
-
-                       for ( var i = 0; i < length; i++ ) {
-                               fn( elems[i], key, exec ? value.call( elems[i], i, fn( elems[i], key ) ) : value, pass );
-                       }
-
-                       return elems;
-               }
-
-               // Getting an attribute
-               return length ? fn( elems[0], key ) : undefined;
-       },
-
-       now: function() {
-               return (new Date()).getTime();
-       },
-
-       // Use of jQuery.browser is frowned upon.
-       // More details: http://docs.jquery.com/Utilities/jQuery.browser
-       uaMatch: function( ua ) {
-               ua = ua.toLowerCase();
-
-               var match = rwebkit.exec( ua ) ||
-                       ropera.exec( ua ) ||
-                       rmsie.exec( ua ) ||
-                       ua.indexOf("compatible") < 0 && rmozilla.exec( ua ) ||
-                       [];
-
-               return { browser: match[1] || "", version: match[2] || "0" };
-       },
-
-       sub: function() {
-               function jQuerySub( selector, context ) {
-                       return new jQuerySub.fn.init( selector, context );
-               }
-               jQuery.extend( true, jQuerySub, this );
-               jQuerySub.superclass = this;
-               jQuerySub.fn = jQuerySub.prototype = this();
-               jQuerySub.fn.constructor = jQuerySub;
-               jQuerySub.sub = this.sub;
-               jQuerySub.fn.init = function init( selector, context ) {
-                       if ( context && context instanceof jQuery && !(context instanceof jQuerySub) ) {
-                               context = jQuerySub( context );
-                       }
-
-                       return jQuery.fn.init.call( this, selector, context, rootjQuerySub );
-               };
-               jQuerySub.fn.init.prototype = jQuerySub.fn;
-               var rootjQuerySub = jQuerySub(document);
-               return jQuerySub;
-       },
-
-       browser: {}
-});
-
-// Populate the class2type map
-jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
-       class2type[ "[object " + name + "]" ] = name.toLowerCase();
-});
-
-browserMatch = jQuery.uaMatch( userAgent );
-if ( browserMatch.browser ) {
-       jQuery.browser[ browserMatch.browser ] = true;
-       jQuery.browser.version = browserMatch.version;
-}
-
-// Deprecated, use jQuery.browser.webkit instead
-if ( jQuery.browser.webkit ) {
-       jQuery.browser.safari = true;
-}
-
-// IE doesn't match non-breaking spaces with \s
-if ( rnotwhite.test( "\xA0" ) ) {
-       trimLeft = /^[\s\xA0]+/;
-       trimRight = /[\s\xA0]+$/;
-}
-
-// All jQuery objects should point back to these
-rootjQuery = jQuery(document);
-
-// Cleanup functions for the document ready method
-if ( document.addEventListener ) {
-       DOMContentLoaded = function() {
-               document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
-               jQuery.ready();
-       };
-
-} else if ( document.attachEvent ) {
-       DOMContentLoaded = function() {
-               // Make sure body exists, at least, in case IE gets a little overzealous (ticket #5443).
-               if ( document.readyState === "complete" ) {
-                       document.detachEvent( "onreadystatechange", DOMContentLoaded );
-                       jQuery.ready();
-               }
-       };
-}
-
-// The DOM ready check for Internet Explorer
-function doScrollCheck() {
-       if ( jQuery.isReady ) {
-               return;
-       }
-
-       try {
-               // If IE is used, use the trick by Diego Perini
-               // http://javascript.nwbox.com/IEContentLoaded/
-               document.documentElement.doScroll("left");
-       } catch(e) {
-               setTimeout( doScrollCheck, 1 );
-               return;
-       }
-
-       // and execute any waiting functions
-       jQuery.ready();
-}
-
-return jQuery;
-
-})();
-
-
-var // Promise methods
-       promiseMethods = "done fail isResolved isRejected promise then always pipe".split( " " ),
-       // Static reference to slice
-       sliceDeferred = [].slice;
-
-jQuery.extend({
-       // Create a simple deferred (one callbacks list)
-       _Deferred: function() {
-               var // callbacks list
-                       callbacks = [],
-                       // stored [ context , args ]
-                       fired,
-                       // to avoid firing when already doing so
-                       firing,
-                       // flag to know if the deferred has been cancelled
-                       cancelled,
-                       // the deferred itself
-                       deferred  = {
-
-                               // done( f1, f2, ...)
-                               done: function() {
-                                       if ( !cancelled ) {
-                                               var args = arguments,
-                                                       i,
-                                                       length,
-                                                       elem,
-                                                       type,
-                                                       _fired;
-                                               if ( fired ) {
-                                                       _fired = fired;
-                                                       fired = 0;
-                                               }
-                                               for ( i = 0, length = args.length; i < length; i++ ) {
-                                                       elem = args[ i ];
-                                                       type = jQuery.type( elem );
-                                                       if ( type === "array" ) {
-                                                               deferred.done.apply( deferred, elem );
-                                                       } else if ( type === "function" ) {
-                                                               callbacks.push( elem );
-                                                       }
-                                               }
-                                               if ( _fired ) {
-                                                       deferred.resolveWith( _fired[ 0 ], _fired[ 1 ] );
-                                               }
-                                       }
-                                       return this;
-                               },
-
-                               // resolve with given context and args
-                               resolveWith: function( context, args ) {
-                                       if ( !cancelled && !fired && !firing ) {
-                                               // make sure args are available (#8421)
-                                               args = args || [];
-                                               firing = 1;
-                                               try {
-                                                       while( callbacks[ 0 ] ) {
-                                                               callbacks.shift().apply( context, args );
-                                                       }
-                                               }
-                                               finally {
-                                                       fired = [ context, args ];
-                                                       firing = 0;
-                                               }
-                                       }
-                                       return this;
-                               },
-
-                               // resolve with this as context and given arguments
-                               resolve: function() {
-                                       deferred.resolveWith( this, arguments );
-                                       return this;
-                               },
-
-                               // Has this deferred been resolved?
-                               isResolved: function() {
-                                       return !!( firing || fired );
-                               },
-
-                               // Cancel
-                               cancel: function() {
-                                       cancelled = 1;
-                                       callbacks = [];
-                                       return this;
-                               }
-                       };
-
-               return deferred;
-       },
-
-       // Full fledged deferred (two callbacks list)
-       Deferred: function( func ) {
-               var deferred = jQuery._Deferred(),
-                       failDeferred = jQuery._Deferred(),
-                       promise;
-               // Add errorDeferred methods, then and promise
-               jQuery.extend( deferred, {
-                       then: function( doneCallbacks, failCallbacks ) {
-                               deferred.done( doneCallbacks ).fail( failCallbacks );
-                               return this;
-                       },
-                       always: function() {
-                               return deferred.done.apply( deferred, arguments ).fail.apply( this, arguments );
-                       },
-                       fail: failDeferred.done,
-                       rejectWith: failDeferred.resolveWith,
-                       reject: failDeferred.resolve,
-                       isRejected: failDeferred.isResolved,
-                       pipe: function( fnDone, fnFail ) {
-                               return jQuery.Deferred(function( newDefer ) {
-                                       jQuery.each( {
-                                               done: [ fnDone, "resolve" ],
-                                               fail: [ fnFail, "reject" ]
-                                       }, function( handler, data ) {
-                                               var fn = data[ 0 ],
-                                                       action = data[ 1 ],
-                                                       returned;
-                                               if ( jQuery.isFunction( fn ) ) {
-                                                       deferred[ handler ](function() {
-                                                               returned = fn.apply( this, arguments );
-                                                               if ( returned && jQuery.isFunction( returned.promise ) ) {
-                                                                       returned.promise().then( newDefer.resolve, newDefer.reject );
-                                                               } else {
-                                                                       newDefer[ action ]( returned );
-                                                               }
-                                                       });
-                                               } else {
-                                                       deferred[ handler ]( newDefer[ action ] );
-                                               }
-                                       });
-                               }).promise();
-                       },
-                       // Get a promise for this deferred
-                       // If obj is provided, the promise aspect is added to the object
-                       promise: function( obj ) {
-                               if ( obj == null ) {
-                                       if ( promise ) {
-                                               return promise;
-                                       }
-                                       promise = obj = {};
-                               }
-                               var i = promiseMethods.length;
-                               while( i-- ) {
-                                       obj[ promiseMethods[i] ] = deferred[ promiseMethods[i] ];
-                               }
-                               return obj;
-                       }
-               });
-               // Make sure only one callback list will be used
-               deferred.done( failDeferred.cancel ).fail( deferred.cancel );
-               // Unexpose cancel
-               delete deferred.cancel;
-               // Call given func if any
-               if ( func ) {
-                       func.call( deferred, deferred );
-               }
-               return deferred;
-       },
-
-       // Deferred helper
-       when: function( firstParam ) {
-               var args = arguments,
-                       i = 0,
-                       length = args.length,
-                       count = length,
-                       deferred = length <= 1 && firstParam && jQuery.isFunction( firstParam.promise ) ?
-                               firstParam :
-                               jQuery.Deferred();
-               function resolveFunc( i ) {
-                       return function( value ) {
-                               args[ i ] = arguments.length > 1 ? sliceDeferred.call( arguments, 0 ) : value;
-                               if ( !( --count ) ) {
-                                       // Strange bug in FF4:
-                                       // Values changed onto the arguments object sometimes end up as undefined values
-                                       // outside the $.when method. Cloning the object into a fresh array solves the issue
-                                       deferred.resolveWith( deferred, sliceDeferred.call( args, 0 ) );
-                               }
-                       };
-               }
-               if ( length > 1 ) {
-                       for( ; i < length; i++ ) {
-                               if ( args[ i ] && jQuery.isFunction( args[ i ].promise ) ) {
-                                       args[ i ].promise().then( resolveFunc(i), deferred.reject );
-                               } else {
-                                       --count;
-                               }
-                       }
-                       if ( !count ) {
-                               deferred.resolveWith( deferred, args );
-                       }
-               } else if ( deferred !== firstParam ) {
-                       deferred.resolveWith( deferred, length ? [ firstParam ] : [] );
-               }
-               return deferred.promise();
-       }
-});
-
-
-
-jQuery.support = (function() {
-
-       var div = document.createElement( "div" ),
-               documentElement = document.documentElement,
-               all,
-               a,
-               select,
-               opt,
-               input,
-               marginDiv,
-               support,
-               fragment,
-               body,
-               testElementParent,
-               testElement,
-               testElementStyle,
-               tds,
-               events,
-               eventName,
-               i,
-               isSupported;
-
-       // Preliminary tests
-       div.setAttribute("className", "t");
-       div.innerHTML = "   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
-
-       all = div.getElementsByTagName( "*" );
-       a = div.getElementsByTagName( "a" )[ 0 ];
-
-       // Can't get basic test support
-       if ( !all || !all.length || !a ) {
-               return {};
-       }
-
-       // First batch of supports tests
-       select = document.createElement( "select" );
-       opt = select.appendChild( document.createElement("option") );
-       input = div.getElementsByTagName( "input" )[ 0 ];
-
-       support = {
-               // IE strips leading whitespace when .innerHTML is used
-               leadingWhitespace: ( div.firstChild.nodeType === 3 ),
-
-               // Make sure that tbody elements aren't automatically inserted
-               // IE will insert them into empty tables
-               tbody: !div.getElementsByTagName( "tbody" ).length,
-
-               // Make sure that link elements get serialized correctly by innerHTML
-               // This requires a wrapper element in IE
-               htmlSerialize: !!div.getElementsByTagName( "link" ).length,
-
-               // Get the style information from getAttribute
-               // (IE uses .cssText instead)
-               style: /top/.test( a.getAttribute("style") ),
-
-               // Make sure that URLs aren't manipulated
-               // (IE normalizes it by default)
-               hrefNormalized: ( a.getAttribute( "href" ) === "/a" ),
-
-               // Make sure that element opacity exists
-               // (IE uses filter instead)
-               // Use a regex to work around a WebKit issue. See #5145
-               opacity: /^0.55$/.test( a.style.opacity ),
-
-               // Verify style float existence
-               // (IE uses styleFloat instead of cssFloat)
-               cssFloat: !!a.style.cssFloat,
-
-               // Make sure that if no value is specified for a checkbox
-               // that it defaults to "on".
-               // (WebKit defaults to "" instead)
-               checkOn: ( input.value === "on" ),
-
-               // Make sure that a selected-by-default option has a working selected property.
-               // (WebKit defaults to false instead of true, IE too, if it's in an optgroup)
-               optSelected: opt.selected,
-
-               // Test setAttribute on camelCase class. If it works, we need attrFixes when doing get/setAttribute (ie6/7)
-               getSetAttribute: div.className !== "t",
-
-               // Will be defined later
-               submitBubbles: true,
-               changeBubbles: true,
-               focusinBubbles: false,
-               deleteExpando: true,
-               noCloneEvent: true,
-               inlineBlockNeedsLayout: false,
-               shrinkWrapBlocks: false,
-               reliableMarginRight: true
-       };
-
-       // Make sure checked status is properly cloned
-       input.checked = true;
-       support.noCloneChecked = input.cloneNode( true ).checked;
-
-       // Make sure that the options inside disabled selects aren't marked as disabled
-       // (WebKit marks them as disabled)
-       select.disabled = true;
-       support.optDisabled = !opt.disabled;
-
-       // Test to see if it's possible to delete an expando from an element
-       // Fails in Internet Explorer
-       try {
-               delete div.test;
-       } catch( e ) {
-               support.deleteExpando = false;
-       }
-
-       if ( !div.addEventListener && div.attachEvent && div.fireEvent ) {
-               div.attachEvent( "onclick", function() {
-                       // Cloning a node shouldn't copy over any
-                       // bound event handlers (IE does this)
-                       support.noCloneEvent = false;
-               });
-               div.cloneNode( true ).fireEvent( "onclick" );
-       }
-
-       // Check if a radio maintains it's value
-       // after being appended to the DOM
-       input = document.createElement("input");
-       input.value = "t";
-       input.setAttribute("type", "radio");
-       support.radioValue = input.value === "t";
-
-       input.setAttribute("checked", "checked");
-       div.appendChild( input );
-       fragment = document.createDocumentFragment();
-       fragment.appendChild( div.firstChild );
-
-       // WebKit doesn't clone checked state correctly in fragments
-       support.checkClone = fragment.cloneNode( true ).cloneNode( true ).lastChild.checked;
-
-       div.innerHTML = "";
-
-       // Figure out if the W3C box model works as expected
-       div.style.width = div.style.paddingLeft = "1px";
-
-       body = document.getElementsByTagName( "body" )[ 0 ];
-       // We use our own, invisible, body unless the body is already present
-       // in which case we use a div (#9239)
-       testElement = document.createElement( body ? "div" : "body" );
-       testElementStyle = {
-               visibility: "hidden",
-               width: 0,
-               height: 0,
-               border: 0,
-               margin: 0
-       };
-       if ( body ) {
-               jQuery.extend( testElementStyle, {
-                       position: "absolute",
-                       left: -1000,
-                       top: -1000
-               });
-       }
-       for ( i in testElementStyle ) {
-               testElement.style[ i ] = testElementStyle[ i ];
-       }
-       testElement.appendChild( div );
-       testElementParent = body || documentElement;
-       testElementParent.insertBefore( testElement, testElementParent.firstChild );
-
-       // Check if a disconnected checkbox will retain its checked
-       // value of true after appended to the DOM (IE6/7)
-       support.appendChecked = input.checked;
-
-       support.boxModel = div.offsetWidth === 2;
-
-       if ( "zoom" in div.style ) {
-               // Check if natively block-level elements act like inline-block
-               // elements when setting their display to 'inline' and giving
-               // them layout
-               // (IE < 8 does this)
-               div.style.display = "inline";
-               div.style.zoom = 1;
-               support.inlineBlockNeedsLayout = ( div.offsetWidth === 2 );
-
-               // Check if elements with layout shrink-wrap their children
-               // (IE 6 does this)
-               div.style.display = "";
-               div.innerHTML = "<div style='width:4px;'></div>";
-               support.shrinkWrapBlocks = ( div.offsetWidth !== 2 );
-       }
-
-       div.innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";
-       tds = div.getElementsByTagName( "td" );
-
-       // Check if table cells still have offsetWidth/Height when they are set
-       // to display:none and there are still other visible table cells in a
-       // table row; if so, offsetWidth/Height are not reliable for use when
-       // determining if an element has been hidden directly using
-       // display:none (it is still safe to use offsets if a parent element is
-       // hidden; don safety goggles and see bug #4512 for more information).
-       // (only IE 8 fails this test)
-       isSupported = ( tds[ 0 ].offsetHeight === 0 );
-
-       tds[ 0 ].style.display = "";
-       tds[ 1 ].style.display = "none";
-
-       // Check if empty table cells still have offsetWidth/Height
-       // (IE < 8 fail this test)
-       support.reliableHiddenOffsets = isSupported && ( tds[ 0 ].offsetHeight === 0 );
-       div.innerHTML = "";
-
-       // Check if div with explicit width and no margin-right incorrectly
-       // gets computed margin-right based on width of container. For more
-       // info see bug #3333
-       // Fails in WebKit before Feb 2011 nightlies
-       // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-       if ( document.defaultView && document.defaultView.getComputedStyle ) {
-               marginDiv = document.createElement( "div" );
-               marginDiv.style.width = "0";
-               marginDiv.style.marginRight = "0";
-               div.appendChild( marginDiv );
-               support.reliableMarginRight =
-                       ( parseInt( ( document.defaultView.getComputedStyle( marginDiv, null ) || { marginRight: 0 } ).marginRight, 10 ) || 0 ) === 0;
-       }
-
-       // Remove the body element we added
-       testElement.innerHTML = "";
-       testElementParent.removeChild( testElement );
-
-       // Technique from Juriy Zaytsev
-       // http://thinkweb2.com/projects/prototype/detecting-event-support-without-browser-sniffing/
-       // We only care about the case where non-standard event systems
-       // are used, namely in IE. Short-circuiting here helps us to
-       // avoid an eval call (in setAttribute) which can cause CSP
-       // to go haywire. See: https://developer.mozilla.org/en/Security/CSP
-       if ( div.attachEvent ) {
-               for( i in {
-                       submit: 1,
-                       change: 1,
-                       focusin: 1
-               } ) {
-                       eventName = "on" + i;
-                       isSupported = ( eventName in div );
-                       if ( !isSupported ) {
-                               div.setAttribute( eventName, "return;" );
-                               isSupported = ( typeof div[ eventName ] === "function" );
-                       }
-                       support[ i + "Bubbles" ] = isSupported;
-               }
-       }
-
-       // Null connected elements to avoid leaks in IE
-       testElement = fragment = select = opt = body = marginDiv = div = input = null;
-
-       return support;
-})();
-
-// Keep track of boxModel
-jQuery.boxModel = jQuery.support.boxModel;
-
-
-
-
-var rbrace = /^(?:\{.*\}|\[.*\])$/,
-       rmultiDash = /([a-z])([A-Z])/g;
-
-jQuery.extend({
-       cache: {},
-
-       // Please use with caution
-       uuid: 0,
-
-       // Unique for each copy of jQuery on the page
-       // Non-digits removed to match rinlinejQuery
-       expando: "jQuery" + ( jQuery.fn.jquery + Math.random() ).replace( /\D/g, "" ),
-
-       // The following elements throw uncatchable exceptions if you
-       // attempt to add expando properties to them.
-       noData: {
-               "embed": true,
-               // Ban all objects except for Flash (which handle expandos)
-               "object": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",
-               "applet": true
-       },
-
-       hasData: function( elem ) {
-               elem = elem.nodeType ? jQuery.cache[ elem[jQuery.expando] ] : elem[ jQuery.expando ];
-
-               return !!elem && !isEmptyDataObject( elem );
-       },
-
-       data: function( elem, name, data, pvt /* Internal Use Only */ ) {
-               if ( !jQuery.acceptData( elem ) ) {
-                       return;
-               }
-
-               var internalKey = jQuery.expando, getByName = typeof name === "string", thisCache,
-
-                       // We have to handle DOM nodes and JS objects differently because IE6-7
-                       // can't GC object references properly across the DOM-JS boundary
-                       isNode = elem.nodeType,
-
-                       // Only DOM nodes need the global jQuery cache; JS object data is
-                       // attached directly to the object so GC can occur automatically
-                       cache = isNode ? jQuery.cache : elem,
-
-                       // Only defining an ID for JS objects if its cache already exists allows
-                       // the code to shortcut on the same path as a DOM node with no cache
-                       id = isNode ? elem[ jQuery.expando ] : elem[ jQuery.expando ] && jQuery.expando;
-
-               // Avoid doing any more work than we need to when trying to get data on an
-               // object that has no data at all
-               if ( (!id || (pvt && id && !cache[ id ][ internalKey ])) && getByName && data === undefined ) {
-                       return;
-               }
-
-               if ( !id ) {
-                       // Only DOM nodes need a new unique ID for each element since their data
-                       // ends up in the global cache
-                       if ( isNode ) {
-                               elem[ jQuery.expando ] = id = ++jQuery.uuid;
-                       } else {
-                               id = jQuery.expando;
-                       }
-               }
-
-               if ( !cache[ id ] ) {
-                       cache[ id ] = {};
-
-                       // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-                       // metadata on plain JS objects when the object is serialized using
-                       // JSON.stringify
-                       if ( !isNode ) {
-                               cache[ id ].toJSON = jQuery.noop;
-                       }
-               }
-
-               // An object can be passed to jQuery.data instead of a key/value pair; this gets
-               // shallow copied over onto the existing cache
-               if ( typeof name === "object" || typeof name === "function" ) {
-                       if ( pvt ) {
-                               cache[ id ][ internalKey ] = jQuery.extend(cache[ id ][ internalKey ], name);
-                       } else {
-                               cache[ id ] = jQuery.extend(cache[ id ], name);
-                       }
-               }
-
-               thisCache = cache[ id ];
-
-               // Internal jQuery data is stored in a separate object inside the object's data
-               // cache in order to avoid key collisions between internal data and user-defined
-               // data
-               if ( pvt ) {
-                       if ( !thisCache[ internalKey ] ) {
-                               thisCache[ internalKey ] = {};
-                       }
-
-                       thisCache = thisCache[ internalKey ];
-               }
-
-               if ( data !== undefined ) {
-                       thisCache[ jQuery.camelCase( name ) ] = data;
-               }
-
-               // TODO: This is a hack for 1.5 ONLY. It will be removed in 1.6. Users should
-               // not attempt to inspect the internal events object using jQuery.data, as this
-               // internal data object is undocumented and subject to change.
-               if ( name === "events" && !thisCache[name] ) {
-                       return thisCache[ internalKey ] && thisCache[ internalKey ].events;
-               }
-
-               return getByName ? 
-                       // Check for both converted-to-camel and non-converted data property names
-                       thisCache[ jQuery.camelCase( name ) ] || thisCache[ name ] :
-                       thisCache;
-       },
-
-       removeData: function( elem, name, pvt /* Internal Use Only */ ) {
-               if ( !jQuery.acceptData( elem ) ) {
-                       return;
-               }
-
-               var internalKey = jQuery.expando, isNode = elem.nodeType,
-
-                       // See jQuery.data for more information
-                       cache = isNode ? jQuery.cache : elem,
-
-                       // See jQuery.data for more information
-                       id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
-
-               // If there is already no cache entry for this object, there is no
-               // purpose in continuing
-               if ( !cache[ id ] ) {
-                       return;
-               }
-
-               if ( name ) {
-                       var thisCache = pvt ? cache[ id ][ internalKey ] : cache[ id ];
-
-                       if ( thisCache ) {
-                               delete thisCache[ name ];
-
-                               // If there is no data left in the cache, we want to continue
-                               // and let the cache object itself get destroyed
-                               if ( !isEmptyDataObject(thisCache) ) {
-                                       return;
-                               }
-                       }
-               }
-
-               // See jQuery.data for more information
-               if ( pvt ) {
-                       delete cache[ id ][ internalKey ];
-
-                       // Don't destroy the parent cache unless the internal data object
-                       // had been the only thing left in it
-                       if ( !isEmptyDataObject(cache[ id ]) ) {
-                               return;
-                       }
-               }
-
-               var internalCache = cache[ id ][ internalKey ];
-
-               // Browsers that fail expando deletion also refuse to delete expandos on
-               // the window, but it will allow it on all other JS objects; other browsers
-               // don't care
-               if ( jQuery.support.deleteExpando || cache != window ) {
-                       delete cache[ id ];
-               } else {
-                       cache[ id ] = null;
-               }
-
-               // We destroyed the entire user cache at once because it's faster than
-               // iterating through each key, but we need to continue to persist internal
-               // data if it existed
-               if ( internalCache ) {
-                       cache[ id ] = {};
-                       // TODO: This is a hack for 1.5 ONLY. Avoids exposing jQuery
-                       // metadata on plain JS objects when the object is serialized using
-                       // JSON.stringify
-                       if ( !isNode ) {
-                               cache[ id ].toJSON = jQuery.noop;
-                       }
-
-                       cache[ id ][ internalKey ] = internalCache;
-
-               // Otherwise, we need to eliminate the expando on the node to avoid
-               // false lookups in the cache for entries that no longer exist
-               } else if ( isNode ) {
-                       // IE does not allow us to delete expando properties from nodes,
-                       // nor does it have a removeAttribute function on Document nodes;
-                       // we must handle all of these cases
-                       if ( jQuery.support.deleteExpando ) {
-                               delete elem[ jQuery.expando ];
-                       } else if ( elem.removeAttribute ) {
-                               elem.removeAttribute( jQuery.expando );
-                       } else {
-                               elem[ jQuery.expando ] = null;
-                       }
-               }
-       },
-
-       // For internal use only.
-       _data: function( elem, name, data ) {
-               return jQuery.data( elem, name, data, true );
-       },
-
-       // A method for determining if a DOM node can handle the data expando
-       acceptData: function( elem ) {
-               if ( elem.nodeName ) {
-                       var match = jQuery.noData[ elem.nodeName.toLowerCase() ];
-
-                       if ( match ) {
-                               return !(match === true || elem.getAttribute("classid") !== match);
-                       }
-               }
-
-               return true;
-       }
-});
-
-jQuery.fn.extend({
-       data: function( key, value ) {
-               var data = null;
-
-               if ( typeof key === "undefined" ) {
-                       if ( this.length ) {
-                               data = jQuery.data( this[0] );
-
-                               if ( this[0].nodeType === 1 ) {
-                           var attr = this[0].attributes, name;
-                                       for ( var i = 0, l = attr.length; i < l; i++ ) {
-                                               name = attr[i].name;
-
-                                               if ( name.indexOf( "data-" ) === 0 ) {
-                                                       name = jQuery.camelCase( name.substring(5) );
-
-                                                       dataAttr( this[0], name, data[ name ] );
-                                               }
-                                       }
-                               }
-                       }
-
-                       return data;
-
-               } else if ( typeof key === "object" ) {
-                       return this.each(function() {
-                               jQuery.data( this, key );
-                       });
-               }
-
-               var parts = key.split(".");
-               parts[1] = parts[1] ? "." + parts[1] : "";
-
-               if ( value === undefined ) {
-                       data = this.triggerHandler("getData" + parts[1] + "!", [parts[0]]);
-
-                       // Try to fetch any internally stored data first
-                       if ( data === undefined && this.length ) {
-                               data = jQuery.data( this[0], key );
-                               data = dataAttr( this[0], key, data );
-                       }
-
-                       return data === undefined && parts[1] ?
-                               this.data( parts[0] ) :
-                               data;
-
-               } else {
-                       return this.each(function() {
-                               var $this = jQuery( this ),
-                                       args = [ parts[0], value ];
-
-                               $this.triggerHandler( "setData" + parts[1] + "!", args );
-                               jQuery.data( this, key, value );
-                               $this.triggerHandler( "changeData" + parts[1] + "!", args );
-                       });
-               }
-       },
-
-       removeData: function( key ) {
-               return this.each(function() {
-                       jQuery.removeData( this, key );
-               });
-       }
-});
-
-function dataAttr( elem, key, data ) {
-       // If nothing was found internally, try to fetch any
-       // data from the HTML5 data-* attribute
-       if ( data === undefined && elem.nodeType === 1 ) {
-               var name = "data-" + key.replace( rmultiDash, "$1-$2" ).toLowerCase();
-
-               data = elem.getAttribute( name );
-
-               if ( typeof data === "string" ) {
-                       try {
-                               data = data === "true" ? true :
-                               data === "false" ? false :
-                               data === "null" ? null :
-                               !jQuery.isNaN( data ) ? parseFloat( data ) :
-                                       rbrace.test( data ) ? jQuery.parseJSON( data ) :
-                                       data;
-                       } catch( e ) {}
-
-                       // Make sure we set the data so it isn't changed later
-                       jQuery.data( elem, key, data );
-
-               } else {
-                       data = undefined;
-               }
-       }
-
-       return data;
-}
-
-// TODO: This is a hack for 1.5 ONLY to allow objects with a single toJSON
-// property to be considered empty objects; this property always exists in
-// order to make sure JSON.stringify does not expose internal metadata
-function isEmptyDataObject( obj ) {
-       for ( var name in obj ) {
-               if ( name !== "toJSON" ) {
-                       return false;
-               }
-       }
-
-       return true;
-}
-
-
-
-
-function handleQueueMarkDefer( elem, type, src ) {
-       var deferDataKey = type + "defer",
-               queueDataKey = type + "queue",
-               markDataKey = type + "mark",
-               defer = jQuery.data( elem, deferDataKey, undefined, true );
-       if ( defer &&
-               ( src === "queue" || !jQuery.data( elem, queueDataKey, undefined, true ) ) &&
-               ( src === "mark" || !jQuery.data( elem, markDataKey, undefined, true ) ) ) {
-               // Give room for hard-coded callbacks to fire first
-               // and eventually mark/queue something else on the element
-               setTimeout( function() {
-                       if ( !jQuery.data( elem, queueDataKey, undefined, true ) &&
-                               !jQuery.data( elem, markDataKey, undefined, true ) ) {
-                               jQuery.removeData( elem, deferDataKey, true );
-                               defer.resolve();
-                       }
-               }, 0 );
-       }
-}
-
-jQuery.extend({
-
-       _mark: function( elem, type ) {
-               if ( elem ) {
-                       type = (type || "fx") + "mark";
-                       jQuery.data( elem, type, (jQuery.data(elem,type,undefined,true) || 0) + 1, true );
-               }
-       },
-
-       _unmark: function( force, elem, type ) {
-               if ( force !== true ) {
-                       type = elem;
-                       elem = force;
-                       force = false;
-               }
-               if ( elem ) {
-                       type = type || "fx";
-                       var key = type + "mark",
-                               count = force ? 0 : ( (jQuery.data( elem, key, undefined, true) || 1 ) - 1 );
-                       if ( count ) {
-                               jQuery.data( elem, key, count, true );
-                       } else {
-                               jQuery.removeData( elem, key, true );
-                               handleQueueMarkDefer( elem, type, "mark" );
-                       }
-               }
-       },
-
-       queue: function( elem, type, data ) {
-               if ( elem ) {
-                       type = (type || "fx") + "queue";
-                       var q = jQuery.data( elem, type, undefined, true );
-                       // Speed up dequeue by getting out quickly if this is just a lookup
-                       if ( data ) {
-                               if ( !q || jQuery.isArray(data) ) {
-                                       q = jQuery.data( elem, type, jQuery.makeArray(data), true );
-                               } else {
-                                       q.push( data );
-                               }
-                       }
-                       return q || [];
-               }
-       },
-
-       dequeue: function( elem, type ) {
-               type = type || "fx";
-
-               var queue = jQuery.queue( elem, type ),
-                       fn = queue.shift(),
-                       defer;
-
-               // If the fx queue is dequeued, always remove the progress sentinel
-               if ( fn === "inprogress" ) {
-                       fn = queue.shift();
-               }
-
-               if ( fn ) {
-                       // Add a progress sentinel to prevent the fx queue from being
-                       // automatically dequeued
-                       if ( type === "fx" ) {
-                               queue.unshift("inprogress");
-                       }
-
-                       fn.call(elem, function() {
-                               jQuery.dequeue(elem, type);
-                       });
-               }
-
-               if ( !queue.length ) {
-                       jQuery.removeData( elem, type + "queue", true );
-                       handleQueueMarkDefer( elem, type, "queue" );
-               }
-       }
-});
-
-jQuery.fn.extend({
-       queue: function( type, data ) {
-               if ( typeof type !== "string" ) {
-                       data = type;
-                       type = "fx";
-               }
-
-               if ( data === undefined ) {
-                       return jQuery.queue( this[0], type );
-               }
-               return this.each(function() {
-                       var queue = jQuery.queue( this, type, data );
-
-                       if ( type === "fx" && queue[0] !== "inprogress" ) {
-                               jQuery.dequeue( this, type );
-                       }
-               });
-       },
-       dequeue: function( type ) {
-               return this.each(function() {
-                       jQuery.dequeue( this, type );
-               });
-       },
-       // Based off of the plugin by Clint Helfers, with permission.
-       // http://blindsignals.com/index.php/2009/07/jquery-delay/
-       delay: function( time, type ) {
-               time = jQuery.fx ? jQuery.fx.speeds[time] || time : time;
-               type = type || "fx";
-
-               return this.queue( type, function() {
-                       var elem = this;
-                       setTimeout(function() {
-                               jQuery.dequeue( elem, type );
-                       }, time );
-               });
-       },
-       clearQueue: function( type ) {
-               return this.queue( type || "fx", [] );
-       },
-       // Get a promise resolved when queues of a certain type
-       // are emptied (fx is the type by default)
-       promise: function( type, object ) {
-               if ( typeof type !== "string" ) {
-                       object = type;
-                       type = undefined;
-               }
-               type = type || "fx";
-               var defer = jQuery.Deferred(),
-                       elements = this,
-                       i = elements.length,
-                       count = 1,
-                       deferDataKey = type + "defer",
-                       queueDataKey = type + "queue",
-                       markDataKey = type + "mark",
-                       tmp;
-               function resolve() {
-                       if ( !( --count ) ) {
-                               defer.resolveWith( elements, [ elements ] );
-                       }
-               }
-               while( i-- ) {
-                       if (( tmp = jQuery.data( elements[ i ], deferDataKey, undefined, true ) ||
-                                       ( jQuery.data( elements[ i ], queueDataKey, undefined, true ) ||
-                                               jQuery.data( elements[ i ], markDataKey, undefined, true ) ) &&
-                                       jQuery.data( elements[ i ], deferDataKey, jQuery._Deferred(), true ) )) {
-                               count++;
-                               tmp.done( resolve );
-                       }
-               }
-               resolve();
-               return defer.promise();
-       }
-});
-
-
-
-
-var rclass = /[\n\t\r]/g,
-       rspace = /\s+/,
-       rreturn = /\r/g,
-       rtype = /^(?:button|input)$/i,
-       rfocusable = /^(?:button|input|object|select|textarea)$/i,
-       rclickable = /^a(?:rea)?$/i,
-       rboolean = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,
-       rinvalidChar = /\:|^on/,
-       formHook, boolHook;
-
-jQuery.fn.extend({
-       attr: function( name, value ) {
-               return jQuery.access( this, name, value, true, jQuery.attr );
-       },
-
-       removeAttr: function( name ) {
-               return this.each(function() {
-                       jQuery.removeAttr( this, name );
-               });
-       },
-       
-       prop: function( name, value ) {
-               return jQuery.access( this, name, value, true, jQuery.prop );
-       },
-       
-       removeProp: function( name ) {
-               name = jQuery.propFix[ name ] || name;
-               return this.each(function() {
-                       // try/catch handles cases where IE balks (such as removing a property on window)
-                       try {
-                               this[ name ] = undefined;
-                               delete this[ name ];
-                       } catch( e ) {}
-               });
-       },
-
-       addClass: function( value ) {
-               var classNames, i, l, elem,
-                       setClass, c, cl;
-
-               if ( jQuery.isFunction( value ) ) {
-                       return this.each(function( j ) {
-                               jQuery( this ).addClass( value.call(this, j, this.className) );
-                       });
-               }
-
-               if ( value && typeof value === "string" ) {
-                       classNames = value.split( rspace );
-
-                       for ( i = 0, l = this.length; i < l; i++ ) {
-                               elem = this[ i ];
-
-                               if ( elem.nodeType === 1 ) {
-                                       if ( !elem.className && classNames.length === 1 ) {
-                                               elem.className = value;
-
-                                       } else {
-                                               setClass = " " + elem.className + " ";
-
-                                               for ( c = 0, cl = classNames.length; c < cl; c++ ) {
-                                                       if ( !~setClass.indexOf( " " + classNames[ c ] + " " ) ) {
-                                                               setClass += classNames[ c ] + " ";
-                                                       }
-                                               }
-                                               elem.className = jQuery.trim( setClass );
-                                       }
-                               }
-                       }
-               }
-
-               return this;
-       },
-
-       removeClass: function( value ) {
-               var classNames, i, l, elem, className, c, cl;
-
-               if ( jQuery.isFunction( value ) ) {
-                       return this.each(function( j ) {
-                               jQuery( this ).removeClass( value.call(this, j, this.className) );
-                       });
-               }
-
-               if ( (value && typeof value === "string") || value === undefined ) {
-                       classNames = (value || "").split( rspace );
-
-                       for ( i = 0, l = this.length; i < l; i++ ) {
-                               elem = this[ i ];
-
-                               if ( elem.nodeType === 1 && elem.className ) {
-                                       if ( value ) {
-                                               className = (" " + elem.className + " ").replace( rclass, " " );
-                                               for ( c = 0, cl = classNames.length; c < cl; c++ ) {
-                                                       className = className.replace(" " + classNames[ c ] + " ", " ");
-                                               }
-                                               elem.className = jQuery.trim( className );
-
-                                       } else {
-                                               elem.className = "";
-                                       }
-                               }
-                       }
-               }
-
-               return this;
-       },
-
-       toggleClass: function( value, stateVal ) {
-               var type = typeof value,
-                       isBool = typeof stateVal === "boolean";
-
-               if ( jQuery.isFunction( value ) ) {
-                       return this.each(function( i ) {
-                               jQuery( this ).toggleClass( value.call(this, i, this.className, stateVal), stateVal );
-                       });
-               }
-
-               return this.each(function() {
-                       if ( type === "string" ) {
-                               // toggle individual class names
-                               var className,
-                                       i = 0,
-                                       self = jQuery( this ),
-                                       state = stateVal,
-                                       classNames = value.split( rspace );
-
-                               while ( (className = classNames[ i++ ]) ) {
-                                       // check each className given, space seperated list
-                                       state = isBool ? state : !self.hasClass( className );
-                                       self[ state ? "addClass" : "removeClass" ]( className );
-                               }
-
-                       } else if ( type === "undefined" || type === "boolean" ) {
-                               if ( this.className ) {
-                                       // store className if set
-                                       jQuery._data( this, "__className__", this.className );
-                               }
-
-                               // toggle whole className
-                               this.className = this.className || value === false ? "" : jQuery._data( this, "__className__" ) || "";
-                       }
-               });
-       },
-
-       hasClass: function( selector ) {
-               var className = " " + selector + " ";
-               for ( var i = 0, l = this.length; i < l; i++ ) {
-                       if ( (" " + this[i].className + " ").replace(rclass, " ").indexOf( className ) > -1 ) {
-                               return true;
-                       }
-               }
-
-               return false;
-       },
-
-       val: function( value ) {
-               var hooks, ret,
-                       elem = this[0];
-               
-               if ( !arguments.length ) {
-                       if ( elem ) {
-                               hooks = jQuery.valHooks[ elem.nodeName.toLowerCase() ] || jQuery.valHooks[ elem.type ];
-
-                               if ( hooks && "get" in hooks && (ret = hooks.get( elem, "value" )) !== undefined ) {
-                                       return ret;
-                               }
-
-                               ret = elem.value;
-
-                               return typeof ret === "string" ? 
-                                       // handle most common string cases
-                                       ret.replace(rreturn, "") : 
-                                       // handle cases where value is null/undef or number
-                                       ret == null ? "" : ret;
-                       }
-
-                       return undefined;
-               }
-
-               var isFunction = jQuery.isFunction( value );
-
-               return this.each(function( i ) {
-                       var self = jQuery(this), val;
-
-                       if ( this.nodeType !== 1 ) {
-                               return;
-                       }
-
-                       if ( isFunction ) {
-                               val = value.call( this, i, self.val() );
-                       } else {
-                               val = value;
-                       }
-
-                       // Treat null/undefined as ""; convert numbers to string
-                       if ( val == null ) {
-                               val = "";
-                       } else if ( typeof val === "number" ) {
-                               val += "";
-                       } else if ( jQuery.isArray( val ) ) {
-                               val = jQuery.map(val, function ( value ) {
-                                       return value == null ? "" : value + "";
-                               });
-                       }
-
-                       hooks = jQuery.valHooks[ this.nodeName.toLowerCase() ] || jQuery.valHooks[ this.type ];
-
-                       // If set returns undefined, fall back to normal setting
-                       if ( !hooks || !("set" in hooks) || hooks.set( this, val, "value" ) === undefined ) {
-                               this.value = val;
-                       }
-               });
-       }
-});
-
-jQuery.extend({
-       valHooks: {
-               option: {
-                       get: function( elem ) {
-                               // attributes.value is undefined in Blackberry 4.7 but
-                               // uses .value. See #6932
-                               var val = elem.attributes.value;
-                               return !val || val.specified ? elem.value : elem.text;
-                       }
-               },
-               select: {
-                       get: function( elem ) {
-                               var value,
-                                       index = elem.selectedIndex,
-                                       values = [],
-                                       options = elem.options,
-                                       one = elem.type === "select-one";
-
-                               // Nothing was selected
-                               if ( index < 0 ) {
-                                       return null;
-                               }
-
-                               // Loop through all the selected options
-                               for ( var i = one ? index : 0, max = one ? index + 1 : options.length; i < max; i++ ) {
-                                       var option = options[ i ];
-
-                                       // Don't return options that are disabled or in a disabled optgroup
-                                       if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
-                                                       (!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
-
-                                               // Get the specific value for the option
-                                               value = jQuery( option ).val();
-
-                                               // We don't need an array for one selects
-                                               if ( one ) {
-                                                       return value;
-                                               }
-
-                                               // Multi-Selects return an array
-                                               values.push( value );
-                                       }
-                               }
-
-                               // Fixes Bug #2551 -- select.val() broken in IE after form.reset()
-                               if ( one && !values.length && options.length ) {
-                                       return jQuery( options[ index ] ).val();
-                               }
-
-                               return values;
-                       },
-
-                       set: function( elem, value ) {
-                               var values = jQuery.makeArray( value );
-
-                               jQuery(elem).find("option").each(function() {
-                                       this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
-                               });
-
-                               if ( !values.length ) {
-                                       elem.selectedIndex = -1;
-                               }
-                               return values;
-                       }
-               }
-       },
-
-       attrFn: {
-               val: true,
-               css: true,
-               html: true,
-               text: true,
-               data: true,
-               width: true,
-               height: true,
-               offset: true
-       },
-       
-       attrFix: {
-               // Always normalize to ensure hook usage
-               tabindex: "tabIndex"
-       },
-       
-       attr: function( elem, name, value, pass ) {
-               var nType = elem.nodeType;
-               
-               // don't get/set attributes on text, comment and attribute nodes
-               if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-                       return undefined;
-               }
-
-               if ( pass && name in jQuery.attrFn ) {
-                       return jQuery( elem )[ name ]( value );
-               }
-
-               // Fallback to prop when attributes are not supported
-               if ( !("getAttribute" in elem) ) {
-                       return jQuery.prop( elem, name, value );
-               }
-
-               var ret, hooks,
-                       notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-               // Normalize the name if needed
-               if ( notxml ) {
-                       name = jQuery.attrFix[ name ] || name;
-
-                       hooks = jQuery.attrHooks[ name ];
-
-                       if ( !hooks ) {
-                               // Use boolHook for boolean attributes
-                               if ( rboolean.test( name ) ) {
-
-                                       hooks = boolHook;
-
-                               // Use formHook for forms and if the name contains certain characters
-                               } else if ( formHook && name !== "className" &&
-                                       (jQuery.nodeName( elem, "form" ) || rinvalidChar.test( name )) ) {
-
-                                       hooks = formHook;
-                               }
-                       }
-               }
-
-               if ( value !== undefined ) {
-
-                       if ( value === null ) {
-                               jQuery.removeAttr( elem, name );
-                               return undefined;
-
-                       } else if ( hooks && "set" in hooks && notxml && (ret = hooks.set( elem, value, name )) !== undefined ) {
-                               return ret;
-
-                       } else {
-                               elem.setAttribute( name, "" + value );
-                               return value;
-                       }
-
-               } else if ( hooks && "get" in hooks && notxml && (ret = hooks.get( elem, name )) !== null ) {
-                       return ret;
-
-               } else {
-
-                       ret = elem.getAttribute( name );
-
-                       // Non-existent attributes return null, we normalize to undefined
-                       return ret === null ?
-                               undefined :
-                               ret;
-               }
-       },
-
-       removeAttr: function( elem, name ) {
-               var propName;
-               if ( elem.nodeType === 1 ) {
-                       name = jQuery.attrFix[ name ] || name;
-               
-                       if ( jQuery.support.getSetAttribute ) {
-                               // Use removeAttribute in browsers that support it
-                               elem.removeAttribute( name );
-                       } else {
-                               jQuery.attr( elem, name, "" );
-                               elem.removeAttributeNode( elem.getAttributeNode( name ) );
-                       }
-
-                       // Set corresponding property to false for boolean attributes
-                       if ( rboolean.test( name ) && (propName = jQuery.propFix[ name ] || name) in elem ) {
-                               elem[ propName ] = false;
-                       }
-               }
-       },
-
-       attrHooks: {
-               type: {
-                       set: function( elem, value ) {
-                               // We can't allow the type property to be changed (since it causes problems in IE)
-                               if ( rtype.test( elem.nodeName ) && elem.parentNode ) {
-                                       jQuery.error( "type property can't be changed" );
-                               } else if ( !jQuery.support.radioValue && value === "radio" && jQuery.nodeName(elem, "input") ) {
-                                       // Setting the type on a radio button after the value resets the value in IE6-9
-                                       // Reset value to it's default in case type is set after value
-                                       // This is for element creation
-                                       var val = elem.value;
-                                       elem.setAttribute( "type", value );
-                                       if ( val ) {
-                                               elem.value = val;
-                                       }
-                                       return value;
-                               }
-                       }
-               },
-               tabIndex: {
-                       get: function( elem ) {
-                               // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
-                               // http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
-                               var attributeNode = elem.getAttributeNode("tabIndex");
-
-                               return attributeNode && attributeNode.specified ?
-                                       parseInt( attributeNode.value, 10 ) :
-                                       rfocusable.test( elem.nodeName ) || rclickable.test( elem.nodeName ) && elem.href ?
-                                               0 :
-                                               undefined;
-                       }
-               },
-               // Use the value property for back compat
-               // Use the formHook for button elements in IE6/7 (#1954)
-               value: {
-                       get: function( elem, name ) {
-                               if ( formHook && jQuery.nodeName( elem, "button" ) ) {
-                                       return formHook.get( elem, name );
-                               }
-                               return name in elem ?
-                                       elem.value :
-                                       null;
-                       },
-                       set: function( elem, value, name ) {
-                               if ( formHook && jQuery.nodeName( elem, "button" ) ) {
-                                       return formHook.set( elem, value, name );
-                               }
-                               // Does not return so that setAttribute is also used
-                               elem.value = value;
-                       }
-               }
-       },
-
-       propFix: {
-               tabindex: "tabIndex",
-               readonly: "readOnly",
-               "for": "htmlFor",
-               "class": "className",
-               maxlength: "maxLength",
-               cellspacing: "cellSpacing",
-               cellpadding: "cellPadding",
-               rowspan: "rowSpan",
-               colspan: "colSpan",
-               usemap: "useMap",
-               frameborder: "frameBorder",
-               contenteditable: "contentEditable"
-       },
-       
-       prop: function( elem, name, value ) {
-               var nType = elem.nodeType;
-
-               // don't get/set properties on text, comment and attribute nodes
-               if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
-                       return undefined;
-               }
-
-               var ret, hooks,
-                       notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
-
-               if ( notxml ) {
-                       // Fix name and attach hooks
-                       name = jQuery.propFix[ name ] || name;
-                       hooks = jQuery.propHooks[ name ];
-               }
-
-               if ( value !== undefined ) {
-                       if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
-                               return ret;
-
-                       } else {
-                               return (elem[ name ] = value);
-                       }
-
-               } else {
-                       if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== undefined ) {
-                               return ret;
-
-                       } else {
-                               return elem[ name ];
-                       }
-               }
-       },
-       
-       propHooks: {}
-});
-
-// Hook for boolean attributes
-boolHook = {
-       get: function( elem, name ) {
-               // Align boolean attributes with corresponding properties
-               return jQuery.prop( elem, name ) ?
-                       name.toLowerCase() :
-                       undefined;
-       },
-       set: function( elem, value, name ) {
-               var propName;
-               if ( value === false ) {
-                       // Remove boolean attributes when set to false
-                       jQuery.removeAttr( elem, name );
-               } else {
-                       // value is true since we know at this point it's type boolean and not false
-                       // Set boolean attributes to the same name and set the DOM property
-                       propName = jQuery.propFix[ name ] || name;
-                       if ( propName in elem ) {
-                               // Only set the IDL specifically if it already exists on the element
-                               elem[ propName ] = true;
-                       }
-
-                       elem.setAttribute( name, name.toLowerCase() );
-               }
-               return name;
-       }
-};
-
-// IE6/7 do not support getting/setting some attributes with get/setAttribute
-if ( !jQuery.support.getSetAttribute ) {
-
-       // propFix is more comprehensive and contains all fixes
-       jQuery.attrFix = jQuery.propFix;
-       
-       // Use this for any attribute on a form in IE6/7
-       formHook = jQuery.attrHooks.name = jQuery.attrHooks.title = jQuery.valHooks.button = {
-               get: function( elem, name ) {
-                       var ret;
-                       ret = elem.getAttributeNode( name );
-                       // Return undefined if nodeValue is empty string
-                       return ret && ret.nodeValue !== "" ?
-                               ret.nodeValue :
-                               undefined;
-               },
-               set: function( elem, value, name ) {
-                       // Check form objects in IE (multiple bugs related)
-                       // Only use nodeValue if the attribute node exists on the form
-                       var ret = elem.getAttributeNode( name );
-                       if ( ret ) {
-                               ret.nodeValue = value;
-                               return value;
-                       }
-               }
-       };
-
-       // Set width and height to auto instead of 0 on empty string( Bug #8150 )
-       // This is for removals
-       jQuery.each([ "width", "height" ], function( i, name ) {
-               jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-                       set: function( elem, value ) {
-                               if ( value === "" ) {
-                                       elem.setAttribute( name, "auto" );
-                                       return value;
-                               }
-                       }
-               });
-       });
-}
-
-
-// Some attributes require a special call on IE
-if ( !jQuery.support.hrefNormalized ) {
-       jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
-               jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
-                       get: function( elem ) {
-                               var ret = elem.getAttribute( name, 2 );
-                               return ret === null ? undefined : ret;
-                       }
-               });
-       });
-}
-
-if ( !jQuery.support.style ) {
-       jQuery.attrHooks.style = {
-               get: function( elem ) {
-                       // Return undefined in the case of empty string
-                       // Normalize to lowercase since IE uppercases css property names
-                       return elem.style.cssText.toLowerCase() || undefined;
-               },
-               set: function( elem, value ) {
-                       return (elem.style.cssText = "" + value);
-               }
-       };
-}
-
-// Safari mis-reports the default selected property of an option
-// Accessing the parent's selectedIndex property fixes it
-if ( !jQuery.support.optSelected ) {
-       jQuery.propHooks.selected = jQuery.extend( jQuery.propHooks.selected, {
-               get: function( elem ) {
-                       var parent = elem.parentNode;
-
-                       if ( parent ) {
-                               parent.selectedIndex;
-
-                               // Make sure that it also works with optgroups, see #5701
-                               if ( parent.parentNode ) {
-                                       parent.parentNode.selectedIndex;
-                               }
-                       }
-               }
-       });
-}
-
-// Radios and checkboxes getter/setter
-if ( !jQuery.support.checkOn ) {
-       jQuery.each([ "radio", "checkbox" ], function() {
-               jQuery.valHooks[ this ] = {
-                       get: function( elem ) {
-                               // Handle the case where in Webkit "" is returned instead of "on" if a value isn't specified
-                               return elem.getAttribute("value") === null ? "on" : elem.value;
-                       }
-               };
-       });
-}
-jQuery.each([ "radio", "checkbox" ], function() {
-       jQuery.valHooks[ this ] = jQuery.extend( jQuery.valHooks[ this ], {
-               set: function( elem, value ) {
-                       if ( jQuery.isArray( value ) ) {
-                               return (elem.checked = jQuery.inArray( jQuery(elem).val(), value ) >= 0);
-                       }
-               }
-       });
-});
-
-
-
-
-var rnamespaces = /\.(.*)$/,
-       rformElems = /^(?:textarea|input|select)$/i,
-       rperiod = /\./g,
-       rspaces = / /g,
-       rescape = /[^\w\s.|`]/g,
-       fcleanup = function( nm ) {
-               return nm.replace(rescape, "\\$&");
-       };
-
-/*
- * A number of helper functions used for managing events.
- * Many of the ideas behind this code originated from
- * Dean Edwards' addEvent library.
- */
-jQuery.event = {
-
-       // Bind an event to an element
-       // Original by Dean Edwards
-       add: function( elem, types, handler, data ) {
-               if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-                       return;
-               }
-
-               if ( handler === false ) {
-                       handler = returnFalse;
-               } else if ( !handler ) {
-                       // Fixes bug #7229. Fix recommended by jdalton
-                       return;
-               }
-
-               var handleObjIn, handleObj;
-
-               if ( handler.handler ) {
-                       handleObjIn = handler;
-                       handler = handleObjIn.handler;
-               }
-
-               // Make sure that the function being executed has a unique ID
-               if ( !handler.guid ) {
-                       handler.guid = jQuery.guid++;
-               }
-
-               // Init the element's event structure
-               var elemData = jQuery._data( elem );
-
-               // If no elemData is found then we must be trying to bind to one of the
-               // banned noData elements
-               if ( !elemData ) {
-                       return;
-               }
-
-               var events = elemData.events,
-                       eventHandle = elemData.handle;
-
-               if ( !events ) {
-                       elemData.events = events = {};
-               }
-
-               if ( !eventHandle ) {
-                       elemData.handle = eventHandle = function( e ) {
-                               // Discard the second event of a jQuery.event.trigger() and
-                               // when an event is called after a page has unloaded
-                               return typeof jQuery !== "undefined" && (!e || jQuery.event.triggered !== e.type) ?
-                                       jQuery.event.handle.apply( eventHandle.elem, arguments ) :
-                                       undefined;
-                       };
-               }
-
-               // Add elem as a property of the handle function
-               // This is to prevent a memory leak with non-native events in IE.
-               eventHandle.elem = elem;
-
-               // Handle multiple events separated by a space
-               // jQuery(...).bind("mouseover mouseout", fn);
-               types = types.split(" ");
-
-               var type, i = 0, namespaces;
-
-               while ( (type = types[ i++ ]) ) {
-                       handleObj = handleObjIn ?
-                               jQuery.extend({}, handleObjIn) :
-                               { handler: handler, data: data };
-
-                       // Namespaced event handlers
-                       if ( type.indexOf(".") > -1 ) {
-                               namespaces = type.split(".");
-                               type = namespaces.shift();
-                               handleObj.namespace = namespaces.slice(0).sort().join(".");
-
-                       } else {
-                               namespaces = [];
-                               handleObj.namespace = "";
-                       }
-
-                       handleObj.type = type;
-                       if ( !handleObj.guid ) {
-                               handleObj.guid = handler.guid;
-                       }
-
-                       // Get the current list of functions bound to this event
-                       var handlers = events[ type ],
-                               special = jQuery.event.special[ type ] || {};
-
-                       // Init the event handler queue
-                       if ( !handlers ) {
-                               handlers = events[ type ] = [];
-
-                               // Check for a special event handler
-                               // Only use addEventListener/attachEvent if the special
-                               // events handler returns false
-                               if ( !special.setup || special.setup.call( elem, data, namespaces, eventHandle ) === false ) {
-                                       // Bind the global event handler to the element
-                                       if ( elem.addEventListener ) {
-                                               elem.addEventListener( type, eventHandle, false );
-
-                                       } else if ( elem.attachEvent ) {
-                                               elem.attachEvent( "on" + type, eventHandle );
-                                       }
-                               }
-                       }
-
-                       if ( special.add ) {
-                               special.add.call( elem, handleObj );
-
-                               if ( !handleObj.handler.guid ) {
-                                       handleObj.handler.guid = handler.guid;
-                               }
-                       }
-
-                       // Add the function to the element's handler list
-                       handlers.push( handleObj );
-
-                       // Keep track of which events have been used, for event optimization
-                       jQuery.event.global[ type ] = true;
-               }
-
-               // Nullify elem to prevent memory leaks in IE
-               elem = null;
-       },
-
-       global: {},
-
-       // Detach an event or set of events from an element
-       remove: function( elem, types, handler, pos ) {
-               // don't do events on text and comment nodes
-               if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-                       return;
-               }
-
-               if ( handler === false ) {
-                       handler = returnFalse;
-               }
-
-               var ret, type, fn, j, i = 0, all, namespaces, namespace, special, eventType, handleObj, origType,
-                       elemData = jQuery.hasData( elem ) && jQuery._data( elem ),
-                       events = elemData && elemData.events;
-
-               if ( !elemData || !events ) {
-                       return;
-               }
-
-               // types is actually an event object here
-               if ( types && types.type ) {
-                       handler = types.handler;
-                       types = types.type;
-               }
-
-               // Unbind all events for the element
-               if ( !types || typeof types === "string" && types.charAt(0) === "." ) {
-                       types = types || "";
-
-                       for ( type in events ) {
-                               jQuery.event.remove( elem, type + types );
-                       }
-
-                       return;
-               }
-
-               // Handle multiple events separated by a space
-               // jQuery(...).unbind("mouseover mouseout", fn);
-               types = types.split(" ");
-
-               while ( (type = types[ i++ ]) ) {
-                       origType = type;
-                       handleObj = null;
-                       all = type.indexOf(".") < 0;
-                       namespaces = [];
-
-                       if ( !all ) {
-                               // Namespaced event handlers
-                               namespaces = type.split(".");
-                               type = namespaces.shift();
-
-                               namespace = new RegExp("(^|\\.)" +
-                                       jQuery.map( namespaces.slice(0).sort(), fcleanup ).join("\\.(?:.*\\.)?") + "(\\.|$)");
-                       }
-
-                       eventType = events[ type ];
-
-                       if ( !eventType ) {
-                               continue;
-                       }
-
-                       if ( !handler ) {
-                               for ( j = 0; j < eventType.length; j++ ) {
-                                       handleObj = eventType[ j ];
-
-                                       if ( all || namespace.test( handleObj.namespace ) ) {
-                                               jQuery.event.remove( elem, origType, handleObj.handler, j );
-                                               eventType.splice( j--, 1 );
-                                       }
-                               }
-
-                               continue;
-                       }
-
-                       special = jQuery.event.special[ type ] || {};
-
-                       for ( j = pos || 0; j < eventType.length; j++ ) {
-                               handleObj = eventType[ j ];
-
-                               if ( handler.guid === handleObj.guid ) {
-                                       // remove the given handler for the given type
-                                       if ( all || namespace.test( handleObj.namespace ) ) {
-                                               if ( pos == null ) {
-                                                       eventType.splice( j--, 1 );
-                                               }
-
-                                               if ( special.remove ) {
-                                                       special.remove.call( elem, handleObj );
-                                               }
-                                       }
-
-                                       if ( pos != null ) {
-                                               break;
-                                       }
-                               }
-                       }
-
-                       // remove generic event handler if no more handlers exist
-                       if ( eventType.length === 0 || pos != null && eventType.length === 1 ) {
-                               if ( !special.teardown || special.teardown.call( elem, namespaces ) === false ) {
-                                       jQuery.removeEvent( elem, type, elemData.handle );
-                               }
-
-                               ret = null;
-                               delete events[ type ];
-                       }
-               }
-
-               // Remove the expando if it's no longer used
-               if ( jQuery.isEmptyObject( events ) ) {
-                       var handle = elemData.handle;
-                       if ( handle ) {
-                               handle.elem = null;
-                       }
-
-                       delete elemData.events;
-                       delete elemData.handle;
-
-                       if ( jQuery.isEmptyObject( elemData ) ) {
-                               jQuery.removeData( elem, undefined, true );
-                       }
-               }
-       },
-       
-       // Events that are safe to short-circuit if no handlers are attached.
-       // Native DOM events should not be added, they may have inline handlers.
-       customEvent: {
-               "getData": true,
-               "setData": true,
-               "changeData": true
-       },
-
-       trigger: function( event, data, elem, onlyHandlers ) {
-               // Event object or event type
-               var type = event.type || event,
-                       namespaces = [],
-                       exclusive;
-
-               if ( type.indexOf("!") >= 0 ) {
-                       // Exclusive events trigger only for the exact event (no namespaces)
-                       type = type.slice(0, -1);
-                       exclusive = true;
-               }
-
-               if ( type.indexOf(".") >= 0 ) {
-                       // Namespaced trigger; create a regexp to match event type in handle()
-                       namespaces = type.split(".");
-                       type = namespaces.shift();
-                       namespaces.sort();
-               }
-
-               if ( (!elem || jQuery.event.customEvent[ type ]) && !jQuery.event.global[ type ] ) {
-                       // No jQuery handlers for this event type, and it can't have inline handlers
-                       return;
-               }
-
-               // Caller can pass in an Event, Object, or just an event type string
-               event = typeof event === "object" ?
-                       // jQuery.Event object
-                       event[ jQuery.expando ] ? event :
-                       // Object literal
-                       new jQuery.Event( type, event ) :
-                       // Just the event type (string)
-                       new jQuery.Event( type );
-
-               event.type = type;
-               event.exclusive = exclusive;
-               event.namespace = namespaces.join(".");
-               event.namespace_re = new RegExp("(^|\\.)" + namespaces.join("\\.(?:.*\\.)?") + "(\\.|$)");
-               
-               // triggerHandler() and global events don't bubble or run the default action
-               if ( onlyHandlers || !elem ) {
-                       event.preventDefault();
-                       event.stopPropagation();
-               }
-
-               // Handle a global trigger
-               if ( !elem ) {
-                       // TODO: Stop taunting the data cache; remove global events and always attach to document
-                       jQuery.each( jQuery.cache, function() {
-                               // internalKey variable is just used to make it easier to find
-                               // and potentially change this stuff later; currently it just
-                               // points to jQuery.expando
-                               var internalKey = jQuery.expando,
-                                       internalCache = this[ internalKey ];
-                               if ( internalCache && internalCache.events && internalCache.events[ type ] ) {
-                                       jQuery.event.trigger( event, data, internalCache.handle.elem );
-                               }
-                       });
-                       return;
-               }
-
-               // Don't do events on text and comment nodes
-               if ( elem.nodeType === 3 || elem.nodeType === 8 ) {
-                       return;
-               }
-
-               // Clean up the event in case it is being reused
-               event.result = undefined;
-               event.target = elem;
-
-               // Clone any incoming data and prepend the event, creating the handler arg list
-               data = data != null ? jQuery.makeArray( data ) : [];
-               data.unshift( event );
-
-               var cur = elem,
-                       // IE doesn't like method names with a colon (#3533, #8272)
-                       ontype = type.indexOf(":") < 0 ? "on" + type : "";
-
-               // Fire event on the current element, then bubble up the DOM tree
-               do {
-                       var handle = jQuery._data( cur, "handle" );
-
-                       event.currentTarget = cur;
-                       if ( handle ) {
-                               handle.apply( cur, data );
-                       }
-
-                       // Trigger an inline bound script
-                       if ( ontype && jQuery.acceptData( cur ) && cur[ ontype ] && cur[ ontype ].apply( cur, data ) === false ) {
-                               event.result = false;
-                               event.preventDefault();
-                       }
-
-                       // Bubble up to document, then to window
-                       cur = cur.parentNode || cur.ownerDocument || cur === event.target.ownerDocument && window;
-               } while ( cur && !event.isPropagationStopped() );
-
-               // If nobody prevented the default action, do it now
-               if ( !event.isDefaultPrevented() ) {
-                       var old,
-                               special = jQuery.event.special[ type ] || {};
-
-                       if ( (!special._default || special._default.call( elem.ownerDocument, event ) === false) &&
-                               !(type === "click" && jQuery.nodeName( elem, "a" )) && jQuery.acceptData( elem ) ) {
-
-                               // Call a native DOM method on the target with the same name name as the event.
-                               // Can't use an .isFunction)() check here because IE6/7 fails that test.
-                               // IE<9 dies on focus to hidden element (#1486), may want to revisit a try/catch.
-                               try {
-                                       if ( ontype && elem[ type ] ) {
-                                               // Don't re-trigger an onFOO event when we call its FOO() method
-                                               old = elem[ ontype ];
-
-                                               if ( old ) {
-                                                       elem[ ontype ] = null;
-                                               }
-
-                                               jQuery.event.triggered = type;
-                                               elem[ type ]();
-                                       }
-                               } catch ( ieError ) {}
-
-                               if ( old ) {
-                                       elem[ ontype ] = old;
-                               }
-
-                               jQuery.event.triggered = undefined;
-                       }
-               }
-               
-               return event.result;
-       },
-
-       handle: function( event ) {
-               event = jQuery.event.fix( event || window.event );
-               // Snapshot the handlers list since a called handler may add/remove events.
-               var handlers = ((jQuery._data( this, "events" ) || {})[ event.type ] || []).slice(0),
-                       run_all = !event.exclusive && !event.namespace,
-                       args = Array.prototype.slice.call( arguments, 0 );
-
-               // Use the fix-ed Event rather than the (read-only) native event
-               args[0] = event;
-               event.currentTarget = this;
-
-               for ( var j = 0, l = handlers.length; j < l; j++ ) {
-                       var handleObj = handlers[ j ];
-
-                       // Triggered event must 1) be non-exclusive and have no namespace, or
-                       // 2) have namespace(s) a subset or equal to those in the bound event.
-                       if ( run_all || event.namespace_re.test( handleObj.namespace ) ) {
-                               // Pass in a reference to the handler function itself
-                               // So that we can later remove it
-                               event.handler = handleObj.handler;
-                               event.data = handleObj.data;
-                               event.handleObj = handleObj;
-
-                               var ret = handleObj.handler.apply( this, args );
-
-                               if ( ret !== undefined ) {
-                                       event.result = ret;
-                                       if ( ret === false ) {
-                                               event.preventDefault();
-                                               event.stopPropagation();
-                                       }
-                               }
-
-                               if ( event.isImmediatePropagationStopped() ) {
-                                       break;
-                               }
-                       }
-               }
-               return event.result;
-       },
-
-       props: "altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
-
-       fix: function( event ) {
-               if ( event[ jQuery.expando ] ) {
-                       return event;
-               }
-
-               // store a copy of the original event object
-               // and "clone" to set read-only properties
-               var originalEvent = event;
-               event = jQuery.Event( originalEvent );
-
-               for ( var i = this.props.length, prop; i; ) {
-                       prop = this.props[ --i ];
-                       event[ prop ] = originalEvent[ prop ];
-               }
-
-               // Fix target property, if necessary
-               if ( !event.target ) {
-                       // Fixes #1925 where srcElement might not be defined either
-                       event.target = event.srcElement || document;
-               }
-
-               // check if target is a textnode (safari)
-               if ( event.target.nodeType === 3 ) {
-                       event.target = event.target.parentNode;
-               }
-
-               // Add relatedTarget, if necessary
-               if ( !event.relatedTarget && event.fromElement ) {
-                       event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;
-               }
-
-               // Calculate pageX/Y if missing and clientX/Y available
-               if ( event.pageX == null && event.clientX != null ) {
-                       var eventDocument = event.target.ownerDocument || document,
-                               doc = eventDocument.documentElement,
-                               body = eventDocument.body;
-
-                       event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
-                       event.pageY = event.clientY + (doc && doc.scrollTop  || body && body.scrollTop  || 0) - (doc && doc.clientTop  || body && body.clientTop  || 0);
-               }
-
-               // Add which for key events
-               if ( event.which == null && (event.charCode != null || event.keyCode != null) ) {
-                       event.which = event.charCode != null ? event.charCode : event.keyCode;
-               }
-
-               // Add metaKey to non-Mac browsers (use ctrl for PC's and Meta for Macs)
-               if ( !event.metaKey && event.ctrlKey ) {
-                       event.metaKey = event.ctrlKey;
-               }
-
-               // Add which for click: 1 === left; 2 === middle; 3 === right
-               // Note: button is not normalized, so don't use it
-               if ( !event.which && event.button !== undefined ) {
-                       event.which = (event.button & 1 ? 1 : ( event.button & 2 ? 3 : ( event.button & 4 ? 2 : 0 ) ));
-               }
-
-               return event;
-       },
-
-       // Deprecated, use jQuery.guid instead
-       guid: 1E8,
-
-       // Deprecated, use jQuery.proxy instead
-       proxy: jQuery.proxy,
-
-       special: {
-               ready: {
-                       // Make sure the ready event is setup
-                       setup: jQuery.bindReady,
-                       teardown: jQuery.noop
-               },
-
-               live: {
-                       add: function( handleObj ) {
-                               jQuery.event.add( this,
-                                       liveConvert( handleObj.origType, handleObj.selector ),
-                                       jQuery.extend({}, handleObj, {handler: liveHandler, guid: handleObj.handler.guid}) );
-                       },
-
-                       remove: function( handleObj ) {
-                               jQuery.event.remove( this, liveConvert( handleObj.origType, handleObj.selector ), handleObj );
-                       }
-               },
-
-               beforeunload: {
-                       setup: function( data, namespaces, eventHandle ) {
-                               // We only want to do this special case on windows
-                               if ( jQuery.isWindow( this ) ) {
-                                       this.onbeforeunload = eventHandle;
-                               }
-                       },
-
-                       teardown: function( namespaces, eventHandle ) {
-                               if ( this.onbeforeunload === eventHandle ) {
-                                       this.onbeforeunload = null;
-                               }
-                       }
-               }
-       }
-};
-
-jQuery.removeEvent = document.removeEventListener ?
-       function( elem, type, handle ) {
-               if ( elem.removeEventListener ) {
-                       elem.removeEventListener( type, handle, false );
-               }
-       } :
-       function( elem, type, handle ) {
-               if ( elem.detachEvent ) {
-                       elem.detachEvent( "on" + type, handle );
-               }
-       };
-
-jQuery.Event = function( src, props ) {
-       // Allow instantiation without the 'new' keyword
-       if ( !this.preventDefault ) {
-               return new jQuery.Event( src, props );
-       }
-
-       // Event object
-       if ( src && src.type ) {
-               this.originalEvent = src;
-               this.type = src.type;
-
-               // Events bubbling up the document may have been marked as prevented
-               // by a handler lower down the tree; reflect the correct value.
-               this.isDefaultPrevented = (src.defaultPrevented || src.returnValue === false ||
-                       src.getPreventDefault && src.getPreventDefault()) ? returnTrue : returnFalse;
-
-       // Event type
-       } else {
-               this.type = src;
-       }
-
-       // Put explicitly provided properties onto the event object
-       if ( props ) {
-               jQuery.extend( this, props );
-       }
-
-       // timeStamp is buggy for some events on Firefox(#3843)
-       // So we won't rely on the native value
-       this.timeStamp = jQuery.now();
-
-       // Mark it as fixed
-       this[ jQuery.expando ] = true;
-};
-
-function returnFalse() {
-       return false;
-}
-function returnTrue() {
-       return true;
-}
-
-// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
-// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
-jQuery.Event.prototype = {
-       preventDefault: function() {
-               this.isDefaultPrevented = returnTrue;
-
-               var e = this.originalEvent;
-               if ( !e ) {
-                       return;
-               }
-
-               // if preventDefault exists run it on the original event
-               if ( e.preventDefault ) {
-                       e.preventDefault();
-
-               // otherwise set the returnValue property of the original event to false (IE)
-               } else {
-                       e.returnValue = false;
-               }
-       },
-       stopPropagation: function() {
-               this.isPropagationStopped = returnTrue;
-
-               var e = this.originalEvent;
-               if ( !e ) {
-                       return;
-               }
-               // if stopPropagation exists run it on the original event
-               if ( e.stopPropagation ) {
-                       e.stopPropagation();
-               }
-               // otherwise set the cancelBubble property of the original event to true (IE)
-               e.cancelBubble = true;
-       },
-       stopImmediatePropagation: function() {
-               this.isImmediatePropagationStopped = returnTrue;
-               this.stopPropagation();
-       },
-       isDefaultPrevented: returnFalse,
-       isPropagationStopped: returnFalse,
-       isImmediatePropagationStopped: returnFalse
-};
-
-// Checks if an event happened on an element within another element
-// Used in jQuery.event.special.mouseenter and mouseleave handlers
-var withinElement = function( event ) {
-
-       // Check if mouse(over|out) are still within the same parent element
-       var related = event.relatedTarget,
-               inside = false,
-               eventType = event.type;
-
-       event.type = event.data;
-
-       if ( related !== this ) {
-
-               if ( related ) {
-                       inside = jQuery.contains( this, related );
-               }
-
-               if ( !inside ) {
-
-                       jQuery.event.handle.apply( this, arguments );
-
-                       event.type = eventType;
-               }
-       }
-},
-
-// In case of event delegation, we only need to rename the event.type,
-// liveHandler will take care of the rest.
-delegate = function( event ) {
-       event.type = event.data;
-       jQuery.event.handle.apply( this, arguments );
-};
-
-// Create mouseenter and mouseleave events
-jQuery.each({
-       mouseenter: "mouseover",
-       mouseleave: "mouseout"
-}, function( orig, fix ) {
-       jQuery.event.special[ orig ] = {
-               setup: function( data ) {
-                       jQuery.event.add( this, fix, data && data.selector ? delegate : withinElement, orig );
-               },
-               teardown: function( data ) {
-                       jQuery.event.remove( this, fix, data && data.selector ? delegate : withinElement );
-               }
-       };
-});
-
-// submit delegation
-if ( !jQuery.support.submitBubbles ) {
-
-       jQuery.event.special.submit = {
-               setup: function( data, namespaces ) {
-                       if ( !jQuery.nodeName( this, "form" ) ) {
-                               jQuery.event.add(this, "click.specialSubmit", function( e ) {
-                                       var elem = e.target,
-                                               type = elem.type;
-
-                                       if ( (type === "submit" || type === "image") && jQuery( elem ).closest("form").length ) {
-                                               trigger( "submit", this, arguments );
-                                       }
-                               });
-
-                               jQuery.event.add(this, "keypress.specialSubmit", function( e ) {
-                                       var elem = e.target,
-                                               type = elem.type;
-
-                                       if ( (type === "text" || type === "password") && jQuery( elem ).closest("form").length && e.keyCode === 13 ) {
-                                               trigger( "submit", this, arguments );
-                                       }
-                               });
-
-                       } else {
-                               return false;
-                       }
-               },
-
-               teardown: function( namespaces ) {
-                       jQuery.event.remove( this, ".specialSubmit" );
-               }
-       };
-
-}
-
-// change delegation, happens here so we have bind.
-if ( !jQuery.support.changeBubbles ) {
-
-       var changeFilters,
-
-       getVal = function( elem ) {
-               var type = elem.type, val = elem.value;
-
-               if ( type === "radio" || type === "checkbox" ) {
-                       val = elem.checked;
-
-               } else if ( type === "select-multiple" ) {
-                       val = elem.selectedIndex > -1 ?
-                               jQuery.map( elem.options, function( elem ) {
-                                       return elem.selected;
-                               }).join("-") :
-                               "";
-
-               } else if ( jQuery.nodeName( elem, "select" ) ) {
-                       val = elem.selectedIndex;
-               }
-
-               return val;
-       },
-
-       testChange = function testChange( e ) {
-               var elem = e.target, data, val;
-
-               if ( !rformElems.test( elem.nodeName ) || elem.readOnly ) {
-                       return;
-               }
-
-               data = jQuery._data( elem, "_change_data" );
-               val = getVal(elem);
-
-               // the current data will be also retrieved by beforeactivate
-               if ( e.type !== "focusout" || elem.type !== "radio" ) {
-                       jQuery._data( elem, "_change_data", val );
-               }
-
-               if ( data === undefined || val === data ) {
-                       return;
-               }
-
-               if ( data != null || val ) {
-                       e.type = "change";
-                       e.liveFired = undefined;
-                       jQuery.event.trigger( e, arguments[1], elem );
-               }
-       };
-
-       jQuery.event.special.change = {
-               filters: {
-                       focusout: testChange,
-
-                       beforedeactivate: testChange,
-
-                       click: function( e ) {
-                               var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
-
-                               if ( type === "radio" || type === "checkbox" || jQuery.nodeName( elem, "select" ) ) {
-                                       testChange.call( this, e );
-                               }
-                       },
-
-                       // Change has to be called before submit
-                       // Keydown will be called before keypress, which is used in submit-event delegation
-                       keydown: function( e ) {
-                               var elem = e.target, type = jQuery.nodeName( elem, "input" ) ? elem.type : "";
-
-                               if ( (e.keyCode === 13 && !jQuery.nodeName( elem, "textarea" ) ) ||
-                                       (e.keyCode === 32 && (type === "checkbox" || type === "radio")) ||
-                                       type === "select-multiple" ) {
-                                       testChange.call( this, e );
-                               }
-                       },
-
-                       // Beforeactivate happens also before the previous element is blurred
-                       // with this event you can't trigger a change event, but you can store
-                       // information
-                       beforeactivate: function( e ) {
-                               var elem = e.target;
-                               jQuery._data( elem, "_change_data", getVal(elem) );
-                       }
-               },
-
-               setup: function( data, namespaces ) {
-                       if ( this.type === "file" ) {
-                               return false;
-                       }
-
-                       for ( var type in changeFilters ) {
-                               jQuery.event.add( this, type + ".specialChange", changeFilters[type] );
-                       }
-
-                       return rformElems.test( this.nodeName );
-               },
-
-               teardown: function( namespaces ) {
-                       jQuery.event.remove( this, ".specialChange" );
-
-                       return rformElems.test( this.nodeName );
-               }
-       };
-
-       changeFilters = jQuery.event.special.change.filters;
-
-       // Handle when the input is .focus()'d
-       changeFilters.focus = changeFilters.beforeactivate;
-}
-
-function trigger( type, elem, args ) {
-       // Piggyback on a donor event to simulate a different one.
-       // Fake originalEvent to avoid donor's stopPropagation, but if the
-       // simulated event prevents default then we do the same on the donor.
-       // Don't pass args or remember liveFired; they apply to the donor event.
-       var event = jQuery.extend( {}, args[ 0 ] );
-       event.type = type;
-       event.originalEvent = {};
-       event.liveFired = undefined;
-       jQuery.event.handle.call( elem, event );
-       if ( event.isDefaultPrevented() ) {
-               args[ 0 ].preventDefault();
-       }
-}
-
-// Create "bubbling" focus and blur events
-if ( !jQuery.support.focusinBubbles ) {
-       jQuery.each({ focus: "focusin", blur: "focusout" }, function( orig, fix ) {
-
-               // Attach a single capturing handler while someone wants focusin/focusout
-               var attaches = 0;
-
-               jQuery.event.special[ fix ] = {
-                       setup: function() {
-                               if ( attaches++ === 0 ) {
-                                       document.addEventListener( orig, handler, true );
-                               }
-                       },
-                       teardown: function() {
-                               if ( --attaches === 0 ) {
-                                       document.removeEventListener( orig, handler, true );
-                               }
-                       }
-               };
-
-               function handler( donor ) {
-                       // Donor event is always a native one; fix it and switch its type.
-                       // Let focusin/out handler cancel the donor focus/blur event.
-                       var e = jQuery.event.fix( donor );
-                       e.type = fix;
-                       e.originalEvent = {};
-                       jQuery.event.trigger( e, null, e.target );
-                       if ( e.isDefaultPrevented() ) {
-                               donor.preventDefault();
-                       }
-               }
-       });
-}
-
-jQuery.each(["bind", "one"], function( i, name ) {
-       jQuery.fn[ name ] = function( type, data, fn ) {
-               var handler;
-
-               // Handle object literals
-               if ( typeof type === "object" ) {
-                       for ( var key in type ) {
-                               this[ name ](key, data, type[key], fn);
-                       }
-                       return this;
-               }
-
-               if ( arguments.length === 2 || data === false ) {
-                       fn = data;
-                       data = undefined;
-               }
-
-               if ( name === "one" ) {
-                       handler = function( event ) {
-                               jQuery( this ).unbind( event, handler );
-                               return fn.apply( this, arguments );
-                       };
-                       handler.guid = fn.guid || jQuery.guid++;
-               } else {
-                       handler = fn;
-               }
-
-               if ( type === "unload" && name !== "one" ) {
-                       this.one( type, data, fn );
-
-               } else {
-                       for ( var i = 0, l = this.length; i < l; i++ ) {
-                               jQuery.event.add( this[i], type, handler, data );
-                       }
-               }
-
-               return this;
-       };
-});
-
-jQuery.fn.extend({
-       unbind: function( type, fn ) {
-               // Handle object literals
-               if ( typeof type === "object" && !type.preventDefault ) {
-                       for ( var key in type ) {
-                               this.unbind(key, type[key]);
-                       }
-
-               } else {
-                       for ( var i = 0, l = this.length; i < l; i++ ) {
-                               jQuery.event.remove( this[i], type, fn );
-                       }
-               }
-
-               return this;
-       },
-
-       delegate: function( selector, types, data, fn ) {
-               return this.live( types, data, fn, selector );
-       },
-
-       undelegate: function( selector, types, fn ) {
-               if ( arguments.length === 0 ) {
-                       return this.unbind( "live" );
-
-               } else {
-                       return this.die( types, null, fn, selector );
-               }
-       },
-
-       trigger: function( type, data ) {
-               return this.each(function() {
-                       jQuery.event.trigger( type, data, this );
-               });
-       },
-
-       triggerHandler: function( type, data ) {
-               if ( this[0] ) {
-                       return jQuery.event.trigger( type, data, this[0], true );
-               }
-       },
-
-       toggle: function( fn ) {
-               // Save reference to arguments for access in closure
-               var args = arguments,
-                       guid = fn.guid || jQuery.guid++,
-                       i = 0,
-                       toggler = function( event ) {
-                               // Figure out which function to execute
-                               var lastToggle = ( jQuery.data( this, "lastToggle" + fn.guid ) || 0 ) % i;
-                               jQuery.data( this, "lastToggle" + fn.guid, lastToggle + 1 );
-
-                               // Make sure that clicks stop
-                               event.preventDefault();
-
-                               // and execute the function
-                               return args[ lastToggle ].apply( this, arguments ) || false;
-                       };
-
-               // link all the functions, so any of them can unbind this click handler
-               toggler.guid = guid;
-               while ( i < args.length ) {
-                       args[ i++ ].guid = guid;
-               }
-
-               return this.click( toggler );
-       },
-
-       hover: function( fnOver, fnOut ) {
-               return this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );
-       }
-});
-
-var liveMap = {
-       focus: "focusin",
-       blur: "focusout",
-       mouseenter: "mouseover",
-       mouseleave: "mouseout"
-};
-
-jQuery.each(["live", "die"], function( i, name ) {
-       jQuery.fn[ name ] = function( types, data, fn, origSelector /* Internal Use Only */ ) {
-               var type, i = 0, match, namespaces, preType,
-                       selector = origSelector || this.selector,
-                       context = origSelector ? this : jQuery( this.context );
-
-               if ( typeof types === "object" && !types.preventDefault ) {
-                       for ( var key in types ) {
-                               context[ name ]( key, data, types[key], selector );
-                       }
-
-                       return this;
-               }
-
-               if ( name === "die" && !types &&
-                                       origSelector && origSelector.charAt(0) === "." ) {
-
-                       context.unbind( origSelector );
-
-                       return this;
-               }
-
-               if ( data === false || jQuery.isFunction( data ) ) {
-                       fn = data || returnFalse;
-                       data = undefined;
-               }
-
-               types = (types || "").split(" ");
-
-               while ( (type = types[ i++ ]) != null ) {
-                       match = rnamespaces.exec( type );
-                       namespaces = "";
-
-                       if ( match )  {
-                               namespaces = match[0];
-                               type = type.replace( rnamespaces, "" );
-                       }
-
-                       if ( type === "hover" ) {
-                               types.push( "mouseenter" + namespaces, "mouseleave" + namespaces );
-                               continue;
-                       }
-
-                       preType = type;
-
-                       if ( liveMap[ type ] ) {
-                               types.push( liveMap[ type ] + namespaces );
-                               type = type + namespaces;
-
-                       } else {
-                               type = (liveMap[ type ] || type) + namespaces;
-                       }
-
-                       if ( name === "live" ) {
-                               // bind live handler
-                               for ( var j = 0, l = context.length; j < l; j++ ) {
-                                       jQuery.event.add( context[j], "live." + liveConvert( type, selector ),
-                                               { data: data, selector: selector, handler: fn, origType: type, origHandler: fn, preType: preType } );
-                               }
-
-                       } else {
-                               // unbind live handler
-                               context.unbind( "live." + liveConvert( type, selector ), fn );
-                       }
-               }
-
-               return this;
-       };
-});
-
-function liveHandler( event ) {
-       var stop, maxLevel, related, match, handleObj, elem, j, i, l, data, close, namespace, ret,
-               elems = [],
-               selectors = [],
-               events = jQuery._data( this, "events" );
-
-       // Make sure we avoid non-left-click bubbling in Firefox (#3861) and disabled elements in IE (#6911)
-       if ( event.liveFired === this || !events || !events.live || event.target.disabled || event.button && event.type === "click" ) {
-               return;
-       }
-
-       if ( event.namespace ) {
-               namespace = new RegExp("(^|\\.)" + event.namespace.split(".").join("\\.(?:.*\\.)?") + "(\\.|$)");
-       }
-
-       event.liveFired = this;
-
-       var live = events.live.slice(0);
-
-       for ( j = 0; j < live.length; j++ ) {
-               handleObj = live[j];
-
-               if ( handleObj.origType.replace( rnamespaces, "" ) === event.type ) {
-                       selectors.push( handleObj.selector );
-
-               } else {
-                       live.splice( j--, 1 );
-               }
-       }
-
-       match = jQuery( event.target ).closest( selectors, event.currentTarget );
-
-       for ( i = 0, l = match.length; i < l; i++ ) {
-               close = match[i];
-
-               for ( j = 0; j < live.length; j++ ) {
-                       handleObj = live[j];
-
-                       if ( close.selector === handleObj.selector && (!namespace || namespace.test( handleObj.namespace )) && !close.elem.disabled ) {
-                               elem = close.elem;
-                               related = null;
-
-                               // Those two events require additional checking
-                               if ( handleObj.preType === "mouseenter" || handleObj.preType === "mouseleave" ) {
-                                       event.type = handleObj.preType;
-                                       related = jQuery( event.relatedTarget ).closest( handleObj.selector )[0];
-
-                                       // Make sure not to accidentally match a child element with the same selector
-                                       if ( related && jQuery.contains( elem, related ) ) {
-                                               related = elem;
-                                       }
-                               }
-
-                               if ( !related || related !== elem ) {
-                                       elems.push({ elem: elem, handleObj: handleObj, level: close.level });
-                               }
-                       }
-               }
-       }
-
-       for ( i = 0, l = elems.length; i < l; i++ ) {
-               match = elems[i];
-
-               if ( maxLevel && match.level > maxLevel ) {
-                       break;
-               }
-
-               event.currentTarget = match.elem;
-               event.data = match.handleObj.data;
-               event.handleObj = match.handleObj;
-
-               ret = match.handleObj.origHandler.apply( match.elem, arguments );
-
-               if ( ret === false || event.isPropagationStopped() ) {
-                       maxLevel = match.level;
-
-                       if ( ret === false ) {
-                               stop = false;
-                       }
-                       if ( event.isImmediatePropagationStopped() ) {
-                               break;
-                       }
-               }
-       }
-
-       return stop;
-}
-
-function liveConvert( type, selector ) {
-       return (type && type !== "*" ? type + "." : "") + selector.replace(rperiod, "`").replace(rspaces, "&");
-}
-
-jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblclick " +
-       "mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave " +
-       "change select submit keydown keypress keyup error").split(" "), function( i, name ) {
-
-       // Handle event binding
-       jQuery.fn[ name ] = function( data, fn ) {
-               if ( fn == null ) {
-                       fn = data;
-                       data = null;
-               }
-
-               return arguments.length > 0 ?
-                       this.bind( name, data, fn ) :
-                       this.trigger( name );
-       };
-
-       if ( jQuery.attrFn ) {
-               jQuery.attrFn[ name ] = true;
-       }
-});
-
-
-
-/*!
- * Sizzle CSS Selector Engine
- *  Copyright 2011, The Dojo Foundation
- *  Released under the MIT, BSD, and GPL Licenses.
- *  More information: http://sizzlejs.com/
- */
-(function(){
-
-var chunker = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
-       done = 0,
-       toString = Object.prototype.toString,
-       hasDuplicate = false,
-       baseHasDuplicate = true,
-       rBackslash = /\\/g,
-       rNonWord = /\W/;
-
-// Here we check if the JavaScript engine is using some sort of
-// optimization where it does not always call our comparision
-// function. If that is the case, discard the hasDuplicate value.
-//   Thus far that includes Google Chrome.
-[0, 0].sort(function() {
-       baseHasDuplicate = false;
-       return 0;
-});
-
-var Sizzle = function( selector, context, results, seed ) {
-       results = results || [];
-       context = context || document;
-
-       var origContext = context;
-
-       if ( context.nodeType !== 1 && context.nodeType !== 9 ) {
-               return [];
-       }
-       
-       if ( !selector || typeof selector !== "string" ) {
-               return results;
-       }
-
-       var m, set, checkSet, extra, ret, cur, pop, i,
-               prune = true,
-               contextXML = Sizzle.isXML( context ),
-               parts = [],
-               soFar = selector;
-       
-       // Reset the position of the chunker regexp (start from head)
-       do {
-               chunker.exec( "" );
-               m = chunker.exec( soFar );
-
-               if ( m ) {
-                       soFar = m[3];
-               
-                       parts.push( m[1] );
-               
-                       if ( m[2] ) {
-                               extra = m[3];
-                               break;
-                       }
-               }
-       } while ( m );
-
-       if ( parts.length > 1 && origPOS.exec( selector ) ) {
-
-               if ( parts.length === 2 && Expr.relative[ parts[0] ] ) {
-                       set = posProcess( parts[0] + parts[1], context );
-
-               } else {
-                       set = Expr.relative[ parts[0] ] ?
-                               [ context ] :
-                               Sizzle( parts.shift(), context );
-
-                       while ( parts.length ) {
-                               selector = parts.shift();
-
-                               if ( Expr.relative[ selector ] ) {
-                                       selector += parts.shift();
-                               }
-                               
-                               set = posProcess( selector, set );
-                       }
-               }
-
-       } else {
-               // Take a shortcut and set the context if the root selector is an ID
-               // (but not if it'll be faster if the inner selector is an ID)
-               if ( !seed && parts.length > 1 && context.nodeType === 9 && !contextXML &&
-                               Expr.match.ID.test(parts[0]) && !Expr.match.ID.test(parts[parts.length - 1]) ) {
-
-                       ret = Sizzle.find( parts.shift(), context, contextXML );
-                       context = ret.expr ?
-                               Sizzle.filter( ret.expr, ret.set )[0] :
-                               ret.set[0];
-               }
-
-               if ( context ) {
-                       ret = seed ?
-                               { expr: parts.pop(), set: makeArray(seed) } :
-                               Sizzle.find( parts.pop(), parts.length === 1 && (parts[0] === "~" || parts[0] === "+") && context.parentNode ? context.parentNode : context, contextXML );
-
-                       set = ret.expr ?
-                               Sizzle.filter( ret.expr, ret.set ) :
-                               ret.set;
-
-                       if ( parts.length > 0 ) {
-                               checkSet = makeArray( set );
-
-                       } else {
-                               prune = false;
-                       }
-
-                       while ( parts.length ) {
-                               cur = parts.pop();
-                               pop = cur;
-
-                               if ( !Expr.relative[ cur ] ) {
-                                       cur = "";
-                               } else {
-                                       pop = parts.pop();
-                               }
-
-                               if ( pop == null ) {
-                                       pop = context;
-                               }
-
-                               Expr.relative[ cur ]( checkSet, pop, contextXML );
-                       }
-
-               } else {
-                       checkSet = parts = [];
-               }
-       }
-
-       if ( !checkSet ) {
-               checkSet = set;
-       }
-
-       if ( !checkSet ) {
-               Sizzle.error( cur || selector );
-       }
-
-       if ( toString.call(checkSet) === "[object Array]" ) {
-               if ( !prune ) {
-                       results.push.apply( results, checkSet );
-
-               } else if ( context && context.nodeType === 1 ) {
-                       for ( i = 0; checkSet[i] != null; i++ ) {
-                               if ( checkSet[i] && (checkSet[i] === true || checkSet[i].nodeType === 1 && Sizzle.contains(context, checkSet[i])) ) {
-                                       results.push( set[i] );
-                               }
-                       }
-
-               } else {
-                       for ( i = 0; checkSet[i] != null; i++ ) {
-                               if ( checkSet[i] && checkSet[i].nodeType === 1 ) {
-                                       results.push( set[i] );
-                               }
-                       }
-               }
-
-       } else {
-               makeArray( checkSet, results );
-       }
-
-       if ( extra ) {
-               Sizzle( extra, origContext, results, seed );
-               Sizzle.uniqueSort( results );
-       }
-
-       return results;
-};
-
-Sizzle.uniqueSort = function( results ) {
-       if ( sortOrder ) {
-               hasDuplicate = baseHasDuplicate;
-               results.sort( sortOrder );
-
-               if ( hasDuplicate ) {
-                       for ( var i = 1; i < results.length; i++ ) {
-                               if ( results[i] === results[ i - 1 ] ) {
-                                       results.splice( i--, 1 );
-                               }
-                       }
-               }
-       }
-
-       return results;
-};
-
-Sizzle.matches = function( expr, set ) {
-       return Sizzle( expr, null, null, set );
-};
-
-Sizzle.matchesSelector = function( node, expr ) {
-       return Sizzle( expr, null, null, [node] ).length > 0;
-};
-
-Sizzle.find = function( expr, context, isXML ) {
-       var set;
-
-       if ( !expr ) {
-               return [];
-       }
-
-       for ( var i = 0, l = Expr.order.length; i < l; i++ ) {
-               var match,
-                       type = Expr.order[i];
-               
-               if ( (match = Expr.leftMatch[ type ].exec( expr )) ) {
-                       var left = match[1];
-                       match.splice( 1, 1 );
-
-                       if ( left.substr( left.length - 1 ) !== "\\" ) {
-                               match[1] = (match[1] || "").replace( rBackslash, "" );
-                               set = Expr.find[ type ]( match, context, isXML );
-
-                               if ( set != null ) {
-                                       expr = expr.replace( Expr.match[ type ], "" );
-                                       break;
-                               }
-                       }
-               }
-       }
-
-       if ( !set ) {
-               set = typeof context.getElementsByTagName !== "undefined" ?
-                       context.getElementsByTagName( "*" ) :
-                       [];
-       }
-
-       return { set: set, expr: expr };
-};
-
-Sizzle.filter = function( expr, set, inplace, not ) {
-       var match, anyFound,
-               old = expr,
-               result = [],
-               curLoop = set,
-               isXMLFilter = set && set[0] && Sizzle.isXML( set[0] );
-
-       while ( expr && set.length ) {
-               for ( var type in Expr.filter ) {
-                       if ( (match = Expr.leftMatch[ type ].exec( expr )) != null && match[2] ) {
-                               var found, item,
-                                       filter = Expr.filter[ type ],
-                                       left = match[1];
-
-                               anyFound = false;
-
-                               match.splice(1,1);
-
-                               if ( left.substr( left.length - 1 ) === "\\" ) {
-                                       continue;
-                               }
-
-                               if ( curLoop === result ) {
-                                       result = [];
-                               }
-
-                               if ( Expr.preFilter[ type ] ) {
-                                       match = Expr.preFilter[ type ]( match, curLoop, inplace, result, not, isXMLFilter );
-
-                                       if ( !match ) {
-                                               anyFound = found = true;
-
-                                       } else if ( match === true ) {
-                                               continue;
-                                       }
-                               }
-
-                               if ( match ) {
-                                       for ( var i = 0; (item = curLoop[i]) != null; i++ ) {
-                                               if ( item ) {
-                                                       found = filter( item, match, i, curLoop );
-                                                       var pass = not ^ !!found;
-
-                                                       if ( inplace && found != null ) {
-                                                               if ( pass ) {
-                                                                       anyFound = true;
-
-                                                               } else {
-                                                                       curLoop[i] = false;
-                                                               }
-
-                                                       } else if ( pass ) {
-                                                               result.push( item );
-                                                               anyFound = true;
-                                                       }
-                                               }
-                                       }
-                               }
-
-                               if ( found !== undefined ) {
-                                       if ( !inplace ) {
-                                               curLoop = result;
-                                       }
-
-                                       expr = expr.replace( Expr.match[ type ], "" );
-
-                                       if ( !anyFound ) {
-                                               return [];
-                                       }
-
-                                       break;
-                               }
-                       }
-               }
-
-               // Improper expression
-               if ( expr === old ) {
-                       if ( anyFound == null ) {
-                               Sizzle.error( expr );
-
-                       } else {
-                               break;
-                       }
-               }
-
-               old = expr;
-       }
-
-       return curLoop;
-};
-
-Sizzle.error = function( msg ) {
-       throw "Syntax error, unrecognized expression: " + msg;
-};
-
-var Expr = Sizzle.selectors = {
-       order: [ "ID", "NAME", "TAG" ],
-
-       match: {
-               ID: /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-               CLASS: /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,
-               NAME: /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,
-               ATTR: /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,
-               TAG: /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,
-               CHILD: /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,
-               POS: /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,
-               PSEUDO: /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/
-       },
-
-       leftMatch: {},
-
-       attrMap: {
-               "class": "className",
-               "for": "htmlFor"
-       },
-
-       attrHandle: {
-               href: function( elem ) {
-                       return elem.getAttribute( "href" );
-               },
-               type: function( elem ) {
-                       return elem.getAttribute( "type" );
-               }
-       },
-
-       relative: {
-               "+": function(checkSet, part){
-                       var isPartStr = typeof part === "string",
-                               isTag = isPartStr && !rNonWord.test( part ),
-                               isPartStrNotTag = isPartStr && !isTag;
-
-                       if ( isTag ) {
-                               part = part.toLowerCase();
-                       }
-
-                       for ( var i = 0, l = checkSet.length, elem; i < l; i++ ) {
-                               if ( (elem = checkSet[i]) ) {
-                                       while ( (elem = elem.previousSibling) && elem.nodeType !== 1 ) {}
-
-                                       checkSet[i] = isPartStrNotTag || elem && elem.nodeName.toLowerCase() === part ?
-                                               elem || false :
-                                               elem === part;
-                               }
-                       }
-
-                       if ( isPartStrNotTag ) {
-                               Sizzle.filter( part, checkSet, true );
-                       }
-               },
-
-               ">": function( checkSet, part ) {
-                       var elem,
-                               isPartStr = typeof part === "string",
-                               i = 0,
-                               l = checkSet.length;
-
-                       if ( isPartStr && !rNonWord.test( part ) ) {
-                               part = part.toLowerCase();
-
-                               for ( ; i < l; i++ ) {
-                                       elem = checkSet[i];
-
-                                       if ( elem ) {
-                                               var parent = elem.parentNode;
-                                               checkSet[i] = parent.nodeName.toLowerCase() === part ? parent : false;
-                                       }
-                               }
-
-                       } else {
-                               for ( ; i < l; i++ ) {
-                                       elem = checkSet[i];
-
-                                       if ( elem ) {
-                                               checkSet[i] = isPartStr ?
-                                                       elem.parentNode :
-                                                       elem.parentNode === part;
-                                       }
-                               }
-
-                               if ( isPartStr ) {
-                                       Sizzle.filter( part, checkSet, true );
-                               }
-                       }
-               },
-
-               "": function(checkSet, part, isXML){
-                       var nodeCheck,
-                               doneName = done++,
-                               checkFn = dirCheck;
-
-                       if ( typeof part === "string" && !rNonWord.test( part ) ) {
-                               part = part.toLowerCase();
-                               nodeCheck = part;
-                               checkFn = dirNodeCheck;
-                       }
-
-                       checkFn( "parentNode", part, doneName, checkSet, nodeCheck, isXML );
-               },
-
-               "~": function( checkSet, part, isXML ) {
-                       var nodeCheck,
-                               doneName = done++,
-                               checkFn = dirCheck;
-
-                       if ( typeof part === "string" && !rNonWord.test( part ) ) {
-                               part = part.toLowerCase();
-                               nodeCheck = part;
-                               checkFn = dirNodeCheck;
-                       }
-
-                       checkFn( "previousSibling", part, doneName, checkSet, nodeCheck, isXML );
-               }
-       },
-
-       find: {
-               ID: function( match, context, isXML ) {
-                       if ( typeof context.getElementById !== "undefined" && !isXML ) {
-                               var m = context.getElementById(match[1]);
-                               // Check parentNode to catch when Blackberry 4.6 returns
-                               // nodes that are no longer in the document #6963
-                               return m && m.parentNode ? [m] : [];
-                       }
-               },
-
-               NAME: function( match, context ) {
-                       if ( typeof context.getElementsByName !== "undefined" ) {
-                               var ret = [],
-                                       results = context.getElementsByName( match[1] );
-
-                               for ( var i = 0, l = results.length; i < l; i++ ) {
-                                       if ( results[i].getAttribute("name") === match[1] ) {
-                                               ret.push( results[i] );
-                                       }
-                               }
-
-                               return ret.length === 0 ? null : ret;
-                       }
-               },
-
-               TAG: function( match, context ) {
-                       if ( typeof context.getElementsByTagName !== "undefined" ) {
-                               return context.getElementsByTagName( match[1] );
-                       }
-               }
-       },
-       preFilter: {
-               CLASS: function( match, curLoop, inplace, result, not, isXML ) {
-                       match = " " + match[1].replace( rBackslash, "" ) + " ";
-
-                       if ( isXML ) {
-                               return match;
-                       }
-
-                       for ( var i = 0, elem; (elem = curLoop[i]) != null; i++ ) {
-                               if ( elem ) {
-                                       if ( not ^ (elem.className && (" " + elem.className + " ").replace(/[\t\n\r]/g, " ").indexOf(match) >= 0) ) {
-                                               if ( !inplace ) {
-                                                       result.push( elem );
-                                               }
-
-                                       } else if ( inplace ) {
-                                               curLoop[i] = false;
-                                       }
-                               }
-                       }
-
-                       return false;
-               },
-
-               ID: function( match ) {
-                       return match[1].replace( rBackslash, "" );
-               },
-
-               TAG: function( match, curLoop ) {
-                       return match[1].replace( rBackslash, "" ).toLowerCase();
-               },
-
-               CHILD: function( match ) {
-                       if ( match[1] === "nth" ) {
-                               if ( !match[2] ) {
-                                       Sizzle.error( match[0] );
-                               }
-
-                               match[2] = match[2].replace(/^\+|\s*/g, '');
-
-                               // parse equations like 'even', 'odd', '5', '2n', '3n+2', '4n-1', '-n+6'
-                               var test = /(-?)(\d*)(?:n([+\-]?\d*))?/.exec(
-                                       match[2] === "even" && "2n" || match[2] === "odd" && "2n+1" ||
-                                       !/\D/.test( match[2] ) && "0n+" + match[2] || match[2]);
-
-                               // calculate the numbers (first)n+(last) including if they are negative
-                               match[2] = (test[1] + (test[2] || 1)) - 0;
-                               match[3] = test[3] - 0;
-                       }
-                       else if ( match[2] ) {
-                               Sizzle.error( match[0] );
-                       }
-
-                       // TODO: Move to normal caching system
-                       match[0] = done++;
-
-                       return match;
-               },
-
-               ATTR: function( match, curLoop, inplace, result, not, isXML ) {
-                       var name = match[1] = match[1].replace( rBackslash, "" );
-                       
-                       if ( !isXML && Expr.attrMap[name] ) {
-                               match[1] = Expr.attrMap[name];
-                       }
-
-                       // Handle if an un-quoted value was used
-                       match[4] = ( match[4] || match[5] || "" ).replace( rBackslash, "" );
-
-                       if ( match[2] === "~=" ) {
-                               match[4] = " " + match[4] + " ";
-                       }
-
-                       return match;
-               },
-
-               PSEUDO: function( match, curLoop, inplace, result, not ) {
-                       if ( match[1] === "not" ) {
-                               // If we're dealing with a complex expression, or a simple one
-                               if ( ( chunker.exec(match[3]) || "" ).length > 1 || /^\w/.test(match[3]) ) {
-                                       match[3] = Sizzle(match[3], null, null, curLoop);
-
-                               } else {
-                                       var ret = Sizzle.filter(match[3], curLoop, inplace, true ^ not);
-
-                                       if ( !inplace ) {
-                                               result.push.apply( result, ret );
-                                       }
-
-                                       return false;
-                               }
-
-                       } else if ( Expr.match.POS.test( match[0] ) || Expr.match.CHILD.test( match[0] ) ) {
-                               return true;
-                       }
-                       
-                       return match;
-               },
-
-               POS: function( match ) {
-                       match.unshift( true );
-
-                       return match;
-               }
-       },
-       
-       filters: {
-               enabled: function( elem ) {
-                       return elem.disabled === false && elem.type !== "hidden";
-               },
-
-               disabled: function( elem ) {
-                       return elem.disabled === true;
-               },
-
-               checked: function( elem ) {
-                       return elem.checked === true;
-               },
-               
-               selected: function( elem ) {
-                       // Accessing this property makes selected-by-default
-                       // options in Safari work properly
-                       if ( elem.parentNode ) {
-                               elem.parentNode.selectedIndex;
-                       }
-                       
-                       return elem.selected === true;
-               },
-
-               parent: function( elem ) {
-                       return !!elem.firstChild;
-               },
-
-               empty: function( elem ) {
-                       return !elem.firstChild;
-               },
-
-               has: function( elem, i, match ) {
-                       return !!Sizzle( match[3], elem ).length;
-               },
-
-               header: function( elem ) {
-                       return (/h\d/i).test( elem.nodeName );
-               },
-
-               text: function( elem ) {
-                       var attr = elem.getAttribute( "type" ), type = elem.type;
-                       // IE6 and 7 will map elem.type to 'text' for new HTML5 types (search, etc) 
-                       // use getAttribute instead to test this case
-                       return elem.nodeName.toLowerCase() === "input" && "text" === type && ( attr === type || attr === null );
-               },
-
-               radio: function( elem ) {
-                       return elem.nodeName.toLowerCase() === "input" && "radio" === elem.type;
-               },
-
-               checkbox: function( elem ) {
-                       return elem.nodeName.toLowerCase() === "input" && "checkbox" === elem.type;
-               },
-
-               file: function( elem ) {
-                       return elem.nodeName.toLowerCase() === "input" && "file" === elem.type;
-               },
-
-               password: function( elem ) {
-                       return elem.nodeName.toLowerCase() === "input" && "password" === elem.type;
-               },
-
-               submit: function( elem ) {
-                       var name = elem.nodeName.toLowerCase();
-                       return (name === "input" || name === "button") && "submit" === elem.type;
-               },
-
-               image: function( elem ) {
-                       return elem.nodeName.toLowerCase() === "input" && "image" === elem.type;
-               },
-
-               reset: function( elem ) {
-                       var name = elem.nodeName.toLowerCase();
-                       return (name === "input" || name === "button") && "reset" === elem.type;
-               },
-
-               button: function( elem ) {
-                       var name = elem.nodeName.toLowerCase();
-                       return name === "input" && "button" === elem.type || name === "button";
-               },
-
-               input: function( elem ) {
-                       return (/input|select|textarea|button/i).test( elem.nodeName );
-               },
-
-               focus: function( elem ) {
-                       return elem === elem.ownerDocument.activeElement;
-               }
-       },
-       setFilters: {
-               first: function( elem, i ) {
-                       return i === 0;
-               },
-
-               last: function( elem, i, match, array ) {
-                       return i === array.length - 1;
-               },
-
-               even: function( elem, i ) {
-                       return i % 2 === 0;
-               },
-
-               odd: function( elem, i ) {
-                       return i % 2 === 1;
-               },
-
-               lt: function( elem, i, match ) {
-                       return i < match[3] - 0;
-               },
-
-               gt: function( elem, i, match ) {
-                       return i > match[3] - 0;
-               },
-
-               nth: function( elem, i, match ) {
-                       return match[3] - 0 === i;
-               },
-
-               eq: function( elem, i, match ) {
-                       return match[3] - 0 === i;
-               }
-       },
-       filter: {
-               PSEUDO: function( elem, match, i, array ) {
-                       var name = match[1],
-                               filter = Expr.filters[ name ];
-
-                       if ( filter ) {
-                               return filter( elem, i, match, array );
-
-                       } else if ( name === "contains" ) {
-                               return (elem.textContent || elem.innerText || Sizzle.getText([ elem ]) || "").indexOf(match[3]) >= 0;
-
-                       } else if ( name === "not" ) {
-                               var not = match[3];
-
-                               for ( var j = 0, l = not.length; j < l; j++ ) {
-                                       if ( not[j] === elem ) {
-                                               return false;
-                                       }
-                               }
-
-                               return true;
-
-                       } else {
-                               Sizzle.error( name );
-                       }
-               },
-
-               CHILD: function( elem, match ) {
-                       var type = match[1],
-                               node = elem;
-
-                       switch ( type ) {
-                               case "only":
-                               case "first":
-                                       while ( (node = node.previousSibling) )  {
-                                               if ( node.nodeType === 1 ) { 
-                                                       return false; 
-                                               }
-                                       }
-
-                                       if ( type === "first" ) { 
-                                               return true; 
-                                       }
-
-                                       node = elem;
-
-                               case "last":
-                                       while ( (node = node.nextSibling) )      {
-                                               if ( node.nodeType === 1 ) { 
-                                                       return false; 
-                                               }
-                                       }
-
-                                       return true;
-
-                               case "nth":
-                                       var first = match[2],
-                                               last = match[3];
-
-                                       if ( first === 1 && last === 0 ) {
-                                               return true;
-                                       }
-                                       
-                                       var doneName = match[0],
-                                               parent = elem.parentNode;
-       
-                                       if ( parent && (parent.sizcache !== doneName || !elem.nodeIndex) ) {
-                                               var count = 0;
-                                               
-                                               for ( node = parent.firstChild; node; node = node.nextSibling ) {
-                                                       if ( node.nodeType === 1 ) {
-                                                               node.nodeIndex = ++count;
-                                                       }
-                                               } 
-
-                                               parent.sizcache = doneName;
-                                       }
-                                       
-                                       var diff = elem.nodeIndex - last;
-
-                                       if ( first === 0 ) {
-                                               return diff === 0;
-
-                                       } else {
-                                               return ( diff % first === 0 && diff / first >= 0 );
-                                       }
-                       }
-               },
-
-               ID: function( elem, match ) {
-                       return elem.nodeType === 1 && elem.getAttribute("id") === match;
-               },
-
-               TAG: function( elem, match ) {
-                       return (match === "*" && elem.nodeType === 1) || elem.nodeName.toLowerCase() === match;
-               },
-               
-               CLASS: function( elem, match ) {
-                       return (" " + (elem.className || elem.getAttribute("class")) + " ")
-                               .indexOf( match ) > -1;
-               },
-
-               ATTR: function( elem, match ) {
-                       var name = match[1],
-                               result = Expr.attrHandle[ name ] ?
-                                       Expr.attrHandle[ name ]( elem ) :
-                                       elem[ name ] != null ?
-                                               elem[ name ] :
-                                               elem.getAttribute( name ),
-                               value = result + "",
-                               type = match[2],
-                               check = match[4];
-
-                       return result == null ?
-                               type === "!=" :
-                               type === "=" ?
-                               value === check :
-                               type === "*=" ?
-                               value.indexOf(check) >= 0 :
-                               type === "~=" ?
-                               (" " + value + " ").indexOf(check) >= 0 :
-                               !check ?
-                               value && result !== false :
-                               type === "!=" ?
-                               value !== check :
-                               type === "^=" ?
-                               value.indexOf(check) === 0 :
-                               type === "$=" ?
-                               value.substr(value.length - check.length) === check :
-                               type === "|=" ?
-                               value === check || value.substr(0, check.length + 1) === check + "-" :
-                               false;
-               },
-
-               POS: function( elem, match, i, array ) {
-                       var name = match[2],
-                               filter = Expr.setFilters[ name ];
-
-                       if ( filter ) {
-                               return filter( elem, i, match, array );
-                       }
-               }
-       }
-};
-
-var origPOS = Expr.match.POS,
-       fescape = function(all, num){
-               return "\\" + (num - 0 + 1);
-       };
-
-for ( var type in Expr.match ) {
-       Expr.match[ type ] = new RegExp( Expr.match[ type ].source + (/(?![^\[]*\])(?![^\(]*\))/.source) );
-       Expr.leftMatch[ type ] = new RegExp( /(^(?:.|\r|\n)*?)/.source + Expr.match[ type ].source.replace(/\\(\d+)/g, fescape) );
-}
-
-var makeArray = function( array, results ) {
-       array = Array.prototype.slice.call( array, 0 );
-
-       if ( results ) {
-               results.push.apply( results, array );
-               return results;
-       }
-       
-       return array;
-};
-
-// Perform a simple check to determine if the browser is capable of
-// converting a NodeList to an array using builtin methods.
-// Also verifies that the returned array holds DOM nodes
-// (which is not the case in the Blackberry browser)
-try {
-       Array.prototype.slice.call( document.documentElement.childNodes, 0 )[0].nodeType;
-
-// Provide a fallback method if it does not work
-} catch( e ) {
-       makeArray = function( array, results ) {
-               var i = 0,
-                       ret = results || [];
-
-               if ( toString.call(array) === "[object Array]" ) {
-                       Array.prototype.push.apply( ret, array );
-
-               } else {
-                       if ( typeof array.length === "number" ) {
-                               for ( var l = array.length; i < l; i++ ) {
-                                       ret.push( array[i] );
-                               }
-
-                       } else {
-                               for ( ; array[i]; i++ ) {
-                                       ret.push( array[i] );
-                               }
-                       }
-               }
-
-               return ret;
-       };
-}
-
-var sortOrder, siblingCheck;
-
-if ( document.documentElement.compareDocumentPosition ) {
-       sortOrder = function( a, b ) {
-               if ( a === b ) {
-                       hasDuplicate = true;
-                       return 0;
-               }
-
-               if ( !a.compareDocumentPosition || !b.compareDocumentPosition ) {
-                       return a.compareDocumentPosition ? -1 : 1;
-               }
-
-               return a.compareDocumentPosition(b) & 4 ? -1 : 1;
-       };
-
-} else {
-       sortOrder = function( a, b ) {
-               // The nodes are identical, we can exit early
-               if ( a === b ) {
-                       hasDuplicate = true;
-                       return 0;
-
-               // Fallback to using sourceIndex (in IE) if it's available on both nodes
-               } else if ( a.sourceIndex && b.sourceIndex ) {
-                       return a.sourceIndex - b.sourceIndex;
-               }
-
-               var al, bl,
-                       ap = [],
-                       bp = [],
-                       aup = a.parentNode,
-                       bup = b.parentNode,
-                       cur = aup;
-
-               // If the nodes are siblings (or identical) we can do a quick check
-               if ( aup === bup ) {
-                       return siblingCheck( a, b );
-
-               // If no parents were found then the nodes are disconnected
-               } else if ( !aup ) {
-                       return -1;
-
-               } else if ( !bup ) {
-                       return 1;
-               }
-
-               // Otherwise they're somewhere else in the tree so we need
-               // to build up a full list of the parentNodes for comparison
-               while ( cur ) {
-                       ap.unshift( cur );
-                       cur = cur.parentNode;
-               }
-
-               cur = bup;
-
-               while ( cur ) {
-                       bp.unshift( cur );
-                       cur = cur.parentNode;
-               }
-
-               al = ap.length;
-               bl = bp.length;
-
-               // Start walking down the tree looking for a discrepancy
-               for ( var i = 0; i < al && i < bl; i++ ) {
-                       if ( ap[i] !== bp[i] ) {
-                               return siblingCheck( ap[i], bp[i] );
-                       }
-               }
-
-               // We ended someplace up the tree so do a sibling check
-               return i === al ?
-                       siblingCheck( a, bp[i], -1 ) :
-                       siblingCheck( ap[i], b, 1 );
-       };
-
-       siblingCheck = function( a, b, ret ) {
-               if ( a === b ) {
-                       return ret;
-               }
-
-               var cur = a.nextSibling;
-
-               while ( cur ) {
-                       if ( cur === b ) {
-                               return -1;
-                       }
-
-                       cur = cur.nextSibling;
-               }
-
-               return 1;
-       };
-}
-
-// Utility function for retreiving the text value of an array of DOM nodes
-Sizzle.getText = function( elems ) {
-       var ret = "", elem;
-
-       for ( var i = 0; elems[i]; i++ ) {
-               elem = elems[i];
-
-               // Get the text from text nodes and CDATA nodes
-               if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
-                       ret += elem.nodeValue;
-
-               // Traverse everything else, except comment nodes
-               } else if ( elem.nodeType !== 8 ) {
-                       ret += Sizzle.getText( elem.childNodes );
-               }
-       }
-
-       return ret;
-};
-
-// Check to see if the browser returns elements by name when
-// querying by getElementById (and provide a workaround)
-(function(){
-       // We're going to inject a fake input element with a specified name
-       var form = document.createElement("div"),
-               id = "script" + (new Date()).getTime(),
-               root = document.documentElement;
-
-       form.innerHTML = "<a name='" + id + "'/>";
-
-       // Inject it into the root element, check its status, and remove it quickly
-       root.insertBefore( form, root.firstChild );
-
-       // The workaround has to do additional checks after a getElementById
-       // Which slows things down for other browsers (hence the branching)
-       if ( document.getElementById( id ) ) {
-               Expr.find.ID = function( match, context, isXML ) {
-                       if ( typeof context.getElementById !== "undefined" && !isXML ) {
-                               var m = context.getElementById(match[1]);
-
-                               return m ?
-                                       m.id === match[1] || typeof m.getAttributeNode !== "undefined" && m.getAttributeNode("id").nodeValue === match[1] ?
-                                               [m] :
-                                               undefined :
-                                       [];
-                       }
-               };
-
-               Expr.filter.ID = function( elem, match ) {
-                       var node = typeof elem.getAttributeNode !== "undefined" && elem.getAttributeNode("id");
-
-                       return elem.nodeType === 1 && node && node.nodeValue === match;
-               };
-       }
-
-       root.removeChild( form );
-
-       // release memory in IE
-       root = form = null;
-})();
-
-(function(){
-       // Check to see if the browser returns only elements
-       // when doing getElementsByTagName("*")
-
-       // Create a fake element
-       var div = document.createElement("div");
-       div.appendChild( document.createComment("") );
-
-       // Make sure no comments are found
-       if ( div.getElementsByTagName("*").length > 0 ) {
-               Expr.find.TAG = function( match, context ) {
-                       var results = context.getElementsByTagName( match[1] );
-
-                       // Filter out possible comments
-                       if ( match[1] === "*" ) {
-                               var tmp = [];
-
-                               for ( var i = 0; results[i]; i++ ) {
-                                       if ( results[i].nodeType === 1 ) {
-                                               tmp.push( results[i] );
-                                       }
-                               }
-
-                               results = tmp;
-                       }
-
-                       return results;
-               };
-       }
-
-       // Check to see if an attribute returns normalized href attributes
-       div.innerHTML = "<a href='#'></a>";
-
-       if ( div.firstChild && typeof div.firstChild.getAttribute !== "undefined" &&
-                       div.firstChild.getAttribute("href") !== "#" ) {
-
-               Expr.attrHandle.href = function( elem ) {
-                       return elem.getAttribute( "href", 2 );
-               };
-       }
-
-       // release memory in IE
-       div = null;
-})();
-
-if ( document.querySelectorAll ) {
-       (function(){
-               var oldSizzle = Sizzle,
-                       div = document.createElement("div"),
-                       id = "__sizzle__";
-
-               div.innerHTML = "<p class='TEST'></p>";
-
-               // Safari can't handle uppercase or unicode characters when
-               // in quirks mode.
-               if ( div.querySelectorAll && div.querySelectorAll(".TEST").length === 0 ) {
-                       return;
-               }
-       
-               Sizzle = function( query, context, extra, seed ) {
-                       context = context || document;
-
-                       // Only use querySelectorAll on non-XML documents
-                       // (ID selectors don't work in non-HTML documents)
-                       if ( !seed && !Sizzle.isXML(context) ) {
-                               // See if we find a selector to speed up
-                               var match = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec( query );
-                               
-                               if ( match && (context.nodeType === 1 || context.nodeType === 9) ) {
-                                       // Speed-up: Sizzle("TAG")
-                                       if ( match[1] ) {
-                                               return makeArray( context.getElementsByTagName( query ), extra );
-                                       
-                                       // Speed-up: Sizzle(".CLASS")
-                                       } else if ( match[2] && Expr.find.CLASS && context.getElementsByClassName ) {
-                                               return makeArray( context.getElementsByClassName( match[2] ), extra );
-                                       }
-                               }
-                               
-                               if ( context.nodeType === 9 ) {
-                                       // Speed-up: Sizzle("body")
-                                       // The body element only exists once, optimize finding it
-                                       if ( query === "body" && context.body ) {
-                                               return makeArray( [ context.body ], extra );
-                                               
-                                       // Speed-up: Sizzle("#ID")
-                                       } else if ( match && match[3] ) {
-                                               var elem = context.getElementById( match[3] );
-
-                                               // Check parentNode to catch when Blackberry 4.6 returns
-                                               // nodes that are no longer in the document #6963
-                                               if ( elem && elem.parentNode ) {
-                                                       // Handle the case where IE and Opera return items
-                                                       // by name instead of ID
-                                                       if ( elem.id === match[3] ) {
-                                                               return makeArray( [ elem ], extra );
-                                                       }
-                                                       
-                                               } else {
-                                                       return makeArray( [], extra );
-                                               }
-                                       }
-                                       
-                                       try {
-                                               return makeArray( context.querySelectorAll(query), extra );
-                                       } catch(qsaError) {}
-
-                               // qSA works strangely on Element-rooted queries
-                               // We can work around this by specifying an extra ID on the root
-                               // and working up from there (Thanks to Andrew Dupont for the technique)
-                               // IE 8 doesn't work on object elements
-                               } else if ( context.nodeType === 1 && context.nodeName.toLowerCase() !== "object" ) {
-                                       var oldContext = context,
-                                               old = context.getAttribute( "id" ),
-                                               nid = old || id,
-                                               hasParent = context.parentNode,
-                                               relativeHierarchySelector = /^\s*[+~]/.test( query );
-
-                                       if ( !old ) {
-                                               context.setAttribute( "id", nid );
-                                       } else {
-                                               nid = nid.replace( /'/g, "\\$&" );
-                                       }
-                                       if ( relativeHierarchySelector && hasParent ) {
-                                               context = context.parentNode;
-                                       }
-
-                                       try {
-                                               if ( !relativeHierarchySelector || hasParent ) {
-                                                       return makeArray( context.querySelectorAll( "[id='" + nid + "'] " + query ), extra );
-                                               }
-
-                                       } catch(pseudoError) {
-                                       } finally {
-                                               if ( !old ) {
-                                                       oldContext.removeAttribute( "id" );
-                                               }
-                                       }
-                               }
-                       }
-               
-                       return oldSizzle(query, context, extra, seed);
-               };
-
-               for ( var prop in oldSizzle ) {
-                       Sizzle[ prop ] = oldSizzle[ prop ];
-               }
-
-               // release memory in IE
-               div = null;
-       })();
-}
-
-(function(){
-       var html = document.documentElement,
-               matches = html.matchesSelector || html.mozMatchesSelector || html.webkitMatchesSelector || html.msMatchesSelector;
-
-       if ( matches ) {
-               // Check to see if it's possible to do matchesSelector
-               // on a disconnected node (IE 9 fails this)
-               var disconnectedMatch = !matches.call( document.createElement( "div" ), "div" ),
-                       pseudoWorks = false;
-
-               try {
-                       // This should fail with an exception
-                       // Gecko does not error, returns false instead
-                       matches.call( document.documentElement, "[test!='']:sizzle" );
-       
-               } catch( pseudoError ) {
-                       pseudoWorks = true;
-               }
-
-               Sizzle.matchesSelector = function( node, expr ) {
-                       // Make sure that attribute selectors are quoted
-                       expr = expr.replace(/\=\s*([^'"\]]*)\s*\]/g, "='$1']");
-
-                       if ( !Sizzle.isXML( node ) ) {
-                               try { 
-                                       if ( pseudoWorks || !Expr.match.PSEUDO.test( expr ) && !/!=/.test( expr ) ) {
-                                               var ret = matches.call( node, expr );
-
-                                               // IE 9's matchesSelector returns false on disconnected nodes
-                                               if ( ret || !disconnectedMatch ||
-                                                               // As well, disconnected nodes are said to be in a document
-                                                               // fragment in IE 9, so check for that
-                                                               node.document && node.document.nodeType !== 11 ) {
-                                                       return ret;
-                                               }
-                                       }
-                               } catch(e) {}
-                       }
-
-                       return Sizzle(expr, null, null, [node]).length > 0;
-               };
-       }
-})();
-
-(function(){
-       var div = document.createElement("div");
-
-       div.innerHTML = "<div class='test e'></div><div class='test'></div>";
-
-       // Opera can't find a second classname (in 9.6)
-       // Also, make sure that getElementsByClassName actually exists
-       if ( !div.getElementsByClassName || div.getElementsByClassName("e").length === 0 ) {
-               return;
-       }
-
-       // Safari caches class attributes, doesn't catch changes (in 3.2)
-       div.lastChild.className = "e";
-
-       if ( div.getElementsByClassName("e").length === 1 ) {
-               return;
-       }
-       
-       Expr.order.splice(1, 0, "CLASS");
-       Expr.find.CLASS = function( match, context, isXML ) {
-               if ( typeof context.getElementsByClassName !== "undefined" && !isXML ) {
-                       return context.getElementsByClassName(match[1]);
-               }
-       };
-
-       // release memory in IE
-       div = null;
-})();
-
-function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-       for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-               var elem = checkSet[i];
-
-               if ( elem ) {
-                       var match = false;
-
-                       elem = elem[dir];
-
-                       while ( elem ) {
-                               if ( elem.sizcache === doneName ) {
-                                       match = checkSet[elem.sizset];
-                                       break;
-                               }
-
-                               if ( elem.nodeType === 1 && !isXML ){
-                                       elem.sizcache = doneName;
-                                       elem.sizset = i;
-                               }
-
-                               if ( elem.nodeName.toLowerCase() === cur ) {
-                                       match = elem;
-                                       break;
-                               }
-
-                               elem = elem[dir];
-                       }
-
-                       checkSet[i] = match;
-               }
-       }
-}
-
-function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
-       for ( var i = 0, l = checkSet.length; i < l; i++ ) {
-               var elem = checkSet[i];
-
-               if ( elem ) {
-                       var match = false;
-                       
-                       elem = elem[dir];
-
-                       while ( elem ) {
-                               if ( elem.sizcache === doneName ) {
-                                       match = checkSet[elem.sizset];
-                                       break;
-                               }
-
-                               if ( elem.nodeType === 1 ) {
-                                       if ( !isXML ) {
-                                               elem.sizcache = doneName;
-                                               elem.sizset = i;
-                                       }
-
-                                       if ( typeof cur !== "string" ) {
-                                               if ( elem === cur ) {
-                                                       match = true;
-                                                       break;
-                                               }
-
-                                       } else if ( Sizzle.filter( cur, [elem] ).length > 0 ) {
-                                               match = elem;
-                                               break;
-                                       }
-                               }
-
-                               elem = elem[dir];
-                       }
-
-                       checkSet[i] = match;
-               }
-       }
-}
-
-if ( document.documentElement.contains ) {
-       Sizzle.contains = function( a, b ) {
-               return a !== b && (a.contains ? a.contains(b) : true);
-       };
-
-} else if ( document.documentElement.compareDocumentPosition ) {
-       Sizzle.contains = function( a, b ) {
-               return !!(a.compareDocumentPosition(b) & 16);
-       };
-
-} else {
-       Sizzle.contains = function() {
-               return false;
-       };
-}
-
-Sizzle.isXML = function( elem ) {
-       // documentElement is verified for cases where it doesn't yet exist
-       // (such as loading iframes in IE - #4833) 
-       var documentElement = (elem ? elem.ownerDocument || elem : 0).documentElement;
-
-       return documentElement ? documentElement.nodeName !== "HTML" : false;
-};
-
-var posProcess = function( selector, context ) {
-       var match,
-               tmpSet = [],
-               later = "",
-               root = context.nodeType ? [context] : context;
-
-       // Position selectors must be done after the filter
-       // And so must :not(positional) so we move all PSEUDOs to the end
-       while ( (match = Expr.match.PSEUDO.exec( selector )) ) {
-               later += match[0];
-               selector = selector.replace( Expr.match.PSEUDO, "" );
-       }
-
-       selector = Expr.relative[selector] ? selector + "*" : selector;
-
-       for ( var i = 0, l = root.length; i < l; i++ ) {
-               Sizzle( selector, root[i], tmpSet );
-       }
-
-       return Sizzle.filter( later, tmpSet );
-};
-
-// EXPOSE
-jQuery.find = Sizzle;
-jQuery.expr = Sizzle.selectors;
-jQuery.expr[":"] = jQuery.expr.filters;
-jQuery.unique = Sizzle.uniqueSort;
-jQuery.text = Sizzle.getText;
-jQuery.isXMLDoc = Sizzle.isXML;
-jQuery.contains = Sizzle.contains;
-
-
-})();
-
-
-var runtil = /Until$/,
-       rparentsprev = /^(?:parents|prevUntil|prevAll)/,
-       // Note: This RegExp should be improved, or likely pulled from Sizzle
-       rmultiselector = /,/,
-       isSimple = /^.[^:#\[\.,]*$/,
-       slice = Array.prototype.slice,
-       POS = jQuery.expr.match.POS,
-       // methods guaranteed to produce a unique set when starting from a unique set
-       guaranteedUnique = {
-               children: true,
-               contents: true,
-               next: true,
-               prev: true
-       };
-
-jQuery.fn.extend({
-       find: function( selector ) {
-               var self = this,
-                       i, l;
-
-               if ( typeof selector !== "string" ) {
-                       return jQuery( selector ).filter(function() {
-                               for ( i = 0, l = self.length; i < l; i++ ) {
-                                       if ( jQuery.contains( self[ i ], this ) ) {
-                                               return true;
-                                       }
-                               }
-                       });
-               }
-
-               var ret = this.pushStack( "", "find", selector ),
-                       length, n, r;
-
-               for ( i = 0, l = this.length; i < l; i++ ) {
-                       length = ret.length;
-                       jQuery.find( selector, this[i], ret );
-
-                       if ( i > 0 ) {
-                               // Make sure that the results are unique
-                               for ( n = length; n < ret.length; n++ ) {
-                                       for ( r = 0; r < length; r++ ) {
-                                               if ( ret[r] === ret[n] ) {
-                                                       ret.splice(n--, 1);
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }
-               }
-
-               return ret;
-       },
-
-       has: function( target ) {
-               var targets = jQuery( target );
-               return this.filter(function() {
-                       for ( var i = 0, l = targets.length; i < l; i++ ) {
-                               if ( jQuery.contains( this, targets[i] ) ) {
-                                       return true;
-                               }
-                       }
-               });
-       },
-
-       not: function( selector ) {
-               return this.pushStack( winnow(this, selector, false), "not", selector);
-       },
-
-       filter: function( selector ) {
-               return this.pushStack( winnow(this, selector, true), "filter", selector );
-       },
-
-       is: function( selector ) {
-               return !!selector && ( typeof selector === "string" ?
-                       jQuery.filter( selector, this ).length > 0 :
-                       this.filter( selector ).length > 0 );
-       },
-
-       closest: function( selectors, context ) {
-               var ret = [], i, l, cur = this[0];
-               
-               // Array
-               if ( jQuery.isArray( selectors ) ) {
-                       var match, selector,
-                               matches = {},
-                               level = 1;
-
-                       if ( cur && selectors.length ) {
-                               for ( i = 0, l = selectors.length; i < l; i++ ) {
-                                       selector = selectors[i];
-
-                                       if ( !matches[ selector ] ) {
-                                               matches[ selector ] = POS.test( selector ) ?
-                                                       jQuery( selector, context || this.context ) :
-                                                       selector;
-                                       }
-                               }
-
-                               while ( cur && cur.ownerDocument && cur !== context ) {
-                                       for ( selector in matches ) {
-                                               match = matches[ selector ];
-
-                                               if ( match.jquery ? match.index( cur ) > -1 : jQuery( cur ).is( match ) ) {
-                                                       ret.push({ selector: selector, elem: cur, level: level });
-                                               }
-                                       }
-
-                                       cur = cur.parentNode;
-                                       level++;
-                               }
-                       }
-
-                       return ret;
-               }
-
-               // String
-               var pos = POS.test( selectors ) || typeof selectors !== "string" ?
-                               jQuery( selectors, context || this.context ) :
-                               0;
-
-               for ( i = 0, l = this.length; i < l; i++ ) {
-                       cur = this[i];
-
-                       while ( cur ) {
-                               if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
-                                       ret.push( cur );
-                                       break;
-
-                               } else {
-                                       cur = cur.parentNode;
-                                       if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
-                                               break;
-                                       }
-                               }
-                       }
-               }
-
-               ret = ret.length > 1 ? jQuery.unique( ret ) : ret;
-
-               return this.pushStack( ret, "closest", selectors );
-       },
-
-       // Determine the position of an element within
-       // the matched set of elements
-       index: function( elem ) {
-               if ( !elem || typeof elem === "string" ) {
-                       return jQuery.inArray( this[0],
-                               // If it receives a string, the selector is used
-                               // If it receives nothing, the siblings are used
-                               elem ? jQuery( elem ) : this.parent().children() );
-               }
-               // Locate the position of the desired element
-               return jQuery.inArray(
-                       // If it receives a jQuery object, the first element is used
-                       elem.jquery ? elem[0] : elem, this );
-       },
-
-       add: function( selector, context ) {
-               var set = typeof selector === "string" ?
-                               jQuery( selector, context ) :
-                               jQuery.makeArray( selector && selector.nodeType ? [ selector ] : selector ),
-                       all = jQuery.merge( this.get(), set );
-
-               return this.pushStack( isDisconnected( set[0] ) || isDisconnected( all[0] ) ?
-                       all :
-                       jQuery.unique( all ) );
-       },
-
-       andSelf: function() {
-               return this.add( this.prevObject );
-       }
-});
-
-// A painfully simple check to see if an element is disconnected
-// from a document (should be improved, where feasible).
-function isDisconnected( node ) {
-       return !node || !node.parentNode || node.parentNode.nodeType === 11;
-}
-
-jQuery.each({
-       parent: function( elem ) {
-               var parent = elem.parentNode;
-               return parent && parent.nodeType !== 11 ? parent : null;
-       },
-       parents: function( elem ) {
-               return jQuery.dir( elem, "parentNode" );
-       },
-       parentsUntil: function( elem, i, until ) {
-               return jQuery.dir( elem, "parentNode", until );
-       },
-       next: function( elem ) {
-               return jQuery.nth( elem, 2, "nextSibling" );
-       },
-       prev: function( elem ) {
-               return jQuery.nth( elem, 2, "previousSibling" );
-       },
-       nextAll: function( elem ) {
-               return jQuery.dir( elem, "nextSibling" );
-       },
-       prevAll: function( elem ) {
-               return jQuery.dir( elem, "previousSibling" );
-       },
-       nextUntil: function( elem, i, until ) {
-               return jQuery.dir( elem, "nextSibling", until );
-       },
-       prevUntil: function( elem, i, until ) {
-               return jQuery.dir( elem, "previousSibling", until );
-       },
-       siblings: function( elem ) {
-               return jQuery.sibling( elem.parentNode.firstChild, elem );
-       },
-       children: function( elem ) {
-               return jQuery.sibling( elem.firstChild );
-       },
-       contents: function( elem ) {
-               return jQuery.nodeName( elem, "iframe" ) ?
-                       elem.contentDocument || elem.contentWindow.document :
-                       jQuery.makeArray( elem.childNodes );
-       }
-}, function( name, fn ) {
-       jQuery.fn[ name ] = function( until, selector ) {
-               var ret = jQuery.map( this, fn, until ),
-                       // The variable 'args' was introduced in
-                       // https://github.com/jquery/jquery/commit/52a0238
-                       // to work around a bug in Chrome 10 (Dev) and should be removed when the bug is fixed.
-                       // http://code.google.com/p/v8/issues/detail?id=1050
-                       args = slice.call(arguments);
-
-               if ( !runtil.test( name ) ) {
-                       selector = until;
-               }
-
-               if ( selector && typeof selector === "string" ) {
-                       ret = jQuery.filter( selector, ret );
-               }
-
-               ret = this.length > 1 && !guaranteedUnique[ name ] ? jQuery.unique( ret ) : ret;
-
-               if ( (this.length > 1 || rmultiselector.test( selector )) && rparentsprev.test( name ) ) {
-                       ret = ret.reverse();
-               }
-
-               return this.pushStack( ret, name, args.join(",") );
-       };
-});
-
-jQuery.extend({
-       filter: function( expr, elems, not ) {
-               if ( not ) {
-                       expr = ":not(" + expr + ")";
-               }
-
-               return elems.length === 1 ?
-                       jQuery.find.matchesSelector(elems[0], expr) ? [ elems[0] ] : [] :
-                       jQuery.find.matches(expr, elems);
-       },
-
-       dir: function( elem, dir, until ) {
-               var matched = [],
-                       cur = elem[ dir ];
-
-               while ( cur && cur.nodeType !== 9 && (until === undefined || cur.nodeType !== 1 || !jQuery( cur ).is( until )) ) {
-                       if ( cur.nodeType === 1 ) {
-                               matched.push( cur );
-                       }
-                       cur = cur[dir];
-               }
-               return matched;
-       },
-
-       nth: function( cur, result, dir, elem ) {
-               result = result || 1;
-               var num = 0;
-
-               for ( ; cur; cur = cur[dir] ) {
-                       if ( cur.nodeType === 1 && ++num === result ) {
-                               break;
-                       }
-               }
-
-               return cur;
-       },
-
-       sibling: function( n, elem ) {
-               var r = [];
-
-               for ( ; n; n = n.nextSibling ) {
-                       if ( n.nodeType === 1 && n !== elem ) {
-                               r.push( n );
-                       }
-               }
-
-               return r;
-       }
-});
-
-// Implement the identical functionality for filter and not
-function winnow( elements, qualifier, keep ) {
-
-       // Can't pass null or undefined to indexOf in Firefox 4
-       // Set to 0 to skip string check
-       qualifier = qualifier || 0;
-
-       if ( jQuery.isFunction( qualifier ) ) {
-               return jQuery.grep(elements, function( elem, i ) {
-                       var retVal = !!qualifier.call( elem, i, elem );
-                       return retVal === keep;
-               });
-
-       } else if ( qualifier.nodeType ) {
-               return jQuery.grep(elements, function( elem, i ) {
-                       return (elem === qualifier) === keep;
-               });
-
-       } else if ( typeof qualifier === "string" ) {
-               var filtered = jQuery.grep(elements, function( elem ) {
-                       return elem.nodeType === 1;
-               });
-
-               if ( isSimple.test( qualifier ) ) {
-                       return jQuery.filter(qualifier, filtered, !keep);
-               } else {
-                       qualifier = jQuery.filter( qualifier, filtered );
-               }
-       }
-
-       return jQuery.grep(elements, function( elem, i ) {
-               return (jQuery.inArray( elem, qualifier ) >= 0) === keep;
-       });
-}
-
-
-
-
-var rinlinejQuery = / jQuery\d+="(?:\d+|null)"/g,
-       rleadingWhitespace = /^\s+/,
-       rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,
-       rtagName = /<([\w:]+)/,
-       rtbody = /<tbody/i,
-       rhtml = /<|&#?\w+;/,
-       rnocache = /<(?:script|object|embed|option|style)/i,
-       // checked="checked" or checked
-       rchecked = /checked\s*(?:[^=]|=\s*.checked.)/i,
-       rscriptType = /\/(java|ecma)script/i,
-       rcleanScript = /^\s*<!(?:\[CDATA\[|\-\-)/,
-       wrapMap = {
-               option: [ 1, "<select multiple='multiple'>", "</select>" ],
-               legend: [ 1, "<fieldset>", "</fieldset>" ],
-               thead: [ 1, "<table>", "</table>" ],
-               tr: [ 2, "<table><tbody>", "</tbody></table>" ],
-               td: [ 3, "<table><tbody><tr>", "</tr></tbody></table>" ],
-               col: [ 2, "<table><tbody></tbody><colgroup>", "</colgroup></table>" ],
-               area: [ 1, "<map>", "</map>" ],
-               _default: [ 0, "", "" ]
-       };
-
-wrapMap.optgroup = wrapMap.option;
-wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;
-wrapMap.th = wrapMap.td;
-
-// IE can't serialize <link> and <script> tags normally
-if ( !jQuery.support.htmlSerialize ) {
-       wrapMap._default = [ 1, "div<div>", "</div>" ];
-}
-
-jQuery.fn.extend({
-       text: function( text ) {
-               if ( jQuery.isFunction(text) ) {
-                       return this.each(function(i) {
-                               var self = jQuery( this );
-
-                               self.text( text.call(this, i, self.text()) );
-                       });
-               }
-
-               if ( typeof text !== "object" && text !== undefined ) {
-                       return this.empty().append( (this[0] && this[0].ownerDocument || document).createTextNode( text ) );
-               }
-
-               return jQuery.text( this );
-       },
-
-       wrapAll: function( html ) {
-               if ( jQuery.isFunction( html ) ) {
-                       return this.each(function(i) {
-                               jQuery(this).wrapAll( html.call(this, i) );
-                       });
-               }
-
-               if ( this[0] ) {
-                       // The elements to wrap the target around
-                       var wrap = jQuery( html, this[0].ownerDocument ).eq(0).clone(true);
-
-                       if ( this[0].parentNode ) {
-                               wrap.insertBefore( this[0] );
-                       }
-
-                       wrap.map(function() {
-                               var elem = this;
-
-                               while ( elem.firstChild && elem.firstChild.nodeType === 1 ) {
-                                       elem = elem.firstChild;
-                               }
-
-                               return elem;
-                       }).append( this );
-               }
-
-               return this;
-       },
-
-       wrapInner: function( html ) {
-               if ( jQuery.isFunction( html ) ) {
-                       return this.each(function(i) {
-                               jQuery(this).wrapInner( html.call(this, i) );
-                       });
-               }
-
-               return this.each(function() {
-                       var self = jQuery( this ),
-                               contents = self.contents();
-
-                       if ( contents.length ) {
-                               contents.wrapAll( html );
-
-                       } else {
-                               self.append( html );
-                       }
-               });
-       },
-
-       wrap: function( html ) {
-               return this.each(function() {
-                       jQuery( this ).wrapAll( html );
-               });
-       },
-
-       unwrap: function() {
-               return this.parent().each(function() {
-                       if ( !jQuery.nodeName( this, "body" ) ) {
-                               jQuery( this ).replaceWith( this.childNodes );
-                       }
-               }).end();
-       },
-
-       append: function() {
-               return this.domManip(arguments, true, function( elem ) {
-                       if ( this.nodeType === 1 ) {
-                               this.appendChild( elem );
-                       }
-               });
-       },
-
-       prepend: function() {
-               return this.domManip(arguments, true, function( elem ) {
-                       if ( this.nodeType === 1 ) {
-                               this.insertBefore( elem, this.firstChild );
-                       }
-               });
-       },
-
-       before: function() {
-               if ( this[0] && this[0].parentNode ) {
-                       return this.domManip(arguments, false, function( elem ) {
-                               this.parentNode.insertBefore( elem, this );
-                       });
-               } else if ( arguments.length ) {
-                       var set = jQuery(arguments[0]);
-                       set.push.apply( set, this.toArray() );
-                       return this.pushStack( set, "before", arguments );
-               }
-       },
-
-       after: function() {
-               if ( this[0] && this[0].parentNode ) {
-                       return this.domManip(arguments, false, function( elem ) {
-                               this.parentNode.insertBefore( elem, this.nextSibling );
-                       });
-               } else if ( arguments.length ) {
-                       var set = this.pushStack( this, "after", arguments );
-                       set.push.apply( set, jQuery(arguments[0]).toArray() );
-                       return set;
-               }
-       },
-
-       // keepData is for internal use only--do not document
-       remove: function( selector, keepData ) {
-               for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-                       if ( !selector || jQuery.filter( selector, [ elem ] ).length ) {
-                               if ( !keepData && elem.nodeType === 1 ) {
-                                       jQuery.cleanData( elem.getElementsByTagName("*") );
-                                       jQuery.cleanData( [ elem ] );
-                               }
-
-                               if ( elem.parentNode ) {
-                                       elem.parentNode.removeChild( elem );
-                               }
-                       }
-               }
-
-               return this;
-       },
-
-       empty: function() {
-               for ( var i = 0, elem; (elem = this[i]) != null; i++ ) {
-                       // Remove element nodes and prevent memory leaks
-                       if ( elem.nodeType === 1 ) {
-                               jQuery.cleanData( elem.getElementsByTagName("*") );
-                       }
-
-                       // Remove any remaining nodes
-                       while ( elem.firstChild ) {
-                               elem.removeChild( elem.firstChild );
-                       }
-               }
-
-               return this;
-       },
-
-       clone: function( dataAndEvents, deepDataAndEvents ) {
-               dataAndEvents = dataAndEvents == null ? false : dataAndEvents;
-               deepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;
-
-               return this.map( function () {
-                       return jQuery.clone( this, dataAndEvents, deepDataAndEvents );
-               });
-       },
-
-       html: function( value ) {
-               if ( value === undefined ) {
-                       return this[0] && this[0].nodeType === 1 ?
-                               this[0].innerHTML.replace(rinlinejQuery, "") :
-                               null;
-
-               // See if we can take a shortcut and just use innerHTML
-               } else if ( typeof value === "string" && !rnocache.test( value ) &&
-                       (jQuery.support.leadingWhitespace || !rleadingWhitespace.test( value )) &&
-                       !wrapMap[ (rtagName.exec( value ) || ["", ""])[1].toLowerCase() ] ) {
-
-                       value = value.replace(rxhtmlTag, "<$1></$2>");
-
-                       try {
-                               for ( var i = 0, l = this.length; i < l; i++ ) {
-                                       // Remove element nodes and prevent memory leaks
-                                       if ( this[i].nodeType === 1 ) {
-                                               jQuery.cleanData( this[i].getElementsByTagName("*") );
-                                               this[i].innerHTML = value;
-                                       }
-                               }
-
-                       // If using innerHTML throws an exception, use the fallback method
-                       } catch(e) {
-                               this.empty().append( value );
-                       }
-
-               } else if ( jQuery.isFunction( value ) ) {
-                       this.each(function(i){
-                               var self = jQuery( this );
-
-                               self.html( value.call(this, i, self.html()) );
-                       });
-
-               } else {
-                       this.empty().append( value );
-               }
-
-               return this;
-       },
-
-       replaceWith: function( value ) {
-               if ( this[0] && this[0].parentNode ) {
-                       // Make sure that the elements are removed from the DOM before they are inserted
-                       // this can help fix replacing a parent with child elements
-                       if ( jQuery.isFunction( value ) ) {
-                               return this.each(function(i) {
-                                       var self = jQuery(this), old = self.html();
-                                       self.replaceWith( value.call( this, i, old ) );
-                               });
-                       }
-
-                       if ( typeof value !== "string" ) {
-                               value = jQuery( value ).detach();
-                       }
-
-                       return this.each(function() {
-                               var next = this.nextSibling,
-                                       parent = this.parentNode;
-
-                               jQuery( this ).remove();
-
-                               if ( next ) {
-                                       jQuery(next).before( value );
-                               } else {
-                                       jQuery(parent).append( value );
-                               }
-                       });
-               } else {
-                       return this.length ?
-                               this.pushStack( jQuery(jQuery.isFunction(value) ? value() : value), "replaceWith", value ) :
-                               this;
-               }
-       },
-
-       detach: function( selector ) {
-               return this.remove( selector, true );
-       },
-
-       domManip: function( args, table, callback ) {
-               var results, first, fragment, parent,
-                       value = args[0],
-                       scripts = [];
-
-               // We can't cloneNode fragments that contain checked, in WebKit
-               if ( !jQuery.support.checkClone && arguments.length === 3 && typeof value === "string" && rchecked.test( value ) ) {
-                       return this.each(function() {
-                               jQuery(this).domManip( args, table, callback, true );
-                       });
-               }
-
-               if ( jQuery.isFunction(value) ) {
-                       return this.each(function(i) {
-                               var self = jQuery(this);
-                               args[0] = value.call(this, i, table ? self.html() : undefined);
-                               self.domManip( args, table, callback );
-                       });
-               }
-
-               if ( this[0] ) {
-                       parent = value && value.parentNode;
-
-                       // If we're in a fragment, just use that instead of building a new one
-                       if ( jQuery.support.parentNode && parent && parent.nodeType === 11 && parent.childNodes.length === this.length ) {
-                               results = { fragment: parent };
-
-                       } else {
-                               results = jQuery.buildFragment( args, this, scripts );
-                       }
-
-                       fragment = results.fragment;
-
-                       if ( fragment.childNodes.length === 1 ) {
-                               first = fragment = fragment.firstChild;
-                       } else {
-                               first = fragment.firstChild;
-                       }
-
-                       if ( first ) {
-                               table = table && jQuery.nodeName( first, "tr" );
-
-                               for ( var i = 0, l = this.length, lastIndex = l - 1; i < l; i++ ) {
-                                       callback.call(
-                                               table ?
-                                                       root(this[i], first) :
-                                                       this[i],
-                                               // Make sure that we do not leak memory by inadvertently discarding
-                                               // the original fragment (which might have attached data) instead of
-                                               // using it; in addition, use the original fragment object for the last
-                                               // item instead of first because it can end up being emptied incorrectly
-                                               // in certain situations (Bug #8070).
-                                               // Fragments from the fragment cache must always be cloned and never used
-                                               // in place.
-                                               results.cacheable || (l > 1 && i < lastIndex) ?
-                                                       jQuery.clone( fragment, true, true ) :
-                                                       fragment
-                                       );
-                               }
-                       }
-
-                       if ( scripts.length ) {
-                               jQuery.each( scripts, evalScript );
-                       }
-               }
-
-               return this;
-       }
-});
-
-function root( elem, cur ) {
-       return jQuery.nodeName(elem, "table") ?
-               (elem.getElementsByTagName("tbody")[0] ||
-               elem.appendChild(elem.ownerDocument.createElement("tbody"))) :
-               elem;
-}
-
-function cloneCopyEvent( src, dest ) {
-
-       if ( dest.nodeType !== 1 || !jQuery.hasData( src ) ) {
-               return;
-       }
-
-       var internalKey = jQuery.expando,
-               oldData = jQuery.data( src ),
-               curData = jQuery.data( dest, oldData );
-
-       // Switch to use the internal data object, if it exists, for the next
-       // stage of data copying
-       if ( (oldData = oldData[ internalKey ]) ) {
-               var events = oldData.events;
-                               curData = curData[ internalKey ] = jQuery.extend({}, oldData);
-
-               if ( events ) {
-                       delete curData.handle;
-                       curData.events = {};
-
-                       for ( var type in events ) {
-                               for ( var i = 0, l = events[ type ].length; i < l; i++ ) {
-                                       jQuery.event.add( dest, type + ( events[ type ][ i ].namespace ? "." : "" ) + events[ type ][ i ].namespace, events[ type ][ i ], events[ type ][ i ].data );
-                               }
-                       }
-               }
-       }
-}
-
-function cloneFixAttributes( src, dest ) {
-       var nodeName;
-
-       // We do not need to do anything for non-Elements
-       if ( dest.nodeType !== 1 ) {
-               return;
-       }
-
-       // clearAttributes removes the attributes, which we don't want,
-       // but also removes the attachEvent events, which we *do* want
-       if ( dest.clearAttributes ) {
-               dest.clearAttributes();
-       }
-
-       // mergeAttributes, in contrast, only merges back on the
-       // original attributes, not the events
-       if ( dest.mergeAttributes ) {
-               dest.mergeAttributes( src );
-       }
-
-       nodeName = dest.nodeName.toLowerCase();
-
-       // IE6-8 fail to clone children inside object elements that use
-       // the proprietary classid attribute value (rather than the type
-       // attribute) to identify the type of content to display
-       if ( nodeName === "object" ) {
-               dest.outerHTML = src.outerHTML;
-
-       } else if ( nodeName === "input" && (src.type === "checkbox" || src.type === "radio") ) {
-               // IE6-8 fails to persist the checked state of a cloned checkbox
-               // or radio button. Worse, IE6-7 fail to give the cloned element
-               // a checked appearance if the defaultChecked value isn't also set
-               if ( src.checked ) {
-                       dest.defaultChecked = dest.checked = src.checked;
-               }
-
-               // IE6-7 get confused and end up setting the value of a cloned
-               // checkbox/radio button to an empty string instead of "on"
-               if ( dest.value !== src.value ) {
-                       dest.value = src.value;
-               }
-
-       // IE6-8 fails to return the selected option to the default selected
-       // state when cloning options
-       } else if ( nodeName === "option" ) {
-               dest.selected = src.defaultSelected;
-
-       // IE6-8 fails to set the defaultValue to the correct value when
-       // cloning other types of input fields
-       } else if ( nodeName === "input" || nodeName === "textarea" ) {
-               dest.defaultValue = src.defaultValue;
-       }
-
-       // Event data gets referenced instead of copied if the expando
-       // gets copied too
-       dest.removeAttribute( jQuery.expando );
-}
-
-jQuery.buildFragment = function( args, nodes, scripts ) {
-       var fragment, cacheable, cacheresults, doc;
-
-  // nodes may contain either an explicit document object,
-  // a jQuery collection or context object.
-  // If nodes[0] contains a valid object to assign to doc
-  if ( nodes && nodes[0] ) {
-    doc = nodes[0].ownerDocument || nodes[0];
-  }
-
-  // Ensure that an attr object doesn't incorrectly stand in as a document object
-       // Chrome and Firefox seem to allow this to occur and will throw exception
-       // Fixes #8950
-       if ( !doc.createDocumentFragment ) {
-               doc = document;
-       }
-
-       // Only cache "small" (1/2 KB) HTML strings that are associated with the main document
-       // Cloning options loses the selected state, so don't cache them
-       // IE 6 doesn't like it when you put <object> or <embed> elements in a fragment
-       // Also, WebKit does not clone 'checked' attributes on cloneNode, so don't cache
-       if ( args.length === 1 && typeof args[0] === "string" && args[0].length < 512 && doc === document &&
-               args[0].charAt(0) === "<" && !rnocache.test( args[0] ) && (jQuery.support.checkClone || !rchecked.test( args[0] )) ) {
-
-               cacheable = true;
-
-               cacheresults = jQuery.fragments[ args[0] ];
-               if ( cacheresults && cacheresults !== 1 ) {
-                       fragment = cacheresults;
-               }
-       }
-
-       if ( !fragment ) {
-               fragment = doc.createDocumentFragment();
-               jQuery.clean( args, doc, fragment, scripts );
-       }
-
-       if ( cacheable ) {
-               jQuery.fragments[ args[0] ] = cacheresults ? fragment : 1;
-       }
-
-       return { fragment: fragment, cacheable: cacheable };
-};
-
-jQuery.fragments = {};
-
-jQuery.each({
-       appendTo: "append",
-       prependTo: "prepend",
-       insertBefore: "before",
-       insertAfter: "after",
-       replaceAll: "replaceWith"
-}, function( name, original ) {
-       jQuery.fn[ name ] = function( selector ) {
-               var ret = [],
-                       insert = jQuery( selector ),
-                       parent = this.length === 1 && this[0].parentNode;
-
-               if ( parent && parent.nodeType === 11 && parent.childNodes.length === 1 && insert.length === 1 ) {
-                       insert[ original ]( this[0] );
-                       return this;
-
-               } else {
-                       for ( var i = 0, l = insert.length; i < l; i++ ) {
-                               var elems = (i > 0 ? this.clone(true) : this).get();
-                               jQuery( insert[i] )[ original ]( elems );
-                               ret = ret.concat( elems );
-                       }
-
-                       return this.pushStack( ret, name, insert.selector );
-               }
-       };
-});
-
-function getAll( elem ) {
-       if ( "getElementsByTagName" in elem ) {
-               return elem.getElementsByTagName( "*" );
-
-       } else if ( "querySelectorAll" in elem ) {
-               return elem.querySelectorAll( "*" );
-
-       } else {
-               return [];
-       }
-}
-
-// Used in clean, fixes the defaultChecked property
-function fixDefaultChecked( elem ) {
-       if ( elem.type === "checkbox" || elem.type === "radio" ) {
-               elem.defaultChecked = elem.checked;
-       }
-}
-// Finds all inputs and passes them to fixDefaultChecked
-function findInputs( elem ) {
-       if ( jQuery.nodeName( elem, "input" ) ) {
-               fixDefaultChecked( elem );
-       } else if ( "getElementsByTagName" in elem ) {
-               jQuery.grep( elem.getElementsByTagName("input"), fixDefaultChecked );
-       }
-}
-
-jQuery.extend({
-       clone: function( elem, dataAndEvents, deepDataAndEvents ) {
-               var clone = elem.cloneNode(true),
-                               srcElements,
-                               destElements,
-                               i;
-
-               if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
-                               (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
-                       // IE copies events bound via attachEvent when using cloneNode.
-                       // Calling detachEvent on the clone will also remove the events
-                       // from the original. In order to get around this, we use some
-                       // proprietary methods to clear the events. Thanks to MooTools
-                       // guys for this hotness.
-
-                       cloneFixAttributes( elem, clone );
-
-                       // Using Sizzle here is crazy slow, so we use getElementsByTagName
-                       // instead
-                       srcElements = getAll( elem );
-                       destElements = getAll( clone );
-
-                       // Weird iteration because IE will replace the length property
-                       // with an element if you are cloning the body and one of the
-                       // elements on the page has a name or id of "length"
-                       for ( i = 0; srcElements[i]; ++i ) {
-                               cloneFixAttributes( srcElements[i], destElements[i] );
-                       }
-               }
-
-               // Copy the events from the original to the clone
-               if ( dataAndEvents ) {
-                       cloneCopyEvent( elem, clone );
-
-                       if ( deepDataAndEvents ) {
-                               srcElements = getAll( elem );
-                               destElements = getAll( clone );
-
-                               for ( i = 0; srcElements[i]; ++i ) {
-                                       cloneCopyEvent( srcElements[i], destElements[i] );
-                               }
-                       }
-               }
-
-               srcElements = destElements = null;
-
-               // Return the cloned set
-               return clone;
-       },
-
-       clean: function( elems, context, fragment, scripts ) {
-               var checkScriptType;
-
-               context = context || document;
-
-               // !context.createElement fails in IE with an error but returns typeof 'object'
-               if ( typeof context.createElement === "undefined" ) {
-                       context = context.ownerDocument || context[0] && context[0].ownerDocument || document;
-               }
-
-               var ret = [], j;
-
-               for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-                       if ( typeof elem === "number" ) {
-                               elem += "";
-                       }
-
-                       if ( !elem ) {
-                               continue;
-                       }
-
-                       // Convert html string into DOM nodes
-                       if ( typeof elem === "string" ) {
-                               if ( !rhtml.test( elem ) ) {
-                                       elem = context.createTextNode( elem );
-                               } else {
-                                       // Fix "XHTML"-style tags in all browsers
-                                       elem = elem.replace(rxhtmlTag, "<$1></$2>");
-
-                                       // Trim whitespace, otherwise indexOf won't work as expected
-                                       var tag = (rtagName.exec( elem ) || ["", ""])[1].toLowerCase(),
-                                               wrap = wrapMap[ tag ] || wrapMap._default,
-                                               depth = wrap[0],
-                                               div = context.createElement("div");
-
-                                       // Go to html and back, then peel off extra wrappers
-                                       div.innerHTML = wrap[1] + elem + wrap[2];
-
-                                       // Move to the right depth
-                                       while ( depth-- ) {
-                                               div = div.lastChild;
-                                       }
-
-                                       // Remove IE's autoinserted <tbody> from table fragments
-                                       if ( !jQuery.support.tbody ) {
-
-                                               // String was a <table>, *may* have spurious <tbody>
-                                               var hasBody = rtbody.test(elem),
-                                                       tbody = tag === "table" && !hasBody ?
-                                                               div.firstChild && div.firstChild.childNodes :
-
-                                                               // String was a bare <thead> or <tfoot>
-                                                               wrap[1] === "<table>" && !hasBody ?
-                                                                       div.childNodes :
-                                                                       [];
-
-                                               for ( j = tbody.length - 1; j >= 0 ; --j ) {
-                                                       if ( jQuery.nodeName( tbody[ j ], "tbody" ) && !tbody[ j ].childNodes.length ) {
-                                                               tbody[ j ].parentNode.removeChild( tbody[ j ] );
-                                                       }
-                                               }
-                                       }
-
-                                       // IE completely kills leading whitespace when innerHTML is used
-                                       if ( !jQuery.support.leadingWhitespace && rleadingWhitespace.test( elem ) ) {
-                                               div.insertBefore( context.createTextNode( rleadingWhitespace.exec(elem)[0] ), div.firstChild );
-                                       }
-
-                                       elem = div.childNodes;
-                               }
-                       }
-
-                       // Resets defaultChecked for any radios and checkboxes
-                       // about to be appended to the DOM in IE 6/7 (#8060)
-                       var len;
-                       if ( !jQuery.support.appendChecked ) {
-                               if ( elem[0] && typeof (len = elem.length) === "number" ) {
-                                       for ( j = 0; j < len; j++ ) {
-                                               findInputs( elem[j] );
-                                       }
-                               } else {
-                                       findInputs( elem );
-                               }
-                       }
-
-                       if ( elem.nodeType ) {
-                               ret.push( elem );
-                       } else {
-                               ret = jQuery.merge( ret, elem );
-                       }
-               }
-
-               if ( fragment ) {
-                       checkScriptType = function( elem ) {
-                               return !elem.type || rscriptType.test( elem.type );
-                       };
-                       for ( i = 0; ret[i]; i++ ) {
-                               if ( scripts && jQuery.nodeName( ret[i], "script" ) && (!ret[i].type || ret[i].type.toLowerCase() === "text/javascript") ) {
-                                       scripts.push( ret[i].parentNode ? ret[i].parentNode.removeChild( ret[i] ) : ret[i] );
-
-                               } else {
-                                       if ( ret[i].nodeType === 1 ) {
-                                               var jsTags = jQuery.grep( ret[i].getElementsByTagName( "script" ), checkScriptType );
-
-                                               ret.splice.apply( ret, [i + 1, 0].concat( jsTags ) );
-                                       }
-                                       fragment.appendChild( ret[i] );
-                               }
-                       }
-               }
-
-               return ret;
-       },
-
-       cleanData: function( elems ) {
-               var data, id, cache = jQuery.cache, internalKey = jQuery.expando, special = jQuery.event.special,
-                       deleteExpando = jQuery.support.deleteExpando;
-
-               for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) {
-                       if ( elem.nodeName && jQuery.noData[elem.nodeName.toLowerCase()] ) {
-                               continue;
-                       }
-
-                       id = elem[ jQuery.expando ];
-
-                       if ( id ) {
-                               data = cache[ id ] && cache[ id ][ internalKey ];
-
-                               if ( data && data.events ) {
-                                       for ( var type in data.events ) {
-                                               if ( special[ type ] ) {
-                                                       jQuery.event.remove( elem, type );
-
-                                               // This is a shortcut to avoid jQuery.event.remove's overhead
-                                               } else {
-                                                       jQuery.removeEvent( elem, type, data.handle );
-                                               }
-                                       }
-
-                                       // Null the DOM reference to avoid IE6/7/8 leak (#7054)
-                                       if ( data.handle ) {
-                                               data.handle.elem = null;
-                                       }
-                               }
-
-                               if ( deleteExpando ) {
-                                       delete elem[ jQuery.expando ];
-
-                               } else if ( elem.removeAttribute ) {
-                                       elem.removeAttribute( jQuery.expando );
-                               }
-
-                               delete cache[ id ];
-                       }
-               }
-       }
-});
-
-function evalScript( i, elem ) {
-       if ( elem.src ) {
-               jQuery.ajax({
-                       url: elem.src,
-                       async: false,
-                       dataType: "script"
-               });
-       } else {
-               jQuery.globalEval( ( elem.text || elem.textContent || elem.innerHTML || "" ).replace( rcleanScript, "/*$0*/" ) );
-       }
-
-       if ( elem.parentNode ) {
-               elem.parentNode.removeChild( elem );
-       }
-}
-
-
-
-var ralpha = /alpha\([^)]*\)/i,
-       ropacity = /opacity=([^)]*)/,
-       // fixed for IE9, see #8346
-       rupper = /([A-Z]|^ms)/g,
-       rnumpx = /^-?\d+(?:px)?$/i,
-       rnum = /^-?\d/,
-       rrelNum = /^[+\-]=/,
-       rrelNumFilter = /[^+\-\.\de]+/g,
-
-       cssShow = { position: "absolute", visibility: "hidden", display: "block" },
-       cssWidth = [ "Left", "Right" ],
-       cssHeight = [ "Top", "Bottom" ],
-       curCSS,
-
-       getComputedStyle,
-       currentStyle;
-
-jQuery.fn.css = function( name, value ) {
-       // Setting 'undefined' is a no-op
-       if ( arguments.length === 2 && value === undefined ) {
-               return this;
-       }
-
-       return jQuery.access( this, name, value, true, function( elem, name, value ) {
-               return value !== undefined ?
-                       jQuery.style( elem, name, value ) :
-                       jQuery.css( elem, name );
-       });
-};
-
-jQuery.extend({
-       // Add in style property hooks for overriding the default
-       // behavior of getting and setting a style property
-       cssHooks: {
-               opacity: {
-                       get: function( elem, computed ) {
-                               if ( computed ) {
-                                       // We should always get a number back from opacity
-                                       var ret = curCSS( elem, "opacity", "opacity" );
-                                       return ret === "" ? "1" : ret;
-
-                               } else {
-                                       return elem.style.opacity;
-                               }
-                       }
-               }
-       },
-
-       // Exclude the following css properties to add px
-       cssNumber: {
-               "fillOpacity": true,
-               "fontWeight": true,
-               "lineHeight": true,
-               "opacity": true,
-               "orphans": true,
-               "widows": true,
-               "zIndex": true,
-               "zoom": true
-       },
-
-       // Add in properties whose names you wish to fix before
-       // setting or getting the value
-       cssProps: {
-               // normalize float css property
-               "float": jQuery.support.cssFloat ? "cssFloat" : "styleFloat"
-       },
-
-       // Get and set the style property on a DOM Node
-       style: function( elem, name, value, extra ) {
-               // Don't set styles on text and comment nodes
-               if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
-                       return;
-               }
-
-               // Make sure that we're working with the right name
-               var ret, type, origName = jQuery.camelCase( name ),
-                       style = elem.style, hooks = jQuery.cssHooks[ origName ];
-
-               name = jQuery.cssProps[ origName ] || origName;
-
-               // Check if we're setting a value
-               if ( value !== undefined ) {
-                       type = typeof value;
-
-                       // Make sure that NaN and null values aren't set. See: #7116
-                       if ( type === "number" && isNaN( value ) || value == null ) {
-                               return;
-                       }
-
-                       // convert relative number strings (+= or -=) to relative numbers. #7345
-                       if ( type === "string" && rrelNum.test( value ) ) {
-                               value = +value.replace( rrelNumFilter, "" ) + parseFloat( jQuery.css( elem, name ) );
-                               // Fixes bug #9237
-                               type = "number";
-                       }
-
-                       // If a number was passed in, add 'px' to the (except for certain CSS properties)
-                       if ( type === "number" && !jQuery.cssNumber[ origName ] ) {
-                               value += "px";
-                       }
-
-                       // If a hook was provided, use that value, otherwise just set the specified value
-                       if ( !hooks || !("set" in hooks) || (value = hooks.set( elem, value )) !== undefined ) {
-                               // Wrapped to prevent IE from throwing errors when 'invalid' values are provided
-                               // Fixes bug #5509
-                               try {
-                                       style[ name ] = value;
-                               } catch(e) {}
-                       }
-
-               } else {
-                       // If a hook was provided get the non-computed value from there
-                       if ( hooks && "get" in hooks && (ret = hooks.get( elem, false, extra )) !== undefined ) {
-                               return ret;
-                       }
-
-                       // Otherwise just get the value from the style object
-                       return style[ name ];
-               }
-       },
-
-       css: function( elem, name, extra ) {
-               var ret, hooks;
-
-               // Make sure that we're working with the right name
-               name = jQuery.camelCase( name );
-               hooks = jQuery.cssHooks[ name ];
-               name = jQuery.cssProps[ name ] || name;
-
-               // cssFloat needs a special treatment
-               if ( name === "cssFloat" ) {
-                       name = "float";
-               }
-
-               // If a hook was provided get the computed value from there
-               if ( hooks && "get" in hooks && (ret = hooks.get( elem, true, extra )) !== undefined ) {
-                       return ret;
-
-               // Otherwise, if a way to get the computed value exists, use that
-               } else if ( curCSS ) {
-                       return curCSS( elem, name );
-               }
-       },
-
-       // A method for quickly swapping in/out CSS properties to get correct calculations
-       swap: function( elem, options, callback ) {
-               var old = {};
-
-               // Remember the old values, and insert the new ones
-               for ( var name in options ) {
-                       old[ name ] = elem.style[ name ];
-                       elem.style[ name ] = options[ name ];
-               }
-
-               callback.call( elem );
-
-               // Revert the old values
-               for ( name in options ) {
-                       elem.style[ name ] = old[ name ];
-               }
-       }
-});
-
-// DEPRECATED, Use jQuery.css() instead
-jQuery.curCSS = jQuery.css;
-
-jQuery.each(["height", "width"], function( i, name ) {
-       jQuery.cssHooks[ name ] = {
-               get: function( elem, computed, extra ) {
-                       var val;
-
-                       if ( computed ) {
-                               if ( elem.offsetWidth !== 0 ) {
-                                       return getWH( elem, name, extra );
-                               } else {
-                                       jQuery.swap( elem, cssShow, function() {
-                                               val = getWH( elem, name, extra );
-                                       });
-                               }
-
-                               return val;
-                       }
-               },
-
-               set: function( elem, value ) {
-                       if ( rnumpx.test( value ) ) {
-                               // ignore negative width and height values #1599
-                               value = parseFloat( value );
-
-                               if ( value >= 0 ) {
-                                       return value + "px";
-                               }
-
-                       } else {
-                               return value;
-                       }
-               }
-       };
-});
-
-if ( !jQuery.support.opacity ) {
-       jQuery.cssHooks.opacity = {
-               get: function( elem, computed ) {
-                       // IE uses filters for opacity
-                       return ropacity.test( (computed && elem.currentStyle ? elem.currentStyle.filter : elem.style.filter) || "" ) ?
-                               ( parseFloat( RegExp.$1 ) / 100 ) + "" :
-                               computed ? "1" : "";
-               },
-
-               set: function( elem, value ) {
-                       var style = elem.style,
-                               currentStyle = elem.currentStyle;
-
-                       // IE has trouble with opacity if it does not have layout
-                       // Force it by setting the zoom level
-                       style.zoom = 1;
-
-                       // Set the alpha filter to set the opacity
-                       var opacity = jQuery.isNaN( value ) ?
-                               "" :
-                               "alpha(opacity=" + value * 100 + ")",
-                               filter = currentStyle && currentStyle.filter || style.filter || "";
-
-                       style.filter = ralpha.test( filter ) ?
-                               filter.replace( ralpha, opacity ) :
-                               filter + " " + opacity;
-               }
-       };
-}
-
-jQuery(function() {
-       // This hook cannot be added until DOM ready because the support test
-       // for it is not run until after DOM ready
-       if ( !jQuery.support.reliableMarginRight ) {
-               jQuery.cssHooks.marginRight = {
-                       get: function( elem, computed ) {
-                               // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
-                               // Work around by temporarily setting element display to inline-block
-                               var ret;
-                               jQuery.swap( elem, { "display": "inline-block" }, function() {
-                                       if ( computed ) {
-                                               ret = curCSS( elem, "margin-right", "marginRight" );
-                                       } else {
-                                               ret = elem.style.marginRight;
-                                       }
-                               });
-                               return ret;
-                       }
-               };
-       }
-});
-
-if ( document.defaultView && document.defaultView.getComputedStyle ) {
-       getComputedStyle = function( elem, name ) {
-               var ret, defaultView, computedStyle;
-
-               name = name.replace( rupper, "-$1" ).toLowerCase();
-
-               if ( !(defaultView = elem.ownerDocument.defaultView) ) {
-                       return undefined;
-               }
-
-               if ( (computedStyle = defaultView.getComputedStyle( elem, null )) ) {
-                       ret = computedStyle.getPropertyValue( name );
-                       if ( ret === "" && !jQuery.contains( elem.ownerDocument.documentElement, elem ) ) {
-                               ret = jQuery.style( elem, name );
-                       }
-               }
-
-               return ret;
-       };
-}
-
-if ( document.documentElement.currentStyle ) {
-       currentStyle = function( elem, name ) {
-               var left,
-                       ret = elem.currentStyle && elem.currentStyle[ name ],
-                       rsLeft = elem.runtimeStyle && elem.runtimeStyle[ name ],
-                       style = elem.style;
-
-               // From the awesome hack by Dean Edwards
-               // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
-
-               // If we're not dealing with a regular pixel number
-               // but a number that has a weird ending, we need to convert it to pixels
-               if ( !rnumpx.test( ret ) && rnum.test( ret ) ) {
-                       // Remember the original values
-                       left = style.left;
-
-                       // Put in the new values to get a computed value out
-                       if ( rsLeft ) {
-                               elem.runtimeStyle.left = elem.currentStyle.left;
-                       }
-                       style.left = name === "fontSize" ? "1em" : (ret || 0);
-                       ret = style.pixelLeft + "px";
-
-                       // Revert the changed values
-                       style.left = left;
-                       if ( rsLeft ) {
-                               elem.runtimeStyle.left = rsLeft;
-                       }
-               }
-
-               return ret === "" ? "auto" : ret;
-       };
-}
-
-curCSS = getComputedStyle || currentStyle;
-
-function getWH( elem, name, extra ) {
-
-       // Start with offset property
-       var val = name === "width" ? elem.offsetWidth : elem.offsetHeight,
-               which = name === "width" ? cssWidth : cssHeight;
-
-       if ( val > 0 ) {
-               if ( extra !== "border" ) {
-                       jQuery.each( which, function() {
-                               if ( !extra ) {
-                                       val -= parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
-                               }
-                               if ( extra === "margin" ) {
-                                       val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
-                               } else {
-                                       val -= parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
-                               }
-                       });
-               }
-
-               return val + "px";
-       }
-
-       // Fall back to computed then uncomputed css if necessary
-       val = curCSS( elem, name, name );
-       if ( val < 0 || val == null ) {
-               val = elem.style[ name ] || 0;
-       }
-       // Normalize "", auto, and prepare for extra
-       val = parseFloat( val ) || 0;
-
-       // Add padding, border, margin
-       if ( extra ) {
-               jQuery.each( which, function() {
-                       val += parseFloat( jQuery.css( elem, "padding" + this ) ) || 0;
-                       if ( extra !== "padding" ) {
-                               val += parseFloat( jQuery.css( elem, "border" + this + "Width" ) ) || 0;
-                       }
-                       if ( extra === "margin" ) {
-                               val += parseFloat( jQuery.css( elem, extra + this ) ) || 0;
-                       }
-               });
-       }
-
-       return val + "px";
-}
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-       jQuery.expr.filters.hidden = function( elem ) {
-               var width = elem.offsetWidth,
-                       height = elem.offsetHeight;
-
-               return (width === 0 && height === 0) || (!jQuery.support.reliableHiddenOffsets && (elem.style.display || jQuery.css( elem, "display" )) === "none");
-       };
-
-       jQuery.expr.filters.visible = function( elem ) {
-               return !jQuery.expr.filters.hidden( elem );
-       };
-}
-
-
-
-
-var r20 = /%20/g,
-       rbracket = /\[\]$/,
-       rCRLF = /\r?\n/g,
-       rhash = /#.*$/,
-       rheaders = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg, // IE leaves an \r character at EOL
-       rinput = /^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,
-       // #7653, #8125, #8152: local protocol detection
-       rlocalProtocol = /^(?:about|app|app\-storage|.+\-extension|file|widget):$/,
-       rnoContent = /^(?:GET|HEAD)$/,
-       rprotocol = /^\/\//,
-       rquery = /\?/,
-       rscript = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,
-       rselectTextarea = /^(?:select|textarea)/i,
-       rspacesAjax = /\s+/,
-       rts = /([?&])_=[^&]*/,
-       rurl = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,
-
-       // Keep a copy of the old load method
-       _load = jQuery.fn.load,
-
-       /* Prefilters
-        * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)
-        * 2) These are called:
-        *    - BEFORE asking for a transport
-        *    - AFTER param serialization (s.data is a string if s.processData is true)
-        * 3) key is the dataType
-        * 4) the catchall symbol "*" can be used
-        * 5) execution will start with transport dataType and THEN continue down to "*" if needed
-        */
-       prefilters = {},
-
-       /* Transports bindings
-        * 1) key is the dataType
-        * 2) the catchall symbol "*" can be used
-        * 3) selection will start with transport dataType and THEN go to "*" if needed
-        */
-       transports = {},
-
-       // Document location
-       ajaxLocation,
-
-       // Document location segments
-       ajaxLocParts;
-
-// #8138, IE may throw an exception when accessing
-// a field from window.location if document.domain has been set
-try {
-       ajaxLocation = location.href;
-} catch( e ) {
-       // Use the href attribute of an A element
-       // since IE will modify it given document.location
-       ajaxLocation = document.createElement( "a" );
-       ajaxLocation.href = "";
-       ajaxLocation = ajaxLocation.href;
-}
-
-// Segment location into parts
-ajaxLocParts = rurl.exec( ajaxLocation.toLowerCase() ) || [];
-
-// Base "constructor" for jQuery.ajaxPrefilter and jQuery.ajaxTransport
-function addToPrefiltersOrTransports( structure ) {
-
-       // dataTypeExpression is optional and defaults to "*"
-       return function( dataTypeExpression, func ) {
-
-               if ( typeof dataTypeExpression !== "string" ) {
-                       func = dataTypeExpression;
-                       dataTypeExpression = "*";
-               }
-
-               if ( jQuery.isFunction( func ) ) {
-                       var dataTypes = dataTypeExpression.toLowerCase().split( rspacesAjax ),
-                               i = 0,
-                               length = dataTypes.length,
-                               dataType,
-                               list,
-                               placeBefore;
-
-                       // For each dataType in the dataTypeExpression
-                       for(; i < length; i++ ) {
-                               dataType = dataTypes[ i ];
-                               // We control if we're asked to add before
-                               // any existing element
-                               placeBefore = /^\+/.test( dataType );
-                               if ( placeBefore ) {
-                                       dataType = dataType.substr( 1 ) || "*";
-                               }
-                               list = structure[ dataType ] = structure[ dataType ] || [];
-                               // then we add to the structure accordingly
-                               list[ placeBefore ? "unshift" : "push" ]( func );
-                       }
-               }
-       };
-}
-
-// Base inspection function for prefilters and transports
-function inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR,
-               dataType /* internal */, inspected /* internal */ ) {
-
-       dataType = dataType || options.dataTypes[ 0 ];
-       inspected = inspected || {};
-
-       inspected[ dataType ] = true;
-
-       var list = structure[ dataType ],
-               i = 0,
-               length = list ? list.length : 0,
-               executeOnly = ( structure === prefilters ),
-               selection;
-
-       for(; i < length && ( executeOnly || !selection ); i++ ) {
-               selection = list[ i ]( options, originalOptions, jqXHR );
-               // If we got redirected to another dataType
-               // we try there if executing only and not done already
-               if ( typeof selection === "string" ) {
-                       if ( !executeOnly || inspected[ selection ] ) {
-                               selection = undefined;
-                       } else {
-                               options.dataTypes.unshift( selection );
-                               selection = inspectPrefiltersOrTransports(
-                                               structure, options, originalOptions, jqXHR, selection, inspected );
-                       }
-               }
-       }
-       // If we're only executing or nothing was selected
-       // we try the catchall dataType if not done already
-       if ( ( executeOnly || !selection ) && !inspected[ "*" ] ) {
-               selection = inspectPrefiltersOrTransports(
-                               structure, options, originalOptions, jqXHR, "*", inspected );
-       }
-       // unnecessary when only executing (prefilters)
-       // but it'll be ignored by the caller in that case
-       return selection;
-}
-
-jQuery.fn.extend({
-       load: function( url, params, callback ) {
-               if ( typeof url !== "string" && _load ) {
-                       return _load.apply( this, arguments );
-
-               // Don't do a request if no elements are being requested
-               } else if ( !this.length ) {
-                       return this;
-               }
-
-               var off = url.indexOf( " " );
-               if ( off >= 0 ) {
-                       var selector = url.slice( off, url.length );
-                       url = url.slice( 0, off );
-               }
-
-               // Default to a GET request
-               var type = "GET";
-
-               // If the second parameter was provided
-               if ( params ) {
-                       // If it's a function
-                       if ( jQuery.isFunction( params ) ) {
-                               // We assume that it's the callback
-                               callback = params;
-                               params = undefined;
-
-                       // Otherwise, build a param string
-                       } else if ( typeof params === "object" ) {
-                               params = jQuery.param( params, jQuery.ajaxSettings.traditional );
-                               type = "POST";
-                       }
-               }
-
-               var self = this;
-
-               // Request the remote document
-               jQuery.ajax({
-                       url: url,
-                       type: type,
-                       dataType: "html",
-                       data: params,
-                       // Complete callback (responseText is used internally)
-                       complete: function( jqXHR, status, responseText ) {
-                               // Store the response as specified by the jqXHR object
-                               responseText = jqXHR.responseText;
-                               // If successful, inject the HTML into all the matched elements
-                               if ( jqXHR.isResolved() ) {
-                                       // #4825: Get the actual response in case
-                                       // a dataFilter is present in ajaxSettings
-                                       jqXHR.done(function( r ) {
-                                               responseText = r;
-                                       });
-                                       // See if a selector was specified
-                                       self.html( selector ?
-                                               // Create a dummy div to hold the results
-                                               jQuery("<div>")
-                                                       // inject the contents of the document in, removing the scripts
-                                                       // to avoid any 'Permission Denied' errors in IE
-                                                       .append(responseText.replace(rscript, ""))
-
-                                                       // Locate the specified elements
-                                                       .find(selector) :
-
-                                               // If not, just inject the full result
-                                               responseText );
-                               }
-
-                               if ( callback ) {
-                                       self.each( callback, [ responseText, status, jqXHR ] );
-                               }
-                       }
-               });
-
-               return this;
-       },
-
-       serialize: function() {
-               return jQuery.param( this.serializeArray() );
-       },
-
-       serializeArray: function() {
-               return this.map(function(){
-                       return this.elements ? jQuery.makeArray( this.elements ) : this;
-               })
-               .filter(function(){
-                       return this.name && !this.disabled &&
-                               ( this.checked || rselectTextarea.test( this.nodeName ) ||
-                                       rinput.test( this.type ) );
-               })
-               .map(function( i, elem ){
-                       var val = jQuery( this ).val();
-
-                       return val == null ?
-                               null :
-                               jQuery.isArray( val ) ?
-                                       jQuery.map( val, function( val, i ){
-                                               return { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-                                       }) :
-                                       { name: elem.name, value: val.replace( rCRLF, "\r\n" ) };
-               }).get();
-       }
-});
-
-// Attach a bunch of functions for handling common AJAX events
-jQuery.each( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split( " " ), function( i, o ){
-       jQuery.fn[ o ] = function( f ){
-               return this.bind( o, f );
-       };
-});
-
-jQuery.each( [ "get", "post" ], function( i, method ) {
-       jQuery[ method ] = function( url, data, callback, type ) {
-               // shift arguments if data argument was omitted
-               if ( jQuery.isFunction( data ) ) {
-                       type = type || callback;
-                       callback = data;
-                       data = undefined;
-               }
-
-               return jQuery.ajax({
-                       type: method,
-                       url: url,
-                       data: data,
-                       success: callback,
-                       dataType: type
-               });
-       };
-});
-
-jQuery.extend({
-
-       getScript: function( url, callback ) {
-               return jQuery.get( url, undefined, callback, "script" );
-       },
-
-       getJSON: function( url, data, callback ) {
-               return jQuery.get( url, data, callback, "json" );
-       },
-
-       // Creates a full fledged settings object into target
-       // with both ajaxSettings and settings fields.
-       // If target is omitted, writes into ajaxSettings.
-       ajaxSetup: function ( target, settings ) {
-               if ( !settings ) {
-                       // Only one parameter, we extend ajaxSettings
-                       settings = target;
-                       target = jQuery.extend( true, jQuery.ajaxSettings, settings );
-               } else {
-                       // target was provided, we extend into it
-                       jQuery.extend( true, target, jQuery.ajaxSettings, settings );
-               }
-               // Flatten fields we don't want deep extended
-               for( var field in { context: 1, url: 1 } ) {
-                       if ( field in settings ) {
-                               target[ field ] = settings[ field ];
-                       } else if( field in jQuery.ajaxSettings ) {
-                               target[ field ] = jQuery.ajaxSettings[ field ];
-                       }
-               }
-               return target;
-       },
-
-       ajaxSettings: {
-               url: ajaxLocation,
-               isLocal: rlocalProtocol.test( ajaxLocParts[ 1 ] ),
-               global: true,
-               type: "GET",
-               contentType: "application/x-www-form-urlencoded",
-               processData: true,
-               async: true,
-               /*
-               timeout: 0,
-               data: null,
-               dataType: null,
-               username: null,
-               password: null,
-               cache: null,
-               traditional: false,
-               headers: {},
-               */
-
-               accepts: {
-                       xml: "application/xml, text/xml",
-                       html: "text/html",
-                       text: "text/plain",
-                       json: "application/json, text/javascript",
-                       "*": "*/*"
-               },
-
-               contents: {
-                       xml: /xml/,
-                       html: /html/,
-                       json: /json/
-               },
-
-               responseFields: {
-                       xml: "responseXML",
-                       text: "responseText"
-               },
-
-               // List of data converters
-               // 1) key format is "source_type destination_type" (a single space in-between)
-               // 2) the catchall symbol "*" can be used for source_type
-               converters: {
-
-                       // Convert anything to text
-                       "* text": window.String,
-
-                       // Text to html (true = no transformation)
-                       "text html": true,
-
-                       // Evaluate text as a json expression
-                       "text json": jQuery.parseJSON,
-
-                       // Parse text as xml
-                       "text xml": jQuery.parseXML
-               }
-       },
-
-       ajaxPrefilter: addToPrefiltersOrTransports( prefilters ),
-       ajaxTransport: addToPrefiltersOrTransports( transports ),
-
-       // Main method
-       ajax: function( url, options ) {
-
-               // If url is an object, simulate pre-1.5 signature
-               if ( typeof url === "object" ) {
-                       options = url;
-                       url = undefined;
-               }
-
-               // Force options to be an object
-               options = options || {};
-
-               var // Create the final options object
-                       s = jQuery.ajaxSetup( {}, options ),
-                       // Callbacks context
-                       callbackContext = s.context || s,
-                       // Context for global events
-                       // It's the callbackContext if one was provided in the options
-                       // and if it's a DOM node or a jQuery collection
-                       globalEventContext = callbackContext !== s &&
-                               ( callbackContext.nodeType || callbackContext instanceof jQuery ) ?
-                                               jQuery( callbackContext ) : jQuery.event,
-                       // Deferreds
-                       deferred = jQuery.Deferred(),
-                       completeDeferred = jQuery._Deferred(),
-                       // Status-dependent callbacks
-                       statusCode = s.statusCode || {},
-                       // ifModified key
-                       ifModifiedKey,
-                       // Headers (they are sent all at once)
-                       requestHeaders = {},
-                       requestHeadersNames = {},
-                       // Response headers
-                       responseHeadersString,
-                       responseHeaders,
-                       // transport
-                       transport,
-                       // timeout handle
-                       timeoutTimer,
-                       // Cross-domain detection vars
-                       parts,
-                       // The jqXHR state
-                       state = 0,
-                       // To know if global events are to be dispatched
-                       fireGlobals,
-                       // Loop variable
-                       i,
-                       // Fake xhr
-                       jqXHR = {
-
-                               readyState: 0,
-
-                               // Caches the header
-                               setRequestHeader: function( name, value ) {
-                                       if ( !state ) {
-                                               var lname = name.toLowerCase();
-                                               name = requestHeadersNames[ lname ] = requestHeadersNames[ lname ] || name;
-                                               requestHeaders[ name ] = value;
-                                       }
-                                       return this;
-                               },
-
-                               // Raw string
-                               getAllResponseHeaders: function() {
-                                       return state === 2 ? responseHeadersString : null;
-                               },
-
-                               // Builds headers hashtable if needed
-                               getResponseHeader: function( key ) {
-                                       var match;
-                                       if ( state === 2 ) {
-                                               if ( !responseHeaders ) {
-                                                       responseHeaders = {};
-                                                       while( ( match = rheaders.exec( responseHeadersString ) ) ) {
-                                                               responseHeaders[ match[1].toLowerCase() ] = match[ 2 ];
-                                                       }
-                                               }
-                                               match = responseHeaders[ key.toLowerCase() ];
-                                       }
-                                       return match === undefined ? null : match;
-                               },
-
-                               // Overrides response content-type header
-                               overrideMimeType: function( type ) {
-                                       if ( !state ) {
-                                               s.mimeType = type;
-                                       }
-                                       return this;
-                               },
-
-                               // Cancel the request
-                               abort: function( statusText ) {
-                                       statusText = statusText || "abort";
-                                       if ( transport ) {
-                                               transport.abort( statusText );
-                                       }
-                                       done( 0, statusText );
-                                       return this;
-                               }
-                       };
-
-               // Callback for when everything is done
-               // It is defined here because jslint complains if it is declared
-               // at the end of the function (which would be more logical and readable)
-               function done( status, statusText, responses, headers ) {
-
-                       // Called once
-                       if ( state === 2 ) {
-                               return;
-                       }
-
-                       // State is "done" now
-                       state = 2;
-
-                       // Clear timeout if it exists
-                       if ( timeoutTimer ) {
-                               clearTimeout( timeoutTimer );
-                       }
-
-                       // Dereference transport for early garbage collection
-                       // (no matter how long the jqXHR object will be used)
-                       transport = undefined;
-
-                       // Cache response headers
-                       responseHeadersString = headers || "";
-
-                       // Set readyState
-                       jqXHR.readyState = status ? 4 : 0;
-
-                       var isSuccess,
-                               success,
-                               error,
-                               response = responses ? ajaxHandleResponses( s, jqXHR, responses ) : undefined,
-                               lastModified,
-                               etag;
-
-                       // If successful, handle type chaining
-                       if ( status >= 200 && status < 300 || status === 304 ) {
-
-                               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-                               if ( s.ifModified ) {
-
-                                       if ( ( lastModified = jqXHR.getResponseHeader( "Last-Modified" ) ) ) {
-                                               jQuery.lastModified[ ifModifiedKey ] = lastModified;
-                                       }
-                                       if ( ( etag = jqXHR.getResponseHeader( "Etag" ) ) ) {
-                                               jQuery.etag[ ifModifiedKey ] = etag;
-                                       }
-                               }
-
-                               // If not modified
-                               if ( status === 304 ) {
-
-                                       statusText = "notmodified";
-                                       isSuccess = true;
-
-                               // If we have data
-                               } else {
-
-                                       try {
-                                               success = ajaxConvert( s, response );
-                                               statusText = "success";
-                                               isSuccess = true;
-                                       } catch(e) {
-                                               // We have a parsererror
-                                               statusText = "parsererror";
-                                               error = e;
-                                       }
-                               }
-                       } else {
-                               // We extract error from statusText
-                               // then normalize statusText and status for non-aborts
-                               error = statusText;
-                               if( !statusText || status ) {
-                                       statusText = "error";
-                                       if ( status < 0 ) {
-                                               status = 0;
-                                       }
-                               }
-                       }
-
-                       // Set data for the fake xhr object
-                       jqXHR.status = status;
-                       jqXHR.statusText = statusText;
-
-                       // Success/Error
-                       if ( isSuccess ) {
-                               deferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );
-                       } else {
-                               deferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );
-                       }
-
-                       // Status-dependent callbacks
-                       jqXHR.statusCode( statusCode );
-                       statusCode = undefined;
-
-                       if ( fireGlobals ) {
-                               globalEventContext.trigger( "ajax" + ( isSuccess ? "Success" : "Error" ),
-                                               [ jqXHR, s, isSuccess ? success : error ] );
-                       }
-
-                       // Complete
-                       completeDeferred.resolveWith( callbackContext, [ jqXHR, statusText ] );
-
-                       if ( fireGlobals ) {
-                               globalEventContext.trigger( "ajaxComplete", [ jqXHR, s] );
-                               // Handle the global AJAX counter
-                               if ( !( --jQuery.active ) ) {
-                                       jQuery.event.trigger( "ajaxStop" );
-                               }
-                       }
-               }
-
-               // Attach deferreds
-               deferred.promise( jqXHR );
-               jqXHR.success = jqXHR.done;
-               jqXHR.error = jqXHR.fail;
-               jqXHR.complete = completeDeferred.done;
-
-               // Status-dependent callbacks
-               jqXHR.statusCode = function( map ) {
-                       if ( map ) {
-                               var tmp;
-                               if ( state < 2 ) {
-                                       for( tmp in map ) {
-                                               statusCode[ tmp ] = [ statusCode[tmp], map[tmp] ];
-                                       }
-                               } else {
-                                       tmp = map[ jqXHR.status ];
-                                       jqXHR.then( tmp, tmp );
-                               }
-                       }
-                       return this;
-               };
-
-               // Remove hash character (#7531: and string promotion)
-               // Add protocol if not provided (#5866: IE7 issue with protocol-less urls)
-               // We also use the url parameter if available
-               s.url = ( ( url || s.url ) + "" ).replace( rhash, "" ).replace( rprotocol, ajaxLocParts[ 1 ] + "//" );
-
-               // Extract dataTypes list
-               s.dataTypes = jQuery.trim( s.dataType || "*" ).toLowerCase().split( rspacesAjax );
-
-               // Determine if a cross-domain request is in order
-               if ( s.crossDomain == null ) {
-                       parts = rurl.exec( s.url.toLowerCase() );
-                       s.crossDomain = !!( parts &&
-                               ( parts[ 1 ] != ajaxLocParts[ 1 ] || parts[ 2 ] != ajaxLocParts[ 2 ] ||
-                                       ( parts[ 3 ] || ( parts[ 1 ] === "http:" ? 80 : 443 ) ) !=
-                                               ( ajaxLocParts[ 3 ] || ( ajaxLocParts[ 1 ] === "http:" ? 80 : 443 ) ) )
-                       );
-               }
-
-               // Convert data if not already a string
-               if ( s.data && s.processData && typeof s.data !== "string" ) {
-                       s.data = jQuery.param( s.data, s.traditional );
-               }
-
-               // Apply prefilters
-               inspectPrefiltersOrTransports( prefilters, s, options, jqXHR );
-
-               // If request was aborted inside a prefiler, stop there
-               if ( state === 2 ) {
-                       return false;
-               }
-
-               // We can fire global events as of now if asked to
-               fireGlobals = s.global;
-
-               // Uppercase the type
-               s.type = s.type.toUpperCase();
-
-               // Determine if request has content
-               s.hasContent = !rnoContent.test( s.type );
-
-               // Watch for a new set of requests
-               if ( fireGlobals && jQuery.active++ === 0 ) {
-                       jQuery.event.trigger( "ajaxStart" );
-               }
-
-               // More options handling for requests with no content
-               if ( !s.hasContent ) {
-
-                       // If data is available, append data to url
-                       if ( s.data ) {
-                               s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.data;
-                       }
-
-                       // Get ifModifiedKey before adding the anti-cache parameter
-                       ifModifiedKey = s.url;
-
-                       // Add anti-cache in url if needed
-                       if ( s.cache === false ) {
-
-                               var ts = jQuery.now(),
-                                       // try replacing _= if it is there
-                                       ret = s.url.replace( rts, "$1_=" + ts );
-
-                               // if nothing was replaced, add timestamp to the end
-                               s.url = ret + ( (ret === s.url ) ? ( rquery.test( s.url ) ? "&" : "?" ) + "_=" + ts : "" );
-                       }
-               }
-
-               // Set the correct header, if data is being sent
-               if ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {
-                       jqXHR.setRequestHeader( "Content-Type", s.contentType );
-               }
-
-               // Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.
-               if ( s.ifModified ) {
-                       ifModifiedKey = ifModifiedKey || s.url;
-                       if ( jQuery.lastModified[ ifModifiedKey ] ) {
-                               jqXHR.setRequestHeader( "If-Modified-Since", jQuery.lastModified[ ifModifiedKey ] );
-                       }
-                       if ( jQuery.etag[ ifModifiedKey ] ) {
-                               jqXHR.setRequestHeader( "If-None-Match", jQuery.etag[ ifModifiedKey ] );
-                       }
-               }
-
-               // Set the Accepts header for the server, depending on the dataType
-               jqXHR.setRequestHeader(
-                       "Accept",
-                       s.dataTypes[ 0 ] && s.accepts[ s.dataTypes[0] ] ?
-                               s.accepts[ s.dataTypes[0] ] + ( s.dataTypes[ 0 ] !== "*" ? ", */*; q=0.01" : "" ) :
-                               s.accepts[ "*" ]
-               );
-
-               // Check for headers option
-               for ( i in s.headers ) {
-                       jqXHR.setRequestHeader( i, s.headers[ i ] );
-               }
-
-               // Allow custom headers/mimetypes and early abort
-               if ( s.beforeSend && ( s.beforeSend.call( callbackContext, jqXHR, s ) === false || state === 2 ) ) {
-                               // Abort if not done already
-                               jqXHR.abort();
-                               return false;
-
-               }
-
-               // Install callbacks on deferreds
-               for ( i in { success: 1, error: 1, complete: 1 } ) {
-                       jqXHR[ i ]( s[ i ] );
-               }
-
-               // Get transport
-               transport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );
-
-               // If no transport, we auto-abort
-               if ( !transport ) {
-                       done( -1, "No Transport" );
-               } else {
-                       jqXHR.readyState = 1;
-                       // Send global event
-                       if ( fireGlobals ) {
-                               globalEventContext.trigger( "ajaxSend", [ jqXHR, s ] );
-                       }
-                       // Timeout
-                       if ( s.async && s.timeout > 0 ) {
-                               timeoutTimer = setTimeout( function(){
-                                       jqXHR.abort( "timeout" );
-                               }, s.timeout );
-                       }
-
-                       try {
-                               state = 1;
-                               transport.send( requestHeaders, done );
-                       } catch (e) {
-                               // Propagate exception as error if not done
-                               if ( status < 2 ) {
-                                       done( -1, e );
-                               // Simply rethrow otherwise
-                               } else {
-                                       jQuery.error( e );
-                               }
-                       }
-               }
-
-               return jqXHR;
-       },
-
-       // Serialize an array of form elements or a set of
-       // key/values into a query string
-       param: function( a, traditional ) {
-               var s = [],
-                       add = function( key, value ) {
-                               // If value is a function, invoke it and return its value
-                               value = jQuery.isFunction( value ) ? value() : value;
-                               s[ s.length ] = encodeURIComponent( key ) + "=" + encodeURIComponent( value );
-                       };
-
-               // Set traditional to true for jQuery <= 1.3.2 behavior.
-               if ( traditional === undefined ) {
-                       traditional = jQuery.ajaxSettings.traditional;
-               }
-
-               // If an array was passed in, assume that it is an array of form elements.
-               if ( jQuery.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {
-                       // Serialize the form elements
-                       jQuery.each( a, function() {
-                               add( this.name, this.value );
-                       });
-
-               } else {
-                       // If traditional, encode the "old" way (the way 1.3.2 or older
-                       // did it), otherwise encode params recursively.
-                       for ( var prefix in a ) {
-                               buildParams( prefix, a[ prefix ], traditional, add );
-                       }
-               }
-
-               // Return the resulting serialization
-               return s.join( "&" ).replace( r20, "+" );
-       }
-});
-
-function buildParams( prefix, obj, traditional, add ) {
-       if ( jQuery.isArray( obj ) ) {
-               // Serialize array item.
-               jQuery.each( obj, function( i, v ) {
-                       if ( traditional || rbracket.test( prefix ) ) {
-                               // Treat each array item as a scalar.
-                               add( prefix, v );
-
-                       } else {
-                               // If array item is non-scalar (array or object), encode its
-                               // numeric index to resolve deserialization ambiguity issues.
-                               // Note that rack (as of 1.0.0) can't currently deserialize
-                               // nested arrays properly, and attempting to do so may cause
-                               // a server error. Possible fixes are to modify rack's
-                               // deserialization algorithm or to provide an option or flag
-                               // to force array serialization to be shallow.
-                               buildParams( prefix + "[" + ( typeof v === "object" || jQuery.isArray(v) ? i : "" ) + "]", v, traditional, add );
-                       }
-               });
-
-       } else if ( !traditional && obj != null && typeof obj === "object" ) {
-               // Serialize object item.
-               for ( var name in obj ) {
-                       buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
-               }
-
-       } else {
-               // Serialize scalar item.
-               add( prefix, obj );
-       }
-}
-
-// This is still on the jQuery object... for now
-// Want to move this to jQuery.ajax some day
-jQuery.extend({
-
-       // Counter for holding the number of active queries
-       active: 0,
-
-       // Last-Modified header cache for next request
-       lastModified: {},
-       etag: {}
-
-});
-
-/* Handles responses to an ajax request:
- * - sets all responseXXX fields accordingly
- * - finds the right dataType (mediates between content-type and expected dataType)
- * - returns the corresponding response
- */
-function ajaxHandleResponses( s, jqXHR, responses ) {
-
-       var contents = s.contents,
-               dataTypes = s.dataTypes,
-               responseFields = s.responseFields,
-               ct,
-               type,
-               finalDataType,
-               firstDataType;
-
-       // Fill responseXXX fields
-       for( type in responseFields ) {
-               if ( type in responses ) {
-                       jqXHR[ responseFields[type] ] = responses[ type ];
-               }
-       }
-
-       // Remove auto dataType and get content-type in the process
-       while( dataTypes[ 0 ] === "*" ) {
-               dataTypes.shift();
-               if ( ct === undefined ) {
-                       ct = s.mimeType || jqXHR.getResponseHeader( "content-type" );
-               }
-       }
-
-       // Check if we're dealing with a known content-type
-       if ( ct ) {
-               for ( type in contents ) {
-                       if ( contents[ type ] && contents[ type ].test( ct ) ) {
-                               dataTypes.unshift( type );
-                               break;
-                       }
-               }
-       }
-
-       // Check to see if we have a response for the expected dataType
-       if ( dataTypes[ 0 ] in responses ) {
-               finalDataType = dataTypes[ 0 ];
-       } else {
-               // Try convertible dataTypes
-               for ( type in responses ) {
-                       if ( !dataTypes[ 0 ] || s.converters[ type + " " + dataTypes[0] ] ) {
-                               finalDataType = type;
-                               break;
-                       }
-                       if ( !firstDataType ) {
-                               firstDataType = type;
-                       }
-               }
-               // Or just use first one
-               finalDataType = finalDataType || firstDataType;
-       }
-
-       // If we found a dataType
-       // We add the dataType to the list if needed
-       // and return the corresponding response
-       if ( finalDataType ) {
-               if ( finalDataType !== dataTypes[ 0 ] ) {
-                       dataTypes.unshift( finalDataType );
-               }
-               return responses[ finalDataType ];
-       }
-}
-
-// Chain conversions given the request and the original response
-function ajaxConvert( s, response ) {
-
-       // Apply the dataFilter if provided
-       if ( s.dataFilter ) {
-               response = s.dataFilter( response, s.dataType );
-       }
-
-       var dataTypes = s.dataTypes,
-               converters = {},
-               i,
-               key,
-               length = dataTypes.length,
-               tmp,
-               // Current and previous dataTypes
-               current = dataTypes[ 0 ],
-               prev,
-               // Conversion expression
-               conversion,
-               // Conversion function
-               conv,
-               // Conversion functions (transitive conversion)
-               conv1,
-               conv2;
-
-       // For each dataType in the chain
-       for( i = 1; i < length; i++ ) {
-
-               // Create converters map
-               // with lowercased keys
-               if ( i === 1 ) {
-                       for( key in s.converters ) {
-                               if( typeof key === "string" ) {
-                                       converters[ key.toLowerCase() ] = s.converters[ key ];
-                               }
-                       }
-               }
-
-               // Get the dataTypes
-               prev = current;
-               current = dataTypes[ i ];
-
-               // If current is auto dataType, update it to prev
-               if( current === "*" ) {
-                       current = prev;
-               // If no auto and dataTypes are actually different
-               } else if ( prev !== "*" && prev !== current ) {
-
-                       // Get the converter
-                       conversion = prev + " " + current;
-                       conv = converters[ conversion ] || converters[ "* " + current ];
-
-                       // If there is no direct converter, search transitively
-                       if ( !conv ) {
-                               conv2 = undefined;
-                               for( conv1 in converters ) {
-                                       tmp = conv1.split( " " );
-                                       if ( tmp[ 0 ] === prev || tmp[ 0 ] === "*" ) {
-                                               conv2 = converters[ tmp[1] + " " + current ];
-                                               if ( conv2 ) {
-                                                       conv1 = converters[ conv1 ];
-                                                       if ( conv1 === true ) {
-                                                               conv = conv2;
-                                                       } else if ( conv2 === true ) {
-                                                               conv = conv1;
-                                                       }
-                                                       break;
-                                               }
-                                       }
-                               }
-                       }
-                       // If we found no converter, dispatch an error
-                       if ( !( conv || conv2 ) ) {
-                               jQuery.error( "No conversion from " + conversion.replace(" "," to ") );
-                       }
-                       // If found converter is not an equivalence
-                       if ( conv !== true ) {
-                               // Convert with 1 or 2 converters accordingly
-                               response = conv ? conv( response ) : conv2( conv1(response) );
-                       }
-               }
-       }
-       return response;
-}
-
-
-
-
-var jsc = jQuery.now(),
-       jsre = /(\=)\?(&|$)|\?\?/i;
-
-// Default jsonp settings
-jQuery.ajaxSetup({
-       jsonp: "callback",
-       jsonpCallback: function() {
-               return jQuery.expando + "_" + ( jsc++ );
-       }
-});
-
-// Detect, normalize options and install callbacks for jsonp requests
-jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
-
-       var inspectData = s.contentType === "application/x-www-form-urlencoded" &&
-               ( typeof s.data === "string" );
-
-       if ( s.dataTypes[ 0 ] === "jsonp" ||
-               s.jsonp !== false && ( jsre.test( s.url ) ||
-                               inspectData && jsre.test( s.data ) ) ) {
-
-               var responseContainer,
-                       jsonpCallback = s.jsonpCallback =
-                               jQuery.isFunction( s.jsonpCallback ) ? s.jsonpCallback() : s.jsonpCallback,
-                       previous = window[ jsonpCallback ],
-                       url = s.url,
-                       data = s.data,
-                       replace = "$1" + jsonpCallback + "$2";
-
-               if ( s.jsonp !== false ) {
-                       url = url.replace( jsre, replace );
-                       if ( s.url === url ) {
-                               if ( inspectData ) {
-                                       data = data.replace( jsre, replace );
-                               }
-                               if ( s.data === data ) {
-                                       // Add callback manually
-                                       url += (/\?/.test( url ) ? "&" : "?") + s.jsonp + "=" + jsonpCallback;
-                               }
-                       }
-               }
-
-               s.url = url;
-               s.data = data;
-
-               // Install callback
-               window[ jsonpCallback ] = function( response ) {
-                       responseContainer = [ response ];
-               };
-
-               // Clean-up function
-               jqXHR.always(function() {
-                       // Set callback back to previous value
-                       window[ jsonpCallback ] = previous;
-                       // Call if it was a function and we have a response
-                       if ( responseContainer && jQuery.isFunction( previous ) ) {
-                               window[ jsonpCallback ]( responseContainer[ 0 ] );
-                       }
-               });
-
-               // Use data converter to retrieve json after script execution
-               s.converters["script json"] = function() {
-                       if ( !responseContainer ) {
-                               jQuery.error( jsonpCallback + " was not called" );
-                       }
-                       return responseContainer[ 0 ];
-               };
-
-               // force json dataType
-               s.dataTypes[ 0 ] = "json";
-
-               // Delegate to script
-               return "script";
-       }
-});
-
-
-
-
-// Install script dataType
-jQuery.ajaxSetup({
-       accepts: {
-               script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
-       },
-       contents: {
-               script: /javascript|ecmascript/
-       },
-       converters: {
-               "text script": function( text ) {
-                       jQuery.globalEval( text );
-                       return text;
-               }
-       }
-});
-
-// Handle cache's special case and global
-jQuery.ajaxPrefilter( "script", function( s ) {
-       if ( s.cache === undefined ) {
-               s.cache = false;
-       }
-       if ( s.crossDomain ) {
-               s.type = "GET";
-               s.global = false;
-       }
-});
-
-// Bind script tag hack transport
-jQuery.ajaxTransport( "script", function(s) {
-
-       // This transport only deals with cross domain requests
-       if ( s.crossDomain ) {
-
-               var script,
-                       head = document.head || document.getElementsByTagName( "head" )[0] || document.documentElement;
-
-               return {
-
-                       send: function( _, callback ) {
-
-                               script = document.createElement( "script" );
-
-                               script.async = "async";
-
-                               if ( s.scriptCharset ) {
-                                       script.charset = s.scriptCharset;
-                               }
-
-                               script.src = s.url;
-
-                               // Attach handlers for all browsers
-                               script.onload = script.onreadystatechange = function( _, isAbort ) {
-
-                                       if ( isAbort || !script.readyState || /loaded|complete/.test( script.readyState ) ) {
-
-                                               // Handle memory leak in IE
-                                               script.onload = script.onreadystatechange = null;
-
-                                               // Remove the script
-                                               if ( head && script.parentNode ) {
-                                                       head.removeChild( script );
-                                               }
-
-                                               // Dereference the script
-                                               script = undefined;
-
-                                               // Callback if not abort
-                                               if ( !isAbort ) {
-                                                       callback( 200, "success" );
-                                               }
-                                       }
-                               };
-                               // Use insertBefore instead of appendChild  to circumvent an IE6 bug.
-                               // This arises when a base node is used (#2709 and #4378).
-                               head.insertBefore( script, head.firstChild );
-                       },
-
-                       abort: function() {
-                               if ( script ) {
-                                       script.onload( 0, 1 );
-                               }
-                       }
-               };
-       }
-});
-
-
-
-
-var // #5280: Internet Explorer will keep connections alive if we don't abort on unload
-       xhrOnUnloadAbort = window.ActiveXObject ? function() {
-               // Abort all pending requests
-               for ( var key in xhrCallbacks ) {
-                       xhrCallbacks[ key ]( 0, 1 );
-               }
-       } : false,
-       xhrId = 0,
-       xhrCallbacks;
-
-// Functions to create xhrs
-function createStandardXHR() {
-       try {
-               return new window.XMLHttpRequest();
-       } catch( e ) {}
-}
-
-function createActiveXHR() {
-       try {
-               return new window.ActiveXObject( "Microsoft.XMLHTTP" );
-       } catch( e ) {}
-}
-
-// Create the request object
-// (This is still attached to ajaxSettings for backward compatibility)
-jQuery.ajaxSettings.xhr = window.ActiveXObject ?
-       /* Microsoft failed to properly
-        * implement the XMLHttpRequest in IE7 (can't request local files),
-        * so we use the ActiveXObject when it is available
-        * Additionally XMLHttpRequest can be disabled in IE7/IE8 so
-        * we need a fallback.
-        */
-       function() {
-               return !this.isLocal && createStandardXHR() || createActiveXHR();
-       } :
-       // For all other browsers, use the standard XMLHttpRequest object
-       createStandardXHR;
-
-// Determine support properties
-(function( xhr ) {
-       jQuery.extend( jQuery.support, {
-               ajax: !!xhr,
-               cors: !!xhr && ( "withCredentials" in xhr )
-       });
-})( jQuery.ajaxSettings.xhr() );
-
-// Create transport if the browser can provide an xhr
-if ( jQuery.support.ajax ) {
-
-       jQuery.ajaxTransport(function( s ) {
-               // Cross domain only allowed if supported through XMLHttpRequest
-               if ( !s.crossDomain || jQuery.support.cors ) {
-
-                       var callback;
-
-                       return {
-                               send: function( headers, complete ) {
-
-                                       // Get a new xhr
-                                       var xhr = s.xhr(),
-                                               handle,
-                                               i;
-
-                                       // Open the socket
-                                       // Passing null username, generates a login popup on Opera (#2865)
-                                       if ( s.username ) {
-                                               xhr.open( s.type, s.url, s.async, s.username, s.password );
-                                       } else {
-                                               xhr.open( s.type, s.url, s.async );
-                                       }
-
-                                       // Apply custom fields if provided
-                                       if ( s.xhrFields ) {
-                                               for ( i in s.xhrFields ) {
-                                                       xhr[ i ] = s.xhrFields[ i ];
-                                               }
-                                       }
-
-                                       // Override mime type if needed
-                                       if ( s.mimeType && xhr.overrideMimeType ) {
-                                               xhr.overrideMimeType( s.mimeType );
-                                       }
-
-                                       // X-Requested-With header
-                                       // For cross-domain requests, seeing as conditions for a preflight are
-                                       // akin to a jigsaw puzzle, we simply never set it to be sure.
-                                       // (it can always be set on a per-request basis or even using ajaxSetup)
-                                       // For same-domain requests, won't change header if already provided.
-                                       if ( !s.crossDomain && !headers["X-Requested-With"] ) {
-                                               headers[ "X-Requested-With" ] = "XMLHttpRequest";
-                                       }
-
-                                       // Need an extra try/catch for cross domain requests in Firefox 3
-                                       try {
-                                               for ( i in headers ) {
-                                                       xhr.setRequestHeader( i, headers[ i ] );
-                                               }
-                                       } catch( _ ) {}
-
-                                       // Do send the request
-                                       // This may raise an exception which is actually
-                                       // handled in jQuery.ajax (so no try/catch here)
-                                       xhr.send( ( s.hasContent && s.data ) || null );
-
-                                       // Listener
-                                       callback = function( _, isAbort ) {
-
-                                               var status,
-                                                       statusText,
-                                                       responseHeaders,
-                                                       responses,
-                                                       xml;
-
-                                               // Firefox throws exceptions when accessing properties
-                                               // of an xhr when a network error occured
-                                               // http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
-                                               try {
-
-                                                       // Was never called and is aborted or complete
-                                                       if ( callback && ( isAbort || xhr.readyState === 4 ) ) {
-
-                                                               // Only called once
-                                                               callback = undefined;
-
-                                                               // Do not keep as active anymore
-                                                               if ( handle ) {
-                                                                       xhr.onreadystatechange = jQuery.noop;
-                                                                       if ( xhrOnUnloadAbort ) {
-                                                                               delete xhrCallbacks[ handle ];
-                                                                       }
-                                                               }
-
-                                                               // If it's an abort
-                                                               if ( isAbort ) {
-                                                                       // Abort it manually if needed
-                                                                       if ( xhr.readyState !== 4 ) {
-                                                                               xhr.abort();
-                                                                       }
-                                                               } else {
-                                                                       status = xhr.status;
-                                                                       responseHeaders = xhr.getAllResponseHeaders();
-                                                                       responses = {};
-                                                                       xml = xhr.responseXML;
-
-                                                                       // Construct response list
-                                                                       if ( xml && xml.documentElement /* #4958 */ ) {
-                                                                               responses.xml = xml;
-                                                                       }
-                                                                       responses.text = xhr.responseText;
-
-                                                                       // Firefox throws an exception when accessing
-                                                                       // statusText for faulty cross-domain requests
-                                                                       try {
-                                                                               statusText = xhr.statusText;
-                                                                       } catch( e ) {
-                                                                               // We normalize with Webkit giving an empty statusText
-                                                                               statusText = "";
-                                                                       }
-
-                                                                       // Filter status for non standard behaviors
-
-                                                                       // If the request is local and we have data: assume a success
-                                                                       // (success with no data won't get notified, that's the best we
-                                                                       // can do given current implementations)
-                                                                       if ( !status && s.isLocal && !s.crossDomain ) {
-                                                                               status = responses.text ? 200 : 404;
-                                                                       // IE - #1450: sometimes returns 1223 when it should be 204
-                                                                       } else if ( status === 1223 ) {
-                                                                               status = 204;
-                                                                       }
-                                                               }
-                                                       }
-                                               } catch( firefoxAccessException ) {
-                                                       if ( !isAbort ) {
-                                                               complete( -1, firefoxAccessException );
-                                                       }
-                                               }
-
-                                               // Call complete if needed
-                                               if ( responses ) {
-                                                       complete( status, statusText, responses, responseHeaders );
-                                               }
-                                       };
-
-                                       // if we're in sync mode or it's in cache
-                                       // and has been retrieved directly (IE6 & IE7)
-                                       // we need to manually fire the callback
-                                       if ( !s.async || xhr.readyState === 4 ) {
-                                               callback();
-                                       } else {
-                                               handle = ++xhrId;
-                                               if ( xhrOnUnloadAbort ) {
-                                                       // Create the active xhrs callbacks list if needed
-                                                       // and attach the unload handler
-                                                       if ( !xhrCallbacks ) {
-                                                               xhrCallbacks = {};
-                                                               jQuery( window ).unload( xhrOnUnloadAbort );
-                                                       }
-                                                       // Add to list of active xhrs callbacks
-                                                       xhrCallbacks[ handle ] = callback;
-                                               }
-                                               xhr.onreadystatechange = callback;
-                                       }
-                               },
-
-                               abort: function() {
-                                       if ( callback ) {
-                                               callback(0,1);
-                                       }
-                               }
-                       };
-               }
-       });
-}
-
-
-
-
-var elemdisplay = {},
-       iframe, iframeDoc,
-       rfxtypes = /^(?:toggle|show|hide)$/,
-       rfxnum = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,
-       timerId,
-       fxAttrs = [
-               // height animations
-               [ "height", "marginTop", "marginBottom", "paddingTop", "paddingBottom" ],
-               // width animations
-               [ "width", "marginLeft", "marginRight", "paddingLeft", "paddingRight" ],
-               // opacity animations
-               [ "opacity" ]
-       ],
-       fxNow,
-       requestAnimationFrame = window.webkitRequestAnimationFrame ||
-               window.mozRequestAnimationFrame ||
-               window.oRequestAnimationFrame;
-
-jQuery.fn.extend({
-       show: function( speed, easing, callback ) {
-               var elem, display;
-
-               if ( speed || speed === 0 ) {
-                       return this.animate( genFx("show", 3), speed, easing, callback);
-
-               } else {
-                       for ( var i = 0, j = this.length; i < j; i++ ) {
-                               elem = this[i];
-
-                               if ( elem.style ) {
-                                       display = elem.style.display;
-
-                                       // Reset the inline display of this element to learn if it is
-                                       // being hidden by cascaded rules or not
-                                       if ( !jQuery._data(elem, "olddisplay") && display === "none" ) {
-                                               display = elem.style.display = "";
-                                       }
-
-                                       // Set elements which have been overridden with display: none
-                                       // in a stylesheet to whatever the default browser style is
-                                       // for such an element
-                                       if ( display === "" && jQuery.css( elem, "display" ) === "none" ) {
-                                               jQuery._data(elem, "olddisplay", defaultDisplay(elem.nodeName));
-                                       }
-                               }
-                       }
-
-                       // Set the display of most of the elements in a second loop
-                       // to avoid the constant reflow
-                       for ( i = 0; i < j; i++ ) {
-                               elem = this[i];
-
-                               if ( elem.style ) {
-                                       display = elem.style.display;
-
-                                       if ( display === "" || display === "none" ) {
-                                               elem.style.display = jQuery._data(elem, "olddisplay") || "";
-                                       }
-                               }
-                       }
-
-                       return this;
-               }
-       },
-
-       hide: function( speed, easing, callback ) {
-               if ( speed || speed === 0 ) {
-                       return this.animate( genFx("hide", 3), speed, easing, callback);
-
-               } else {
-                       for ( var i = 0, j = this.length; i < j; i++ ) {
-                               if ( this[i].style ) {
-                                       var display = jQuery.css( this[i], "display" );
-
-                                       if ( display !== "none" && !jQuery._data( this[i], "olddisplay" ) ) {
-                                               jQuery._data( this[i], "olddisplay", display );
-                                       }
-                               }
-                       }
-
-                       // Set the display of the elements in a second loop
-                       // to avoid the constant reflow
-                       for ( i = 0; i < j; i++ ) {
-                               if ( this[i].style ) {
-                                       this[i].style.display = "none";
-                               }
-                       }
-
-                       return this;
-               }
-       },
-
-       // Save the old toggle function
-       _toggle: jQuery.fn.toggle,
-
-       toggle: function( fn, fn2, callback ) {
-               var bool = typeof fn === "boolean";
-
-               if ( jQuery.isFunction(fn) && jQuery.isFunction(fn2) ) {
-                       this._toggle.apply( this, arguments );
-
-               } else if ( fn == null || bool ) {
-                       this.each(function() {
-                               var state = bool ? fn : jQuery(this).is(":hidden");
-                               jQuery(this)[ state ? "show" : "hide" ]();
-                       });
-
-               } else {
-                       this.animate(genFx("toggle", 3), fn, fn2, callback);
-               }
-
-               return this;
-       },
-
-       fadeTo: function( speed, to, easing, callback ) {
-               return this.filter(":hidden").css("opacity", 0).show().end()
-                                       .animate({opacity: to}, speed, easing, callback);
-       },
-
-       animate: function( prop, speed, easing, callback ) {
-               var optall = jQuery.speed(speed, easing, callback);
-
-               if ( jQuery.isEmptyObject( prop ) ) {
-                       return this.each( optall.complete, [ false ] );
-               }
-
-               // Do not change referenced properties as per-property easing will be lost
-               prop = jQuery.extend( {}, prop );
-
-               return this[ optall.queue === false ? "each" : "queue" ](function() {
-                       // XXX 'this' does not always have a nodeName when running the
-                       // test suite
-
-                       if ( optall.queue === false ) {
-                               jQuery._mark( this );
-                       }
-
-                       var opt = jQuery.extend( {}, optall ),
-                               isElement = this.nodeType === 1,
-                               hidden = isElement && jQuery(this).is(":hidden"),
-                               name, val, p,
-                               display, e,
-                               parts, start, end, unit;
-
-                       // will store per property easing and be used to determine when an animation is complete
-                       opt.animatedProperties = {};
-
-                       for ( p in prop ) {
-
-                               // property name normalization
-                               name = jQuery.camelCase( p );
-                               if ( p !== name ) {
-                                       prop[ name ] = prop[ p ];
-                                       delete prop[ p ];
-                               }
-
-                               val = prop[ name ];
-
-                               // easing resolution: per property > opt.specialEasing > opt.easing > 'swing' (default)
-                               if ( jQuery.isArray( val ) ) {
-                                       opt.animatedProperties[ name ] = val[ 1 ];
-                                       val = prop[ name ] = val[ 0 ];
-                               } else {
-                                       opt.animatedProperties[ name ] = opt.specialEasing && opt.specialEasing[ name ] || opt.easing || 'swing';
-                               }
-
-                               if ( val === "hide" && hidden || val === "show" && !hidden ) {
-                                       return opt.complete.call( this );
-                               }
-
-                               if ( isElement && ( name === "height" || name === "width" ) ) {
-                                       // Make sure that nothing sneaks out
-                                       // Record all 3 overflow attributes because IE does not
-                                       // change the overflow attribute when overflowX and
-                                       // overflowY are set to the same value
-                                       opt.overflow = [ this.style.overflow, this.style.overflowX, this.style.overflowY ];
-
-                                       // Set display property to inline-block for height/width
-                                       // animations on inline elements that are having width/height
-                                       // animated
-                                       if ( jQuery.css( this, "display" ) === "inline" &&
-                                                       jQuery.css( this, "float" ) === "none" ) {
-                                               if ( !jQuery.support.inlineBlockNeedsLayout ) {
-                                                       this.style.display = "inline-block";
-
-                                               } else {
-                                                       display = defaultDisplay( this.nodeName );
-
-                                                       // inline-level elements accept inline-block;
-                                                       // block-level elements need to be inline with layout
-                                                       if ( display === "inline" ) {
-                                                               this.style.display = "inline-block";
-
-                                                       } else {
-                                                               this.style.display = "inline";
-                                                               this.style.zoom = 1;
-                                                       }
-                                               }
-                                       }
-                               }
-                       }
-
-                       if ( opt.overflow != null ) {
-                               this.style.overflow = "hidden";
-                       }
-
-                       for ( p in prop ) {
-                               e = new jQuery.fx( this, opt, p );
-                               val = prop[ p ];
-
-                               if ( rfxtypes.test(val) ) {
-                                       e[ val === "toggle" ? hidden ? "show" : "hide" : val ]();
-
-                               } else {
-                                       parts = rfxnum.exec( val );
-                                       start = e.cur();
-
-                                       if ( parts ) {
-                                               end = parseFloat( parts[2] );
-                                               unit = parts[3] || ( jQuery.cssNumber[ p ] ? "" : "px" );
-
-                                               // We need to compute starting value
-                                               if ( unit !== "px" ) {
-                                                       jQuery.style( this, p, (end || 1) + unit);
-                                                       start = ((end || 1) / e.cur()) * start;
-                                                       jQuery.style( this, p, start + unit);
-                                               }
-
-                                               // If a +=/-= token was provided, we're doing a relative animation
-                                               if ( parts[1] ) {
-                                                       end = ( (parts[ 1 ] === "-=" ? -1 : 1) * end ) + start;
-                                               }
-
-                                               e.custom( start, end, unit );
-
-                                       } else {
-                                               e.custom( start, val, "" );
-                                       }
-                               }
-                       }
-
-                       // For JS strict compliance
-                       return true;
-               });
-       },
-
-       stop: function( clearQueue, gotoEnd ) {
-               if ( clearQueue ) {
-                       this.queue([]);
-               }
-
-               this.each(function() {
-                       var timers = jQuery.timers,
-                               i = timers.length;
-                       // clear marker counters if we know they won't be
-                       if ( !gotoEnd ) {
-                               jQuery._unmark( true, this );
-                       }
-                       while ( i-- ) {
-                               if ( timers[i].elem === this ) {
-                                       if (gotoEnd) {
-                                               // force the next step to be the last
-                                               timers[i](true);
-                                       }
-
-                                       timers.splice(i, 1);
-                               }
-                       }
-               });
-
-               // start the next in the queue if the last step wasn't forced
-               if ( !gotoEnd ) {
-                       this.dequeue();
-               }
-
-               return this;
-       }
-
-});
-
-// Animations created synchronously will run synchronously
-function createFxNow() {
-       setTimeout( clearFxNow, 0 );
-       return ( fxNow = jQuery.now() );
-}
-
-function clearFxNow() {
-       fxNow = undefined;
-}
-
-// Generate parameters to create a standard animation
-function genFx( type, num ) {
-       var obj = {};
-
-       jQuery.each( fxAttrs.concat.apply([], fxAttrs.slice(0,num)), function() {
-               obj[ this ] = type;
-       });
-
-       return obj;
-}
-
-// Generate shortcuts for custom animations
-jQuery.each({
-       slideDown: genFx("show", 1),
-       slideUp: genFx("hide", 1),
-       slideToggle: genFx("toggle", 1),
-       fadeIn: { opacity: "show" },
-       fadeOut: { opacity: "hide" },
-       fadeToggle: { opacity: "toggle" }
-}, function( name, props ) {
-       jQuery.fn[ name ] = function( speed, easing, callback ) {
-               return this.animate( props, speed, easing, callback );
-       };
-});
-
-jQuery.extend({
-       speed: function( speed, easing, fn ) {
-               var opt = speed && typeof speed === "object" ? jQuery.extend({}, speed) : {
-                       complete: fn || !fn && easing ||
-                               jQuery.isFunction( speed ) && speed,
-                       duration: speed,
-                       easing: fn && easing || easing && !jQuery.isFunction(easing) && easing
-               };
-
-               opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
-                       opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds[opt.duration] : jQuery.fx.speeds._default;
-
-               // Queueing
-               opt.old = opt.complete;
-               opt.complete = function( noUnmark ) {
-                       if ( jQuery.isFunction( opt.old ) ) {
-                               opt.old.call( this );
-                       }
-
-                       if ( opt.queue !== false ) {
-                               jQuery.dequeue( this );
-                       } else if ( noUnmark !== false ) {
-                               jQuery._unmark( this );
-                       }
-               };
-
-               return opt;
-       },
-
-       easing: {
-               linear: function( p, n, firstNum, diff ) {
-                       return firstNum + diff * p;
-               },
-               swing: function( p, n, firstNum, diff ) {
-                       return ((-Math.cos(p*Math.PI)/2) + 0.5) * diff + firstNum;
-               }
-       },
-
-       timers: [],
-
-       fx: function( elem, options, prop ) {
-               this.options = options;
-               this.elem = elem;
-               this.prop = prop;
-
-               options.orig = options.orig || {};
-       }
-
-});
-
-jQuery.fx.prototype = {
-       // Simple function for setting a style value
-       update: function() {
-               if ( this.options.step ) {
-                       this.options.step.call( this.elem, this.now, this );
-               }
-
-               (jQuery.fx.step[this.prop] || jQuery.fx.step._default)( this );
-       },
-
-       // Get the current size
-       cur: function() {
-               if ( this.elem[this.prop] != null && (!this.elem.style || this.elem.style[this.prop] == null) ) {
-                       return this.elem[ this.prop ];
-               }
-
-               var parsed,
-                       r = jQuery.css( this.elem, this.prop );
-               // Empty strings, null, undefined and "auto" are converted to 0,
-               // complex values such as "rotate(1rad)" are returned as is,
-               // simple values such as "10px" are parsed to Float.
-               return isNaN( parsed = parseFloat( r ) ) ? !r || r === "auto" ? 0 : r : parsed;
-       },
-
-       // Start an animation from one number to another
-       custom: function( from, to, unit ) {
-               var self = this,
-                       fx = jQuery.fx,
-                       raf;
-
-               this.startTime = fxNow || createFxNow();
-               this.start = from;
-               this.end = to;
-               this.unit = unit || this.unit || ( jQuery.cssNumber[ this.prop ] ? "" : "px" );
-               this.now = this.start;
-               this.pos = this.state = 0;
-
-               function t( gotoEnd ) {
-                       return self.step(gotoEnd);
-               }
-
-               t.elem = this.elem;
-
-               if ( t() && jQuery.timers.push(t) && !timerId ) {
-                       // Use requestAnimationFrame instead of setInterval if available
-                       if ( requestAnimationFrame ) {
-                               timerId = true;
-                               raf = function() {
-                                       // When timerId gets set to null at any point, this stops
-                                       if ( timerId ) {
-                                               requestAnimationFrame( raf );
-                                               fx.tick();
-                                       }
-                               };
-                               requestAnimationFrame( raf );
-                       } else {
-                               timerId = setInterval( fx.tick, fx.interval );
-                       }
-               }
-       },
-
-       // Simple 'show' function
-       show: function() {
-               // Remember where we started, so that we can go back to it later
-               this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
-               this.options.show = true;
-
-               // Begin the animation
-               // Make sure that we start at a small width/height to avoid any
-               // flash of content
-               this.custom(this.prop === "width" || this.prop === "height" ? 1 : 0, this.cur());
-
-               // Start by showing the element
-               jQuery( this.elem ).show();
-       },
-
-       // Simple 'hide' function
-       hide: function() {
-               // Remember where we started, so that we can go back to it later
-               this.options.orig[this.prop] = jQuery.style( this.elem, this.prop );
-               this.options.hide = true;
-
-               // Begin the animation
-               this.custom(this.cur(), 0);
-       },
-
-       // Each step of an animation
-       step: function( gotoEnd ) {
-               var t = fxNow || createFxNow(),
-                       done = true,
-                       elem = this.elem,
-                       options = this.options,
-                       i, n;
-
-               if ( gotoEnd || t >= options.duration + this.startTime ) {
-                       this.now = this.end;
-                       this.pos = this.state = 1;
-                       this.update();
-
-                       options.animatedProperties[ this.prop ] = true;
-
-                       for ( i in options.animatedProperties ) {
-                               if ( options.animatedProperties[i] !== true ) {
-                                       done = false;
-                               }
-                       }
-
-                       if ( done ) {
-                               // Reset the overflow
-                               if ( options.overflow != null && !jQuery.support.shrinkWrapBlocks ) {
-
-                                       jQuery.each( [ "", "X", "Y" ], function (index, value) {
-                                               elem.style[ "overflow" + value ] = options.overflow[index];
-                                       });
-                               }
-
-                               // Hide the element if the "hide" operation was done
-                               if ( options.hide ) {
-                                       jQuery(elem).hide();
-                               }
-
-                               // Reset the properties, if the item has been hidden or shown
-                               if ( options.hide || options.show ) {
-                                       for ( var p in options.animatedProperties ) {
-                                               jQuery.style( elem, p, options.orig[p] );
-                                       }
-                               }
-
-                               // Execute the complete function
-                               options.complete.call( elem );
-                       }
-
-                       return false;
-
-               } else {
-                       // classical easing cannot be used with an Infinity duration
-                       if ( options.duration == Infinity ) {
-                               this.now = t;
-                       } else {
-                               n = t - this.startTime;
-                               this.state = n / options.duration;
-
-                               // Perform the easing function, defaults to swing
-                               this.pos = jQuery.easing[ options.animatedProperties[ this.prop ] ]( this.state, n, 0, 1, options.duration );
-                               this.now = this.start + ((this.end - this.start) * this.pos);
-                       }
-                       // Perform the next step of the animation
-                       this.update();
-               }
-
-               return true;
-       }
-};
-
-jQuery.extend( jQuery.fx, {
-       tick: function() {
-               for ( var timers = jQuery.timers, i = 0 ; i < timers.length ; ++i ) {
-                       if ( !timers[i]() ) {
-                               timers.splice(i--, 1);
-                       }
-               }
-
-               if ( !timers.length ) {
-                       jQuery.fx.stop();
-               }
-       },
-
-       interval: 13,
-
-       stop: function() {
-               clearInterval( timerId );
-               timerId = null;
-       },
-
-       speeds: {
-               slow: 600,
-               fast: 200,
-               // Default speed
-               _default: 400
-       },
-
-       step: {
-               opacity: function( fx ) {
-                       jQuery.style( fx.elem, "opacity", fx.now );
-               },
-
-               _default: function( fx ) {
-                       if ( fx.elem.style && fx.elem.style[ fx.prop ] != null ) {
-                               fx.elem.style[ fx.prop ] = (fx.prop === "width" || fx.prop === "height" ? Math.max(0, fx.now) : fx.now) + fx.unit;
-                       } else {
-                               fx.elem[ fx.prop ] = fx.now;
-                       }
-               }
-       }
-});
-
-if ( jQuery.expr && jQuery.expr.filters ) {
-       jQuery.expr.filters.animated = function( elem ) {
-               return jQuery.grep(jQuery.timers, function( fn ) {
-                       return elem === fn.elem;
-               }).length;
-       };
-}
-
-// Try to restore the default display value of an element
-function defaultDisplay( nodeName ) {
-
-       if ( !elemdisplay[ nodeName ] ) {
-
-               var body = document.body,
-                       elem = jQuery( "<" + nodeName + ">" ).appendTo( body ),
-                       display = elem.css( "display" );
-
-               elem.remove();
-
-               // If the simple way fails,
-               // get element's real default display by attaching it to a temp iframe
-               if ( display === "none" || display === "" ) {
-                       // No iframe to use yet, so create it
-                       if ( !iframe ) {
-                               iframe = document.createElement( "iframe" );
-                               iframe.frameBorder = iframe.width = iframe.height = 0;
-                       }
-
-                       body.appendChild( iframe );
-
-                       // Create a cacheable copy of the iframe document on first call.
-                       // IE and Opera will allow us to reuse the iframeDoc without re-writing the fake HTML
-                       // document to it; WebKit & Firefox won't allow reusing the iframe document.
-                       if ( !iframeDoc || !iframe.createElement ) {
-                               iframeDoc = ( iframe.contentWindow || iframe.contentDocument ).document;
-                               iframeDoc.write( ( document.compatMode === "CSS1Compat" ? "<!doctype html>" : "" ) + "<html><body>" );
-                               iframeDoc.close();
-                       }
-
-                       elem = iframeDoc.createElement( nodeName );
-
-                       iframeDoc.body.appendChild( elem );
-
-                       display = jQuery.css( elem, "display" );
-
-                       body.removeChild( iframe );
-               }
-
-               // Store the correct default display
-               elemdisplay[ nodeName ] = display;
-       }
-
-       return elemdisplay[ nodeName ];
-}
-
-
-
-
-var rtable = /^t(?:able|d|h)$/i,
-       rroot = /^(?:body|html)$/i;
-
-if ( "getBoundingClientRect" in document.documentElement ) {
-       jQuery.fn.offset = function( options ) {
-               var elem = this[0], box;
-
-               if ( options ) {
-                       return this.each(function( i ) {
-                               jQuery.offset.setOffset( this, options, i );
-                       });
-               }
-
-               if ( !elem || !elem.ownerDocument ) {
-                       return null;
-               }
-
-               if ( elem === elem.ownerDocument.body ) {
-                       return jQuery.offset.bodyOffset( elem );
-               }
-
-               try {
-                       box = elem.getBoundingClientRect();
-               } catch(e) {}
-
-               var doc = elem.ownerDocument,
-                       docElem = doc.documentElement;
-
-               // Make sure we're not dealing with a disconnected DOM node
-               if ( !box || !jQuery.contains( docElem, elem ) ) {
-                       return box ? { top: box.top, left: box.left } : { top: 0, left: 0 };
-               }
-
-               var body = doc.body,
-                       win = getWindow(doc),
-                       clientTop  = docElem.clientTop  || body.clientTop  || 0,
-                       clientLeft = docElem.clientLeft || body.clientLeft || 0,
-                       scrollTop  = win.pageYOffset || jQuery.support.boxModel && docElem.scrollTop  || body.scrollTop,
-                       scrollLeft = win.pageXOffset || jQuery.support.boxModel && docElem.scrollLeft || body.scrollLeft,
-                       top  = box.top  + scrollTop  - clientTop,
-                       left = box.left + scrollLeft - clientLeft;
-
-               return { top: top, left: left };
-       };
-
-} else {
-       jQuery.fn.offset = function( options ) {
-               var elem = this[0];
-
-               if ( options ) {
-                       return this.each(function( i ) {
-                               jQuery.offset.setOffset( this, options, i );
-                       });
-               }
-
-               if ( !elem || !elem.ownerDocument ) {
-                       return null;
-               }
-
-               if ( elem === elem.ownerDocument.body ) {
-                       return jQuery.offset.bodyOffset( elem );
-               }
-
-               jQuery.offset.initialize();
-
-               var computedStyle,
-                       offsetParent = elem.offsetParent,
-                       prevOffsetParent = elem,
-                       doc = elem.ownerDocument,
-                       docElem = doc.documentElement,
-                       body = doc.body,
-                       defaultView = doc.defaultView,
-                       prevComputedStyle = defaultView ? defaultView.getComputedStyle( elem, null ) : elem.currentStyle,
-                       top = elem.offsetTop,
-                       left = elem.offsetLeft;
-
-               while ( (elem = elem.parentNode) && elem !== body && elem !== docElem ) {
-                       if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
-                               break;
-                       }
-
-                       computedStyle = defaultView ? defaultView.getComputedStyle(elem, null) : elem.currentStyle;
-                       top  -= elem.scrollTop;
-                       left -= elem.scrollLeft;
-
-                       if ( elem === offsetParent ) {
-                               top  += elem.offsetTop;
-                               left += elem.offsetLeft;
-
-                               if ( jQuery.offset.doesNotAddBorder && !(jQuery.offset.doesAddBorderForTableAndCells && rtable.test(elem.nodeName)) ) {
-                                       top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-                                       left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-                               }
-
-                               prevOffsetParent = offsetParent;
-                               offsetParent = elem.offsetParent;
-                       }
-
-                       if ( jQuery.offset.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) {
-                               top  += parseFloat( computedStyle.borderTopWidth  ) || 0;
-                               left += parseFloat( computedStyle.borderLeftWidth ) || 0;
-                       }
-
-                       prevComputedStyle = computedStyle;
-               }
-
-               if ( prevComputedStyle.position === "relative" || prevComputedStyle.position === "static" ) {
-                       top  += body.offsetTop;
-                       left += body.offsetLeft;
-               }
-
-               if ( jQuery.offset.supportsFixedPosition && prevComputedStyle.position === "fixed" ) {
-                       top  += Math.max( docElem.scrollTop, body.scrollTop );
-                       left += Math.max( docElem.scrollLeft, body.scrollLeft );
-               }
-
-               return { top: top, left: left };
-       };
-}
-
-jQuery.offset = {
-       initialize: function() {
-               var body = document.body, container = document.createElement("div"), innerDiv, checkDiv, table, td, bodyMarginTop = parseFloat( jQuery.css(body, "marginTop") ) || 0,
-                       html = "<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
-
-               jQuery.extend( container.style, { position: "absolute", top: 0, left: 0, margin: 0, border: 0, width: "1px", height: "1px", visibility: "hidden" } );
-
-               container.innerHTML = html;
-               body.insertBefore( container, body.firstChild );
-               innerDiv = container.firstChild;
-               checkDiv = innerDiv.firstChild;
-               td = innerDiv.nextSibling.firstChild.firstChild;
-
-               this.doesNotAddBorder = (checkDiv.offsetTop !== 5);
-               this.doesAddBorderForTableAndCells = (td.offsetTop === 5);
-
-               checkDiv.style.position = "fixed";
-               checkDiv.style.top = "20px";
-
-               // safari subtracts parent border width here which is 5px
-               this.supportsFixedPosition = (checkDiv.offsetTop === 20 || checkDiv.offsetTop === 15);
-               checkDiv.style.position = checkDiv.style.top = "";
-
-               innerDiv.style.overflow = "hidden";
-               innerDiv.style.position = "relative";
-
-               this.subtractsBorderForOverflowNotVisible = (checkDiv.offsetTop === -5);
-
-               this.doesNotIncludeMarginInBodyOffset = (body.offsetTop !== bodyMarginTop);
-
-               body.removeChild( container );
-               jQuery.offset.initialize = jQuery.noop;
-       },
-
-       bodyOffset: function( body ) {
-               var top = body.offsetTop,
-                       left = body.offsetLeft;
-
-               jQuery.offset.initialize();
-
-               if ( jQuery.offset.doesNotIncludeMarginInBodyOffset ) {
-                       top  += parseFloat( jQuery.css(body, "marginTop") ) || 0;
-                       left += parseFloat( jQuery.css(body, "marginLeft") ) || 0;
-               }
-
-               return { top: top, left: left };
-       },
-
-       setOffset: function( elem, options, i ) {
-               var position = jQuery.css( elem, "position" );
-
-               // set position first, in-case top/left are set even on static elem
-               if ( position === "static" ) {
-                       elem.style.position = "relative";
-               }
-
-               var curElem = jQuery( elem ),
-                       curOffset = curElem.offset(),
-                       curCSSTop = jQuery.css( elem, "top" ),
-                       curCSSLeft = jQuery.css( elem, "left" ),
-                       calculatePosition = (position === "absolute" || position === "fixed") && jQuery.inArray("auto", [curCSSTop, curCSSLeft]) > -1,
-                       props = {}, curPosition = {}, curTop, curLeft;
-
-               // need to be able to calculate position if either top or left is auto and position is either absolute or fixed
-               if ( calculatePosition ) {
-                       curPosition = curElem.position();
-                       curTop = curPosition.top;
-                       curLeft = curPosition.left;
-               } else {
-                       curTop = parseFloat( curCSSTop ) || 0;
-                       curLeft = parseFloat( curCSSLeft ) || 0;
-               }
-
-               if ( jQuery.isFunction( options ) ) {
-                       options = options.call( elem, i, curOffset );
-               }
-
-               if (options.top != null) {
-                       props.top = (options.top - curOffset.top) + curTop;
-               }
-               if (options.left != null) {
-                       props.left = (options.left - curOffset.left) + curLeft;
-               }
-
-               if ( "using" in options ) {
-                       options.using.call( elem, props );
-               } else {
-                       curElem.css( props );
-               }
-       }
-};
-
-
-jQuery.fn.extend({
-       position: function() {
-               if ( !this[0] ) {
-                       return null;
-               }
-
-               var elem = this[0],
-
-               // Get *real* offsetParent
-               offsetParent = this.offsetParent(),
-
-               // Get correct offsets
-               offset       = this.offset(),
-               parentOffset = rroot.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset();
-
-               // Subtract element margins
-               // note: when an element has margin: auto the offsetLeft and marginLeft
-               // are the same in Safari causing offset.left to incorrectly be 0
-               offset.top  -= parseFloat( jQuery.css(elem, "marginTop") ) || 0;
-               offset.left -= parseFloat( jQuery.css(elem, "marginLeft") ) || 0;
-
-               // Add offsetParent borders
-               parentOffset.top  += parseFloat( jQuery.css(offsetParent[0], "borderTopWidth") ) || 0;
-               parentOffset.left += parseFloat( jQuery.css(offsetParent[0], "borderLeftWidth") ) || 0;
-
-               // Subtract the two offsets
-               return {
-                       top:  offset.top  - parentOffset.top,
-                       left: offset.left - parentOffset.left
-               };
-       },
-
-       offsetParent: function() {
-               return this.map(function() {
-                       var offsetParent = this.offsetParent || document.body;
-                       while ( offsetParent && (!rroot.test(offsetParent.nodeName) && jQuery.css(offsetParent, "position") === "static") ) {
-                               offsetParent = offsetParent.offsetParent;
-                       }
-                       return offsetParent;
-               });
-       }
-});
-
-
-// Create scrollLeft and scrollTop methods
-jQuery.each( ["Left", "Top"], function( i, name ) {
-       var method = "scroll" + name;
-
-       jQuery.fn[ method ] = function( val ) {
-               var elem, win;
-
-               if ( val === undefined ) {
-                       elem = this[ 0 ];
-
-                       if ( !elem ) {
-                               return null;
-                       }
-
-                       win = getWindow( elem );
-
-                       // Return the scroll offset
-                       return win ? ("pageXOffset" in win) ? win[ i ? "pageYOffset" : "pageXOffset" ] :
-                               jQuery.support.boxModel && win.document.documentElement[ method ] ||
-                                       win.document.body[ method ] :
-                               elem[ method ];
-               }
-
-               // Set the scroll offset
-               return this.each(function() {
-                       win = getWindow( this );
-
-                       if ( win ) {
-                               win.scrollTo(
-                                       !i ? val : jQuery( win ).scrollLeft(),
-                                        i ? val : jQuery( win ).scrollTop()
-                               );
-
-                       } else {
-                               this[ method ] = val;
-                       }
-               });
-       };
-});
-
-function getWindow( elem ) {
-       return jQuery.isWindow( elem ) ?
-               elem :
-               elem.nodeType === 9 ?
-                       elem.defaultView || elem.parentWindow :
-                       false;
-}
-
-
-
-
-// Create width, height, innerHeight, innerWidth, outerHeight and outerWidth methods
-jQuery.each([ "Height", "Width" ], function( i, name ) {
-
-       var type = name.toLowerCase();
-
-       // innerHeight and innerWidth
-       jQuery.fn[ "inner" + name ] = function() {
-               var elem = this[0];
-               return elem && elem.style ?
-                       parseFloat( jQuery.css( elem, type, "padding" ) ) :
-                       null;
-       };
-
-       // outerHeight and outerWidth
-       jQuery.fn[ "outer" + name ] = function( margin ) {
-               var elem = this[0];
-               return elem && elem.style ?
-                       parseFloat( jQuery.css( elem, type, margin ? "margin" : "border" ) ) :
-                       null;
-       };
-
-       jQuery.fn[ type ] = function( size ) {
-               // Get window width or height
-               var elem = this[0];
-               if ( !elem ) {
-                       return size == null ? null : this;
-               }
-
-               if ( jQuery.isFunction( size ) ) {
-                       return this.each(function( i ) {
-                               var self = jQuery( this );
-                               self[ type ]( size.call( this, i, self[ type ]() ) );
-                       });
-               }
-
-               if ( jQuery.isWindow( elem ) ) {
-                       // Everyone else use document.documentElement or document.body depending on Quirks vs Standards mode
-                       // 3rd condition allows Nokia support, as it supports the docElem prop but not CSS1Compat
-                       var docElemProp = elem.document.documentElement[ "client" + name ];
-                       return elem.document.compatMode === "CSS1Compat" && docElemProp ||
-                               elem.document.body[ "client" + name ] || docElemProp;
-
-               // Get document width or height
-               } else if ( elem.nodeType === 9 ) {
-                       // Either scroll[Width/Height] or offset[Width/Height], whichever is greater
-                       return Math.max(
-                               elem.documentElement["client" + name],
-                               elem.body["scroll" + name], elem.documentElement["scroll" + name],
-                               elem.body["offset" + name], elem.documentElement["offset" + name]
-                       );
-
-               // Get or set width or height on the element
-               } else if ( size === undefined ) {
-                       var orig = jQuery.css( elem, type ),
-                               ret = parseFloat( orig );
-
-                       return jQuery.isNaN( ret ) ? orig : ret;
-
-               // Set the width or height on the element (default to pixels if value is unitless)
-               } else {
-                       return this.css( type, typeof size === "string" ? size : size + "px" );
-               }
-       };
-
-});
-
-
-// Expose jQuery to the global object
-window.jQuery = window.$ = jQuery;
-})(window);
+/*! jQuery v1.8.2 jquery.com | jquery.org/license */
+(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bY(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bW.length;while(e--){b=bW[e]+c;if(b in a)return b}return d}function bZ(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function b$(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bZ(c)&&(e[f]=p._data(c,"olddisplay",cc(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b_(a,b,c){var d=bP.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function ca(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bV[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bV[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bV[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bV[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bV[e]+"Width"))||0));return f}function cb(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0||d==null){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bQ.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+ca(a,b,c||(f?"border":"content"),e)+"px"}function cc(a){if(bS[a])return bS[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bS[a]=c,c}function ci(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||ce.test(a)?d(a,e):ci(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ci(a+"["+e+"]",b[e],c,d);else d(a,b)}function cz(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cA(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cv;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cA(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cA(a,c,d,e,"*",g)),h}function cB(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cC(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cD(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cL(){try{return new a.XMLHttpRequest}catch(b){}}function cM(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cU(){return setTimeout(function(){cN=b},0),cN=p.now()}function cV(a,b){p.each(b,function(b,c){var d=(cT[b]||[]).concat(cT["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cW(a,b,c){var d,e=0,f=0,g=cS.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cN||cU(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cN||cU(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cX(k,j.opts.specialEasing);for(;e<g;e++){d=cS[e].call(j,a,k,j.opts);if(d)return d}return cV(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cX(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cY(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bZ(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cc(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cP.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cZ(a,b,c,d,e){return new cZ.prototype.init(a,b,c,d,e)}function c$(a,b){var c,d={height:a},e=0;b=b?1:0;for(;e<4;e+=2-b)c=bV[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function da(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.2",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o&&!o.call(" ")?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":(a+"").replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete")setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){var e=p.type(c);e==="function"&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&e!=="string"&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return a!=null?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||p.guid++:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")||(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.length,e=c.shift(),f=p._queueHooks(a,b),g=function(){p.dequeue(a,b)};e==="inprogress"&&(e=c.shift(),d--),e&&(b==="fx"&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)d=p._data(g[h],a+"queueHooks"),d&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)f.indexOf(" "+b[g]+" ")<0&&(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>=0)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>=0)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,d+""),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=b+""}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,needsContext:f&&p.expr.match.needsContext.test(f),namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=k.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click"))for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){h={},j=[];for(d=0;d<q;d++)l=o[d],m=l.selector,h[m]===b&&(h[m]=l.needsContext?p(m,this).index(f)>=0:p.find(m,this,null,[f]).length),h[m]&&j.push(l);j.length&&u.push({elem:f,matches:j})}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){i=u[d],c.currentTarget=i.elem;for(e=0;e<i.matches.length&&!c.isImmediatePropagationStopped();e++){l=i.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,g=((p.event.special[l.origType]||{}).handle||l.handler).apply(i.elem,r),g!==b&&(c.result=g,g===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),!V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length===1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bc(a,b,c,d){c=c||[],b=b||r;var e,f,i,j,k=b.nodeType;if(!a||typeof a!="string")return c;if(k!==1&&k!==9)return[];i=g(b);if(!i&&!d)if(e=P.exec(a))if(j=e[1]){if(k===9){f=b.getElementById(j);if(!f||!f.parentNode)return c;if(f.id===j)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(j))&&h(b,f)&&f.id===j)return c.push(f),c}else{if(e[2])return w.apply(c,x.call(b.getElementsByTagName(a),0)),c;if((j=e[3])&&_&&b.getElementsByClassName)return w.apply(c,x.call(b.getElementsByClassName(j),0)),c}return bp(a.replace(L,"$1"),b,c,d,i)}function bd(a){return function(b){var c=b.nodeName.toLowerCase();return c==="input"&&b.type===a}}function be(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}}function bf(a){return z(function(b){return b=+b,z(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function bg(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}function bh(a,b){var c,d,f,g,h,i,j,k=C[o][a];if(k)return b?0:k.slice(0);h=a,i=[],j=e.preFilter;while(h){if(!c||(d=M.exec(h)))d&&(h=h.slice(d[0].length)),i.push(f=[]);c=!1;if(d=N.exec(h))f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=d[0].replace(L," ");for(g in e.filter)(d=W[g].exec(h))&&(!j[g]||(d=j[g](d,r,!0)))&&(f.push(c=new q(d.shift())),h=h.slice(c.length),c.type=g,c.matches=d);if(!c)break}return b?h.length:h?bc.error(a):C(a,i).slice(0)}function bi(a,b,d){var e=b.dir,f=d&&b.dir==="parentNode",g=u++;return b.first?function(b,c,d){while(b=b[e])if(f||b.nodeType===1)return a(b,c,d)}:function(b,d,h){if(!h){var i,j=t+" "+g+" ",k=j+c;while(b=b[e])if(f||b.nodeType===1){if((i=b[o])===k)return b.sizset;if(typeof i=="string"&&i.indexOf(j)===0){if(b.sizset)return b}else{b[o]=k;if(a(b,d,h))return b.sizset=!0,b;b.sizset=!1}}}else while(b=b[e])if(f||b.nodeType===1)if(a(b,d,h))return b}}function bj(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function bk(a,b,c,d,e){var f,g=[],h=0,i=a.length,j=b!=null;for(;h<i;h++)if(f=a[h])if(!c||c(f,d,e))g.push(f),j&&b.push(h);return g}function bl(a,b,c,d,e,f){return d&&!d[o]&&(d=bl(d)),e&&!e[o]&&(e=bl(e,f)),z(function(f,g,h,i){if(f&&e)return;var j,k,l,m=[],n=[],o=g.length,p=f||bo(b||"*",h.nodeType?[h]:h,[],f),q=a&&(f||!b)?bk(p,m,a,h,i):p,r=c?e||(f?a:o||d)?[]:g:q;c&&c(q,r,h,i);if(d){l=bk(r,n),d(l,[],h,i),j=l.length;while(j--)if(k=l[j])r[n[j]]=!(q[n[j]]=k)}if(f){j=a&&r.length;while(j--)if(k=r[j])f[m[j]]=!(g[m[j]]=k)}else r=bk(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):w.apply(g,r)})}function bm(a){var b,c,d,f=a.length,g=e.relative[a[0].type],h=g||e.relative[" "],i=g?1:0,j=bi(function(a){return a===b},h,!0),k=bi(function(a){return y.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==l)||((b=c).nodeType?j(a,c,d):k(a,c,d))}];for(;i<f;i++)if(c=e.relative[a[i].type])m=[bi(bj(m),c)];else{c=e.filter[a[i].type].apply(null,a[i].matches);if(c[o]){d=++i;for(;d<f;d++)if(e.relative[a[d].type])break;return bl(i>1&&bj(m),i>1&&a.slice(0,i-1).join("").replace(L,"$1"),c,i<d&&bm(a.slice(i,d)),d<f&&bm(a=a.slice(d)),d<f&&a.join(""))}m.push(c)}return bj(m)}function bn(a,b){var d=b.length>0,f=a.length>0,g=function(h,i,j,k,m){var n,o,p,q=[],s=0,u="0",x=h&&[],y=m!=null,z=l,A=h||f&&e.find.TAG("*",m&&i.parentNode||i),B=t+=z==null?1:Math.E;y&&(l=i!==r&&i,c=g.el);for(;(n=A[u])!=null;u++){if(f&&n){for(o=0;p=a[o];o++)if(p(n,i,j)){k.push(n);break}y&&(t=B,c=++g.el)}d&&((n=!p&&n)&&s--,h&&x.push(n))}s+=u;if(d&&u!==s){for(o=0;p=b[o];o++)p(x,q,i,j);if(h){if(s>0)while(u--)!x[u]&&!q[u]&&(q[u]=v.call(k));q=bk(q)}w.apply(k,q),y&&!h&&q.length>0&&s+b.length>1&&bc.uniqueSort(k)}return y&&(t=B,l=z),x};return g.el=0,d?z(g):g}function bo(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)bc(a,b[e],c,d);return c}function bp(a,b,c,d,f){var g,h,j,k,l,m=bh(a),n=m.length;if(!d&&m.length===1){h=m[0]=m[0].slice(0);if(h.length>2&&(j=h[0]).type==="ID"&&b.nodeType===9&&!f&&e.relative[h[1].type]){b=e.find.ID(j.matches[0].replace(V,""),b,f)[0];if(!b)return c;a=a.slice(h.shift().length)}for(g=W.POS.test(a)?-1:h.length-1;g>=0;g--){j=h[g];if(e.relative[k=j.type])break;if(l=e.find[k])if(d=l(j.matches[0].replace(V,""),R.test(h[0].type)&&b.parentNode||b,f)){h.splice(g,1),a=d.length&&h.join("");if(!a)return w.apply(c,x.call(d,0)),c;break}}}return i(a,m)(d,b,f,c,R.test(a)),c}function bq(){}var c,d,e,f,g,h,i,j,k,l,m=!0,n="undefined",o=("sizcache"+Math.random()).replace(".",""),q=String,r=a.document,s=r.documentElement,t=0,u=0,v=[].pop,w=[].push,x=[].slice,y=[].indexOf||function(a){var b=0,c=this.length;for(;b<c;b++)if(this[b]===a)return b;return-1},z=function(a,b){return a[o]=b==null||b,a},A=function(){var a={},b=[];return z(function(c,d){return b.push(c)>e.cacheLength&&delete a[b.shift()],a[c]=d},a)},B=A(),C=A(),D=A(),E="[\\x20\\t\\r\\n\\f]",F="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",G=F.replace("w","w#"),H="([*^$|!~]?=)",I="\\["+E+"*("+F+")"+E+"*(?:"+H+E+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+G+")|)|)"+E+"*\\]",J=":("+F+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+I+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+E+"*((?:-\\d)?\\d*)"+E+"*\\)|)(?=[^-]|$)",L=new RegExp("^"+E+"+|((?:^|[^\\\\])(?:\\\\.)*)"+E+"+$","g"),M=new RegExp("^"+E+"*,"+E+"*"),N=new RegExp("^"+E+"*([\\x20\\t\\r\\n\\f>+~])"+E+"*"),O=new RegExp(J),P=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,Q=/^:not/,R=/[\x20\t\r\n\f]*[+~]/,S=/:not\($/,T=/h\d/i,U=/input|select|textarea|button/i,V=/\\(?!\\)/g,W={ID:new RegExp("^#("+F+")"),CLASS:new RegExp("^\\.("+F+")"),NAME:new RegExp("^\\[name=['\"]?("+F+")['\"]?\\]"),TAG:new RegExp("^("+F.replace("w","w*")+")"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+E+"*(even|odd|(([+-]|)(\\d*)n|)"+E+"*(?:([+-]|)"+E+"*(\\d+)|))"+E+"*\\)|)","i"),needsContext:new RegExp("^"+E+"*[>+~]|"+K,"i")},X=function(a){var b=r.createElement("div");try{return a(b)}catch(c){return!1}finally{b=null}},Y=X(function(a){return a.appendChild(r.createComment("")),!a.getElementsByTagName("*").length}),Z=X(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==n&&a.firstChild.getAttribute("href")==="#"}),$=X(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),_=X(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||!a.getElementsByClassName("e").length?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length===2)}),ba=X(function(a){a.id=o+0,a.innerHTML="<a name='"+o+"'></a><div name='"+o+"'></div>",s.insertBefore(a,s.firstChild);var b=r.getElementsByName&&r.getElementsByName(o).length===2+r.getElementsByName(o+0).length;return d=!r.getElementById(o),s.removeChild(a),b});try{x.call(s.childNodes,0)[0].nodeType}catch(bb){x=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}bc.matches=function(a,b){return bc(a,null,null,b)},bc.matchesSelector=function(a,b){return bc(b,null,null,[a]).length>0},f=bc.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=f(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=f(b);return c},g=bc.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},h=bc.contains=s.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b&&b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:s.compareDocumentPosition?function(a,b){return b&&!!(a.compareDocumentPosition(b)&16)}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc.attr=function(a,b){var c,d=g(a);return d||(b=b.toLowerCase()),(c=e.attrHandle[b])?c(a):d||$?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},e=bc.selectors={cacheLength:50,createPseudo:z,match:W,attrHandle:Z?{}:{href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}},find:{ID:d?function(a,b,c){if(typeof b.getElementById!==n&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==n&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==n&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:Y?function(a,b){if(typeof b.getElementsByTagName!==n)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c},NAME:ba&&function(a,b){if(typeof b.getElementsByName!==n)return b.getElementsByName(name)},CLASS:_&&function(a,b,c){if(typeof b.getElementsByClassName!==n&&!c)return b.getElementsByClassName(a)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(V,""),a[3]=(a[4]||a[5]||"").replace(V,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||bc.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&bc.error(a[0]),a},PSEUDO:function(a){var b,c;if(W.CHILD.test(a[0]))return null;if(a[3])a[2]=a[3];else if(b=a[4])O.test(b)&&(c=bh(b,!0))&&(c=b.indexOf(")",b.length-c)-b.length)&&(b=b.slice(0,c),a[0]=a[0].slice(0,c)),a[2]=b;return a.slice(0,3)}},filter:{ID:d?function(a){return a=a.replace(V,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(V,""),function(b){var c=typeof b.getAttributeNode!==n&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(V,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=B[o][a];return b||(b=B(a,new RegExp("(^|"+E+")"+a+"("+E+"|$)"))),function(a){return b.test(a.className||typeof a.getAttribute!==n&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return function(d,e){var f=bc.attr(d,a);return f==null?b==="!=":b?(f+="",b==="="?f===c:b==="!="?f!==c:b==="^="?c&&f.indexOf(c)===0:b==="*="?c&&f.indexOf(c)>-1:b==="$="?c&&f.substr(f.length-c.length)===c:b==="~="?(" "+f+" ").indexOf(c)>-1:b==="|="?f===c||f.substr(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d){return a==="nth"?function(a){var b,e,f=a.parentNode;if(c===1&&d===0)return!0;if(f){e=0;for(b=f.firstChild;b;b=b.nextSibling)if(b.nodeType===1){e++;if(a===b)break}}return e-=d,e===c||e%c===0&&e/c>=0}:function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b){var c,d=e.pseudos[a]||e.setFilters[a.toLowerCase()]||bc.error("unsupported pseudo: "+a);return d[o]?d(b):d.length>1?(c=[a,a,"",b],e.setFilters.hasOwnProperty(a.toLowerCase())?z(function(a,c){var e,f=d(a,b),g=f.length;while(g--)e=y.call(a,f[g]),a[e]=!(c[e]=f[g])}):function(a){return d(a,0,c)}):d}},pseudos:{not:z(function(a){var b=[],c=[],d=i(a.replace(L,"$1"));return d[o]?z(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)if(f=g[h])a[h]=!(b[h]=f)}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:z(function(a){return function(b){return bc(a,b).length>0}}),contains:z(function(a){return function(b){return(b.textContent||b.innerText||f(b)).indexOf(a)>-1}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!e.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},header:function(a){return T.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:bd("radio"),checkbox:bd("checkbox"),file:bd("file"),password:bd("password"),image:bd("image"),submit:be("submit"),reset:be("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return U.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement},first:bf(function(a,b,c){return[0]}),last:bf(function(a,b,c){return[b-1]}),eq:bf(function(a,b,c){return[c<0?c+b:c]}),even:bf(function(a,b,c){for(var d=0;d<b;d+=2)a.push(d);return a}),odd:bf(function(a,b,c){for(var d=1;d<b;d+=2)a.push(d);return a}),lt:bf(function(a,b,c){for(var d=c<0?c+b:c;--d>=0;)a.push(d);return a}),gt:bf(function(a,b,c){for(var d=c<0?c+b:c;++d<b;)a.push(d);return a})}},j=s.compareDocumentPosition?function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,h=b.parentNode,i=g;if(g===h)return bg(a,b);if(!g)return-1;if(!h)return 1;while(i)e.unshift(i),i=i.parentNode;i=h;while(i)f.unshift(i),i=i.parentNode;c=e.length,d=f.length;for(var j=0;j<c&&j<d;j++)if(e[j]!==f[j])return bg(e[j],f[j]);return j===c?bg(a,f[j],-1):bg(e[j],b,1)},[0,0].sort(j),m=!k,bc.uniqueSort=function(a){var b,c=1;k=m,a.sort(j);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1);return a},bc.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},i=bc.compile=function(a,b){var c,d=[],e=[],f=D[o][a];if(!f){b||(b=bh(a)),c=b.length;while(c--)f=bm(b[c]),f[o]?d.push(f):e.push(f);f=D(a,bn(e,d))}return f},r.querySelectorAll&&function(){var a,b=bp,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[":focus"],f=[":active",":focus"],h=s.matchesSelector||s.mozMatchesSelector||s.webkitMatchesSelector||s.oMatchesSelector||s.msMatchesSelector;X(function(a){a.innerHTML="<select><option selected=''></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+E+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),X(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+E+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'/>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=new RegExp(e.join("|")),bp=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a))){var i,j,k=!0,l=o,m=d,n=d.nodeType===9&&a;if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){i=bh(a),(k=d.getAttribute("id"))?l=k.replace(c,"\\$&"):d.setAttribute("id",l),l="[id='"+l+"'] ",j=i.length;while(j--)i[j]=l+i[j].join("");m=R.test(a)&&d.parentNode||d,n=i.join(",")}if(n)try{return w.apply(f,x.call(m.querySelectorAll(n),0)),f}catch(p){}finally{k||d.removeAttribute("id")}}return b(a,d,f,g,h)},h&&(X(function(b){a=h.call(b,"div");try{h.call(b,"[test!='']:sizzle"),f.push("!=",J)}catch(c){}}),f=new RegExp(f.join("|")),bc.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!g(b)&&!f.test(c)&&(!e||!e.test(c)))try{var i=h.call(b,c);if(i||a||b.document&&b.document.nodeType!==11)return i}catch(j){}return bc(c,null,null,[b]).length>0})}(),e.pseudos.nth=e.pseudos.eq,e.filters=bq.prototype=e.pseudos,e.setFilters=new bq,bc.attr=p.attr,p.find=bc,p.expr=bc.selectors,p.expr[":"]=p.expr.pseudos,p.unique=bc.uniqueSort,p.text=bc.getText,p.isXMLDoc=bc.isXML,p.contains=bc.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=!c.nodeType&&c[0]||c,c=c.ownerDocument||c,a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=b===e&&bA,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(f=0;(h=a[f])!=null;f++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{s=s||bk(b),l=b.createElement("div"),s.appendChild(l),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(g=n.length-1;g>=0;--g)p.nodeName(n[g],"tbody")&&!n[g].childNodes.length&&n[g].parentNode.removeChild(n[g])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l.parentNode.removeChild(l)}h.nodeType?t.push(h):p.merge(t,h)}l&&(h=l=s=null);if(!p.support.appendChecked)for(f=0;(h=t[f])!=null;f++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(f=0;(h=t[f])!=null;f++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[f+1,0].concat(r)),f+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.chrome?b.webkit=!0:b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^(none|table(?!-c[ea]).+)/,bO=/^margin/,bP=new RegExp("^("+q+")(.*)$","i"),bQ=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bR=new RegExp("^([-+])=("+q+")","i"),bS={},bT={position:"absolute",visibility:"hidden",display:"block"},bU={letterSpacing:0,fontWeight:400},bV=["Top","Right","Bottom","Left"],bW=["Webkit","O","Moz","ms"],bX=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return b$(this,!0)},hide:function(){return b$(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bX.apply(this,arguments):this.each(function(){(c?a:bZ(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bY(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bR.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bY(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bU&&(f=bU[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(b,c){var d,e,f,g,h=a.getComputedStyle(b,null),i=b.style;return h&&(d=h[c],d===""&&!p.contains(b.ownerDocument,b)&&(d=p.style(b,c)),bQ.test(d)&&bO.test(c)&&(e=i.width,f=i.minWidth,g=i.maxWidth,i.minWidth=i.maxWidth=i.width=d,d=h.width,i.width=e,i.minWidth=f,i.maxWidth=g)),d}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bQ.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth===0&&bN.test(bH(a,"display"))?p.swap(a,bT,function(){return cb(a,b,d)}):cb(a,b,d)},set:function(a,c,d){return b_(a,c,d?ca(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bQ.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bV[d]+b]=e[d]||e[d-2]||e[0];return f}},bO.test(a)||(p.cssHooks[a+b].set=b_)});var cd=/%20/g,ce=/\[\]$/,cf=/\r?\n/g,cg=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,ch=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ch.test(this.nodeName)||cg.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(cf,"\r\n")}}):{name:b.name,value:c.replace(cf,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ci(d,a[d],c,f);return e.join("&").replace(cd,"+")};var cj,ck,cl=/#.*$/,cm=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,co=/^(?:GET|HEAD)$/,cp=/^\/\//,cq=/\?/,cr=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cs=/([?&])_=[^&]*/,ct=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,cu=p.fn.load,cv={},cw={},cx=["*/"]+["*"];try{ck=f.href}catch(cy){ck=e.createElement("a"),ck.href="",ck=ck.href}cj=ct.exec(ck.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&cu)return cu.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):c&&typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cr,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cB(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cB(a,b),a},ajaxSettings:{url:ck,isLocal:cn.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cx},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cz(cv),ajaxTransport:cz(cw),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cC(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cD(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=(c||y)+"",k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cm.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(cl,"").replace(cp,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=ct.exec(l.url.toLowerCase())||!1,l.crossDomain=i&&i.join(":")+(i[3]?"":i[1]==="http:"?80:443)!==cj.join(":")+(cj[3]?"":cj[1]==="http:"?80:443)),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cA(cv,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!co.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cq.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cs,"$1_="+z);l.url=A+(A===l.url?(cq.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cx+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cA(cw,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cE=[],cF=/\?/,cG=/(=)\?(?=&|$)|\?\?/,cH=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cE.pop()||p.expando+"_"+cH++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cG.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cG.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cG,"$1"+f):m?c.data=i.replace(cG,"$1"+f):k&&(c.url+=(cF.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cE.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cI,cJ=a.ActiveXObject?function(){for(var a in cI)cI[a](0,1)}:!1,cK=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cL()||cM()}:cL,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cJ&&delete cI[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cK,cJ&&(cI||(cI={},p(a).unload(cJ)),cI[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cN,cO,cP=/^(?:toggle|show|hide)$/,cQ=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cR=/queueHooks$/,cS=[cY],cT={"*":[function(a,b){var c,d,e=this.createTween(a,b),f=cQ.exec(b),g=e.cur(),h=+g||0,i=1,j=20;if(f){c=+f[2],d=f[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&h){h=p.css(e.elem,a,!0)||c||1;do i=i||".5",h=h/i,p.style(e.elem,a,h+d);while(i!==(i=e.cur()/g)&&i!==1&&--j)}e.unit=d,e.start=h,e.end=f[1]?h+(f[1]+1)*c:c}return e}]};p.Animation=p.extend(cW,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cT[c]=cT[c]||[],cT[c].unshift(b)},prefilter:function(a,b){b?cS.unshift(a):cS.push(a)}}),p.Tween=cZ,cZ.prototype={constructor:cZ,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cZ.propHooks[this.prop];return a&&a.get?a.get(this):cZ.propHooks._default.get(this)},run:function(a){var b,c=cZ.propHooks[this.prop];return this.options.duration?this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cZ.propHooks._default.set(this),this}},cZ.prototype.init.prototype=cZ.prototype,cZ.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cZ.propHooks.scrollTop=cZ.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(c$(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bZ).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cW(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cR.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:c$("show"),slideUp:c$("hide"),slideToggle:c$("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cZ.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cO&&(cO=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cO),cO=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c_=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j={top:0,left:0},k=this[0],l=k&&k.ownerDocument;if(!l)return;return(d=l.body)===k?p.offset.bodyOffset(k):(c=l.documentElement,p.contains(c,k)?(typeof k.getBoundingClientRect!="undefined"&&(j=k.getBoundingClientRect()),e=da(l),f=c.clientTop||d.clientTop||0,g=c.clientLeft||d.clientLeft||0,h=e.pageYOffset||c.scrollTop,i=e.pageXOffset||c.scrollLeft,{top:j.top+h-f,left:j.left+i-g}):j)},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c_.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c_.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=da(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g,null)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);
\ No newline at end of file
index d469daf17197ec92325bc42b0dc545a74f2e91b3..b02551fe5238c4d40d53974fcc27400dbeca08e8 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/**
  * JavaScript for folding/unfolding menus
  * --------------------------------------------------------------------
  * $Revision::                                                        $
  * JavaScript for folding/unfolding menus
  * --------------------------------------------------------------------
  * $Revision::                                                        $
@@ -7,7 +7,7 @@
  * $Author::                                                          $
  * --------------------------------------------------------------------
  * Copyright (c) 2003 - 2009 by Roland Haeder
  * $Author::                                                          $
  * --------------------------------------------------------------------
  * Copyright (c) 2003 - 2009 by Roland Haeder
- * Copyright (c) 2009 - 2011 by Mailer Developer Team
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
  * For more information visit: http://mxchange.org
  *
  * This program is free software; you can redistribute it and/or modify
  * For more information visit: http://mxchange.org
  *
  * This program is free software; you can redistribute it and/or modify
@@ -27,8 +27,8 @@
  */
 
 // Init variables
  */
 
 // Init variables
-var menuStates = [];
-var id = null;
+var menuStates = new Array();
+var id         = null;
 
 /**
  * Function to fold all menus and unfold current (mainAction) one
 
 /**
  * Function to fold all menus and unfold current (mainAction) one
index c71727cb27673d36b024aeb827faf99e2eee1588..b49519a6afb852589c9c4e7c013410bba5b6aaee 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module
-$GLOBALS['__module'] = 'lead-confirm';
-
-// Set "CSS-Mode"
-$GLOBALS['output_mode'] = '0';
+// Set module and output mode
+$GLOBALS['__module']      = 'lead-confirm';
+$GLOBALS['__output_mode'] = '0';
 
 // Load config.php
 require('inc/config-global.php');
 
 // Load config.php
 require('inc/config-global.php');
index 0c9b262bd52592c53e304b25e54a6786a4388197..b1020c7a999be684f2b91f82751463acc4c5828a 100644 (file)
--- a/login.php
+++ b/login.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module / output mode
 
 // Set module / output mode
-$GLOBALS['__module'] = 'login';
-$GLOBALS['output_mode'] = -2;
+$GLOBALS['__module']      = 'login';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
index df684a7709718e62cd557057733cdbd0f022ba47..fb180602e9ee55348b297e5995ee4db1a699d4a3 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Tell everyone we are in this module
 
 // Tell everyone we are in this module
-$GLOBALS['__module'] = 'mailid';
-$GLOBALS['output_mode'] = '0';
+$GLOBALS['__module']      = 'mailid';
+$GLOBALS['__output_mode'] = '0';
 $errorCode = '';
 
 $errorCode = '';
 
+// This is a frameset module
+$GLOBALS['frameset_mode'] = true;
+
+// Disable copyright footer which would break the frameset
+$GLOBALS['__copyright_enabled'] = 'N';
+
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Set content type and HTTP status
 setContentType('text/html');
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Set content type and HTTP status
 setContentType('text/html');
-setHttpStatus('404 NOT FOUND');
+setHttpStatus('404 Not Found');
 
 // Is the extension active?
 redirectOnUninstalledExtension('mailid');
 
 // Is the extension active?
 redirectOnUninstalledExtension('mailid');
@@ -111,7 +117,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                break;
 
                        default: // Invalid mail type
                                break;
 
                        default: // Invalid mail type
-                               debug_report_bug(__FILE__, __LINE__, 'Invalid mail type ' . $ltype . ' detected.');
+                               reportBug(__FILE__, __LINE__, 'Invalid mail type ' . $ltype . ' detected.');
                                break;
                } // END - switch
 
                                break;
                } // END - switch
 
@@ -166,7 +172,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                                        break;
 
                                                default: // Invalid mail type
                                                        break;
 
                                                default: // Invalid mail type
-                                                       debug_report_bug(__FILE__, __LINE__, 'Invalid mail type ' . $ltype . ' detected.');
+                                                       reportBug(__FILE__, __LINE__, 'Invalid mail type ' . $ltype . ' detected.');
                                                        break;
                                        }
 
                                                        break;
                                        }
 
index 04aef4c0fddccc49b610aaa88dcf2073874d4504..6b2ee7bc89faeb5bac20aa584966a987140d3e99 100644 (file)
@@ -18,7 +18,7 @@
  * @TODO Merge this script with mailid.php                              *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * @TODO Merge this script with mailid.php                              *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Tell everyone we are in this module
 
 // Tell everyone we are in this module
-$GLOBALS['__module'] = 'mailid';
-$GLOBALS['output_mode'] = '0';
+$GLOBALS['__module']      = 'mailid';
+$GLOBALS['__output_mode'] = '0';
+
+// Disable copyright footer which would be to large for the upper frame
+$GLOBALS['__copyright_enabled'] = 'N';
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Set content type and HTTP status
 setContentType('text/html');
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Set content type and HTTP status
 setContentType('text/html');
-setHttpStatus('404 NOT FOUND');
+setHttpStatus('404 Not Found');
 
 // Is the extension mailid active?
 redirectOnUninstalledExtension('mailid');
 
 // Is the extension mailid active?
 redirectOnUninstalledExtension('mailid');
@@ -115,7 +118,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                break;
 
                        default: // Unknown type
                                break;
 
                        default: // Unknown type
-                               debug_report_bug(__FILE__, __LINE__, 'Unknown mail type ' . $ltype . ' detected.');
+                               reportBug(__FILE__, __LINE__, 'Unknown mail type ' . $ltype . ' detected.');
                                break;
                }
 
                                break;
                }
 
@@ -125,7 +128,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                        list($pool, $sender, $notify) = SQL_FETCHROW($result_mailid);
 
                        // Correct notification switch in non-bonus mails
                        list($pool, $sender, $notify) = SQL_FETCHROW($result_mailid);
 
                        // Correct notification switch in non-bonus mails
-                       if (($notify != 'Y') && ($notify != 'N')) {
+                       if (!in_array($notify, array('Y', 'N'))) {
                                $notify = 'N';
                        } // END - if
 
                                $notify = 'N';
                        } // END - if
 
@@ -172,9 +175,9 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                                        break;
 
                                                default: // Unknown type
                                                        break;
 
                                                default: // Unknown type
-                                                       debug_report_bug(__FILE__, __LINE__, 'Unknown mail type ' . $ltype . ' detected.');
+                                                       reportBug(__FILE__, __LINE__, 'Unknown mail type ' . $ltype . ' detected.');
                                                        break;
                                                        break;
-                                       }
+                                       } // END - switch
 
                                        // Is this entry valid?
                                        if ($isValid === true) {
 
                                        // Is this entry valid?
                                        if ($isValid === true) {
@@ -220,7 +223,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                                                                        break;
 
                                                                                default: // Unknown type
                                                                                        break;
 
                                                                                default: // Unknown type
-                                                                                       debug_report_bug(__FILE__, __LINE__, 'Unknown mail type ' . $ltype . ' detected.');
+                                                                                       reportBug(__FILE__, __LINE__, 'Unknown mail type ' . $ltype . ' detected.');
                                                                                        break;
                                                                        } // END - switch
 
                                                                                        break;
                                                                        } // END - switch
 
@@ -337,7 +340,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                                                                $content['banner'] = loadTemplate('mailid_banner', true);
                                                                                if (getCodeLength() > 0) {
                                                                                        // Generate Code
                                                                                $content['banner'] = loadTemplate('mailid_banner', true);
                                                                                if (getCodeLength() > 0) {
                                                                                        // Generate Code
-                                                                                       $content['image'] = generateCaptchaCode($realCode, $type, $urlId, $userId);
+                                                                                       $content['image'] = generateCaptchaCode($code, $type, $urlId, $userId);
                                                                                        $templ = 'mailid_enter_code';
                                                                                } else {
                                                                                        // Disabled code
                                                                                        $templ = 'mailid_enter_code';
                                                                                } else {
                                                                                        // Disabled code
@@ -349,7 +352,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                                                                loadTemplate($templ, false, $content);
                                                                        } else {
                                                                                // Cannot confirm!
                                                                                loadTemplate($templ, false, $content);
                                                                        } else {
                                                                                // Cannot confirm!
-                                                                               debug_report_bug(__FILE__, __LINE__, 'No code given.');
+                                                                               reportBug(__FILE__, __LINE__, 'No code given.');
                                                                        }
                                                                        break;
 
                                                                        }
                                                                        break;
 
@@ -361,7 +364,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                                                        $content['userid'] = $userId;
                                                                        $content['type']   = $type;
                                                                        $content['data']   = $urlId;
                                                                        $content['userid'] = $userId;
                                                                        $content['type']   = $type;
                                                                        $content['data']   = $urlId;
-                                                                       $content['rand']   = mt_rand(0, 99999);
+                                                                       $content['rand']   = getRandomTan();
                                                                        $content['banner'] = loadTemplate('mailid_banner', true);
 
                                                                        // Load template
                                                                        $content['banner'] = loadTemplate('mailid_banner', true);
 
                                                                        // Load template
@@ -369,7 +372,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
                                                                        break;
 
                                                                default: // Unknown mode
                                                                        break;
 
                                                                default: // Unknown mode
-                                                                       debug_report_bug(__FILE__, __LINE__, 'Unknown mode ' . $do . ' detected.');
+                                                                       reportBug(__FILE__, __LINE__, 'Unknown mode ' . $do . ' detected.');
                                                                        break;
                                                        } // END - switch
                                                } else {
                                                                        break;
                                                        } // END - switch
                                                } else {
@@ -411,7 +414,7 @@ if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalEr
 }
 
 // Really all done here... ;-)
 }
 
 // Really all done here... ;-)
-shutdown();
+doShutdown();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>
index d1def714436aa77e802db91ecb70374d8baaba93..280bd0f12481754250713633f677cbdde2ae94f8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Init output mode and module
 
 // Init output mode and module
-$GLOBALS['__module'] = 'unknown';
-$GLOBALS['output_mode'] = '0';
+$GLOBALS['__module']      = 'unknown';
+$GLOBALS['__output_mode'] = '0';
 
 // Needed include files
 require('inc/config-global.php');
 
 // Needed include files
 require('inc/config-global.php');
index ce15b4427e652a1e47d14c6c6b0aa6db866eeba3..953e84b086cb2df268cf1c7dff852b6765665d07 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 
-// Set module
-$GLOBALS['__module'] = 'network-vcheck';
-$GLOBALS['output_mode'] = '0';
+// Set module and output mode (raw)
+$GLOBALS['__module']      = 'network-vcheck';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
diff --git a/ref.php b/ref.php
index 0e94e1e2366133781d49ba93bea87d7e44132a38..c91ff65364b07531d0a7a6016c05e988df7e90d3 100644 (file)
--- a/ref.php
+++ b/ref.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module
 
 // Set module
-$GLOBALS['__module'] = 'ref';
-$GLOBALS['output_mode'] = -1;
+$GLOBALS['__module']      = 'ref';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
index 4d1db761fa2fbb6447001ed9a650f87a7e62c5a0..4306fdb907d89fd909288fb48dbf156caff2e413 100644 (file)
@@ -1,6 +1,4 @@
-#
-# Thanx to Mr. Jungwirth for his hint to create this file (was a bit lost in my mind...)
-#
+# Generic exclusion (makes never sense)
 User-agent: *
 Disallow: /css/
 Disallow: /inc/
 User-agent: *
 Disallow: /css/
 Disallow: /inc/
@@ -9,6 +7,7 @@ Disallow: /templates/
 Disallow: /install.php
 Disallow: /cms/index/wht/impressum
 
 Disallow: /install.php
 Disallow: /cms/index/wht/impressum
 
+# Exclusion for Google (he will not listen to '*' :( )
 User-agent: Googlebot
 Disallow: /css/
 Disallow: /inc/
 User-agent: Googlebot
 Disallow: /css/
 Disallow: /inc/
@@ -17,6 +16,7 @@ Disallow: /templates/
 Disallow: /install.php
 Disallow: /cms/index/wht/impressum
 
 Disallow: /install.php
 Disallow: /cms/index/wht/impressum
 
+# A lot "bot" you may don't like as I do
 User-agent: grub-client
 Disallow: /
 
 User-agent: grub-client
 Disallow: /
 
index 525d5b498055f406e6e07f0efa126355d0cc366d..ad3ba472f617365b79d6893505dad8089b2be213 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set this because we have no module in URI
 
 // Set this because we have no module in URI
-$GLOBALS['__module'] = 'show_bonus';
-$GLOBALS['output_mode'] = '0';
+$GLOBALS['__module']      = 'show_bonus';
+$GLOBALS['__output_mode'] = '0';
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
@@ -78,7 +78,9 @@ if ((isValidUserId(getRequestElement('userid'))) && (getRequestElement('d') > 0)
        if (!empty($t)) {
                // Check for data
                $result = SQL_QUERY_ESC("SELECT
        if (!empty($t)) {
                // Check for data
                $result = SQL_QUERY_ESC("SELECT
-       d.`userid`, b.`level`, b.`points`
+       d.`userid`,
+       b.`level`,
+       b.`points`
 FROM
        `{?_MYSQL_PREFIX?}_user_data` AS d
 INNER JOIN
 FROM
        `{?_MYSQL_PREFIX?}_user_data` AS d
 INNER JOIN
index c5e5636ea15438d9aab920359acf73e38de32368..2a0a6e6ee782b0d5c64c8b3efec49e03974f6276 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module / output mode
 
 // Set module / output mode
-$GLOBALS['__module'] = 'sponsor_confirm';
-$GLOBALS['output_mode'] = -2;
+$GLOBALS['__module']      = 'sponsor_confirm';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
index 1f167b2edcaac1c2c5b3086a96b5e7906ca99117..d9967f4b8d728b93ca3da607c364d226eaed53be 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software. You can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module / output mode
 
 // Set module / output mode
-$GLOBALS['__module'] = 'sponsor_ref';
-$GLOBALS['output_mode'] = -2;
+$GLOBALS['__module']      = 'sponsor_ref';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
index 1dc43451c404946ce55bc829dcac3d52e915e01b..9fce26b80c2c3247ac7ddd3d13625f3f195cae91 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module output mode
 
 // Set module output mode
-$GLOBALS['__module'] = 'surfbar';
-$GLOBALS['output_mode'] = '0';
-$GLOBALS['header_sent'] = 3;
+$GLOBALS['__module']      = 'surfbar';
+$GLOBALS['__output_mode'] = '0';
+$GLOBALS['__header_sent'] = 3;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
@@ -53,9 +53,9 @@ require('inc/config-global.php');
 setContentType('text/html');
 
 // Is a frame active?
 setContentType('text/html');
 
 // Is a frame active?
-if (isGetRequestElementSet('frame')) {
+if (!isFullPage()) {
        // Then we need to set header_sent to 0
        // Then we need to set header_sent to 0
-       $GLOBALS['header_sent'] = '0';
+       $GLOBALS['__header_sent'] = '0';
 } // END - if
 
 // Only logged in users may use this surfbar!
 } // END - if
 
 // Only logged in users may use this surfbar!
@@ -64,9 +64,9 @@ redirectOnUninstalledExtension('surfbar');
 // No member?
 if (!isMember()) {
        // Should we display login window or redirect to main page?
 // No member?
 if (!isMember()) {
        // Should we display login window or redirect to main page?
-       if ((getConfig('surfbar_guest_login_form') == 'Y') && (isExtensionActive('user'))) {
+       if ((isSurfbarGuestLoginFormEnabled()) && (isExtensionActive('user'))) {
                // Is the form sent?
                // Is the form sent?
-               if ((isFormSent()) && (isPostRequestElementSet('id')) && (isPostRequestElementSet('password'))) {
+               if ((isFormSent('login')) && (isPostRequestElementSet('id')) && (isPostRequestElementSet('password'))) {
                        // Do the login procedure
                        $url = doUserLogin(postRequestElement('id'), postRequestElement('password'), basename(__FILE__), basename(__FILE__) . '?code=');
 
                        // Do the login procedure
                        $url = doUserLogin(postRequestElement('id'), postRequestElement('password'), basename(__FILE__), basename(__FILE__) . '?code=');
 
@@ -86,7 +86,7 @@ if (!isMember()) {
                        loadTemplate('surfbar_login_form');
 
                        // Allow footer here
                        loadTemplate('surfbar_login_form');
 
                        // Allow footer here
-                       $GLOBALS['header_sent'] = 2;
+                       $GLOBALS['__header_sent'] = 2;
 
                        // Load footer
                        loadIncludeOnce('inc/footer.php');
 
                        // Load footer
                        loadIncludeOnce('inc/footer.php');
@@ -98,19 +98,19 @@ if (!isMember()) {
 } // END - if
 
 // Initialize the surfbar
 } // END - if
 
 // Initialize the surfbar
-SURFBAR_INIT();
+initSurfbar();
 
 // Handle tasks on self-maintenance
 
 // Handle tasks on self-maintenance
-SURFBAR_HANDLE_SELF_MAINTENANCE();
+doSurfbarSelfMaintenance();
 
 // Is there a check value?
 
 // Is there a check value?
-if ((SURFBAR_CHECK_RELOAD_FULL()) || ((isGetRequestElementSet('frame')) && (in_array(getRequestElement('frame'), array('stop', 'stop2', 'stats', 'textlinks'))))) {
+if ((isSurfbarReloadFull()) || ((!isFullPage()) && (in_array(getRequestElement('frame'), array('stop', 'stop2', 'stats', 'textlinks'))))) {
        // Reload-lock is full, surfbar stopped so...
        // Load header
        loadIncludeOnce('inc/header.php');
 
        // Load template
        // Reload-lock is full, surfbar stopped so...
        // Load header
        loadIncludeOnce('inc/header.php');
 
        // Load template
-       if (((isGetRequestElementSet('frame')) && (getRequestElement('frame') == 'stop2')) || (!isGetRequestElementSet('frame'))) {
+       if (((!isFullPage()) && (getRequestElement('frame') == 'stop2')) || (isFullPage())) {
                // Load template for "start" page
                loadTemplate('surfbar_frame_start');
 
                // Load template for "start" page
                loadTemplate('surfbar_frame_start');
 
@@ -119,19 +119,19 @@ if ((SURFBAR_CHECK_RELOAD_FULL()) || ((isGetRequestElementSet('frame')) && (in_a
 
                // This makes the footer appear again
                unsetGetRequestElement('frame');
 
                // This makes the footer appear again
                unsetGetRequestElement('frame');
-       } elseif ((isGetRequestElementSet('frame')) && (getRequestElement('frame') == 'stats')) {
+       } elseif ((!isFullPage()) && (getRequestElement('frame') == 'stats')) {
                // Prepare content
                $content = array(
                        'points' => getTotalPoints(getMemberId()),
                // Prepare content
                $content = array(
                        'points' => getTotalPoints(getMemberId()),
-                       'reload' => (getConfig('surfbar_stats_reload') * 1000)
+                       'reload' => (getSurfbarStatsReload() * 1000)
                );
 
                // Load template for "stats" page
                loadTemplate('surfbar_frame_stats', false, $content);
                );
 
                // Load template for "stats" page
                loadTemplate('surfbar_frame_stats', false, $content);
-       } elseif ((isGetRequestElementSet('frame')) && (getRequestElement('frame') == 'textlinks')) {
+       } elseif ((!isFullPage()) && (getRequestElement('frame') == 'textlinks')) {
                // Prepare content
                $content = array(
                // Prepare content
                $content = array(
-                       'reload' => (getConfig('surfbar_stats_reload') * 1000)
+                       'reload' => (getSurfbarStatsReload() * 1000)
                );
 
                // Load template for "stats" page
                );
 
                // Load template for "stats" page
@@ -139,8 +139,8 @@ if ((SURFBAR_CHECK_RELOAD_FULL()) || ((isGetRequestElementSet('frame')) && (in_a
        } else {
                // Prepare content
                $content = array(
        } else {
                // Prepare content
                $content = array(
-                       'start'     => str_repeat('X', strlen(getConfig('surfbar_restart_time'))),
-                       'autostart' => (getConfig('surfbar_autostart') == 'Y') ? 'true' : 'false'
+                       'start'     => str_repeat('X', strlen(getSurfbarRestartTime())),
+                       'autostart' => (isSurfbarAutoStartEnbaled()) ? 'true' : 'false'
                );
 
                // Load template for stopped surfbar
                );
 
                // Load template for stopped surfbar
@@ -148,56 +148,56 @@ if ((SURFBAR_CHECK_RELOAD_FULL()) || ((isGetRequestElementSet('frame')) && (in_a
        }
 } elseif ((isGetRequestElementSet('check')) && (isGetRequestElementSet('id')) && (isGetRequestElementSet('salt'))) {
        // Dummy next id get
        }
 } elseif ((isGetRequestElementSet('check')) && (isGetRequestElementSet('id')) && (isGetRequestElementSet('salt'))) {
        // Dummy next id get
-       SURFBAR_DETERMINE_NEXT_ID(getRequestElement('id'));
+       determineSurfbarNextId(getRequestElement('id'));
 
        // Check reload lock and validation code
 
        // Check reload lock and validation code
-       if ((!SURFBAR_CHECK_RELOAD_LOCK(getRequestElement('id'))) && (SURFBAR_CHECK_VALIDATION_CODE(getRequestElement('id'), getRequestElement('check'), getRequestElement('salt')))) {
+       if ((!ifSurfbarReloadLock(getRequestElement('id'))) && (isSurfbarValidationCodeValid(getRequestElement('id'), getRequestElement('check'), getRequestElement('salt')))) {
                // Lock the URL (id) down
                // Lock the URL (id) down
-               SURFBAR_LOCKDOWN_ID(getRequestElement('id'));
+               addSurfbarReloadLockById(getRequestElement('id'));
 
                // Code is valid so pay points here
 
                // Code is valid so pay points here
-               SURFBAR_PAY_POINTS();
+               doSurfbarPayPoints();
 
                // Check if reload is full
 
                // Check if reload is full
-               if (SURFBAR_CHECK_RELOAD_FULL()) {
+               if (isSurfbarReloadFull()) {
                        // Then load waiting page
                        // Then load waiting page
-                       SURFBAR_RELOAD_TO_STOP_PAGE();
+                       redirectToSurfbarStopPage();
                } // END - if
 
                // Load header to avoid a bug
                loadIncludeOnce('inc/header.php');
        } else {
                // Reload to stop frame!
                } // END - if
 
                // Load header to avoid a bug
                loadIncludeOnce('inc/header.php');
        } else {
                // Reload to stop frame!
-               SURFBAR_RELOAD_TO_STOP_PAGE();
+               redirectToSurfbarStopPage();
        }
 
        // All done, so fix notice for footer.php
        }
 
        // All done, so fix notice for footer.php
-       $GLOBALS['footer_sent'] = 1;
+       $GLOBALS['__footer_sent'] = 1;
 } else {
        // Prepare content
        $content = '';
 
        // Frame "top" set?
 } else {
        // Prepare content
        $content = '';
 
        // Frame "top" set?
-       if ((isGetRequestElementSet('frame')) && (getRequestElement('frame') == 'top')) {
+       if ((!isFullPage()) && (getRequestElement('frame') == 'top')) {
                // Determine next id
                // Determine next id
-               $nextId = SURFBAR_DETERMINE_NEXT_ID();
-               //* DEBUG: */ die('nextId='.$nextId);
+               $nextId = determineSurfbarNextId();
+               //* DEBUG: */ exit('nextId='.$nextId);
 
                // Is there a valid id?
                if ($nextId > 0) {
                        // Then prepare other content
                        $content = array(
                                'url_id' => $nextId,
 
                // Is there a valid id?
                if ($nextId > 0) {
                        // Then prepare other content
                        $content = array(
                                'url_id' => $nextId,
-                               'xxx'    => str_repeat('X', strlen(SURFBAR_GET_RELOAD_TIME($nextId))),
+                               'xxx'    => str_repeat('X', strlen(gerSurfbarReloadTime($nextId))),
                        );
 
                        // Update salt (double-call lock!) and statistics
                        );
 
                        // Update salt (double-call lock!) and statistics
-                       SURFBAR_UPDATE_SALT_STATS();
+                       updateSurfbarSaltStatistics();
                } else {
                        // Load new URL
                } else {
                        // Load new URL
-                       SURFBAR_RELOAD_TO_STOP_PAGE('stop');
+                       redirectToSurfbarStopPage('stop');
                }
                }
-       } elseif ((isGetRequestElementSet('frame')) && (getRequestElement('frame') == 'start')) {
+       } elseif ((!isFullPage()) && (getRequestElement('frame') == 'start')) {
                // Starter frame found so let the footer display
                unsetGetRequestElement('frame');
        }
                // Starter frame found so let the footer display
                unsetGetRequestElement('frame');
        }
@@ -206,15 +206,15 @@ if ((SURFBAR_CHECK_RELOAD_FULL()) || ((isGetRequestElementSet('frame')) && (in_a
        loadIncludeOnce('inc/header.php');
 
        // Determine template name
        loadIncludeOnce('inc/header.php');
 
        // Determine template name
-       $templateName = SURFBAR_DETERMINE_TEMPLATE_NAME();
+       $templateName = determineSurfbarTemplateName();
 
        // Load that template
 
        // Load that template
-       //* DEBUG: */ die('templateName=' . $templateName . '<br /><strong>content</strong>=<pre>' . print_r($content, true) . '</pre>');
+       //* DEBUG: */ exit('templateName=' . $templateName . '<br /><strong>content</strong>=<pre>' . print_r($content, true) . '</pre>');
        loadTemplate($templateName, false, $content);
 }
 
 // Load footer
        loadTemplate($templateName, false, $content);
 }
 
 // Load footer
-$GLOBALS['footer_sent'] = 3;
+$GLOBALS['__footer_sent'] = 3;
 loadIncludeOnce('inc/footer.php');
 
 // [EOF]
 loadIncludeOnce('inc/footer.php');
 
 // [EOF]
diff --git a/templates/de/emails/admin/admin_admin_add_all_direct.tpl b/templates/de/emails/admin/admin_admin_add_all_direct.tpl
new file mode 100644 (file)
index 0000000..c565aa1
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+Einer unserer Administratoren hat einem Mitglied per Sammel-Direktgutschrift {?POINTS?} aufgebucht!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_admin_add_all_ref_referral.tpl b/templates/de/emails/admin/admin_admin_add_all_ref_referral.tpl
new file mode 100644 (file)
index 0000000..e0702ac
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+einies unserer Mitglieder hat soeben eine anteilige Sammel-Referralgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_admin_add_all_referral.tpl b/templates/de/emails/admin/admin_admin_add_all_referral.tpl
new file mode 100644 (file)
index 0000000..a109dae
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+Einer unserer Administratoren hat einem Mitglied per Sammel-Referralgutschrift {?POINTS?} aufgebucht!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_admin_add_single_direct.tpl b/templates/de/emails/admin/admin_admin_add_single_direct.tpl
new file mode 100644 (file)
index 0000000..6ffd937
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+Einer unserer Administratoren hat einem Mitglied per Einzel-Direktgutschrift {?POINTS?} aufgebucht!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_admin_add_single_referral.tpl b/templates/de/emails/admin/admin_admin_add_single_referral.tpl
new file mode 100644 (file)
index 0000000..eb480e0
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+Einer unserer Administratoren hat einem Mitglied per Einzel-Referralgutschrift {?POINTS?} aufgebucht!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_beg_direct.tpl b/templates/de/emails/admin/admin_beg_direct.tpl
new file mode 100644 (file)
index 0000000..89880b5
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied soeben beim Betteln {%pipe,translateComma=$content[points]%} {?POINTS?} per Direktgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_beg_ref_referral.tpl b/templates/de/emails/admin/admin_beg_ref_referral.tpl
new file mode 100644 (file)
index 0000000..3485b87
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+ein Mitglied soeben beim Betteln {%pipe,translateComma=$content[points]%} {?POINTS?} per anteiliger Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_beg_referral.tpl b/templates/de/emails/admin/admin_beg_referral.tpl
new file mode 100644 (file)
index 0000000..8eb8e6d
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+ein Mitglied soeben beim Betteln {%pipe,translateComma=$content[points]%} {?POINTS?} per Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
index 0cd1ce58b6620000413abbcb616b3505ff8a7fd3..a1504cdd36185a455d7e8ac10c466ac4e066b3ab 100644 (file)
@@ -27,6 +27,6 @@ Browser: {%server,user_agent%}
 ------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
 ------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
+  Ihr {?MAIN_TITLE?} Script
 
 
-{?URL?}/login.php ({?WEBMASTER?})
+{?URL?}/admin.php
index 8dc38e32ee2e418390749a0899756475e162972b..deb38a45a08cc1065b091c15efd0850c5b3b0aaa 100644 (file)
@@ -15,6 +15,6 @@ $content[coupon_description]
 --------------------------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
 --------------------------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
+  Ihr {?MAIN_TITLE?} Script
 
 
-{?URL?}/login.php ({?WEBMASTER?})
+{?URL?}/admin.php
index 8cb0d7e61ee28bafa1e1e512e4e242a2f3a86c08..bfa0c02b6a83c9382f46c19121ae6b4d29e0d977 100644 (file)
@@ -7,6 +7,6 @@ Hier sind alle Daten der/des Gutscheine(s):
 $content
 
 Mit freundlichen Gr&uuml;&szlig;en,
 $content
 
 Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
+  Ihr {?MAIN_TITLE?} Script
 
 
-{?URL?}/login.php ({?WEBMASTER?})
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_edit_forced_ads.tpl b/templates/de/emails/admin/admin_edit_forced_ads.tpl
new file mode 100644 (file)
index 0000000..a5e2c6e
--- /dev/null
@@ -0,0 +1,35 @@
+Hallo Administrator,
+
+Es wurde soeben Forced-Werbemittel ge&auml;ndert.
+
+Hier sind alle Daten dazu:
+------------------------------------------
+Forced-Werbemittel-Id: $content[forced_ads_id]
+------------------------------------------
+{--ADMIN_FORCED_ADS_AD_URL--}: $content[forced_ads_ad_url]
+------------------------------------------
+{--ADMIN_FORCED_ADS_ALTERNATE_TEXT--}: $content[forced_ads_alt_text]
+------------------------------------------
+{--ADMIN_FORCED_ADS_CLICK_URL--}: $content[forced_ads_click_url]
+------------------------------------------
+{--ADMIN_FORCED_ADS_WIDTH--}: {%pipe,translateComma=$content[forced_ads_width]%}
+------------------------------------------
+{--ADMIN_FORCED_ADS_HEIGHT--}: {%pipe,translateComma=$content[forced_ads_height]%}
+------------------------------------------
+{--ADMIN_FORCED_ADS_USERID--}: $content[forced_ads_userid]
+------------------------------------------
+{--ADMIN_FORCED_ADS_TYPE--}: {%pipe,translateForcedAdsType=$content[forced_ads_type]%}
+------------------------------------------
+{--ADMIN_FORCED_ADS_HAS_FRAMEBREAKER--}: {%pipe,translateYesNo=$content[forced_ads_framebreaker]%}
+------------------------------------------
+{--ADMIN_FORCED_ADS_VIEWS_COUNTER--}: {%pipe,translateComma=$content[forced_ads_views_counter]%}
+------------------------------------------
+{--ADMIN_FORCED_ADS_CLICKS_COUNTER--}: {%pipe,translateComma=$content[forced_ads_clicks_counter]%}
+------------------------------------------
+{--ADMIN_FORCED_ADS_ADDED--}: $content[forced_ads_added]
+------------------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_edit_forced_costs.tpl b/templates/de/emails/admin/admin_edit_forced_costs.tpl
new file mode 100644 (file)
index 0000000..36a7e46
--- /dev/null
@@ -0,0 +1,19 @@
+Hallo Administrator,
+
+Es wurde soeben Forced-Preise ge&auml;ndert.
+
+Hier sind alle Daten dazu:
+------------------------------------------
+Forced-Preis-Id: $content[forced_costs_id]
+------------------------------------------
+{--ADMIN_FORCED_COSTS_PRICE_CLICK--}: {%pipe,translateComma=$content[forced_costs_price_click]%}
+------------------------------------------
+{--ADMIN_FORCED_COSTS_PAYMENT_CLICK--}: {%pipe,translateComma=$content[forced_costs_payment_click]%}
+------------------------------------------
+{--ADMIN_FORCED_COSTS_VISIBILITY--}: {%pipe,translateForcedCostsVisibility=$content[forced_costs_visibility]%}
+------------------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_edit_points_data.tpl b/templates/de/emails/admin/admin_edit_points_data.tpl
new file mode 100644 (file)
index 0000000..4577f98
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+es wurde soeben ein {?POINTS?}-Guthabenkonto ge&auml;ndert.
+
+Hier sind alle Daten dazu:
+------------------------------------------
+Konten-Id: $content[id]
+------------------------------------------
+{--ADMIN_POINTS_ACCOUNT_SUBJECT--}: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------------------
+{--ADMIN_POINTS_ACCOUNT_COLUMN_NAME--}: {%pipe,translatePointsAccountType=$content[column_name]%}
+------------------------------------------
+{--ADMIN_POINTS_ACCOUNT_LOCKED_MODE--}: {%pipe,translatePointsLockedMode=$content[locked_mode]%}
+------------------------------------------
+{--ADMIN_POINTS_ACCOUNT_PAYMENT_METHOD--}: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------------------
+{--ADMIN_POINTS_ACCOUNT_NOTIFY_RECIPIENT--} {%pipe,translateYesNo=$content[notify_recipient]%}
+------------------------------------------
+{--ADMIN_POINTS_ACCOUNT_PROVIDER--}: {%pipe,translatePointsAccountProvider=$content[account_provider]%}
+------------------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
index c558ee0d6f888dc9d52e511b7148a3acdc50d2df..c197fb30b22d8ca2888076795d7d03dc03a08603 100644 (file)
@@ -5,6 +5,6 @@ es wurde soeben die Erweiterung $content[ext_name] automatisch deaktiviert, da s
 Bitte deinstallieren Sie bald diese Erweiterung. Sie wird vom {?TITLE?}-Entwicklerteam nicht mehr unterst&uuml;tzt.
 
 Mit freundlichen Gr&uuml;&szlig;en,
 Bitte deinstallieren Sie bald diese Erweiterung. Sie wird vom {?TITLE?}-Entwicklerteam nicht mehr unterst&uuml;tzt.
 
 Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
+  Ihr {?MAIN_TITLE?} Script
 
 
-{?URL?}/login.php ({?WEBMASTER?})
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_forced_campaign_pending_active.tpl b/templates/de/emails/admin/admin_forced_campaign_pending_active.tpl
new file mode 100644 (file)
index 0000000..2650ec1
--- /dev/null
@@ -0,0 +1,31 @@
+Hallo Administrator,
+
+ein Administrator hat soeben eine Forced-Kampagne freigeschaltet.
+
+Hier sind alle Daten dazu:
+------------------------------------------
+Mitglied-Id: $content[forced_campaign_userid]
+------------------------------------------
+Email: {%user,email=$userid%}
+------------------------------------------
+Name: {%user,surname=$userid%} {%user,family=$userid%}
+------------------------------------------
+Kampagnen-Id: $content[forced_campaign_id]
+------------------------------------------
+Kampagne erstellt: $content[forced_campaign_created]
+------------------------------------------
+Klicks &uuml;brig: {%pipe,translateComma=$content[forced_campaign_ordered_clicks]%}
+------------------------------------------
+Reload-Sperre: {%pipe,createFancyTime=$content[forced_campaign_reload_lock]%}
+------------------------------------------
+Mindestauffenthalt: {%pipe,createFancyTime=$content[forced_campaign_minimum_stay]%}
+------------------------------------------
+Forced-Werbemittel: $content[forced_ads_id]
+------------------------------------------
+Kosten-Id: $content[forced_costs_id]
+------------------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_mailid_okay_ref_referral.tpl b/templates/de/emails/admin/admin_mailid_okay_ref_referral.tpl
new file mode 100644 (file)
index 0000000..ae83e2f
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+ein geworbenes Mitglied hat soeben eine Mail korrekt best&auml;gt und &uuml;ber das Referral-System eine Gutschrift erhalten. Der Werber hat hiermit einen Anteil gutgeschrieben bekommen.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_mailid_okay_referral.tpl b/templates/de/emails/admin/admin_mailid_okay_referral.tpl
new file mode 100644 (file)
index 0000000..2454711
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben eine Mail korrekt best&auml;gt und &uuml;ber das Referral-System eine Gutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_monthly_beg_direct.tpl b/templates/de/emails/admin/admin_monthly_beg_direct.tpl
new file mode 100644 (file)
index 0000000..c554599
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben bei der monatlichen Bettelrallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Direktgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_monthly_beg_ref_referral.tpl b/templates/de/emails/admin/admin_monthly_beg_ref_referral.tpl
new file mode 100644 (file)
index 0000000..94d1ac7
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben bei der monatlichen Bettelrallye {%pipe,translateComma=$content[points]%} {?POINTS?} per anteiliger Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_monthly_beg_referral.tpl b/templates/de/emails/admin/admin_monthly_beg_referral.tpl
new file mode 100644 (file)
index 0000000..099585d
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben bei der monatlichen Bettelrallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_monthly_bonus_direct.tpl b/templates/de/emails/admin/admin_monthly_bonus_direct.tpl
new file mode 100644 (file)
index 0000000..a18c975
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben bei der monatlichen Aktiv-Rallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Direktgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_monthly_bonus_ref_referral.tpl b/templates/de/emails/admin/admin_monthly_bonus_ref_referral.tpl
new file mode 100644 (file)
index 0000000..b52b737
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben bei der monatlichen Aktiv-Rallye {%pipe,translateComma=$content[points]%} {?POINTS?} per anteiliger Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/admin/admin_monthly_bonus_referral.tpl b/templates/de/emails/admin/admin_monthly_bonus_referral.tpl
new file mode 100644 (file)
index 0000000..5d674be
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben bei der monatlichen Aktiv-Rallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
index 13d4b2f365d01b35147daf3f98c9210a14350690..ae626869783d746e65c7791ad5b366ec2f04765c 100644 (file)
@@ -6,9 +6,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 Es wurden bereits alle {%pipe,translateComma=$content[count]%} Gewinner informiert!
 ------------------------------
 
 Es wurden bereits alle {%pipe,translateComma=$content[count]%} Gewinner informiert!
index fe41229a31d56fa36cdf591f544f456cca9cfad1..5551b3fc40edb2e52f45d0ff92c9eedde8aa2f20 100644 (file)
@@ -6,9 +6,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 Bitte informieren Sie Ihre Mitglieder nun selber:
 ------------------------------
 
 Bitte informieren Sie Ihre Mitglieder nun selber:
index 9b3517cc1f971fefe4a0e07b5c7381991137f07e..9eba164849c7d6d2635c4589c59861c3dc36c29a 100644 (file)
@@ -6,9 +6,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 $content
 ------------------------------
 
 $content
index 2b951a5d34dc48cd91d7ca838e4b3432f1be03fc..1309468e46761b3f53f409cf13e6f3c45b2c559d 100644 (file)
@@ -6,9 +6,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 $content
 ------------------------------
 
 $content
index 6afdc8697d41aaca3782783d9656b4f92712e1e5..a5b34e8d9ec83264576073918c2f9a824a2a2bee 100644 (file)
@@ -14,10 +14,10 @@ Refback: {%pipe,translateComma=$content[refback_percents]%}&#37;
 -----------------------------------
 Bereits verdient: {%pipe,translateComma=$content[refback_points]%} {?POINTS?}
 -----------------------------------
 -----------------------------------
 Bereits verdient: {%pipe,translateComma=$content[refback_points]%} {?POINTS?}
 -----------------------------------
-Hinweis: $content[refback_note]
+Hinweis: $content[refback_notice]
 -----------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
 -----------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
+  Ihr {?MAIN_TITLE?} Script
 
 
-{?URL?}/login.php ({?WEBMASTER?})
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_refback_direct.tpl b/templates/de/emails/admin/admin_refback_direct.tpl
new file mode 100644 (file)
index 0000000..f2bf2c0
--- /dev/null
@@ -0,0 +1,23 @@
+Hallo Administrator,
+
+soeben hat ein Mitglied Refback-{?POINTS?} per Direktgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+Refbackgeber: $content[subject_userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_refback_ref_referral.tpl b/templates/de/emails/admin/admin_refback_ref_referral.tpl
new file mode 100644 (file)
index 0000000..b548ff3
--- /dev/null
@@ -0,0 +1,27 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+soeben hat ein Mitglied anteilig Refback-{?POINTS?} von einer Referralgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+Refbackgeber: $content[subject_userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_refback_referral.tpl b/templates/de/emails/admin/admin_refback_referral.tpl
new file mode 100644 (file)
index 0000000..0a28297
--- /dev/null
@@ -0,0 +1,27 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+soeben hat ein Mitglied Refback-{?POINTS?} von einer Referralgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+Refbackgeber: $content[subject_userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_referral_bonus_direct.tpl b/templates/de/emails/admin/admin_referral_bonus_direct.tpl
new file mode 100644 (file)
index 0000000..6dcc08f
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein geworbenes Mitglied hat soeben seine Email-Adresse best&auml;tigt. Dabei wurde dem Werber eine einmalige Werbepr&auml;mie per Direktgutschrift aufgebucht.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_referral_bonus_ref_referral.tpl b/templates/de/emails/admin/admin_referral_bonus_ref_referral.tpl
new file mode 100644 (file)
index 0000000..3cc9b2c
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+ein geworbenes Mitglied hat soeben seine Email-Adresse best&auml;tigt. Dabei wurde dem Werber einen Anteil der einmaligen Werbepr&auml;mie per Referralgutschrift aufgebucht.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_referral_bonus_referral.tpl b/templates/de/emails/admin/admin_referral_bonus_referral.tpl
new file mode 100644 (file)
index 0000000..753cdf3
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo Administrator,
+
+ein geworbenes Mitglied hat soeben seine Email-Adresse best&auml;tigt. Dabei wurde dem Werber eine einmalige Werbepr&auml;mie per Referralgutschrift aufgebucht.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglied: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_register_welcome_direct.tpl b/templates/de/emails/admin/admin_register_welcome_direct.tpl
new file mode 100644 (file)
index 0000000..08b7044
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo Administrator,
+
+ein Mitglied hat soeben per Direktgutschrift seine Willkommensgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
index 49b749513baa1dde2a3181074c9edbaef14e08ca..51e42f356308b13317febfb5603ff358daa13a47 100644 (file)
@@ -14,10 +14,12 @@ Verwendeter Browser: {%server,user_agent%}
 ------------------------------
 IP-Nummer: {%server,remote_addr%} (Real: {%server,real_ip_address%})
 ------------------------------
 ------------------------------
 IP-Nummer: {%server,remote_addr%} (Real: {%server,real_ip_address%})
 ------------------------------
-User-Id: {%user,userid%}
+User-Id: {%template,UserId%}
 ------------------------------
 
 ------------------------------
 
-Bitte melden Sie diesen Bug im Forum oder Bug-Tracker von {?TITLE?}, diese Mail ist nicht an das Entwicklerteam weitergeleitet. Die Links dazu finden Sie am Ende dieser Mail.
+Bitte melden Sie diesen Bug im Forum oder Bug-Tracker von {?TITLE?}, die Links dazu finden Sie am Ende dieser Mail. Diese Mail ist nicht an das Entwicklerteam weitergeleitet worden.
+
+Alternativ k&ouml;nnen Sie auch auf diese Mail antworten (webmaster@mxchange.org), f&uuml;gen Sie bitte das Logbuch inc/cache/debug.log und weitere Fehlermeldungen vom Script dazu.
 
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Script
 
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Script
index 354df0eb8f0586b757ec64860d0b849adccaebe1..4cdc65597ac2f7d4c89efb51962115b5261498e2 100644 (file)
@@ -31,6 +31,6 @@ Es sind nun folgende Daten gesetzt:
 ------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
 ------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
+  Ihr {?MAIN_TITLE?} Script
 
 
-{?URL?} ({?WEBMASTER?})
+{?URL?}/admin.php
diff --git a/templates/de/emails/admin/admin_surfbar_url_rejected_pending.tpl b/templates/de/emails/admin/admin_surfbar_url_rejected_pending.tpl
new file mode 100644 (file)
index 0000000..2409c6e
--- /dev/null
@@ -0,0 +1,33 @@
+Hallo Administrator,
+
+Ein Mitglied hat soeben seine abgelehnte URL erneut angemeldet. Dabei wurde sie auf "Wartend" gestellt.
+
+Hier sind alle Daten dazu:
+------------------------------------------
+Mitglied-Id: $content[url_userid]
+------------------------------------------
+Email: {%user,email=$userid%}
+------------------------------------------
+Name: {%user,surname=$userid%} {%user,family=$userid%}
+------------------------------------------
+Gebuchte URL: $content[url]
+------------------------------------------
+ID in der Surfbar: $content[url_id]
+------------------------------------------
+URL angemeldet: $content[url_registered]
+------------------------------------------
+Zuletzt gesperrt: $content[url_last_locked]
+------------------------------------------
+Sperrgrund: $content[url_lock_reason]
+------------------------------------------
+Gesamteinblendungen: {%pipe,translateComma=$content[url_views_total]%}
+------------------------------------------
+Maximale Einblendungen: {%pipe,translateComma=$content[url_views_allowed]%}
+------------------------------------------
+Davon &uuml;brig: {%pipe,translateComma=$content[url_views_max]%}
+------------------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Script
+
+{?URL?}/admin.php
index 14d5775bd840ac73233fb3bb046bbf0b313c7c60..84a4b58106b219bfcb519169f70bf750d3c1b67e 100644 (file)
@@ -7,13 +7,13 @@ Hier alle Infos zum Transfer:
 --  Daten des Empf&auml;ngers:  --
 ------------------------------
 Mitglied-Id: $content[recipient][userid]
 --  Daten des Empf&auml;ngers:  --
 ------------------------------
 Mitglied-Id: $content[recipient][userid]
-Vollst. Name: {%pipe,translateGender=$content[recipient][gender]%} $content[recipient][surname] $content[recipient][family]
+Vollst. Name: {%pipe,translateGender=$content[recipient][gender]%} $content[recipient][userid] $content[recipient][userid]
 Email-Adresse: $content[recipient][email]
 ------------------------------
 --   Daten des Absenders:   --
 ------------------------------
 Mitglied-Id: $content[sender][userid]
 Email-Adresse: $content[recipient][email]
 ------------------------------
 --   Daten des Absenders:   --
 ------------------------------
 Mitglied-Id: $content[sender][userid]
-Vollst. Name: {%pipe,translateGender=$content[sender][gender]%} $content[sender][surname] $content[sender][family]
+Vollst. Name: {%pipe,translateGender=$content[sender][gender]%} $content[sender][userid] $content[sender][userid]
 Email-Adresse: $content[sender][email]
 ------------------------------
 IP-Nummer: {%server,remote_addr%} (Real: {%server,real_ip_address%})
 Email-Adresse: $content[sender][email]
 ------------------------------
 IP-Nummer: {%server,remote_addr%} (Real: {%server,real_ip_address%})
index e81a829f984473c18a646ce42d0aa2c5f811edbf..84d1ed3b8c770f702d44f3f65fc969cf97cfed41 100644 (file)
@@ -1,19 +1 @@
-Hallo {%sponsor,gender,translateGender=$content[id]%} {%sponsor,surname=$content[id]%} {%sponsor,family=$content[id]%},
-
-Einer unserer Administratoren hat soeben Ihren Account gel&ouml;scht!
-
-Grund der L&ouml;schung war folgender:
-------------------------------------
-$content[reason]
-------------------------------------
-Ihre Sponsor-Id war: $content[id]
-------------------------------------
-
-Wir w&uuml;nschen Ihnen weiterhin noch alles Gute und k&ouml;nnen Sie vielleicht irgentwann einmal wieder als Sponsor begr&uuml;ssen.
-
-Vielen Dank.
-
-Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
-
-{?URL?} ({?WEBMASTER?})
+@DEPRECATED
index 1dd1c6f28d2168de50b28330aac1211b0bbca5f8..e1d46f2b961bee957be06925e8b8c0eff51f2020 100644 (file)
@@ -3,7 +3,7 @@ Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,fa
 Sie oder ein anderes Mitglied haben soben ein neues Passwort angefordert. Hier ist Ihr neues Passwort:
 
 ------------------------------------
 Sie oder ein anderes Mitglied haben soben ein neues Passwort angefordert. Hier ist Ihr neues Passwort:
 
 ------------------------------------
-Ihre Login-Id lautet: $userid / Nickname: $content[nickname]
+Ihre Mitglieds-Id: $userid / Nickname: $content[nickname]
 Neues Passwort: $content[new_pass]
 Sie k&ouml;nnen sich nun hier einloggen:: {?URL?}/login.php
 ------------------------------------
 Neues Passwort: $content[new_pass]
 Sie k&ouml;nnen sich nun hier einloggen:: {?URL?}/login.php
 ------------------------------------
index 572aec46812da1c561e5400a9484526c231ddd10..94ec4457477a4b61a28f9415a4c964bdb57375f1 100644 (file)
@@ -2,15 +2,18 @@ Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,fa
 
 Sie haben soeben Ihre Email-Adresse best&auml;tigt und sind somit f&uuml;r den {?mt_word?} {?MAIN_TITLE?} freigeschaltet!
 
 
 Sie haben soeben Ihre Email-Adresse best&auml;tigt und sind somit f&uuml;r den {?mt_word?} {?MAIN_TITLE?} freigeschaltet!
 
-Sie k&ouml;nnen sich nun hier einloggen:
-
-Ihre Login-Id lautet: $userid
+Sie k&ouml;nnen sich nun hiermit einloggen:
+-------------------------------------
+Ihre Mitglieds-Id lautet: $userid
 URL zum Login: {?URL?}/login.php
 URL zum Login: {?URL?}/login.php
+-------------------------------------
 
 F&uuml;r Ihre Anmeldung werden wir Ihnen als Willkommensgutschrift {%config,translateComma=points_register%} {?POINTS?} gutschreiben, sobald Sie {?ref_payout?} Mails best&auml;tigt haben. Erst dann k&ouml;nnen Sie Mails an andere Mitglieder verschicken!
 
 Wir w&uuml;nschen Ihnen viel Spass und Erfolg beim Mail-Versand!
 
 
 F&uuml;r Ihre Anmeldung werden wir Ihnen als Willkommensgutschrift {%config,translateComma=points_register%} {?POINTS?} gutschreiben, sobald Sie {?ref_payout?} Mails best&auml;tigt haben. Erst dann k&ouml;nnen Sie Mails an andere Mitglieder verschicken!
 
 Wir w&uuml;nschen Ihnen viel Spass und Erfolg beim Mail-Versand!
 
+Das Passwort kann nicht mitgeschickt werden, da es kodiert gespeichert wurde. Dies wird aus Sicherheitsgr&uuml;nden getan.
+
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Team
 
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Team
 
index d8d044eaa560e60c885590711319f9115c3e0a08..a8e70e8716c60c83c8a5d9e5c849a31c042ff744 100644 (file)
@@ -3,15 +3,19 @@ Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,fa
 Sie haben heute ein neues Mitglied f&uuml;r {?MAIN_TITLE?} geworben!
 
 Hier sehen Sie genau, in welcher Ebene Sie ihn geworben haben:
 Sie haben heute ein neues Mitglied f&uuml;r {?MAIN_TITLE?} geworben!
 
 Hier sehen Sie genau, in welcher Ebene Sie ihn geworben haben:
------------------
+-------------------------------------------------
+Ihre Mitglieds-Id: $content[refid]
+-------------------------------------------------
 Referral-Ebene ({%pipe,translateComma=$content[percents]%}&#37;): $content[level]
 Referral-Ebene ({%pipe,translateComma=$content[percents]%}&#37;): $content[level]
-{?POINTS?}: {%pipe,translateComma=$content[points]%}
-ID des Mitgliedes: {%user,refid,bigintval=$userid%}
------------------
+Anteilige {?POINTS?} an Willkommensgutschrift: {%pipe,translateComma=$content[points]%}
+ID des Mitgliedes: $content[userid]
+-------------------------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+-------------------------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+-------------------------------------------------
 
 
-Sie werden nun auch weiterhin {?POINTS?} &uuml;ber diese geworbene Person erhalten.
-
-Vielen Dank f&uuml;r Ihr Mitwerben! Wir w&uuml;nschen Ihnen noch weiterhin viele neue Referrals!
+Vielen Dank f&uuml;r Ihr Mitwerben. Wir w&uuml;nschen Ihnen noch weiterhin viele neue Referrals. Sie werden nun auch weiterhin {?POINTS?} &uuml;ber dieses geworbene Mitglied erhalten.
 
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Team
 
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Team
index d7955afc2bc5b5e464bf7eadc21227d2e4db9186..70d5665c77bdb4a33cf51a88c140ab9e0740b9d8 100644 (file)
@@ -6,3 +6,4 @@ Errors-To: {?WEBMASTER?}
 Bounces-To: {?WEBMASTER?}
 X-Loop: {?WEBMASTER?}
 From: "{?MAIN_TITLE?}" <{?WEBMASTER?}>
 Bounces-To: {?WEBMASTER?}
 X-Loop: {?WEBMASTER?}
 From: "{?MAIN_TITLE?}" <{?WEBMASTER?}>
+{%template,AddExtraTextMailHeaders=$content%}
index ce27fe5803d6d6f3cffc6c32ccc154f666be30f4..866b737109077f0095eb88618ed1b97a38ad4eaf 100644 (file)
@@ -6,3 +6,4 @@ Errors-To: {?WEBMASTER?}
 Bounces-To: {?WEBMASTER?}
 X-Loop: {?WEBMASTER?}
 From: "{?MAIN_TITLE?}" <{?WEBMASTER?}>
 Bounces-To: {?WEBMASTER?}
 X-Loop: {?WEBMASTER?}
 From: "{?MAIN_TITLE?}" <{?WEBMASTER?}>
+{%template,AddExtraHtmlMailHeaders=$content%}
index 366b019a37061487ac38bd37e2bea2a864d3c736..84d1ed3b8c770f702d44f3f65fc969cf97cfed41 100644 (file)
@@ -1,21 +1 @@
-Hallo {%sponsor,gender,translateGender=$content[id]%} {%sponsor,surname=$content[id]%} {%sponsor,family=$content[id]%},
-
---------------------------
-Ihre Sponsor-Id bei uns: $content[id]
---------------------------
-
-$content[message]
-
-Grund der Sperrung war:
---------------------------
-$content[reason]
---------------------------
-
-Sollten Sie damit nicht einverstanden sein, so melden Sie sich bitte bei uns ({?WEBMASTER?}). Wir kommen dann mit Ihnen bald in Kontakt.
-
-Vielen Dank.
-
-Mit freundlichen Gr&uuml;&szlig;en,
-  Ihr {?MAIN_TITLE?} Team
-
-{?URL?} ({?WEBMASTER?})
+@DEPRECATED
diff --git a/templates/de/emails/member/member_admin_add_all_direct.tpl b/templates/de/emails/member/member_admin_add_all_direct.tpl
new file mode 100644 (file)
index 0000000..8c44676
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Einer unserer Administratoren hat Ihnen soeben {%pipe,translateComma=$content[points]%} {?POINTS?} per Sammel-Direktgutschrift aufgebucht!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_admin_add_all_ref_referral.tpl b/templates/de/emails/member/member_admin_add_all_ref_referral.tpl
new file mode 100644 (file)
index 0000000..bfe0441
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben eine anteilige Sammel-Referralgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_admin_add_all_referral.tpl b/templates/de/emails/member/member_admin_add_all_referral.tpl
new file mode 100644 (file)
index 0000000..7329580
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Einer unserer Administratoren hat Ihnen soeben {%pipe,translateComma=$content[points]%} {?POINTS?} per Referral-System aufgebucht! Ihren Referrals werden prozentuale Gutschrift aufgebucht.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_admin_add_single_direct.tpl b/templates/de/emails/member/member_admin_add_single_direct.tpl
new file mode 100644 (file)
index 0000000..cf8e034
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Einer unserer Administratoren hat Ihnen soeben {%pipe,translateComma=$content[points]%} {?POINTS?} per Direktgutschrift aufgebucht!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_admin_add_single_referral.tpl b/templates/de/emails/member/member_admin_add_single_referral.tpl
new file mode 100644 (file)
index 0000000..7329580
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Einer unserer Administratoren hat Ihnen soeben {%pipe,translateComma=$content[points]%} {?POINTS?} per Referral-System aufgebucht! Ihren Referrals werden prozentuale Gutschrift aufgebucht.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_beg_direct.tpl b/templates/de/emails/member/member_beg_direct.tpl
new file mode 100644 (file)
index 0000000..8e09486
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben beim Betteln {%pipe,translateComma=$content[points]%} {?POINTS?} per Direktgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_beg_ref_referral.tpl b/templates/de/emails/member/member_beg_ref_referral.tpl
new file mode 100644 (file)
index 0000000..4ced4d2
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben beim Betteln {%pipe,translateComma=$content[points]%} {?POINTS?} per anteiliger Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_beg_referral.tpl b/templates/de/emails/member/member_beg_referral.tpl
new file mode 100644 (file)
index 0000000..722262d
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben beim Betteln {%pipe,translateComma=$content[points]%} {?POINTS?} per Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_forced_campaign_pending_active.tpl b/templates/de/emails/member/member_forced_campaign_pending_active.tpl
new file mode 100644 (file)
index 0000000..b76076d
--- /dev/null
@@ -0,0 +1,17 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Ein Administrator hat soeben Ihre Forced-Kampagne freigeschaltet.
+
+Hier sind alle Daten dazu:
+------------------------------------------
+Mitglied-Id: $content[forced_campaign_userid]
+------------------------------------------
+Kampagnen-Id: $content[forced_campaign_id]
+------------------------------------------
+Werbemittel-Id: $content[forced_ads_id]
+------------------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?}/login.php ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_mailid_okay_ref_referral.tpl b/templates/de/emails/member/member_mailid_okay_ref_referral.tpl
new file mode 100644 (file)
index 0000000..d3371e2
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+eines Ihrer geworbenen Mitglieder hay soeben eine Mail korrekt best&auml;tigt und daf&uuml;r &uuml;ber das Referral-System eine Gutschrift erhalten. Sie erhalten hiermit einen Anteil davon.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_mailid_okay_referral.tpl b/templates/de/emails/member/member_mailid_okay_referral.tpl
new file mode 100644 (file)
index 0000000..b215dca
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben eine Mail korrekt best&auml;tigt und daf&uuml;r &uuml;ber das Referral-System eine Gutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_monthly_beg_direct.tpl b/templates/de/emails/member/member_monthly_beg_direct.tpl
new file mode 100644 (file)
index 0000000..89c4934
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben bei der monatlichen Bettelrallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Direktgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_monthly_beg_ref_referral.tpl b/templates/de/emails/member/member_monthly_beg_ref_referral.tpl
new file mode 100644 (file)
index 0000000..306825f
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben bei der monatlichen Bettelrallye {%pipe,translateComma=$content[points]%} {?POINTS?} per anteiliger Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_monthly_beg_referral.tpl b/templates/de/emails/member/member_monthly_beg_referral.tpl
new file mode 100644 (file)
index 0000000..7c1e971
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben bei der monatlichen Bettelrallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_monthly_bonus_direct.tpl b/templates/de/emails/member/member_monthly_bonus_direct.tpl
new file mode 100644 (file)
index 0000000..eb605fe
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben bei der monatlichen Aktiv-Rallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Direktgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_monthly_bonus_ref_referral.tpl b/templates/de/emails/member/member_monthly_bonus_ref_referral.tpl
new file mode 100644 (file)
index 0000000..59005d9
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben bei der monatlichen Aktiv-Rallye {%pipe,translateComma=$content[points]%} {?POINTS?} per anteiliger Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_monthly_bonus_referral.tpl b/templates/de/emails/member/member_monthly_bonus_referral.tpl
new file mode 100644 (file)
index 0000000..522a60e
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben bei der monatlichen Aktiv-Rallye {%pipe,translateComma=$content[points]%} {?POINTS?} per Referralgutgschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
index eb391577cf8a4807e617467bdf813e668634f43c..9f8007423b9275d459f3fd906c8cd6e2cbf760ec 100644 (file)
@@ -14,9 +14,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
index 3845deec6fb3253387de0e18a1639c7d94795288..4be911bef612267a95ddcd9a3851ef50fc97577f 100644 (file)
@@ -14,9 +14,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
index b5b242ecb721c2c8682feadd8327c8afa85409b4..bf1a1062d25ca72c16f2672aea495a6b32c78a60 100644 (file)
@@ -14,9 +14,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
index edda187b2eb4f4dc1a02cafee9986b32f15f43e1..e5db26d4c4f456bdcf1777675eb46137b03b2486 100644 (file)
@@ -14,9 +14,9 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
 ------------------------------
 
 Wir bedanken uns f&uuml;r Ihre Bem&uuml;hungen und Interesse an unserer Rallye und w&uuml;nschen Ihnen weiterhin viel Erfolg und viele interessante Webseiten von unseren Mitgliedern.
index 9df542941ad617adee8b6324fad2991ed14a68cb..687bdb6676b3d4684a036d4d98380aeafae46890 100644 (file)
@@ -10,11 +10,11 @@ Hier alle Infos zur Rallye:
 ------------------------------
 Titel: $content[title]
 ------------------------------
 ------------------------------
 Titel: $content[title]
 ------------------------------
-Beginn der Rallye: $content[start] Uhr
-Ende der Rallye: $content[end] Uhr
-Server-Zeit: $content[now_t] Uhr
+Beginn der Rallye: $content[start_time] Uhr
+Ende der Rallye: $content[end_time] Uhr
+Server-Zeit: $content[now_time] Uhr
 ------------------------------
 ------------------------------
-$content[prices]
+{%pipe,addReferralRallyePrices=$content[id]%}
 Ihr Werbelink zum Werben neuer Mitglieder:
 {?URL?}/ref.php?refid=$userid
 ------------------------------
 Ihr Werbelink zum Werben neuer Mitglieder:
 {?URL?}/ref.php?refid=$userid
 ------------------------------
@@ -28,8 +28,8 @@ Viel Spass beim Werben!
 Wichtig:
 ------------------------------
 - Es werden nur aktive User gewertet. Der Rechtsweg ist ausgeschlossen.
 Wichtig:
 ------------------------------
 - Es werden nur aktive User gewertet. Der Rechtsweg ist ausgeschlossen.
-- $content[min_users]
-- $content[min_prices]
+- {%pipe,determineReferralRallyeMinimumUsers=$content[min_users]%}
+- {%pipe,determineReferralRallyeMinimumPrices=$content[min_prices]%}
 ------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
 ------------------------------
 
 Mit freundlichen Gr&uuml;&szlig;en,
index f5b59aa03d9792a6ea3c28d9128179a76a10035c..874ebff1df0e2dbfac1c83187aa3a9bb1bfdc8f4 100644 (file)
@@ -3,14 +3,14 @@ Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,fa
 das Mitglied {%pipe,getMemberId%} hat Ihnen soeben {%pipe,translateComma=$content[refback_percents]%}&#37; Refback eingestellt. Sie erhalten also anteilig {?POINTS?} von seinen Referral-Gutschriften die Sie ihm/ihr bringen ebenfalls gutgeschrieben.
 
 ------------------------------
 das Mitglied {%pipe,getMemberId%} hat Ihnen soeben {%pipe,translateComma=$content[refback_percents]%}&#37; Refback eingestellt. Sie erhalten also anteilig {?POINTS?} von seinen Referral-Gutschriften die Sie ihm/ihr bringen ebenfalls gutgeschrieben.
 
 ------------------------------
-Ihr Mitglied-Id ist: $userid
+Mitglied-Id: $userid
 ------------------------------
 Refback: {%pipe,translateComma=$content[refback_percents]%}&#37;
 ------------------------------
 ------------------------------
 Refback: {%pipe,translateComma=$content[refback_percents]%}&#37;
 ------------------------------
-Hinweis: $content[refback_note]
+Hinweis: $content[refback_notice]
 ------------------------------
 
 ------------------------------
 
-Sie haben bereits {%pipe,translateComma=$content[refback_points]%} {?POINTS?} Refback-Verg&uuml;tung an das Mitglied abgegeben.
+Sie haben bereits {%pipe,translateComma=$content[refback_points]%} {?POINTS?} Refback-Verg&uuml;tung von dem Mitglied erhalten.
 
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Team
 
 Mit freundlichen Gr&uuml;&szlig;en,
   Ihr {?MAIN_TITLE?} Team
diff --git a/templates/de/emails/member/member_refback_direct.tpl b/templates/de/emails/member/member_refback_direct.tpl
new file mode 100644 (file)
index 0000000..2cec660
--- /dev/null
@@ -0,0 +1,23 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben {%pipe,translateComma=$content[points]%} {?POINTS?} Refback per Direktgutschrift erhalten!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+Refbackgeber: $content[subject_userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_refback_ref_referral.tpl b/templates/de/emails/member/member_refback_ref_referral.tpl
new file mode 100644 (file)
index 0000000..708cb1e
--- /dev/null
@@ -0,0 +1,27 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben anteilig {%pipe,translateComma=$content[points]%} {?POINTS?} Refback von einer Referralgutschrift erhalten!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+Refbackgeber: $content[subject_userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_refback_referral.tpl b/templates/de/emails/member/member_refback_referral.tpl
new file mode 100644 (file)
index 0000000..a626cff
--- /dev/null
@@ -0,0 +1,27 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben {%pipe,translateComma=$content[points]%} {?POINTS?} Refback von einer Referralgutschrift erhalten!
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+Refbackgeber: $content[subject_userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_referral_bonus_direct.tpl b/templates/de/emails/member/member_referral_bonus_direct.tpl
new file mode 100644 (file)
index 0000000..bef91ee
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+eines Ihrer geworbenen Mitglieder hat soeben seine Email-Adresse best&auml;tigt. Dabei haben Sie eine einmalige Werbepr&auml;mie per Direktgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_referral_bonus_ref_referral.tpl b/templates/de/emails/member/member_referral_bonus_ref_referral.tpl
new file mode 100644 (file)
index 0000000..0e460f9
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+eines Ihrer geworbenen Mitglieder hat soeben seine Email-Adresse best&auml;tigt. Dabei haben Sie einen Anteiler seiner einmaligen Werbepr&auml;mie per Referralgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_referral_bonus_referral.tpl b/templates/de/emails/member/member_referral_bonus_referral.tpl
new file mode 100644 (file)
index 0000000..3c34c5a
--- /dev/null
@@ -0,0 +1,25 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+eines Ihrer geworbenen Mitglieder hat soeben seine Email-Adresse best&auml;tigt. Dabei haben Sie eine einmalige Werbepr&auml;mie per Referralgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Referral-Ebene: $content[level]
+------------------------------
+Prozente: {%pipe,translateComma=$content[percents]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_register_welcome_direct.tpl b/templates/de/emails/member/member_register_welcome_direct.tpl
new file mode 100644 (file)
index 0000000..44199a8
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie haben soeben per Direktgutschrift Ihre Willkommensgutschrift erhalten.
+
+Hier sind nochmals alle Daten dazu:
+------------------------------
+Ihre Mitglieds-Id: $content[userid]
+------------------------------
+{?POINTS?}: {%pipe,translateComma=$content[points]%}
+------------------------------
+Guthabenkonto: {%pipe,translatePointsAccountType=$content[column]%}
+------------------------------
+Verwendungszweck: {%pipe,translatePointsSubject=$content[subject]%}
+------------------------------
+Verg&uuml;tungsmethode: {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/member/member_surfbar_url_rejected_pending.tpl b/templates/de/emails/member/member_surfbar_url_rejected_pending.tpl
new file mode 100644 (file)
index 0000000..d25d6cf
--- /dev/null
@@ -0,0 +1,23 @@
+Hallo {%user,gender,translateGender=$userid%} {%user,surname=$userid%} {%user,family=$userid%},
+
+Sie hatten soeben Ihre abgelehnte URL erneut angemeldet. Dabei wurde sie auf "Wartend" gestellt.
+
+Hier sind alle Daten dazu:
+------------------------------------------
+Mitglied-Id: $content[url_userid]
+------------------------------------------
+Gebuchte URL: $content[url]
+------------------------------------------
+ID in der Surfbar: $content[url_id]
+------------------------------------------
+URL angemeldet: $content[url_registered]
+------------------------------------------
+Zuletzt gesperrt: $content[url_last_locked]
+------------------------------------------
+Sperrgrund: $content[url_lock_reason]
+------------------------------------------
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?}/login.php ({?WEBMASTER?})
index 953fcc097aaf5a09521b13a013e2b0d9f9ed15a0..bc034369314605448845e3901895bd9d870ffb51 100644 (file)
@@ -1,4 +1,4 @@
-Hallo {%user,gender,translateGender=$content[recipient][gender]%} {%user,surname=$content[recipient][surname]%} {%user,family=$content[recipient][family]%},
+Hallo {%user,gender,translateGender=$content[recipient][gender]%} {%user,surname=$content[recipient][userid]%} {%user,family=$content[recipient][userid]%},
 
 Sie haben soeben eine {?POINTS?}-&Uuml;berweisung von einem unserer Mitglieder erhalten!
 
 
 Sie haben soeben eine {?POINTS?}-&Uuml;berweisung von einem unserer Mitglieder erhalten!
 
index d000a3c3811c3bf7ad72161c665ffdb20b6e788f..9312a6b640d83ba55029c63f07e623a3491202af 100644 (file)
@@ -1,4 +1,4 @@
-Hallo {%user,gender,translateGender=$content[sender][gender]%} {%user,surname=$content[sender][surname]%} {%user,family=$content[sender][family]%},
+Hallo {%user,gender,translateGender=$content[sender][gender]%} {%user,surname=$content[sender][userid]%} {%user,family=$content[sender][userid]%},
 
 Sie haben soeben eine {?POINTS?}-&Uuml;berweisung an eines unserer Mitglieder abgeschlossen!
 
 
 Sie haben soeben eine {?POINTS?}-&Uuml;berweisung an eines unserer Mitglieder abgeschlossen!
 
diff --git a/templates/de/emails/sponsor/sponsor_deleted.tpl b/templates/de/emails/sponsor/sponsor_deleted.tpl
new file mode 100644 (file)
index 0000000..e81a829
--- /dev/null
@@ -0,0 +1,19 @@
+Hallo {%sponsor,gender,translateGender=$content[id]%} {%sponsor,surname=$content[id]%} {%sponsor,family=$content[id]%},
+
+Einer unserer Administratoren hat soeben Ihren Account gel&ouml;scht!
+
+Grund der L&ouml;schung war folgender:
+------------------------------------
+$content[reason]
+------------------------------------
+Ihre Sponsor-Id war: $content[id]
+------------------------------------
+
+Wir w&uuml;nschen Ihnen weiterhin noch alles Gute und k&ouml;nnen Sie vielleicht irgentwann einmal wieder als Sponsor begr&uuml;ssen.
+
+Vielen Dank.
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
diff --git a/templates/de/emails/sponsor/sponsor_locked.tpl b/templates/de/emails/sponsor/sponsor_locked.tpl
new file mode 100644 (file)
index 0000000..366b019
--- /dev/null
@@ -0,0 +1,21 @@
+Hallo {%sponsor,gender,translateGender=$content[id]%} {%sponsor,surname=$content[id]%} {%sponsor,family=$content[id]%},
+
+--------------------------
+Ihre Sponsor-Id bei uns: $content[id]
+--------------------------
+
+$content[message]
+
+Grund der Sperrung war:
+--------------------------
+$content[reason]
+--------------------------
+
+Sollten Sie damit nicht einverstanden sein, so melden Sie sich bitte bei uns ({?WEBMASTER?}). Wir kommen dann mit Ihnen bald in Kontakt.
+
+Vielen Dank.
+
+Mit freundlichen Gr&uuml;&szlig;en,
+  Ihr {?MAIN_TITLE?} Team
+
+{?URL?} ({?WEBMASTER?})
index ebd9a9fe48b727a2e42a9fb3314babcb414aad91..b1c93a73fc8da169b832a226f3ac32906e45b7b6 100644 (file)
@@ -4,9 +4,11 @@
        <div class="table_header bottom">
                <strong>{%message,ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_TITLE=$content[network_type_handler]%}</strong>
        </div>
        <div class="table_header bottom">
                <strong>{%message,ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_TITLE=$content[network_type_handler]%}</strong>
        </div>
+
        <div class="bottom">
                {--ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_404--}
        </div>
        <div class="bottom">
                {--ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_404--}
        </div>
+
        <div class="table_footer">
                <input type="hidden" name="module" value="admin" />
                <input type="hidden" name="what" value="config_network_types" />
        <div class="table_footer">
                <input type="hidden" name="module" value="admin" />
                <input type="hidden" name="what" value="config_network_types" />
@@ -14,5 +16,6 @@
                <input type="hidden" name="network_type_id" value="$content[network_type_id]" />
                <input type="submit" class="form_submit" value="{--ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_SUBMIT--}" />
        </div>
                <input type="hidden" name="network_type_id" value="$content[network_type_id]" />
                <input type="submit" class="form_submit" value="{--ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_SUBMIT--}" />
        </div>
+</div>
 </form>
 </div>
 </form>
 </div>
index c5f264feccf7a60dc8905338af381bd4ce117afe..ae4d4a349e066c8c4261b6197de066bda667be64 100644 (file)
@@ -9,33 +9,41 @@
                        (<a href="{%network,getNetworkDataById,network_reflink=%network_id%%}" target="_blank" title="{%network,getNetworkDataById,network_title=%network_id%%}">{%network,getNetworkDataById,network_title=%network_id%%}</a>)
                </div>
        </div>
                        (<a href="{%network,getNetworkDataById,network_reflink=%network_id%%}" target="_blank" title="{%network,getNetworkDataById,network_title=%network_id%%}">{%network,getNetworkDataById,network_title=%network_id%%}</a>)
                </div>
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_SET_ALL--}
                {%template,YesNoSelectionBox=set_all%}
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_SET_ALL--}
                {%template,YesNoSelectionBox=set_all%}
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MAX_RELOAD_TIME--} ({%pipe,translateTimeUnit=$content[network_type_reload_time_unit]%})<br />
                $content[network_max_reload_time]
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MAX_RELOAD_TIME--} ({%pipe,translateTimeUnit=$content[network_type_reload_time_unit]%})<br />
                $content[network_max_reload_time]
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_WAITING_TIME--}<br />
                <input type="text" class="form_normal" name="network_min_waiting_time" size="5" maxlength="20" value="$content[network_min_waiting_time]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_WAITING_TIME--}<br />
                <input type="text" class="form_normal" name="network_min_waiting_time" size="5" maxlength="20" value="$content[network_min_waiting_time]" />
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_REMAIN_CLICKS--}<br />
                <input type="text" class="form_normal" name="network_min_remain_clicks" size="5" maxlength="20" value="$content[network_min_remain_clicks]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_REMAIN_CLICKS--}<br />
                <input type="text" class="form_normal" name="network_min_remain_clicks" size="5" maxlength="20" value="$content[network_min_remain_clicks]" />
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_PAYMENT--}<br />
                <input type="text" class="form_normal" name="network_min_payment" size="7" maxlength="20" value="$content[network_min_payment]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_PAYMENT--}<br />
                <input type="text" class="form_normal" name="network_min_payment" size="7" maxlength="20" value="$content[network_min_payment]" />
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALLOW_EROTIC--}<br />
                <input type="text" class="form_normal" name="network_allow_erotic" size="5" maxlength="20" value="$content[network_allow_erotic]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALLOW_EROTIC--}<br />
                <input type="text" class="form_normal" name="network_allow_erotic" size="5" maxlength="20" value="$content[network_allow_erotic]" />
        </div>
+
        <div class="table_footer">
                <input type="submit" class="form_submit" name="ok" value="{--ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_FORM_SUBMIT--}" />
        </div>
        <div class="table_footer">
                <input type="submit" class="form_submit" name="ok" value="{--ADMIN_ADD_CONFIG_NETWORK_HANDLER_TYPE_FORM_SUBMIT--}" />
        </div>
+</div>
 </form>
 </div>
 
 </form>
 </div>
 
index ee2718f30fd67da9d90b026d6f2341c69515e7d8..ad5dd02e408af0ff9550f6e261213bd29c8fb686 100644 (file)
@@ -85,7 +85,7 @@
        <tr>
                <td class="table_footer" colspan="2">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        <tr>
                <td class="table_footer" colspan="2">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" name="add" class="form_submit" value="{--ADMIN_ADD_FORCED_ADD_SUBMIT--}" />
+                       <input type="submit" name="add" class="form_submit" value="{--ADMIN_ADD_FORCED_AD_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
diff --git a/templates/de/html/admin/admin_add_forced_campaign.tpl b/templates/de/html/admin/admin_add_forced_campaign.tpl
new file mode 100644 (file)
index 0000000..36df4b8
--- /dev/null
@@ -0,0 +1,76 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_campaigns%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td class="table_header bottom" align="center" colspan="2">
+                       <strong>{--ADMIN_ADD_FORCED_CAMPAIGN_TITLE--}</strong>
+               </td>
+       </tr>
+
+       <tr>
+               <td width="60%" align="right">
+                       {--ADMIN_ENTER_FORCED_CAMPAIGN_ORDERED_CLICKS--}
+               </td>
+               <td width="40%">
+                       <input type="text" class="form_field" name="forced_campaign_ordered_clicks" size="10" maxlength="20" />
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_SELECT_FORCED_CAMPAIGN_RELOAD_LOCK--}
+               </td>
+               <td>
+                       $content[reload]
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_ENTER_FORCED_CAMPAIGN_MINIMUM_STAY--}
+               </td>
+               <td>
+                       <input type="text" class="form_field" name="forced_campaign_minimum_stay" size="10" maxlength="20" />
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_SELECT_FORCED_AD--}
+               </td>
+               <td>
+                       {%template,ForcedAdSelectionBox%}
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_SELECT_FORCED_CAMPAIGN_USERID--}
+               </td>
+               <td>
+                       {%template,ForcedCampaignUseridSelectionBox%}
+               </td>
+       </tr>
+
+       <tr>
+               <td class="bottom" align="right">
+                       {--ADMIN_SELECT_FORCED_COSTS--}
+               </td>
+               <td class="bottom">
+                       {%template,ForcedCostsSelectionBox%}
+               </td>
+       </tr>
+
+       <tr>
+               <td class="table_footer" colspan="2">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" name="add" class="form_submit" value="{--ADMIN_ADD_FORCED_CAMPAIGN_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
+
+<div class="notice">
+       {--ADMIN_FORCED_COSTS_SELECTION_NOTICE--}
+</div>
diff --git a/templates/de/html/admin/admin_add_forced_costs.tpl b/templates/de/html/admin/admin_add_forced_costs.tpl
new file mode 100644 (file)
index 0000000..36420bd
--- /dev/null
@@ -0,0 +1,49 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_costs%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td class="table_header bottom" align="center" colspan="2">
+                       <strong>{--ADMIN_ADD_FORCED_COSTS_TITLE--}</strong>
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_ENTER_FORCED_COSTS_PRICE_PER_CLICK--}
+               </td>
+               <td>
+                       <input type="text" class="form_field" name="forced_costs_price_click" size="10" maxlength="20" />
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_ENTER_FORCED_COSTS_PAYMENT_PER_CLICK--}
+               </td>
+               <td>
+                       <input type="text" class="form_field" name="forced_costs_payment_click" size="10" maxlength="20" />
+               </td>
+       </tr>
+
+       <tr>
+               <td class="bottom" align="right">
+                       {--ADMIN_SELECT_FORCED_COSTS_VISIBILITY--}
+               </td>
+               <td class="bottom">
+                       {%template,ForcedCostsVisiblitySelectionBox%}
+               </td>
+       </tr>
+
+       <tr>
+               <td class="table_footer" colspan="2">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" name="add" class="form_submit" value="{--ADMIN_ADD_FORCED_COSTS_ADD_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
+
+<div class="tiny notice">
+       {--ADMIN_ADD_FORCED_COSTS_NOTICE--}
+</div>
\ No newline at end of file
index e3353f6412beb1dd4cace85aa2cba488c6e9bc12..6f83aac18bbcbacff03afc30c281e26567b3ddf6 100644 (file)
@@ -96,7 +96,7 @@
        </div>
 
        <div class="para">
        </div>
 
        <div class="para">
-               Bei &euro-Auszahlungen (oder auch jede andere W&auml;hrung; auch per
+               Bei &euro;-Auszahlungen (oder auch jede andere W&auml;hrung; auch per
                API) ist die Einstellung auf <strong>Nein</strong> zu lassen. Wollen Sie
                hingegen, dass Ihre Mitglieder sich ihre {?POINTS?} in z.B.
                Bannereinblendungen &quot;auszahlen&quot; lassen, ist hier
                API) ist die Einstellung auf <strong>Nein</strong> zu lassen. Wollen Sie
                hingegen, dass Ihre Mitglieder sich ihre {?POINTS?} in z.B.
                Bannereinblendungen &quot;auszahlen&quot; lassen, ist hier
diff --git a/templates/de/html/admin/admin_add_point_accounts.tpl b/templates/de/html/admin/admin_add_point_accounts.tpl
new file mode 100644 (file)
index 0000000..7cba130
--- /dev/null
@@ -0,0 +1,77 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_point_accounts%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td class="table_header bottom" align="center" colspan="2">
+                       <strong>{--ADMIN_ADD_POINTS_DATA_TITLE--}</strong>
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_ENTER_POINTS_DATA_SUBJECT_LINE--}
+               </td>
+               <td>
+                       <input type="text" class="form_field" name="subject" size="20" maxlength="255" />
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_ENTER_POINTS_DATA_COLUMN_NAME--}
+               </td>
+               <td>
+                       <input type="text" class="form_field" name="column_name" size="20" maxlength="255" />
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_SELECT_POINTS_DATA_LOCKED_MODE--}
+               </td>
+               <td>
+                       {%template,PointsLockedModeSelectionBox%}
+               </td>
+       </tr>
+
+       <tr>
+               <td align="right">
+                       {--ADMIN_SELECT_POINTS_DATA_PAYMENT_METHOD--}
+               </td>
+               <td>
+                       {%template,PointsPaymentMethodSelectionBox%}
+               </td>
+       </tr>
+
+       <tr>
+               <td class="bottom" align="right">
+                       {--ADMIN_SELECT_POINTS_DATA_NOTIFY_RECIPIENT--}
+               </td>
+               <td class="bottom">
+                       {%template,YesNoSelectionBox=notify_recipient%}
+               </td>
+       </tr>
+
+       <tr>
+               <td class="table_footer" colspan="2">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" name="add" class="form_submit" value="{--ADMIN_ADD_POINTS_DATA_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
+
+<div class="para notice">
+       {--ADMIN_ADD_POINTS_DATA_NOTICE--}
+</div>
+
+<div class="para">
+       {--ADMIN_ADD_POINTS_DATA_USAGE_TITLE--}
+       <ul>
+               <li>{--ADMIN_ADD_POINTS_DATA_SUBJECT_NOTICE--}</li>
+               <li>{--ADMIN_ADD_POINTS_DATA_COLUMN_NAME_NOTICE--}</li>
+               <li>{--ADMIN_ADD_POINTS_DATA_LOCKED_MODE_NOTICE--}</li>
+               <li>{--ADMIN_ADD_POINTS_DATA_PAYMENT_METHOD_NOTICE--}</li>
+       </ul>
+</div>
index e1f159c038ed96b6908e7a7ea859c8220ab7ecca..58bde3d153d073360afb7099578adf63c40a8a1c 100644 (file)
@@ -7,77 +7,77 @@
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_TITLE--}:</td>
+               <td align="right">{--ADMIN_RALLYE_TITLE--}:</td>
                <td align="center">
                        <input type="text" class="form_field" name="title" size="30" maxlength="255" />
                </td>
        </tr>
        <tr>
                <td align="center">
                        <input type="text" class="form_field" name="title" size="30" maxlength="255" />
                </td>
        </tr>
        <tr>
-               <td align="right" valign="top">{--RALLYE_DESCR--}:</td>
+               <td align="right" valign="top">{--ADMIN_ENTER_RALLYE_DESCRIPTION--}:</td>
                <td align="center">
                        <textarea name="descr" cols="30" rows="6" class="form_field"></textarea>
                </td>
        </tr>
        <tr>
                <td align="center">
                        <textarea name="descr" cols="30" rows="6" class="form_field"></textarea>
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_TEMPLATE--}:</td>
+               <td align="right">{--ADMIN_SELECT_RALLYE_TEMPLATE--}:</td>
                <td align="center">
                        {%pipe,addReferralRallyeTemplateSelection%}
                </td>
        </tr>
        <tr>
                <td align="center">
                        {%pipe,addReferralRallyeTemplateSelection%}
                </td>
        </tr>
        <tr>
-               <td width="200" align="right" valign="top">{--RALLYE_START_DAY--}:</td>
+               <td width="200" align="right" valign="top">{--ADMIN_RALLYE_START_DAY--}:</td>
                <td width="290" align="center">
                <td width="290" align="center">
-                       $content[start_day].$content[start_month].$content[start_year]<br />
-                       $content[start_hour]:$content[start_min]:$content[start_sec]
+                       $content[start_day] . $content[start_month] . $content[start_year]<br />
+                       $content[start_hour] : $content[start_min] : 00
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right" valign="top">{--RALLYE_END_DAY--}:</td>
+               <td align="right" valign="top">{--ADMIN_RALLYE_END_DAY--}:</td>
                <td align="center">
                <td align="center">
-                       $content[end_day].$content[end_month].$content[end_year]<br />
-                       $content[end_hour]:$content[end_min]:$content[end_sec]
+                       $content[end_day] . $content[end_month] . $content[end_year]<br />
+                       $content[end_hour] : $content[end_min] : 00
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_IS_ACTIVE--}:</td>
+               <td align="right">{--ADMIN_RALLYE_IS_ACTIVE--}:</td>
                <td align="center">
                        <select name="active" size="1" class="form_select">
                <td align="center">
                        <select name="active" size="1" class="form_select">
-                               {%pipe,generateYesNoOptionList%}
+                               {%pipe,generateYesNoOptions%}
                        </select>
                </td>
        </tr>
        <tr>
                        </select>
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_AUTO_ADD_USER--}:</td>
+               <td align="right">{--ADMIN_SELECT_RALLYE_AUTO_ADD_USERS--}:</td>
                <td align="center">
                        <select name="auto_add" size="1" class="form_select">
                <td align="center">
                        <select name="auto_add" size="1" class="form_select">
-                               {%pipe,generateYesNoOptionList%}
+                               {%pipe,generateYesNoOptions%}
                        </select>
                </td>
        </tr>
        <tr>
                        </select>
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_SEND_NOTIFY--}:</td>
+               <td align="right">{--ADMIN_SELECT_RALLYE_SEND_NOTIFY--}:</td>
                <td align="center">
                        <select name="notify" size="1" class="form_select">
                <td align="center">
                        <select name="notify" size="1" class="form_select">
-                               {%pipe,generateYesNoOptionList%}
+                               {%pipe,generateYesNoOptions%}
                        </select>
                </td>
        </tr>
        <tr>
                        </select>
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_MIN_USERS--}:</td>
+               <td align="right">{--ADMIN_RALLYE_MIN_USERS--}:</td>
                <td align="center">
                        <input type="text" class="form_field" name="min_users" size="5" maxlength="20" value="100" />
                </td>
        </tr>
        <tr>
                <td align="center">
                        <input type="text" class="form_field" name="min_users" size="5" maxlength="20" value="100" />
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_MIN_PRICES--}:</td>
-               <td align="center">
+               <td class="bottom" align="right">{--ADMIN_RALLYE_MIN_PRICES--}:</td>
+               <td class="bottom" align="center">
                        <input type="text" class="form_field" name="min_prices" size="5" maxlength="20" value="3" />
                </td>
        </tr>
        <tr>
                <td colspan="2" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
                        <input type="text" class="form_field" name="min_prices" size="5" maxlength="20" value="3" />
                </td>
        </tr>
        <tr>
                <td colspan="2" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--ADD_RALLYE--}" />
+                       <input type="submit" class="form_submit" name="ok" value="{--ADMIN_ADD_RALLYE_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index 407401dde87ba76074f934a8f64be10e11e51822..79b60b25d6140b3335198c79f0e979497eb22531 100644 (file)
@@ -1,25 +1,25 @@
 <div align="center">
 <div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content%}" method="post">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=$content%}" method="post">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="2" align="center" class="table_header bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="2" align="center" class="table_header bottom">
-                       <strong>{%message,RALLYE_CONFIG_PRICES,$content%}:</strong>
+                       <strong>{%message,ADMIN_LIST_RALLYE_PRICES_TITLE,$content%}:</strong>
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_PRICE_LEVEL--}:</td>
+               <td align="right">{--ADMIN_ENTER_RALLYE_PRICE_LEVEL--}:</td>
                <td>
                        <input type="text" class="form_field" name="level" size="5" maxlength="20" />
                </td>
        </tr>
        <tr>
                <td>
                        <input type="text" class="form_field" name="level" size="5" maxlength="20" />
                </td>
        </tr>
        <tr>
-               <td align="right">{--RALLYE_PRICE_POINTS--}:</td>
+               <td align="right">{--ADMIN_RALLYE_PRICE_POINTS--}:</td>
                <td>
                        <input type="text" class="form_field" name="points" size="8" maxlength="20" />
                </td>
        </tr>
        <tr>
                <td>
                        <input type="text" class="form_field" name="points" size="8" maxlength="20" />
                </td>
        </tr>
        <tr>
-               <td class="bottom" align="right">{--RALLYE_PRICE_INFOS--}:</td>
+               <td class="bottom" align="right">{--ADMIN_RALLYE_PRICE_INFOS--}:</td>
                <td class="bottom">
                        <input type="text" class="form_field" name="info" size="15" maxlength="255" />
                </td>
                <td class="bottom">
                        <input type="text" class="form_field" name="info" size="15" maxlength="255" />
                </td>
@@ -27,7 +27,7 @@
        <tr>
                <td colspan="2" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        <tr>
                <td colspan="2" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" name="add" class="form_submit" value="{--ADD_RALLYE_PRICE--}" />
+                       <input type="submit" name="add" class="form_submit" value="{--ADMIN_ADD_RALLYE_PRICE_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index 91beb7c01a17612946384fc677fd4e23ccb6c362..72b919eb3ae11c5e65e74372911fdaf01153746c 100644 (file)
@@ -1,5 +1,5 @@
 <div align="center">
 <div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=refbanner%}&do=add" method="post">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=refbanner%}&amp;do=add" method="post">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="410">
        <tr>
                <td class="table_header bottom" colspan="2" align="center">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="410">
        <tr>
                <td class="table_header bottom" colspan="2" align="center">
index 6bae199f55a96af8bf1b45436aeb70618aafc954..9c036e605d0d3eb5e42ebdddac75121a9c76826f 100644 (file)
                <span class="notice">(0 = Unbegrenzt)</span>
        </div>
 
                <span class="notice">(0 = Unbegrenzt)</span>
        </div>
 
-       <div class="admin_input" align="center">
+       <div class="admin_input bottom" align="center">
                Reloadzeit: $content[reload]
                <span class="notice">(0 = Ausgangseinstellungen)</span>
        </div>
 
                Reloadzeit: $content[reload]
                <span class="notice">(0 = Ausgangseinstellungen)</span>
        </div>
 
-       <div align="center" class="table_footer top">
+       <div align="center" class="table_footer">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-               <input type="submit" class="form_submit" name="add" value="{--ADMIN_SURFBAR_ADD_URL--}" />
+               <input type="submit" class="form_submit" name="add" value="{--ADMIN_SURFBAR_ADD_URL_SUBMIT--}" />
        </div>
 </div>
 </form>
        </div>
 </div>
 </form>
diff --git a/templates/de/html/admin/admin_add_tester_user.tpl b/templates/de/html/admin/admin_add_tester_user.tpl
new file mode 100644 (file)
index 0000000..3d21a93
--- /dev/null
@@ -0,0 +1,101 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=add_tester_user%}" method="post">
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_ADD_TESTER_USER_TITLE--}</strong>
+       </div>
+
+       <fieldset id="add_tester_user_fields">
+               <legend>{--ADMIN_ADD_TESTER_USER_LEGEND--}</legend>
+               <div class="table_row">
+                       <label for="tester_user_family">{--ADMIN_ADD_TESTER_USER_GENDER--}</label>
+                       <div align="left">{%config,generateGenderSelectionBox=tester_user_gender%}</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_surname_prefix">{--ADMIN_ADD_TESTER_USER_SURNAME--}</label>
+                       <div align="left"><em>{?tester_user_surname_prefix?}{%pipe,getNextFreeTesterUserNumber%}</em></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_family">{--ADMIN_ADD_TESTER_USER_FAMILY--}</label>
+                       <div align="left"><input type="text" class="form_field" name="family" value="{?tester_user_family?}" size="10" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_street_nr">{--ADMIN_ADD_TESTER_USER_STREET_NR--}</label>
+                       <div align="left"><input type="text" class="form_field" name="street_nr" value="{?tester_user_street_nr?}" size="15" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_default_refid">{--ADMIN_ADD_TESTER_USER_COUNTRY--}</label>
+                       <div align="left">{%pipe,addCountryCodeSelectionBox%}</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_zip">{--ADMIN_ADD_TESTER_USER_ZIP--}</label>
+                       <div align="left"><input type="text" class="form_field" name="zip" value="{?tester_user_zip?}" size="6" maxlength="6" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_city">{--ADMIN_ADD_TESTER_USER_CITY--}</label>
+                       <div align="left"><input type="text" class="form_field" name="city" value="{?tester_user_city?}" size="10" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_email">{--ADMIN_ADD_TESTER_USER_EMAIL--}</label>
+                       <div align="left"><input type="text" class="form_field" name="email" value="{?tester_user_email?}" size="20" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_email">{--ADMIN_ADD_TESTER_USER_BIRTHDAY--}</label>
+                       <input type="hidden" name="day" value="01" />
+                       <input type="hidden" name="month" value="01" />
+                       <input type="hidden" name="year" value="1970" />
+                       <div align="left">01.01.1970</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_default_refid">{--ADMIN_ADD_TESTER_USER_DEFAULT_REFID--}</label>
+                       <div align="left">{%pipe,addTesterUserDefaultRefidSelectionBox=refid%}</div>
+               </div>
+       </fieldset>
+
+       <fieldset id="add_tester_user_categories_fields">
+               <legend>{--ADMIN_ADD_TESTER_USER_CATEGORIES_LEGEND--}</legend>
+
+               {%template,AdminRegisterCategoryTable=tester_user_check_cat%}
+       </fieldset>
+
+       <fieldset id="add_tester_user_max_receive_fields">
+               <legend>{--ADMIN_ADD_TESTER_USER_MAX_RECEIVE_LEGEND--}</legend>
+
+               $content[max_receive_selection]
+       </fieldset>
+
+       <fieldset id="add_tester_user_passwords">
+               <legend>{--ADMIN_ADD_TESTER_USER_PASSWORDS_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="tester_user_email">{--ADMIN_ADD_TESTER_USER_PASSWORD1--}</label>
+                       <input type="password" class="form_field" name="pass1" value="{?tester_user_password?}" size="10" maxlength="255" />
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_email">{--ADMIN_ADD_TESTER_USER_PASSWORD2--}</label>
+                       <input type="password" class="form_field" name="pass2" value="{?tester_user_password?}" size="10" maxlength="255" />
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="hidden" name="agree" value="Y" />
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--ADMIN_ADD_TESTER_USER_SUBMIT--}" />
+       </div>
+</div>
+</form>
+</div>
+
+<div class="notice">
+       {--ADMIN_ADD_TESTER_USER_NOTICE--}
+</div>
diff --git a/templates/de/html/admin/admin_ajax_main.tpl b/templates/de/html/admin/admin_ajax_main.tpl
new file mode 100644 (file)
index 0000000..9b16d2f
--- /dev/null
@@ -0,0 +1,64 @@
+<div class="admin_main_ajax" align="center">
+<div class="table_header">
+       <strong class="big">: : : {--ADMIN_MAIN_TITLE--} : : :</strong>
+</div>
+
+<div id="admin_error" class="ajax_error">
+       <div class="ajax_error_title">
+               <strong>{--ADMIN_AJAX_ERROR_TITLE--}</strong>
+       </div>
+       <div class="ajax_error_close">
+               <strong id="admin_error_close" style="padding-left:1.5px;cursor:pointer">X</strong>
+       </div>
+       <div style="clear:both"></div>
+       <div class="ajax_error_content" id="admin_error_content">
+               <!-- Content will be inserted here by AJAX //-->
+       </div>
+</div>
+
+<div id="admin_warning" class="ajax_warning">
+       <div class="ajax_warning_title">
+               <strong>{--ADMIN_AJAX_WARNING_TITLE--}</strong>
+       </div>
+       <div class="ajax_warning_close">
+               <strong id="admin_warning_close" style="padding-left:1.5px;cursor:pointer">X</strong>
+       </div>
+       <div style="clear:both"></div>
+       <div class="ajax_warning_content" id="admin_warning_content">
+               <!-- Content will be inserted here by AJAX //-->
+       </div>
+</div>
+
+<div style="clear:both"></div>
+
+<div class="admin_content_container">
+       <div id="admin_content" class="admin_content">
+               {%pipe,generateAdminContent%}
+       </div>
+</div>
+</div>
+
+<script type="text/javascript" src="{%url=js/ajax-loader.js%}"></script>
+<script type="text/javascript">
+<!--
+// These scripts shall be loaded
+var scripts = new Array();
+scripts[0] = '{%url,js=js/ajax-common.js%}';
+scripts[1] = '{%url,js=js/jquery-ui.custom.js%}';
+scripts[2] = '{%url,js=js/admin-data.js%}';
+scripts[3] = '{%url,js=js/admin-common.js%}';
+
+// This must be the last one
+scripts[scripts.length] = '{%url,js=js.php?js=admin_ajax&admin_page=overview%}';
+
+// Do this only when all is ready
+// Load all scripts
+if (loadScripts(scripts) == true) {
+       // Wait for loadScripts() finishing loading all scripts
+       $().ready(function () {
+               // Do stuff, when all scripts are loaded
+       });
+} // END - if
+
+//-->
+</script>
index 03b711ea6a2555738fb1b699a8797ed19fda85ad..e9d5b119beaf811c4610c5355bd63856c58464ca 100644 (file)
@@ -1,44 +1,43 @@
 <div align="center">
 <div align="center">
-<table border="0" cellspacing="0" cellpadding="0" width="420"
-       class="table dashed">
-       <tr>
-               <td colspan="2" class="table_header bottom" align="center">
-                       <strong>{--ADMIN_CACHE_STATS_TITLE--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td width="320" class="bottom right" align="right">{--ADMIN_CACHE_DB_HITS--}</td>
-               <td width="100" class="bottom" style="padding-right: 2px" align="right">
-                       {%pipe,translateComma=$content[db_hits]%}
-               </td>
-       </tr>
-       <tr>
-               <td width="320" class="bottom right" align="right">{--ADMIN_CACHE_HITS--}</td>
-               <td width="100" class="bottom" style="padding-right: 2px" align="right">
-                       +{%pipe,translateComma=$content[cache_hits]%}
-               </td>
-       </tr>
-       <tr>
-               <td width="320" class="bottom right" align="right">{--ADMIN_TOTAL_HITS--}</td>
-               <td width="100" class="bottom" style="padding-right: 2px" align="right">
-                       ={%pipe,translateComma=$content[total_hits]%}
-               </td>
-       </tr>
-       <tr>
-               <td width="320" class="table_footer right">
-                       <div align="right" style="padding-right: 2px">
-                               <strong>{--ADMIN_CACHE_PERCENTS--}</strong>
-                       </div>
-               </td>
-               <td width="100" class="table_footer">
-                       <div align="right" style="padding-right: 2px">
-                               <strong>{%pipe,translateComma=$content[cache_perc]%}&#37;</strong>
-                       </div>
-               </td>
-       </tr>
+<table border="0" cellspacing="0" cellpadding="0" width="420" class="table dashed">
+<tr>
+       <td colspan="2" class="table_header bottom" align="center">
+               <strong>{--ADMIN_CACHE_STATS_TITLE--}</strong>
+       </td>
+</tr>
+<tr>
+       <td width="320" class="bottom right" align="right">{--ADMIN_CACHE_DB_HITS--}</td>
+       <td width="100" class="bottom" style="padding-right: 2px" align="right">
+               {%pipe,getStatsEntry,translateComma=db_hits%}
+       </td>
+</tr>
+<tr>
+       <td width="320" class="bottom right" align="right">{--ADMIN_CACHE_HITS--}</td>
+       <td width="100" class="bottom" style="padding-right: 2px" align="right">
+               +{%pipe,getStatsEntry,translateComma=cache_hits%}
+       </td>
+</tr>
+<tr>
+       <td width="320" class="bottom right" align="right">{--ADMIN_TOTAL_HITS--}</td>
+       <td width="100" class="bottom" style="padding-right: 2px" align="right">
+               ={%pipe,translateComma=$content[total_hits]%}
+       </td>
+</tr>
+<tr>
+       <td width="320" class="table_footer right">
+               <div align="right" style="padding-right: 2px">
+                       <strong>{--ADMIN_CACHE_PERCENTS--}</strong>
+               </div>
+       </td>
+       <td width="100" class="table_footer">
+               <div align="right" style="padding-right: 2px">
+                       <strong>{%pipe,translateComma=$content[cache_perc]%}&#37;</strong>
+               </div>
+       </td>
+</tr>
 </table>
 </div>
 
 <div class="notice tiny">
 </table>
 </div>
 
 <div class="notice tiny">
-       {--ADMIN_CACHE_NOTICE--}
+       {--ADMIN_CACHE_STATS_NOTICE--}
 </div>
 </div>
index 2d9555694b4d314ca55794e9d81703afbabab96f..6ec0fb34745e6d9290c51c439680cf2fb9918e74 100644 (file)
@@ -1,23 +1,29 @@
 <div align="center">
 <div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td class="table_header bottom" colspan="2" align="center">
-                       <strong>{--ADMIN_CONFIG__SETTINGS_TITLE--}:</strong>
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right">{--ADMIN_CONFIG_--}:</td>
-               <td class="bottom" align="center">
-                       <input type="input" name="" class="form_field" value="{??}" size="5" maxlength="20" />
-               </td>
-       </tr>
-       <tr>
-               <td class="table_footer" colspan="2" align="center">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
-               </td>
-       </tr>
-</table>
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_foo%}" method="post">
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_CONFIG_FOO_TITLE--}</strong>
+       </div>
+
+       <fieldset id="config_foo_my_stuff">
+               <legend>{--ADMIN_CONFIG_FOO_MY_STUFF_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="foo_stuff_bar">{--ADMIN_CONFIG_FOO_STUFF_BAR--}</label>
+                       <div align="center">
+                               <input type="text" class="form_field" name="foo_stuff_bar" value="{?foo_stuff_bar?}" />
+                       </div>
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
+       </div>
+</div>
 </form>
 </div>
 </form>
 </div>
+
+<div class="notice">
+       {--ADMIN_CONFIG_FOO_NOTICE--}
+</div>
index d83bfd5f282eeace58a497151b1eb7112887883c..4f90a09eb48ac4374de4b66e29e13c9d15b63b95 100644 (file)
@@ -1,45 +1,44 @@
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_admin%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_admin%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="3" align="center" class="table_header bottom">
-                       <strong>{--ADMIN_CONFIG_ADMIN_MENU_TITLE--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td align="right" valign="top" style="padding-top: 3px; padding-right: 20px">
-                       {--ADMIN_CONFIG_SELECT_MENU_TYPE--}:
-               </td>
-               <td align="right" valign="top" style="padding-top: 3px">
-                       <input type="radio" class="form_field disabled" disabled="disabled" name="admin_menu" value="NEW"$content[admin_menu_new] />
-               </td>
-               <td>
-                       {--ADMIN_CONFIG_ADMIN_MENU_NEW--}
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" colspan="2" align="right" valign="top" style="padding-top: 3px">
-                       <input type="radio" class="form_field" name="admin_menu" value="OLD"$content[admin_menu_old] />
-               </td>
-               <td class="bottom">
-                       {--ADMIN_CONFIG_ADMIN_MENU_OLD--}
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right" style="padding-right:5px">
-                       {--ADMIN_CONFIG_ADMIN_MENU_JAVASCRIPT_ENABLED--}
-               </td>
-               <td class="bottom" align="center" colspan="2">
-                       {%template,ConfigurationYesNoSelectionBox=admin_menu_javascript%}
-               </td>
-       </tr>
-       <tr>
-               <td colspan="3" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
-               </td>
-       </tr>
-</table>
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_CONFIG_ADMIN_MENU_TITLE--}</strong>
+       </div>
+
+       <fieldset id="config_admin_menu_type_fields">
+               <legend>{--ADMIN_CONFIG_ADMIN_MENU_TYPE_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="admin_menu">{--ADMIN_CONFIG_ADMIN_MENU_NEW--}</label>
+                       <div align="center">
+                               <input type="radio" class="form_field disabled" disabled="disabled" name="admin_menu" value="NEW"$content[admin_menu_new] />
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="admin_menu">{--ADMIN_CONFIG_ADMIN_MENU_OLD--}</label>
+                       <div align="center">
+                               <input type="radio" class="form_field" name="admin_menu" value="OLD"$content[admin_menu_old] />
+                       </div>
+               </div>
+       </fieldset>
+
+       <fieldset id="config_admin_menu_misc_fields">
+               <legend>{--ADMIN_CONFIG_ADMIN_MENU_MISC_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="admin_menu_javascript">{--ADMIN_CONFIG_ADMIN_MENU_JAVASCRIPT_ENABLED--}</label>
+                       <div align="center">
+                               {%template,ConfigurationYesNoSelectionBox=admin_menu_javascript%}
+                       </div>
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
+       </div>
+</div>
 </form>
 </div>
 
 </form>
 </div>
 
index 3d037fcd317e9e6f273799e38056d002cde5d8a3..62a25c509cab2283c86fd75841ca03cb974ae4ac 100644 (file)
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_autopurge%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_autopurge%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       <strong>{--ADMIN_CONFIG_AUTOPURGE_TITLE--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       {--ADMIN_CONFIG_AUTOPURGE_INACTIVE_TITLE--}
-               </td>
-       </tr>
-       <tr>
-               <td align="right" width="250">{--ADMIN_CONFIG_AUTOPURGE_INACTIVE--}</td>
-               <td>$content[ap_inactive_selection]</td>
-       </tr>
-       <tr>
-               <td align="right" width="250">{--ADMIN_CONFIG_AUTOPURGE_INACTIVE_SINCE--}:</td>
-               <td>$content[ap_in_since]</td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right" width="250">{--ADMIN_CONFIG_AUTOPURGE_INACTIVE_TIME--}:</td>
-               <td class="bottom">$content[ap_in_time]</td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       {--ADMIN_CONFIG_AUTOPURGE_UNCONFIRMED_TITLE--}
-               </td>
-       </tr>
-       <tr>
-               <td align="right" width="250">{--ADMIN_CONFIG_AUTOPURGE_UNCONFIRMED--}</td>
-               <td>$content[ap_unconfirmed_selection]</td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right" width="250">{--ADMIN_CONFIG_AUTOPURGE_UNCONFIRMED_TIME--}:</td>
-               <td class="bottom">$content[ap_un_time]</td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       {--ADMIN_CONFIG_AUTOPURGE_TASKS_TITLE--}
-               </td>
-       </tr>
-       <tr>
-               <td align="right" width="250">{--ADMIN_CONFIG_AUTOPURGE_TASKS--}</td>
-               <td>$content[ap_tasks_selection]</td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right" width="250">{--ADMIN_CONFIG_AUTOPURGE_TASKS_TIME--}:</td>
-               <td class="bottom">$content[ap_task_time]</td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       {--ADMIN_CONFIG_AUTOPURGE_MAILID_TITLE--}
-               </td>
-       </tr>
-       <tr>
-               <td align="right">
-                       {--ADMIN_CONFIG_AUTOPURGE_ACTIVE--}:
-               </td>
-               <td>
-                       {%template,ConfigurationYesNoSelectionBox=autopurge_active%}
-               </td>
-       </tr>
-       <tr>
-               <td align="right">
-                       {--ADMIN_CONFIG_MAIL_LIFETIME--}:
-               </td>
-               <td>
-                       $content[auto_purge]
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right" width="250">
-                       {--ADMIN_CONFIG_AUTOPURGE_NOTIFY_DELETE_MAILS--}:
-               </td>
-               <td class="bottom">
-                       $content[ap_notify_del_mails]
-               </td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       {--ADMIN_CONFIG_AUTOPURGE_DELETE_MAILS_TITLE--}
-               </td>
-       </tr>
-       <tr>
-               <td align="right" width="250">
-                       {--ADMIN_CONFIG_AUTOPURGE_DELETE_MAILS--}
-               </td>
-               <td>
-                       $content[ap_del_mails_selection]
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right" width="250">
-                       {--ADMIN_CONFIG_AUTOPURGE_DELETE_MAILS_TIME--}:
-               </td>
-               <td class="bottom">
-                       $content[ap_del_mails_time]
-               </td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       {--ADMIN_CONFIG_AUTOPURGE_NOTIFICATION_TITLE--}
-               </td>
-       </tr>
-       <tr>
-               <td align="right" width="250">
-                       {--ADMIN_CONFIG_AUTOPURGE_NOTIFY_INACTIVE--}:
-               </td>
-               <td>
-                       $content[ap_notify_inactive]
-               </td>
-       </tr>
-       <tr>
-               <td align="right" width="250">
-                       {--ADMIN_CONFIG_AUTOPURGE_NOTIFY_UNCONFIRMED--}:
-               </td>
-               <td>
-                       $content[ap_notify_unconfirmed]
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right" width="250">
-                       {--ADMIN_CONFIG_AUTOPURGE_NOTIFY_TASKS--}:
-               </td>
-               <td class="bottom">
-                       $content[ap_notify_tasks]
-               </td>
-       </tr>
-       <tr>
-               <td colspan="2" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
-               </td>
-       </tr>
-</table>
+<div class="table dashed">
+       <div align="center" class="table_header bottom">
+               <strong>{--ADMIN_CONFIG_AUTOPURGE_TITLE--}</strong>
+       </div>
+
+       <fieldset id="autopurge_inactive_fields">
+               <legend>{--ADMIN_CONFIG_AUTOPURGE_INACTIVE_TITLE--}</legend>
+
+               <div class="table_row">
+                       <label for="autopurge_inactive">{--ADMIN_CONFIG_AUTOPURGE_INACTIVE--}</label>
+                       <div align="center">$content[ap_inactive_selection]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_inactive_since">{--ADMIN_CONFIG_AUTOPURGE_INACTIVE_SINCE--}</label>
+                       <div align="center">$content[ap_in_since]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_inactive_time">{--ADMIN_CONFIG_AUTOPURGE_INACTIVE_TIME--}</label>
+                       <div align="center">$content[ap_in_time]</div>
+               </div>
+       </fieldset>
+
+       <fieldset id="autopurge_unconfirmed_fields">
+               <legend>{--ADMIN_CONFIG_AUTOPURGE_UNCONFIRMED_TITLE--}</legend>
+
+               <div class="table_row">
+                       <label for="autopurge_unconfirmed">{--ADMIN_CONFIG_AUTOPURGE_UNCONFIRMED--}</label>
+                       <div align="center">$content[ap_unconfirmed_selection]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_un_time">{--ADMIN_CONFIG_AUTOPURGE_UNCONFIRMED_TIME--}:</label>
+                       <div align="center">$content[ap_un_time]</div>
+               </div>
+       </fieldset>
+
+       <fieldset id="autopurge_tasks_fields">
+               <legend>{--ADMIN_CONFIG_AUTOPURGE_TASKS_TITLE--}</legend>
+
+               <div class="table_row">
+                       <label for="autopurge_tasks">{--ADMIN_CONFIG_AUTOPURGE_TASKS--}</label>
+                       <div align="center">$content[ap_tasks_selection]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_task_time">{--ADMIN_CONFIG_AUTOPURGE_TASKS_TIME--}</label>
+                       <div align="center">$content[ap_task_time]</div>
+               </div>
+       </fieldset>
+
+       <fieldset id="autopurge_mailid_fields">
+               <legend>{--ADMIN_CONFIG_AUTOPURGE_MAILID_TITLE--}</legend>
+
+               <div class="table_row">
+                       <label for="auto_purge">{--ADMIN_CONFIG_AUTOPURGE_ACTIVE--}</label>
+                       <div align="center">{%template,ConfigurationYesNoSelectionBox=auto_purge%}</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="auto_purge">{--ADMIN_CONFIG_MAIL_LIFETIME--}</label>
+                       <div align="center">$content[auto_purge]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_notify_del_mails">{--ADMIN_CONFIG_AUTOPURGE_NOTIFY_DELETE_MAILS--}</label>
+                       <div align="center">$content[ap_notify_del_mails]</div>
+               </div>
+       </fieldset>
+
+       <fieldset id="autopurge_delete_mails_fields">
+               <legend>{--ADMIN_CONFIG_AUTOPURGE_DELETE_MAILS_TITLE--}</legend>
+
+               <div class="table_row">
+                       <label for="ap_del_mails">{--ADMIN_CONFIG_AUTOPURGE_DELETE_MAILS--}</label>
+                       <div align="center">$content[ap_del_mails_selection]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_del_mails_time">{--ADMIN_CONFIG_AUTOPURGE_DELETE_MAILS_TIME--}</label>
+                       <div align="center">$content[ap_del_mails_time]</div>
+               </div>
+       </fieldset>
+
+       <fieldset id="autopurge_notification_fields">
+               <legend>{--ADMIN_CONFIG_AUTOPURGE_NOTIFICATION_TITLE--}</legend>
+
+               <div class="table_row">
+                       <label for="ap_notify_inactive">{--ADMIN_CONFIG_AUTOPURGE_NOTIFY_INACTIVE--}</label>
+                       <div align="center">$content[ap_notify_inactive]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_notify_unconfirmed">{--ADMIN_CONFIG_AUTOPURGE_NOTIFY_UNCONFIRMED--}</label>
+                       <div align="center">$content[ap_notify_unconfirmed]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="ap_notify_tasks">{--ADMIN_CONFIG_AUTOPURGE_NOTIFY_TASKS--}</label>
+                       <div align="center">$content[ap_notify_tasks]</div>
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
+       </div>
+</div>
 </form>
 </div>
 </form>
 </div>
index b02b9e7aa4ed6083aa6acee2c48e485489f8e4da..3f0cacbe790c73f0099c62d1dda12eb8d39df1f4 100644 (file)
@@ -31,3 +31,7 @@
 </table>
 </form>
 </div>
 </table>
 </form>
 </div>
+
+<div class="notice">
+       {--ADMIN_CONFIG_BIRTHDAY_NOTICE--}
+</div>
index 6cc1027c007d0fa492f9370a231e6c5e48bd875c..53ba902b0af8be17de8e29fc769f1961ff3bcb63 100644 (file)
@@ -6,6 +6,7 @@
                <strong>{%message,ADMIN_CONFIG_NETWORK_API_TITLE=<a href="$content[network_reflink]" target="_blank" title="$content[network_title]">$content[network_title]</a>%}</strong>
        </td>
 </tr>
                <strong>{%message,ADMIN_CONFIG_NETWORK_API_TITLE=<a href="$content[network_reflink]" target="_blank" title="$content[network_title]">$content[network_title]</a>%}</strong>
        </td>
 </tr>
+
 <tr>
        <td align="center" class="bottom right" width="50%">
                {--ADMIN_CONFIG_NETWORK_API_ENTER_AFFILIATE_ID--}<br />
 <tr>
        <td align="center" class="bottom right" width="50%">
                {--ADMIN_CONFIG_NETWORK_API_ENTER_AFFILIATE_ID--}<br />
@@ -16,6 +17,7 @@
                <input type="text" class="form_field" name="network_api_site_id" size="5" maxlength="20" value="$content[network_api_site_id]" />
        </td>
 </tr>
                <input type="text" class="form_field" name="network_api_site_id" size="5" maxlength="20" value="$content[network_api_site_id]" />
        </td>
 </tr>
+
 <tr>
        <td align="center" class="bottom right" width="50%">
                {--ADMIN_CONFIG_NETWORK_API_ENTER_API_PASSWORD--}<br />
 <tr>
        <td align="center" class="bottom right" width="50%">
                {--ADMIN_CONFIG_NETWORK_API_ENTER_API_PASSWORD--}<br />
@@ -28,6 +30,7 @@
                </select>
        </td>
 </tr>
                </select>
        </td>
 </tr>
+
 <tr>
        <td align="center" class="bottom right" width="50%">
                {--ADMIN_CONFIG_NETWORK_API_ENTER_REFERRAL_LINK--}<br />
 <tr>
        <td align="center" class="bottom right" width="50%">
                {--ADMIN_CONFIG_NETWORK_API_ENTER_REFERRAL_LINK--}<br />
@@ -38,6 +41,7 @@
                <input type="text" class="form_field" name="network_api_referral_button" size="20" maxlength="255" value="$content[network_api_referral_button]" />
        </td>
 </tr>
                <input type="text" class="form_field" name="network_api_referral_button" size="20" maxlength="255" value="$content[network_api_referral_button]" />
        </td>
 </tr>
+
 <tr>
        <td class="table_footer" colspan="2" align="center">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
 <tr>
        <td class="table_footer" colspan="2" align="center">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
index b343862398b9ae3e93ca7ed4d9d58ba833901d56..74b7710b97f750c61a74fa1c50cd1aa9dc443699 100644 (file)
@@ -1,4 +1,5 @@
 <div align="center">
 <div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_network_types&amp;do=network_types_config&amp;network_id=$content[network_id]%}" method="post">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
        <td colspan="2" align="center" class="table_header bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
        <td colspan="2" align="center" class="table_header bottom">
index bbc4d82c9ad90346339cf0c894f015e54bbbdc6b..84e5c90e33f2a09d117c01d17541b4bfe15b2be4 100644 (file)
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_order%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_order%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="2" class="table_header bottom" align="center">
-                       <strong>{--ADMIN_CONFIG_ORDER_TITLE--}:</strong>
-               </td>
-       </tr>
-
-       <tr>
-               <td class="bottom" rowspan="2" align="center">
-                       {--ADMIN_CONFIG_ORDER_SELECT_MAX--}
-               </td>
-               <td class="bottom">
-                       <input type="radio" class="form_field" name="order_max_full" value="MAX"$content[order_max_full_max] />
-                       {--ADMIN_CONFIG_ORDER_OPTION_MAX--}
-               </td>
-       </tr>
-
-       <tr>
-               <td class="bottom">
-                       <input type="radio" class="form_field" name="order_max_full" value="ORDER"$content[order_max_full_order] />
-                       {--ADMIN_CONFIG_ORDER_OPTION_ORDER--}
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right">
-                       {--ADMIN_CONFIG_MAX_UNCONFIRMED_MAILS--}:
-               </td>
-               <td>
-                       <input type="text" class="form_field" name="unconfirmed" size="10" maxlength="10" value="{?unconfirmed?}" />
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right">
-                       {--ADMIN_CONFIG_MAX_TEXT_LENGTH--}:
-               </td>
-               <td>
-                       <input type="text" class="form_field" name="max_tlength" size="10" maxlength="100" value="{?max_tlength?}" />
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right">
-                       {--ADMIN_CONFIG_CHECK_EMAIL_TEXT--}
-               </td>
-               <td>
-                       {%template,ConfigurationYesNoSelectionBox=allow_url_in_text%}
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right">
-                       {--ADMIN_CONFIG_CHECK_EMAIL_SUBJECT--}
-               </td>
-               <td>
-                       {%template,ConfigurationYesNoSelectionBox=allow_url_in_subject%}
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right">
-                       {--ADMIN_CONFIG_URL_BLACKLIST--}
-               </td>
-               <td>
-                       {%template,ConfigurationYesNoSelectionBox=url_blacklist%}
-               </td>
-       </tr>
-
-       <tr>
-               <td class="bottom" align="right">{--ADMIN_REPAY_ON_DELETE_MODE--}</td>
-               <td class="bottom">
-                       <select name="repay_deleted_mails" class="form_select" size="1">
-                               <option value="REPAY"$content[repay_deleted_mails_repay]>{--ADMIN_CONFIG_REPAY_POINTS_REPAY--}</option>
-                               <option value="JACKPOT"$content[repay_deleted_mails_jackpot]>{--ADMIN_CONFIG_REPAY_POINTS_JACKPOT--}</option>
-                               <option value="SHRED"$content[repay_deleted_mails_shred]>{--ADMIN_CONFIG_REPAY_POINTS_SHRED--}</option>
-                       </select>
-               </td>
-       </tr>
-
-       <tr>
-               <td colspan="2" class="table_header bottom" align="center">
-                       <strong>{--ADMIN_ORDER_SELECTION_SETTINGS--}:</strong>
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right">
-                       {--ADMIN_ORDER_SELECTION_COLUMN--}:
-               </td>
-               <td align="center">
-                       <select name="order_select" class="form_select" size="1">
-                               $content[order_selection]
-                       </select>
-               </td>
-       </tr>
-
-       <tr>
-               <td class="bottom" align="right">{--ADMIN_ORDER_SELECTION_MODE--}:</td>
-               <td class="bottom" align="center">
-                       <select name="order_mode" class="form_select" size="1">
-                               <option value="ASC"$content[order_mode_asc]>{--SORT_ASCENDING--}</option>
-                               <option value="DESC"$content[order_mode_desc]>{--SORT_DESCENDING--}</option>
-                       </select>
-               </td>
-       </tr>
-
-       <tr>
-               <td colspan="2" class="table_header bottom" align="center">
-                       <strong>{--ADMIN_CONFIG_ORDER_MISC_TITLE--}:</strong>
-               </td>
-       </tr>
-
-       <tr>
-               <td class="bottom" align="right">
-                       {--ADMIN_CONFIG_ORDER_MIN_RECEIVER_PER_ORDER--}:
-               </td>
-               <td class="bottom" align="center">
-                       <input type="input" class="form_field" name="order_min" value="{?order_min?}" size="5" maxlength="20" />
-               </td>
-       </tr>
-
-       <tr>
-               <td colspan="2" align="center" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
-               </td>
-       </tr>
-</table>
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_CONFIG_ORDER_TITLE--}</strong>
+       </div>
+
+       <fieldset id="config_order_select_max_fields">
+               <legend>{--ADMIN_CONFIG_ORDER_SELECT_MAX_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="order_max_full">{--ADMIN_CONFIG_ORDER_OPTION_MAX--}</label>
+                       <div align="center">
+                               <input type="radio" class="form_field" name="order_max_full" value="MAX"$content[order_max_full_max] />
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="order_max_full">{--ADMIN_CONFIG_ORDER_OPTION_ORDER--}</label>
+                       <div align="center">
+                               <input type="radio" class="form_field" name="order_max_full" value="ORDER"$content[order_max_full_order] />
+                       </div>
+               </div>
+       </fieldset>
+
+       <fieldset id="config_order_member_fields">
+               <legend>{--ADMIN_CONFIG_ORDER_MEMBER_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="unconfirmed">{--ADMIN_CONFIG_MAX_UNCONFIRMED_MAILS--}</label>
+                       <div align="center">
+                               <input type="text" class="form_field" name="unconfirmed" size="10" maxlength="10" value="{?unconfirmed?}" />
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="max_tlength">{--ADMIN_CONFIG_MAX_TEXT_LENGTH--}</label>
+                       <div align="center">
+                               <input type="text" class="form_field" name="max_tlength" size="10" maxlength="100" value="{?max_tlength?}" />
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="allow_url_in_text"> {--ADMIN_CONFIG_CHECK_EMAIL_TEXT--}</label>
+                       <div align="center">
+                               {%template,ConfigurationYesNoSelectionBox=allow_url_in_text%}
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="allow_url_in_subject">{--ADMIN_CONFIG_CHECK_EMAIL_SUBJECT--}</label>
+                       <div align="center">
+                               {%template,ConfigurationYesNoSelectionBox=allow_url_in_subject%}
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="url_blacklist">{--ADMIN_CONFIG_URL_BLACKLIST--}</label>
+                       <div align="center">
+                               {%template,ConfigurationYesNoSelectionBox=url_blacklist%}
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="repay_deleted_mails">{--ADMIN_REPAY_ON_DELETE_MODE--}</label>
+                       <div align="center">
+                               <select name="repay_deleted_mails" class="form_select" size="1">
+                                       <option value="REPAY"$content[repay_deleted_mails_repay]>{--ADMIN_CONFIG_REPAY_POINTS_REPAY--}</option>
+                                       <option value="JACKPOT"$content[repay_deleted_mails_jackpot]>{--ADMIN_CONFIG_REPAY_POINTS_JACKPOT--}</option>
+                                       <option value="SHRED"$content[repay_deleted_mails_shred]>{--ADMIN_CONFIG_REPAY_POINTS_SHRED--}</option>
+                               </select>
+                       </div>
+               </div>
+       </fieldset>
+
+       <fieldset id="config_order_selection_fields">
+               <legend>{--ADMIN_CONFIG_ORDER_SELECTION_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="order_select">{--ADMIN_CONFIG_ORDER_SELECTION_COLUMN--}</label>
+                       <div align="center">
+                               <select name="order_select" class="form_select" size="1">
+                                       $content[order_selection]
+                               </select>
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="order_mode">{--ADMIN_CONFIG_ORDER_SELECTION_MODE--}</label>
+                       <div align="center">
+                               <select name="order_mode" class="form_select" size="1">
+                                       <option value="ASC"$content[order_mode_asc]>{--SORT_ASCENDING--}</option>
+                                       <option value="DESC"$content[order_mode_desc]>{--SORT_DESCENDING--}</option>
+                               </select>
+                       </div>
+               </div>
+       </fieldset>
+
+       <fieldset id="config_order_misc_fields">
+               <legend>{--ADMIN_CONFIG_ORDER_MISC_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="order_min">{--ADMIN_CONFIG_ORDER_MIN_RECEIVER_PER_ORDER--}</label>
+                       <div align="center">
+                               <input type="input" class="form_field" name="order_min" value="{?order_min?}" size="5" maxlength="20" />
+                       </div>
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
+       </div>
+</div>
 </form>
 </div>
 </form>
 </div>
+
+<div class="notice">
+       {--ADMIN_CONFIG_ORDER_NOTICE--}
+</div>
index 02b6f5a1c41f0698cc3a28dc432d351261a53bd5..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1 +1 @@
-<!--@DEPRECATED //-->
+<!-- @DEPRECATED //-->
index 8b1725dd0e6d6cb418cf81e6b6a62a47ec7728b8..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,31 +1 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[rallye]%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="4" align="center" class="table_header">
-                       <strong>{--RALLYE_REMOVE_PRICES--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td align="center" width="10" class="header_column bottom right">
-                       <strong>{--ID_SELECT--}</strong>
-               </td>
-               <td align="center" width="50" class="header_column bottom right">
-                       <strong>{--RALLYE_LEVEL--}:</strong>
-               </td>
-               <td align="center" width="200" class="header_column bottom right">
-                       <strong>{--RALLYE_PRICE_POINTS--}:</strong>
-               </td>
-               <td align="center" width="320" class="header_column bottom">
-                       <strong>{--RALLYE_PRICE_INFO--}:</strong>
-               </td>
-       </tr>
-       $content[rows]
-       <tr>
-               <td colspan="4" class="table_footer">
-                       <input type="submit" name="do_delete" class="form_delete" value="{--RALLYE_REMOVE_PRICES--}" />
-               </td>
-       </tr>
-</table>
-</form>
-</div>
+<!-- @DEPRECATED //-->
index eedc4847ae6dc90be349c864d6f75cfe5a4c1ac3..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,14 +1 @@
-<tr>
-       <td class="{%template,ColorSwitch%} bottom right" align="center">
-               $content[rallye_id] <input type="hidden" claass="form_field" name="sel[$content[rallye_id]]" value="1" />
-       </td>
-       <td class="{%template,ColorSwitch%} bottom right" align="center">
-               $content[price_level]
-       </td>
-       <td class="{%template,ColorSwitch%} bottom right">
-               {%pipe,translateComma=$content[points]%}
-       </td>
-       <td class="{%template,ColorSwitch%} bottom">
-               {%pipe,fixEmptyContentToDashes=$content[info]%}
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
index 9a048d453e0ed7050bb1ef45a1c13afe04e95121..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,32 +1 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[rallye]%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="4" align="center" class="table_header">
-                       <strong>{--RALLYE_EDIT_SELECTED_PRICES--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td width="120" align="center" class="header_column bottom right">
-                       <strong>{--RALLYE_ID--}:</strong>
-               </td>
-               <td width="65" align="center" class="header_column bottom right">
-                       <strong>{--RALLYE_LEVEL--}:</strong>
-               </td>
-               <td width="185" align="center" class="header_column bottom right">
-                       <strong>{--RALLYE_PRICE_POINTS--}:</strong>
-               </td>
-               <td width="130" align="center" class="header_column bottom">
-                       <strong>{--RALLYE_PRICE_INFO--}:</strong>
-               </td>
-       </tr>
-       $content[rows]
-       <tr>
-               <td colspan="4" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="do_edit" value="{--RALLYE_CHANGE_PRICES--}" />
-               </td>
-       </tr>
-</table>
-</form>
-</div>
+<!-- @DEPRECATED //-->
index 8f12c53c526e035a91fdd7181129804bde076958..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,16 +1 @@
-<tr>
-       <td class="{%template,ColorSwitch%} bottom right" align="center">
-               <select name="rallye_id[$content[rallye_id]]" size="1" class="form_select">
-                       $content[rallye_content]
-               </select>
-       </td>
-       <td class="{%template,ColorSwitch%} bottom right" align="center">
-               <input type="text" class="form_field" name="level[$content[rallye_id]]" size="5" maxlength="20" value="$content[price_level]" />
-       </td>
-       <td class="{%template,ColorSwitch%} bottom right">
-               <input type="text" class="form_field" name="points[$content[rallye_id]]" size="8" maxlength="20" value="$content[points]" />
-       </td>
-       <td class="{%template,ColorSwitch%} bottom">
-               <input type="text" class="form_field" name="infos[$content[rallye_id]]" size="15" maxlength="255" value="$content[info]" />
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
index a241a0b8ed195b2bcfbb592506aeb0ee21650bf8..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,33 +1 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[rallye]%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="4" align="center" class="table_header">
-                       <strong>{--RALLYE_EDIT_DELETE_PRICES--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td align="center" width="10" class="header_column bottom right">
-                       <strong>{--ID_SELECT--}</strong>
-               </td>
-               <td align="center" width="50" class="header_column bottom right">
-                       <strong>{--RALLYE_LEVEL--}:</strong>
-               </td>
-               <td align="center" width="200" class="header_column bottom right">
-                       <strong>{--RALLYE_PRICE_POINTS--}:</strong>
-               </td>
-               <td align="center" width="320" class="header_column bottom">
-                       <strong>{--RALLYE_PRICE_INFO--}:</strong>
-               </td>
-       </tr>
-       $content[rows]
-       <tr>
-               <td colspan="4" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
-                       <input type="submit" class="form_submit" name="edit" value="{--ADMIN_ACTION_EDIT_SUBMIT--}" />
-                       <input type="submit" class="form_delete" name="delete" value="{--ADMIN_ACTION_DELETE_SUBMIT--}" />
-               </td>
-       </tr>
-</table>
-</form>
-</div>
+<!-- @DEPRECATED //-->
index 527c9270edcaeb3afb344ecf41b3efda33cab012..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,14 +1 @@
-<tr>
-       <td class="{%template,ColorSwitch%} bottom right" align="center">
-               <input type="checkbox" class="form_field" title="{--ID_SELECT--} $content[id]" name="sel[$content[id]]" value="1" />
-       </td>
-       <td class="{%template,ColorSwitch%} bottom right" align="center">
-               $content[price_level]
-       </td>
-       <td class="{%template,ColorSwitch%} bottom right">
-               {%pipe,translateComma=$content[points]%}
-       </td>
-       <td class="{%template,ColorSwitch%} bottom">
-               {%pipe,fixEmptyContentToDashes=$content[info]%}
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
index 04d97cd78a48042f2487c32833e479341cc337b8..49c3b384a27c44505afcff76ac5460c079c444d6 100644 (file)
@@ -1,59 +1,57 @@
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_refid%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_refid%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td class="table_header bottom" colspan="2" align="center">
-                       <strong>{--ADMIN_CONFIG_REFID_TITLE--}</strong>
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right" width="200" style="padding-right:5px">{--ADMIN_CONFIG_SELECT_DEFAULT_REFID--}:</td>
-               <td align="center">
-                       $content[def_refid]
-               </td>
-       </tr>
-
-       <tr>
-               <td class="bottom" align="right" width="200" style="padding-right:5px">{--ADMIN_CONFIG_SELECT_REFID_TARGRT--}:</td>
-               <td class="bottom" align="center">
-                       <select name="refid_target" size="1" class="form_select">
-                               <option value="register"$content[refid_target_register]>{--ADMIN_CONFIG_REFERRAL_TARGET_REGISTER--}</option>
-                               <option value="index"$content[refid_target_index]>{--ADMIN_CONFIG_REFERRAL_TARGET_INDEX--}</option>
-                       </select>
-               </td>
-       </tr>
-
-       <tr>
-               <td class="table_header bottom" colspan="2" align="center">
-                       <strong>{--ADMIN_CONFIG_RANDOM_REFID_TITLE--}</strong>
-               </td>
-       </tr>
-
-       <tr>
-               <td align="right" width="200" style="padding-right:5px">{--ADMIN_CONFIG_RANDOM_ZERO_REFID--}</td>
-               <td align="center">
-                       <select name="select_user_zero_refid" size="1" class="form_select">
-                               <option value="Y"$content[select_user_zero_refid_y]>{--ADMIN_CONFIG_RANDOM_REFID_ENABLED--}</option>
-                               <option value="N"$content[select_user_zero_refid_n]>{--ADMIN_CONFIG_RANDOM_REFID_DISABLED--}</option>
-                       </select>
-               </td>
-       </tr>
-
-       <tr>
-               <td class="bottom" align="right" width="200" style="padding-right:5px">{--ADMIN_CONFIG_RANDOM_MIN_CONFIRMED--}</td>
-               <td class="bottom" align="center">
-                       <input type="text" class="form_field" name="user_min_confirmed" size="3" maxlength="3" value="{?user_min_confirmed?}" />
-               </td>
-       </tr>
-
-       <tr>
-               <td class="table_footer" colspan="2" align="center">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
-               </td>
-       </tr>
-</table>
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_CONFIG_REFID_TITLE--}</strong>
+       </div>
+
+       <fieldset id="config_refid_general_fields">
+               <legend>{--ADMIN_CONFIG_REFID_GENERAL_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="default_refid">{--ADMIN_CONFIG_SELECT_DEFAULT_REFID--}</label>
+                       <div align="center">
+                               $content[def_refid]
+                       </div>
+               </div>
+
+               <div class="table_row">
+               <label for="refid_target">{--ADMIN_CONFIG_SELECT_REFID_TARGRT--}:</label>
+                       <div align="center">
+                               <select name="refid_target" size="1" class="form_select">
+                                       <option value="register"$content[refid_target_register]>{--ADMIN_CONFIG_REFERRAL_TARGET_REGISTER--}</option>
+                                       <option value="index"$content[refid_target_index]>{--ADMIN_CONFIG_REFERRAL_TARGET_INDEX--}</option>
+                               </select>
+                       </div>
+               </div>
+       </fieldset>
+
+       <fieldset id="random_refid_fields">
+               <legend>{--ADMIN_CONFIG_RANDOM_REFID_LEGEND--}</legend>
+
+               <div class="table_row">
+                       <label for="select_user_zero_refid">{--ADMIN_CONFIG_RANDOM_ZERO_REFID--}</label>
+                       <div align="center">
+                               <select name="select_user_zero_refid" size="1" class="form_select">
+                                       <option value="Y"$content[select_user_zero_refid_y]>{--ADMIN_CONFIG_RANDOM_REFID_ENABLED--}</option>
+                                       <option value="N"$content[select_user_zero_refid_n]>{--ADMIN_CONFIG_RANDOM_REFID_DISABLED--}</option>
+                               </select>
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="user_min_confirmed">{--ADMIN_CONFIG_RANDOM_MIN_CONFIRMED--}</label>
+                       <div align="center">
+                               <input type="text" class="form_field" name="user_min_confirmed" size="3" maxlength="3" value="{?user_min_confirmed?}" />
+                       </div>
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
+       </div>
+</div>
 </form>
 </div>
 
 </form>
 </div>
 
index 2ce70624f7faa70091b8848abd953902327e0f50..6cedde5fb94f4dfcf1494697e281a884c4bd6399 100644 (file)
@@ -42,7 +42,7 @@
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td colspan="2" align="center" class="table_footer top">
+               <td colspan="2" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
                        <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
                </td>
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
                        <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
                </td>
index c338b590f395b4b235af0b2791d543ab41424425..37036e70a63937f622df26bbc7716bf9d6c8ab7f 100644 (file)
        </tr>
        <tr>
                <td class="bottom" align="right" style="padding-right:5px">
        </tr>
        <tr>
                <td class="bottom" align="right" style="padding-right:5px">
-                       {--ADMIN_CONFIG_SURFBAR_AUTOSTART--}
+                       {--ADMIN_CONFIG_SURFBAR_AUTO_START--}
                </td>
                <td class="bottom" align="center">
                </td>
                <td class="bottom" align="center">
-                       {%template,ConfigurationYesNoSelectionBox=surfbar_autostart%}
+                       {%template,ConfigurationYesNoSelectionBox=surfbar_auto_start%}
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
index d1a39f382d4c1998f92fdefe22332c5edec67aea..5bddc467f5d1dc0bb15a468ac5886d886955d9bc 100644 (file)
@@ -1,53 +1,52 @@
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_title%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_title%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       <strong>{--ADMIN_CONFIG_TITLE_SETTINGS--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td align="right">{--ADMIN_CONFIG_TITLE_ENABLE_DECORATIONS--}:</td>
-               <td>$content[enable_title_deco]</td>
-       </tr>
-       <tr>
-               <td align="right">{--ADMIN_CONFIG_TITLE_ENABLE_MODULE_TITLE--}:</td>
-               <td>$content[enable_mod_title]</td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right">{--ADMIN_CONFIG_TITLE_ENABLE_WHAT_TITLE--}:</td>
-               <td class="bottom">$content[enable_what_title]</td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       <strong>{--ADMIN_CONFIG_TITLE_DECORATIONS--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td align="right">{--ADMIN_CONFIG_TITLE_LEFT--}:</td>
-               <td>
-                       <input type="text" class="form_field" name="title_left" value="{?title_left?}" size="4" maxlength="10" />
-               </td>
-       </tr>
-       <tr>
-               <td align="right">{--ADMIN_CONFIG_TITLE_MIDDLE--}:</td>
-               <td>
-                       <input type="text" class="form_field" name="title_middle" value="{?title_middle?}" size="4" maxlength="10" />
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right">{--ADMIN_CONFIG_TITLE_RIGHT--}:</td>
-               <td class="bottom">
-                       <input type="text" class="form_field" name="title_right" value="{?title_right?}" size="4" maxlength="10" />
-               </td>
-       </tr>
-       <tr>
-               <td colspan="2" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
-               </td>
-       </tr>
-</table>
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_CONFIG_TITLE_SETTINGS--}</strong>
+       </div>
+
+       <fieldset id="config_title_general_fields">
+               <legend>{--ADMIN_CONFIG_TITLE_LEGEND--}</legend>
+               <div class="table_row">
+                       <label for="enable_title_deco">{--ADMIN_CONFIG_TITLE_ENABLE_DECORATIONS--}:</label>
+                       <div align="center">$content[enable_title_deco]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="enable_mod_title">{--ADMIN_CONFIG_TITLE_ENABLE_MODULE_TITLE--}:</label>
+                       <div align="center">$content[enable_mod_title]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="enable_what_title">{--ADMIN_CONFIG_TITLE_ENABLE_WHAT_TITLE--}:</label>
+                       <div align="center">$content[enable_what_title]</div>
+               </div>
+       </fieldset>
+
+       <fieldset id="config_title_decorations_fields">
+               <legend>{--ADMIN_CONFIG_TITLE_DECORATIONS--}</legend>
+
+               <div class="table_row">
+                       <label for="title_left">{--ADMIN_CONFIG_TITLE_LEFT--}:</label>
+                       <div align="center"><input type="text" class="form_field" name="title_left" value="{?title_left?}" size="4" maxlength="10" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="title_middle">{--ADMIN_CONFIG_TITLE_MIDDLE--}:</label>
+                       <div align="center"><input type="text" class="form_field" name="title_middle" value="{?title_middle?}" size="4" maxlength="10" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="title_right">{--ADMIN_CONFIG_TITLE_RIGHT--}:</label>
+                       <div align="center"><input type="text" class="form_field" name="title_right" value="{?title_right?}" size="4" maxlength="10" /></div>
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
+       </div>
+</div>
 </form>
 </div>
 
 </form>
 </div>
 
index 4e69c020bf96f58b98b16d7ee81929a58741e5d9..6e5fa7bdb807fc4754c6bdaf2c12a02c12a5d0aa 100644 (file)
@@ -1,29 +1,89 @@
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_user%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_user%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-       <tr>
-               <td colspan="2" align="center" class="table_header bottom">
-                       <strong>{--ADMIN_CONFIG_USER_TITLE--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td align="right">{--ADMIN_CONFIG_USER_LIMIT--}:</td>
-               <td>
-                       <input type="text" class="form_field" name="user_limit" value="{?user_limit?}" size="4" maxlength="6" />
-               </td>
-       </tr>
-       <tr>
-               <td class="bottom" align="right">{--ADMIN_CONFIG_USER_ALPHA--}:</td>
-               <td class="bottom">
-                       <input type="text" class="form_field" name="user_alpha" value="{?user_alpha?}" size="4" maxlength="6" />
-               </td>
-       </tr>
-       <tr>
-               <td colspan="2" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
-               </td>
-       </tr>
-</table>
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_CONFIG_USER_TITLE--}</strong>
+       </div>
+
+       <fieldset id="config_user_fields">
+               <legend>{--ADMIN_CONFIG_USER_LEGEND--}</legend>
+               <div class="table_row">
+                       <label for="user_limit">{--ADMIN_CONFIG_USER_LIMIT--}</label>
+                       <div align="center"><input type="text" class="form_field" name="user_limit" value="{?user_limit?}" size="4" maxlength="6" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="user_alpha">{--ADMIN_CONFIG_USER_ALPHA--}</label>
+                       <div align="center"><input type="text" class="form_field" name="user_alpha" value="{?user_alpha?}" size="4" maxlength="6" /></div>
+               </div>
+       </fieldset>
+
+       <fieldset id="config_tester_user_fields">
+               <legend>{--ADMIN_CONFIG_TESTER_USER_LEGEND--}</legend>
+               <div class="table_row">
+                       <label for="tester_user_maximum">{--ADMIN_CONFIG_TESTER_USER_MAXIMUM--}</label>
+                       <div align="left"><input type="text" class="form_field" name="tester_user_maximum" value="{?tester_user_maximum?}" size="5" maxlength="5" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_family">{--ADMIN_CONFIG_TESTER_USER_GENDER--}</label>
+                       <div align="left">$content[tester_user_gender_selection]</div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_surname_prefix">{--ADMIN_CONFIG_TESTER_USER_SURNAME_PREFIX--}</label>
+                       <div align="left"><input type="text" class="form_field" name="tester_user_surname_prefix" value="{?tester_user_surname_prefix?}" size="10" maxlength="100" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_family">{--ADMIN_CONFIG_TESTER_USER_FAMILY--}</label>
+                       <div align="left"><input type="text" class="form_field" name="tester_user_family" value="{?tester_user_family?}" size="10" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_street_nr">{--ADMIN_CONFIG_TESTER_USER_STREET_NR--}</label>
+                       <div align="left"><input type="text" class="form_field" name="tester_user_street_nr" value="{?tester_user_street_nr?}" size="15" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_zip">{--ADMIN_CONFIG_TESTER_USER_ZIP--}</label>
+                       <div align="left"><input type="text" class="form_field" name="tester_user_zip" value="{?tester_user_zip?}" size="6" maxlength="6" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_city">{--ADMIN_CONFIG_TESTER_USER_CITY--}</label>
+                       <div align="left"><input type="text" class="form_field" name="tester_user_city" value="{?tester_user_city?}" size="10" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_email">{--ADMIN_CONFIG_TESTER_USER_EMAIL--}</label>
+                       <div align="left"><input type="text" class="form_field" name="tester_user_email" value="{?tester_user_email?}" size="20" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_password">{--ADMIN_CONFIG_TESTER_USER_PASSWORD--}</label>
+                       <div align="left"><input type="password" class="form_field" name="tester_user_password" value="{?tester_user_password?}" size="20" maxlength="255" /></div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_check_cat">{--ADMIN_CONFIG_TESTER_USER_CHECK_CAT--}</label>
+                       <div align="left">{%template,ConfigurationYesNoSelectionBox=tester_user_check_cat%}</div>
+
+                       <div class="field_note">
+                               {--ADMIN_CONFIG_TESTER_USER_CHECK_CAT_NOTICE--}
+                       </div>
+               </div>
+
+               <div class="table_row">
+                       <label for="tester_user_default_refid">{--ADMIN_CONFIG_TESTER_USER_DEFAULT_REFID--}</label>
+                       <div align="left">{%pipe,addTesterUserDefaultRefidSelectionBox%}</div>
+               </div>
+       </fieldset>
+
+       <div class="table_footer top">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SAVE_SETTINGS--}" />
+       </div>
+</div>
 </form>
 </div>
 </form>
 </div>
index 882a37541126a0abe3c92076b40a97e9d7d98b61..cefd999df38a60ccff6dc06c6e5cbd00ceb67898 100644 (file)
@@ -1,3 +1,4 @@
+<div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=user_contct&amp;userid=$content[userid]%}" method="post">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" align="center">
        <tr>
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=user_contct&amp;userid=$content[userid]%}" method="post">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" align="center">
        <tr>
@@ -19,3 +20,4 @@
        </tr>
 </table>
 </form>
        </tr>
 </table>
 </form>
+</div>
diff --git a/templates/de/html/admin/admin_delete_forced_ads.tpl b/templates/de/html/admin/admin_delete_forced_ads.tpl
new file mode 100644 (file)
index 0000000..669c7b4
--- /dev/null
@@ -0,0 +1,18 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_ads&amp;do=delete_forced_ads%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td align="center" class="table_header bottom" height="25" colspan="4">
+                       <strong>{--ADMIN_DELETE_FORCED_ADS_TITLE--}</strong>
+               </td>
+       </tr>
+       $content
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" class="form_delete" name="do_delete" value="{--ADMIN_FORCED_ADS_REMOVE_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_delete_forced_ads_row.tpl b/templates/de/html/admin/admin_delete_forced_ads_row.tpl
new file mode 100644 (file)
index 0000000..c1710e4
--- /dev/null
@@ -0,0 +1,48 @@
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {--ADMIN_FORCED_ADS_ADDED--}:<br />
+               <input type="hidden" name="forced_ads_id[$content[forced_ads_id]]" value="1" />
+               <strong>$content[forced_ads_added]</strong>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_FORCED_ADS_AD_URL--}:<br />
+               <strong>$content[forced_ads_ad_url]</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {--ADMIN_FORCED_ADS_ALTERNATE_TEXT--}:<br />
+               <strong>$content[forced_ads_alt_text]</strong>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_FORCED_ADS_CLICK_URL--}:<br />
+               <strong><a href="{%pipe,generateFrametesterUrl=$content[forced_ads_click_url]%}" target="_blank">{--ADMIN_TEST_URL--}</a></strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {--ADMIN_FORCED_ADS_WIDTH--}:<br />
+               <strong>$content[forced_ads_width]</strong>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_FORCED_ADS_HEIGHT--}:<br />
+               <strong>$content[forced_ads_height]</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {--ADMIN_FORCED_ADS_USERID--}:<br />
+               <strong>{%pipe,generateUserProfileLink=$content[forced_ads_userid]%}</strong>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_FORCED_ADS_TYPE--}:<br />
+               <strong>{%pipe,translateForcedAdsType=$content[forced_ads_type]%}</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_FORCED_ADS_HAS_FRAMEBREAKER--}<br />
+               <strong>{%pipe,translateYesNo=$content[forced_ads_framebreaker]%}</strong>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom separator">&nbsp;</td>
+</tr>
diff --git a/templates/de/html/admin/admin_delete_forced_costs.tpl b/templates/de/html/admin/admin_delete_forced_costs.tpl
new file mode 100644 (file)
index 0000000..8039d7e
--- /dev/null
@@ -0,0 +1,18 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_costs&amp;do=delete_forced_costs%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td align="center" class="table_header bottom" height="25" colspan="4">
+                       <strong>{--ADMIN_DELETE_FORCED_COSTS_TITLE--}</strong>
+               </td>
+       </tr>
+       $content
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" class="form_delete" name="do_delete" value="{--ADMIN_FORCED_COSTS_REMOVE_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_delete_forced_costs_row.tpl b/templates/de/html/admin/admin_delete_forced_costs_row.tpl
new file mode 100644 (file)
index 0000000..d6ba7eb
--- /dev/null
@@ -0,0 +1,15 @@
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {--ADMIN_FORCED_COSTS_PRICE_CLICK--}:<br />
+               <input type="hidden" name="forced_costs_id[$content[forced_costs_id]]" value="1" />
+               <strong>{%pipe,translateComma=$content[forced_costs_price_click]%} ({?POINTS?})</strong>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {--ADMIN_FORCED_COSTS_PAYMENT_CLICK--}:<br />
+               <strong>{%pipe,translateComma=$content[forced_costs_payment_click]%} ({?POINTS?})</strong>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_FORCED_COSTS_VISIBILITY--}:<br />
+               <strong>{%pipe,translateForcedCostsVisibility=$content[forced_costs_visibility]%}</strong>
+       </td>
+</tr>
diff --git a/templates/de/html/admin/admin_delete_rallye_prices.tpl b/templates/de/html/admin/admin_delete_rallye_prices.tpl
new file mode 100644 (file)
index 0000000..58f2b35
--- /dev/null
@@ -0,0 +1,31 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=$content[rallye_id]%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td colspan="4" align="center" class="table_header">
+                       <strong>{--ADMIN_DELETE_RALLYE_PRICES_TITLE--}</strong>
+               </td>
+       </tr>
+       <tr>
+               <td align="center" width="10" class="header_column bottom right">
+                       <strong>{--ID_SELECT--}</strong>
+               </td>
+               <td align="center" width="50" class="header_column bottom right">
+                       <strong>{--RALLYE_LEVEL--}:</strong>
+               </td>
+               <td align="center" width="200" class="header_column bottom right">
+                       <strong>{--ADMIN_RALLYE_PRICE_POINTS--}:</strong>
+               </td>
+               <td align="center" width="320" class="header_column bottom">
+                       <strong>{--ADMIN_RALLYE_PRICE_INFO--}:</strong>
+               </td>
+       </tr>
+       $content[rows]
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="submit" name="do_delete" class="form_delete" value="{--ADMIN_REMOVE_RALLYE_PRICES_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_delete_rallye_prices_row.tpl b/templates/de/html/admin/admin_delete_rallye_prices_row.tpl
new file mode 100644 (file)
index 0000000..aee2c9a
--- /dev/null
@@ -0,0 +1,15 @@
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               $content[id]
+               <input type="hidden" claass="form_field" name="sel[$content[id]]" value="1" />
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               $content[price_level]
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {%pipe,translateComma=$content[points]%}
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {%pipe,fixEmptyContentToDashes=$content[info]%}
+       </td>
+</tr>
diff --git a/templates/de/html/admin/admin_delete_rallyes.tpl b/templates/de/html/admin/admin_delete_rallyes.tpl
new file mode 100644 (file)
index 0000000..151e742
--- /dev/null
@@ -0,0 +1,18 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_rallyes%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td colspan="3" align="center" class="table_header bottom">
+                       <strong>{--ADMIN_DELETE_RALLYES_TITLE--}:</strong>
+               </td>
+       </tr>
+       $content
+       <tr>
+               <td colspan="3" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" class="form_delete" name="do_delete" value="{--ADMIN_REMOVE_RALLYE_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_delete_rallyes_row.tpl b/templates/de/html/admin/admin_delete_rallyes_row.tpl
new file mode 100644 (file)
index 0000000..c82ee59
--- /dev/null
@@ -0,0 +1,43 @@
+<tr>
+       <td class="{%template,ColorSwitch%}" width="305" align="right">{--ADMIN_RALLYE_TITLE--}:</td>
+       <td class="{%template,ColorSwitch%}" width="265">
+               <strong>$content[title]</strong>
+               <input type="hidden" name="sel[$content[rallye_id]]" value="1" />
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}" align="right" valign="top">{--ADMIN_RALLYE_DESCRIPTION--}:</td>
+       <td class="{%template,ColorSwitch%}">
+               <pre>$content[descr]</pre>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}" align="right">{--ADMIN_RALLYE_TEMPLATE--}:</td>
+       <td class="{%template,ColorSwitch%}">
+               <strong>$content[template]</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}" width="200" align="right" valign="top">{--ADMIN_RALLYE_START_DAY--}:</td>
+       <td class="{%template,ColorSwitch%}" width="290">
+               <strong>$content[start_time]</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}" width="200" align="right" valign="top">{--ADMIN_RALLYE_END_DAY--}:</td>
+       <td class="{%template,ColorSwitch%}" width="290">
+               <strong>$content[end_time]</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}" width="305" align="right">{--ADMIN_RALLYE_MIN_USERS_MINI--}:</td>
+       <td class="{%template,ColorSwitch%}" width="265">
+               <strong>{%pipe,translateComma=$content[min_users]%}</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%} bottom" width="305" align="right">{--ADMIN_RALLYE_MIN_PRICES_MINI--}:</td>
+       <td class="{%template,ColorSwitch%} bottom" width="265">
+               <strong>{%pipe,translateComma=$content[min_prices]%}</strong>
+       </td>
+</tr>
index fbb53ab37fe4a2037952755e52af86cde3b20ccd..b14d5bacde09f46d248a0400fbe1ab0a13e63962 100644 (file)
@@ -14,7 +14,7 @@
 $content
 <tr>
        <td class="table_footer" colspan="3">
 $content
 <tr>
        <td class="table_footer" colspan="3">
-               <input type="submit" name="do_delete" class="form_delete" value="{--ADMIN_SURFBAR_DELETE_URL_NOW--}" />
+               <input type="submit" name="do_delete" class="form_delete" value="{--ADMIN_SURFBAR_DELETE_URL_NOW_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index f851d3fcc104dcc0626c6638b2da9e403470c6f9..e32a887ed10ba26305f077bda1072f30f155df54 100644 (file)
@@ -9,34 +9,42 @@
                        (<a href="{%network,getNetworkDataById,network_reflink=%network_id%%}" target="_blank" title="{%network,getNetworkDataById,network_title=%network_id%%}">{%network,getNetworkDataById,network_title=%network_id%%}</a>)
                </div>
        </div>
                        (<a href="{%network,getNetworkDataById,network_reflink=%network_id%%}" target="_blank" title="{%network,getNetworkDataById,network_title=%network_id%%}">{%network,getNetworkDataById,network_title=%network_id%%}</a>)
                </div>
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_SET_ALL--}
                {%template,NoYesSelectionBox=set_all%}
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_SET_ALL--}
                {%template,NoYesSelectionBox=set_all%}
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MAX_RELOAD_TIME--} ({--TIME_UNIT--})<br />
                $content[network_max_reload_time] ({%pipe,translateTimeUnit=$content[network_type_reload_time_unit]%})
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MAX_RELOAD_TIME--} ({--TIME_UNIT--})<br />
                $content[network_max_reload_time] ({%pipe,translateTimeUnit=$content[network_type_reload_time_unit]%})
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_WAITING_TIME--}<br />
                <input type="text" class="form_normal" name="network_min_waiting_time" size="5" maxlength="20" value="$content[network_min_waiting_time]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_WAITING_TIME--}<br />
                <input type="text" class="form_normal" name="network_min_waiting_time" size="5" maxlength="20" value="$content[network_min_waiting_time]" />
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_REMAIN_CLICKS--}<br />
                <input type="text" class="form_normal" name="network_min_remain_clicks" size="5" maxlength="20" value="$content[network_min_remain_clicks]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_REMAIN_CLICKS--}<br />
                <input type="text" class="form_normal" name="network_min_remain_clicks" size="5" maxlength="20" value="$content[network_min_remain_clicks]" />
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_PAYMENT--}<br />
                <input type="text" class="form_normal" name="network_min_payment" size="7" maxlength="20" value="$content[network_min_payment]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_PAYMENT--}<br />
                <input type="text" class="form_normal" name="network_min_payment" size="7" maxlength="20" value="$content[network_min_payment]" />
        </div>
+
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALLOW_EROTIC--}<br />
                <input type="text" class="form_normal" name="network_allow_erotic" size="5" maxlength="20" value="$content[network_allow_erotic]" />
        </div>
        <div class="bottom" style="padding-top:3px;padding-bottom:3px">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALLOW_EROTIC--}<br />
                <input type="text" class="form_normal" name="network_allow_erotic" size="5" maxlength="20" value="$content[network_allow_erotic]" />
        </div>
+
        <div class="table_footer">
                <input type="hidden" name="network_data_id" value="$content[network_data_id]" />
                <input type="submit" class="form_submit" name="ok" value="{--ADMIN_EDIT_CONFIG_NETWORK_HANDLER_TYPE_FORM_SUBMIT--}" />
        </div>
        <div class="table_footer">
                <input type="hidden" name="network_data_id" value="$content[network_data_id]" />
                <input type="submit" class="form_submit" name="ok" value="{--ADMIN_EDIT_CONFIG_NETWORK_HANDLER_TYPE_FORM_SUBMIT--}" />
        </div>
+</div>
 </form>
 </div>
 
 </form>
 </div>
 
index 42f7eac1aac0e3ea57b7ef5e7b9cf8ed847ea5c5..4995f0529253c4867843d923746ae685af247ea4 100644 (file)
@@ -10,7 +10,7 @@
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom">
                <select name="is_active[$content[id]]" class="form_select" size="1">
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom">
                <select name="is_active[$content[id]]" class="form_select" size="1">
-                       {%pipe,generateYesNoOptionList=$content[is_active]%}
+                       {%pipe,generateYesNoOptions=$content[is_active]%}
                </select>
        </td>
 </tr>
                </select>
        </td>
 </tr>
index c43acecc713649308f80bb870a978adc7c2b5099..9591bb1d511d533b1631c2448283ce137fa8ddf3 100644 (file)
@@ -1,5 +1,5 @@
 <div align="center">
 <div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_email_max_rec&do=edit%}" method="post">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_email_max_rec&amp;do=edit%}" method="post">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" colspan="2" class="table_header bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" colspan="2" class="table_header bottom">
index e9757f52d2cf7fa559a69b36f60456978fb37314..2c70a09aea4183d5bbbc770c22a43069ac729864 100644 (file)
@@ -1,7 +1,7 @@
 <tr>
        <td class="{%template,ColorSwitch%}">
 <tr>
        <td class="{%template,ColorSwitch%}">
-               {--ADMIN_FORCED_ADS_ADDED--}<br />
-               <input type="hidden" name="sel[$content[forced_ads_id]]" value="1" />
+               {--ADMIN_FORCED_ADS_ADDED--}:<br />
+               <input type="hidden" name="forced_ads_id[$content[forced_ads_id]]" value="1" />
                <strong>$content[forced_ads_added]</strong>
        </td>
        <td class="{%template,ColorSwitch%}">
                <strong>$content[forced_ads_added]</strong>
        </td>
        <td class="{%template,ColorSwitch%}">
@@ -11,7 +11,7 @@
 </tr>
 <tr>
        <td class="{%template,ColorSwitch%}">
 </tr>
 <tr>
        <td class="{%template,ColorSwitch%}">
-               {--ADMIN_CHANGE_FORCED_ADS_ALT_TEXT--}<br />
+               {--ADMIN_CHANGE_FORCED_ADS_ALTERNATE_TEXT--}<br />
                <input type="text" class="form_field" name="forced_ads_alt_text[$content[forced_ads_id]]" size="15" maxlength="255" value="$content[forced_ads_alt_text]" />
        </td>
        <td class="{%template,ColorSwitch%}">
                <input type="text" class="form_field" name="forced_ads_alt_text[$content[forced_ads_id]]" size="15" maxlength="255" value="$content[forced_ads_alt_text]" />
        </td>
        <td class="{%template,ColorSwitch%}">
@@ -45,7 +45,7 @@
        <td class="{%template,ColorSwitch%} bottom">
                {--ADMIN_CHANGE_FORCED_ADS_FRAMEBREAKER--}<br />
                <select name="forced_ads_framebreaker[$content[forced_ads_id]]" class="form_select" size="1">
        <td class="{%template,ColorSwitch%} bottom">
                {--ADMIN_CHANGE_FORCED_ADS_FRAMEBREAKER--}<br />
                <select name="forced_ads_framebreaker[$content[forced_ads_id]]" class="form_select" size="1">
-                       {%pipe,generateYesNoOptionList=$content[forced_ads_framebreaker]%}
+                       {%pipe,generateYesNoOptions=$content[forced_ads_framebreaker]%}
                </select>
        </td>
        <td class="{%template,ColorSwitch%} bottom separator">&nbsp;</td>
                </select>
        </td>
        <td class="{%template,ColorSwitch%} bottom separator">&nbsp;</td>
diff --git a/templates/de/html/admin/admin_edit_forced_campaigns.tpl b/templates/de/html/admin/admin_edit_forced_campaigns.tpl
new file mode 100644 (file)
index 0000000..d2a37f0
--- /dev/null
@@ -0,0 +1,22 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_campaigns&amp;do=edit_forced_campaigns%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td align="center" class="table_header bottom" height="25" colspan="4">
+                       <strong>{--ADMIN_EDIT_FORCED_CAMPAIGN_TITLE--}</strong>
+               </td>
+       </tr>
+       $content
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" class="form_submit" name="do_edit" value="{--ADMIN_FORCED_CAMPAIGN_CHANGE_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
+
+<div class="notice">
+       {--ADMIN_EDIT_FORCED_CAMPAIGN_NOTICE--}
+</div>
diff --git a/templates/de/html/admin/admin_edit_forced_campaigns_row.tpl b/templates/de/html/admin/admin_edit_forced_campaigns_row.tpl
new file mode 100644 (file)
index 0000000..9077e3e
--- /dev/null
@@ -0,0 +1,42 @@
+<tr>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_FORCED_CAMPAIGN_CREATED--}:<br />
+               <input type="hidden" name="forced_campaign_id[$content[forced_campaign_id]]" value="1" />
+               <strong>$content[forced_campaign_created]</strong>
+       </td>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_FORCED_CAMPAIGN_ORDERED_CLICKS--}<br />
+               <input type="text" class="form_field" name="forced_campaign_ordered_clicks[$content[forced_campaign_id]]" size="5" maxlength="20" value="{%pipe,translateComma=$content[forced_campaign_ordered_clicks]%}" />
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_FORCED_CAMPAIGN_PAYMENT_API--}<br />
+               <input type="text" class="form_field" name="forced_campaign_payment_api[$content[forced_campaign_id]]" size="5" maxlength="20" value="{%pipe,translateComma=$content[forced_campaign_payment_api]%}" />
+       </td>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_FORCED_CAMPAIGN_RELOAD_LOCK--}<br />
+               $content[forced_campaign_reload_lock]
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_FORCED_CAMPAIGN_MINIMUM_STAY--}<br />
+               <input type="text" class="form_field" name="forced_campaign_minimum_stay[$content[forced_campaign_id]]" size="5" maxlength="20" value="$content[forced_campaign_minimum_stay]" />
+       </td>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_FORCED_CAMPAIGN_ADS_ID--}<br />
+               {%template,ForcedAdSelectionBox=$content[forced_ads_id]%}
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_CHANGE_FORCED_CAMPAIGN_USERID--}<br />
+               $content[forced_campaign_userid]
+               <input type="hidden" name="forced_campaign_userid_raw" value="$content[forced_campaign_userid_raw]" />
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_CHANGE_FORCED_CAMPAIGN_COSTS_ID--}<br />
+               {%template,ForcedCostsSelectionBox=$content[forced_costs_id]%}
+       </td>
+</tr>
diff --git a/templates/de/html/admin/admin_edit_forced_costs.tpl b/templates/de/html/admin/admin_edit_forced_costs.tpl
new file mode 100644 (file)
index 0000000..0000f0d
--- /dev/null
@@ -0,0 +1,18 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_costs&amp;do=edit_forced_costs%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td align="center" class="table_header bottom" height="25" colspan="4">
+                       <strong>{--ADMIN_EDIT_FORCED_COSTS_TITLE--}</strong>
+               </td>
+       </tr>
+       $content
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" class="form_submit" name="do_edit" value="{--ADMIN_FORCED_COSTS_CHANGE_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_edit_forced_costs_row.tpl b/templates/de/html/admin/admin_edit_forced_costs_row.tpl
new file mode 100644 (file)
index 0000000..394a7dd
--- /dev/null
@@ -0,0 +1,20 @@
+<tr>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_FORCED_COSTS_PRICE_CLICK--}<br />
+               <input type="hidden" name="forced_costs_id[$content[forced_costs_id]]" value="1" />
+               <input type="text" class="form_field" name="forced_costs_price_click[$content[forced_costs_id]]" size="10" maxlength="20" value="{%pipe,translateComma=$content[forced_costs_price_click]%}" /> ({?POINTS?})
+       </td>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_FORCED_COSTS_PAYMENT_CLICK--}<br />
+               <input type="text" class="form_field" name="forced_costs_payment_click[$content[forced_costs_id]]" size="10" maxlength="20" value="{%pipe,translateComma=$content[forced_costs_payment_click]%}" /> ({?POINTS?})
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%} bottom">
+               {--ADMIN_CHANGE_FORCED_COSTS_VISIBILITY--}<br />
+               <select name="forced_costs_visibility[$content[forced_costs_id]]" class="form_select" size="1">
+                       {%pipe,generateForcedCostsVisibilityOptions=$content[forced_costs_visibility]%}
+               </select>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom separator">&nbsp;</td>
+</tr>
index 167ddd65173a091e2cbc6f0fd6e66c627a5d0ed1..308e8b10c3b97b0d64fdff5eb96c9bd6b6f4adc1 100644 (file)
@@ -39,7 +39,7 @@
        <td class="{%template,ColorSwitch%}" style="padding-left:5px">{--ADMIN_NETWORK_REQUIRE_ID_CARD--}</td>
        <td class="{%template,ColorSwitch%}">
                <select name="network_require_id_card[$content[network_id]]" class="form_select" size="1">
        <td class="{%template,ColorSwitch%}" style="padding-left:5px">{--ADMIN_NETWORK_REQUIRE_ID_CARD--}</td>
        <td class="{%template,ColorSwitch%}">
                <select name="network_require_id_card[$content[network_id]]" class="form_select" size="1">
-                       {%pipe,generateYesNoOptionList=$content[network_require_id_card]%}
+                       {%pipe,generateYesNoOptions=$content[network_require_id_card]%}
                </select>
        </td>
 </tr>
                </select>
        </td>
 </tr>
diff --git a/templates/de/html/admin/admin_edit_points_data.tpl b/templates/de/html/admin/admin_edit_points_data.tpl
new file mode 100644 (file)
index 0000000..5c10683
--- /dev/null
@@ -0,0 +1,18 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_point_accounts&amp;do=edit_points_data%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td align="center" class="table_header bottom" height="25" colspan="4">
+                       <strong>{--ADMIN_EDIT_POINTS_DATA_TITLE--}</strong>
+               </td>
+       </tr>
+       $content
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" class="form_submit" name="do_edit" value="{--ADMIN_POINTS_DATA_CHANGE_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_edit_points_data_row.tpl b/templates/de/html/admin/admin_edit_points_data_row.tpl
new file mode 100644 (file)
index 0000000..96c47fd
--- /dev/null
@@ -0,0 +1,37 @@
+<tr>
+       <td class="{%template,ColorSwitch%}">
+               <input type="hidden" name="id[$content[id]]" value="1" />
+               <strong>$content[subject]</strong>
+               <div class="tiny">({%pipe,translatePointsSubject=$content[subject]%})</div>
+       </td>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_POINTS_ACCOUNT_COLUMN_NAME--}<br />
+               <strong>{%pipe,translatePointsAccountType=$content[column_name]%}</strong>
+       </td>
+</tr>
+<tr>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_POINTS_LOCKED_MODE--}<br />
+               <select name="locked_mode[$content[id]]" class="form_select" size="1">
+                       {%pipe,generatePointsLockedModeOptions=$content[locked_mode]%}
+               </select>
+       </td>
+       <td class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_POINTS_PAYMENT_METHOD--}<br />
+               <select name="payment_method[$content[id]]" class="form_select" size="1">
+                       {%pipe,generatePointsPaymentMethodOptions=$content[payment_method]%}
+               </select>
+       </td>
+</tr>
+<tr>
+       <td class="bottom {%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_POINTS_NOTIFY_RECIPIENT--}<br />
+               <select name="notify_recipient[$content[id]]" class="form_select" size="1">
+                       {%pipe,generatePointsNotifyRecipientOptions=$content[notify_recipient]%}
+               </select>
+       </td>
+       <td class="bottom {%template,ColorSwitch%}">
+               {--ADMIN_POINTS_ACCOUNT_PROVIDER--}<br />
+               <strong>{%pipe,translatePointsAccountProvider=$content[account_provider]%}</strong>
+       </td>
+</tr>
diff --git a/templates/de/html/admin/admin_edit_rallye_prices.tpl b/templates/de/html/admin/admin_edit_rallye_prices.tpl
new file mode 100644 (file)
index 0000000..1a608bb
--- /dev/null
@@ -0,0 +1,32 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=$content[rallye_id]%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td colspan="4" align="center" class="table_header">
+                       <strong>{--ADMIN_EDIT_RALLYE_PRICES_TITLE--}</strong>
+               </td>
+       </tr>
+       <tr>
+               <td width="120" align="center" class="header_column bottom right">
+                       <strong>{--RALLYE_ID--}:</strong>
+               </td>
+               <td width="65" align="center" class="header_column bottom right">
+                       <strong>{--RALLYE_LEVEL--}:</strong>
+               </td>
+               <td width="185" align="center" class="header_column bottom right">
+                       <strong>{--ADMIN_RALLYE_PRICE_POINTS--}:</strong>
+               </td>
+               <td width="130" align="center" class="header_column bottom">
+                       <strong>{--ADMIN_RALLYE_PRICE_INFO--}:</strong>
+               </td>
+       </tr>
+       $content[rows]
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+                       <input type="submit" class="form_submit" name="do_edit" value="{--ADMIN_CHANGE_RALLYE_PRICES_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_edit_rallye_prices_row.tpl b/templates/de/html/admin/admin_edit_rallye_prices_row.tpl
new file mode 100644 (file)
index 0000000..9010786
--- /dev/null
@@ -0,0 +1,16 @@
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               <select name="rallye_id[$content[id]]" size="1" class="form_select">
+                       $content[rallye_content]
+               </select>
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               <input type="text" class="form_field" name="level[$content[id]]" size="5" maxlength="20" value="$content[price_level]" />
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right">
+               <input type="text" class="form_field" name="points[$content[id]]" size="8" maxlength="20" value="{%pipe,translateComma=$content[points]%}" />
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               <input type="text" class="form_field" name="infos[$content[id]]" size="15" maxlength="255" value="$content[info]" />
+       </td>
+</tr>
index eb35f5b9f90b140fe7b8d737b60ef55d179bd542..06cbb1fdb7c75bb28f6f5ef095301fea375021c4 100644 (file)
@@ -3,13 +3,14 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="3" align="center" class="table_header bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="3" align="center" class="table_header bottom">
-               <strong>{--RALLYE_EDIT_RALLYES--}:</strong></td>
+                       <strong>{--ADMIN_EDIT_RALLYES_TITLE--}:</strong>
+               </td>
        </tr>
        $content
        <tr>
                <td colspan="3" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        </tr>
        $content
        <tr>
                <td colspan="3" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="do_edit" value="{--RALLYE_CHANGE_ADMIN--}" />
+                       <input type="submit" class="form_submit" name="do_edit" value="{--ADMIN_CHANGE_RALLYE_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index 5b80e776bec9e834dea7066a882f0a1895fcc832..e75bd8d51415a89aa901eac12579b1c6ea6e40d5 100644 (file)
@@ -1,42 +1,45 @@
 <tr>
 <tr>
-       <td class="{%template,ColorSwitch%}" width="305" align="right">{--RALLYE_TITLE--}:</td>
+       <td class="{%template,ColorSwitch%}" width="305" align="right">{--ADMIN_RALLYE_TITLE--}:</td>
        <td class="{%template,ColorSwitch%}" width="265" align="center">
        <td class="{%template,ColorSwitch%}" width="265" align="center">
-               <input type="text" class="form_field" name="title[$content[id]]" size="30" maxlength="255" value="$content[title]" />
+               <input type="text" class="form_field" name="title[$content[rallye_id]]" size="30" maxlength="255" value="$content[title]" />
+               <input type="hidden" name="sel[$content[rallye_id]]" value="1" />
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td class="{%template,ColorSwitch%}" align="right" valign="top">{--RALLYE_DESCR--}:</td>
+       <td class="{%template,ColorSwitch%}" align="right" valign="top">{--ADMIN_ENTER_RALLYE_DESCRIPTION--}:</td>
        <td class="{%template,ColorSwitch%}" align="center">
        <td class="{%template,ColorSwitch%}" align="center">
-               <textarea name="descr[$content[id]]" cols="30" rows="6" class="form_field">$content[descr]</textarea>
+               <textarea name="descr[$content[rallye_id]]" cols="30" rows="6" class="form_field">$content[descr]</textarea>
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td class="{%template,ColorSwitch%}" align="right">{--RALLYE_TEMPLATE--}:</td>
-       <td class="{%template,ColorSwitch%}" align="center">$content[templ]</td>
+       <td class="{%template,ColorSwitch%}" align="right">{--ADMIN_SELECT_RALLYE_TEMPLATE--}:</td>
+       <td class="{%template,ColorSwitch%}" align="center">
+               $content[templ]
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-       <td class="{%template,ColorSwitch%}" width="200" align="right" valign="top">{--RALLYE_START_DAY--}:</td>
+       <td class="{%template,ColorSwitch%}" width="200" align="right" valign="top">{--ADMIN_RALLYE_START_DAY--}:</td>
        <td class="{%template,ColorSwitch%}" width="290" align="center">
        <td class="{%template,ColorSwitch%}" width="290" align="center">
-               <div>$content[s_day]. $content[s_month]. $content[s_year]</div>
-               <div>$content[s_hour]: $content[s_min]: $content[s_sec]</div>
+               <div>$content[s_day] . $content[s_month] . $content[s_year]</div>
+               <div>$content[s_hour] : $content[s_min] : 00</div>
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td class="{%template,ColorSwitch%}" width="200" align="right" valign="top">{--RALLYE_END_DAY--}:</td>
+       <td class="{%template,ColorSwitch%}" width="200" align="right" valign="top">{--ADMIN_RALLYE_END_DAY--}:</td>
        <td class="{%template,ColorSwitch%}" width="290" align="center">
        <td class="{%template,ColorSwitch%}" width="290" align="center">
-               <div>$content[e_day]. $content[e_month]. $content[e_year]</div>
-               <div>$content[e_hour]: $content[e_min]: $content[e_sec]</div>
+               <div>$content[e_day] . $content[e_month] . $content[e_year]</div>
+               <div>$content[e_hour] : $content[e_min] : 00</div>
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td class="{%template,ColorSwitch%}" width="305" align="right">{--RALLYE_MIN_USERS_MINI--}:</td>
+       <td class="{%template,ColorSwitch%}" width="305" align="right">{--ADMIN_RALLYE_MIN_USERS_MINI--}:</td>
        <td class="{%template,ColorSwitch%}" width="265" align="center">
        <td class="{%template,ColorSwitch%}" width="265" align="center">
-               <input type="text" class="form_field" name="min_users[$content[id]]" size="5" maxlength="20" value="$content[min_users]" />
+               <input type="text" class="form_field" name="min_users[$content[rallye_id]]" size="5" maxlength="20" value="$content[min_users]" />
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td class="{%template,ColorSwitch%}" width="305" align="right">{--RALLYE_MIN_PRICES_MINI--}:</td>
-       <td class="{%template,ColorSwitch%}" width="265" align="center">
-               <input type="text" class="form_field" name="min_prices[$content[id]]" size="5" maxlength="20" value="$content[min_prices]" >
+       <td class="{%template,ColorSwitch%} bottom" width="305" align="right">{--ADMIN_RALLYE_MIN_PRICES_MINI--}:</td>
+       <td class="{%template,ColorSwitch%} bottom" width="265" align="center">
+               <input type="text" class="form_field" name="min_prices[$content[rallye_id]]" size="5" maxlength="20" value="$content[min_prices]" >
        </td>
 </tr>
        </td>
 </tr>
diff --git a/templates/de/html/admin/admin_edit_surfbar_actions.tpl b/templates/de/html/admin/admin_edit_surfbar_actions.tpl
new file mode 100644 (file)
index 0000000..4396f8d
--- /dev/null
@@ -0,0 +1,22 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_surfbar_actions%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+<tr>
+       <td align="center" colspan="2" class="table_header bottom">
+               <strong>{--ADMIN_EDIT_SURFBAR_ACTIONS_TITLE--}</strong>
+       </td>
+</tr>
+$content
+<tr>
+       <td class="table_footer" colspan="2">
+               <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
+               <input type="submit" name="do_edit" class="form_submit" value="{--ADMIN_CHANGE_SURFBAR_ACTIONS_SUBMIT--}" />
+       </td>
+</tr>
+</table>
+</form>
+</div>
+
+<div class="notice">
+       {--ADMIN_EDIT_SURFBAR_ACTIONS_NOTICE--}
+</div>
diff --git a/templates/de/html/admin/admin_edit_surfbar_actions_row.tpl b/templates/de/html/admin/admin_edit_surfbar_actions_row.tpl
new file mode 100644 (file)
index 0000000..f3750ab
--- /dev/null
@@ -0,0 +1,22 @@
+<tr>
+       <td align="center" class="{%template,ColorSwitch%}">
+               {--ADMIN_SURFBAR_ACTIONS_ID--}
+               <input type="hidden" name="actions_id[$content[actions_id]]" value="1" />
+               <strong>$content[actions_id]</strong>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_SURFBAR_ACTIONS_STATUS--}<br />
+               {%template,SurfbarActionsStatusSelectionBox=$content[actions_id]%}
+       </td>
+</tr>
+
+<tr>
+       <td align="center" class="bottom {%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_SURFBAR_ACTIONS_ACTION--}<br />
+               {%template,SurfbarActionsActionSelectionBox=$content[actions_id]%}
+       </td>
+       <td align="center" class="bottom {%template,ColorSwitch%}">
+               {--ADMIN_CHANGE_SURFBAR_ACTIONS_NEW_STATUS--}<br />
+               {%template,SurfbarActionsNewStatusSelectionBox=$content[actions_id]%}
+       </td>
+</tr>
index fac07585407b551612f29d322e5956bc746fcbc0..d3e9ecd12eb6810d43ac3d476fee509e799842b0 100644 (file)
@@ -14,7 +14,7 @@ $content
 <tr>
        <td class="table_footer" colspan="2">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
 <tr>
        <td class="table_footer" colspan="2">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
-               <input type="submit" name="do_edit" class="form_submit" value="{--ADMIN_SURFBAR_EDIT_URL_NOW--}" />
+               <input type="submit" name="do_edit" class="form_submit" value="{--ADMIN_SURFBAR_EDIT_URL_NOW_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index 340b74d1132fc87b8e4d80a808f291158c4f5454..e72b4d74402ba79522b308e51d10aadad0cb40e1 100644 (file)
@@ -1,14 +1,12 @@
 <div align="center">
 <div class="table dashed">
 <div align="center">
 <div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_EXPORT_NETWORK_ARRAY_TRANSLATION_TITLE--}</strong>
+       </div>
 
 
-<div class="table_header bottom">
-       <strong>{--ADMIN_EXPORT_NETWORK_ARRAY_TRANSLATION_TITLE--}</strong>
-</div>
-
-<div class="bottom">
-       <pre>$content</pre>
-</div>
-
+       <div class="bottom">
+               <pre>$content</pre>
+       </div>
 </div>
 </div>
 
 </div>
 </div>
 
index c6dd14faa49a8b75384f75802cfc5347a93029af..f182aef1699f10c5fdb629e16ca087dc44bc2337 100644 (file)
@@ -1,14 +1,12 @@
 <div align="center">
 <div class="table dashed">
 <div align="center">
 <div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--ADMIN_EXPORT_NETWORK_DATA_TITLE--}</strong>
+       </div>
 
 
-<div class="table_header bottom">
-       <strong>{--ADMIN_EXPORT_NETWORK_DATA_TITLE--}</strong>
-</div>
-
-<div class="bottom">
-       <pre>$content</pre>
-</div>
-
+       <div class="bottom">
+               <pre>$content</pre>
+       </div>
 </div>
 </div>
 
 </div>
 </div>
 
index 484536a4c060dbb24884eb25b14c4b39b6ea4cad..305dd9b4dc717bb9ddca1b9199e3cc1fbf222899 100644 (file)
@@ -1,16 +1,12 @@
 <div align="center">
        <div class="table dashed" style="width:400px;margin-bottom:5px">
        <ul style="padding:0px;margin:0px">
 <div align="center">
        <div class="table dashed" style="width:400px;margin-bottom:5px">
        <ul style="padding:0px;margin:0px">
-               <li class="menu_blur bottom"><a href="{%url=modules.php?module=index%}" title="{--ADMIN_BACK_TO_GUEST_MENU--}">{--ADMIN_BACK_TO_GUEST_MENU--}</a></li>
-               <li class="menu_blur bottom"><a href="http://forum.mxchange.org" target="_blank" title="{--ADMIN_SUPPORT_FORUM_LINK--}">{--ADMIN_SUPPORT_FORUM_LINK--}</a></li>
-               <li class="menu_blur bottom"><a href="http://bugs.mxchange.org" target="_blank" title="{--ADMIN_SUPPORT_BUGTRACKER_LINK--}">{--ADMIN_SUPPORT_BUGTRACKER_LINK--}</a></li>
-               <li class="menu_blur bottom"><a href="http://wiki.mxchange.org" target="_blank" title="{--ADMIN_SUPPORT_WIKI_LINK--}">{--ADMIN_SUPPORT_WIKI_LINK--}</a></li>
-               <!--
-               CIA.vc is down indefinitely, see:
-               http://scanlime.org/2011/05/cia-vc-service-is-down-indefinitely/
-               <li class="menu_blur bottom"><a href="http://cia.vc/stats/project/mxchange" target="_blank" title="{--ADMIN_SUPPORT_CIAVC_LINK--}">{--ADMIN_SUPPORT_CIAVC_LINK--}</a></li>
-               //-->
-               <li class="menu_blur"><a href="http://stats.mxchange.org/branches/0.2.1-FINAL" target="_blank" title="{--ADMIN_SUPPORT_STATS_LINK--}">{--ADMIN_SUPPORT_STATS_LINK--}</a></li>
+               <li class="menu_blur switch_sw2 bottom"><a href="{%url=modules.php?module=index%}" title="{--ADMIN_BACK_TO_GUEST_MENU--}">{--ADMIN_BACK_TO_GUEST_MENU--}</a></li>
+               <li class="menu_blur switch_sw1 bottom"><a href="http://forum.mxchange.org" target="_blank" title="{--ADMIN_SUPPORT_FORUM_LINK--}">{--ADMIN_SUPPORT_FORUM_LINK--}</a></li>
+               <li class="menu_blur switch_sw2 bottom"><a href="http://bugs.mxchange.org" target="_blank" title="{--ADMIN_SUPPORT_BUGTRACKER_LINK--}">{--ADMIN_SUPPORT_BUGTRACKER_LINK--}</a></li>
+               <li class="menu_blur switch_sw1 bottom"><a href="http://wiki.mxchange.org" target="_blank" title="{--ADMIN_SUPPORT_WIKI_LINK--}">{--ADMIN_SUPPORT_WIKI_LINK--}</a></li>
+               <li class="menu_blur switch_sw2 bottom"><a href="http://cia.vc/stats/project/mxchange" target="_blank" title="{--ADMIN_SUPPORT_CIAVC_LINK--}">{--ADMIN_SUPPORT_CIAVC_LINK--}</a></li>
+               <li class="menu_blur switch_sw1"><a href="http://stats.mxchange.org/branches/0.2.1-FINAL" target="_blank" title="{--ADMIN_SUPPORT_STATS_LINK--}">{--ADMIN_SUPPORT_STATS_LINK--}</a></li>
        </ul>
        </div>
 </div>
        </ul>
        </div>
 </div>
index 167119dc3e86200b56ed609c04dedeb3f5f4381d..96c525a1b8fbbe5699dcffa4ff95b7a31f7abbec 100644 (file)
@@ -6,7 +6,7 @@
        <div class="table_header bottom">
                <strong>{--ADMIN_SELECTION_BOX_TITLE--}</strong>
        </div>
        <div class="table_header bottom">
                <strong>{--ADMIN_SELECTION_BOX_TITLE--}</strong>
        </div>
-       <div align="center" class="bottom">
+       <div class="bottom" align="center" style="padding:5px">
                {--ADMIN_SELECT_USER--}:
                <select name="userid" size="1" class="form_select">
                        $content[form_selection]
                {--ADMIN_SELECT_USER--}:
                <select name="userid" size="1" class="form_select">
                        $content[form_selection]
index c327edf510930bfad048703d18898d7040bfb2ef..91936319f01a063c06929efa9f42e775e8c32b4d 100644 (file)
@@ -1,4 +1,4 @@
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=theme_import%}" method="post">
        <input type="hidden" name="theme" value="$content" />
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=theme_import%}" method="post">
        <input type="hidden" name="theme" value="$content" />
-       <input type="submit" class="form_submit" name="ok" value="{--ADMIN_INSTALL_THEME--}" />
+       <input type="submit" class="form_submit" name="ok" value="{--ADMIN_INSTALLER_THEME--}" />
 </form>
 </form>
index 6ad91d9822478e797890a500344981be9fb31bce..fb425b79b566a1fd2189c10f870eed2ae8d22226 100644 (file)
@@ -2,7 +2,7 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
        <td colspan="5" class="table_header bottom" align="center">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
        <td colspan="5" class="table_header bottom" align="center">
-               <strong>{--ADMIN_LIST_BEG_TITLE--}/<strong>
+               <strong>{--ADMIN_LIST_BEG_TITLE--}</strong>
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
index 2f816b59cedc3eaa3a0821e2381502be27e0456a..0540ebfb09de7c0d67b0fe83003cd59ae5c830d5 100644 (file)
@@ -1,5 +1,5 @@
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_beg%}" method="post">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_beg%}" method="post">
-       <input type="submit" name="withdraw" class="form_submit" value="{--ADMIN_BEG_WITHDRAW_NOW--}" />
+       <input type="submit" name="withdraw" class="form_submit" value="{--ADMIN_BEG_WITHDRAW_NOW_SUBMIT--}" />
 </form>
 
 <div class="notice">
 </form>
 
 <div class="notice">
diff --git a/templates/de/html/admin/admin_list_forced_campaigns.tpl b/templates/de/html/admin/admin_list_forced_campaigns.tpl
new file mode 100644 (file)
index 0000000..dc97e8e
--- /dev/null
@@ -0,0 +1,38 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_campaigns%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="800">
+<tr>
+       <td align="center" colspan="11" class="table_header">
+               <strong>{--ADMIN_LIST_FORCED_CAMPAIGNS_TITLE--}</strong>
+       </td>
+</tr>
+<tr>
+       <td class="header_column bottom right" align="center"><strong>{--ID_SELECT--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--_USERID--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_STATUS--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_ORDERED_CLICKS--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_PAYMENT_API--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_RELOAD_LOCK--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_MINIMUM_STAY--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_LAST_LOCKED--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_LOCK_REASON--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_EXPIRED--}</strong></td>
+       <td class="header_column bottom" align="center"><strong>{--ADMIN_FORCED_CAMPAIGN_CREATED--}</strong></td>
+</tr>
+$content
+<tr>
+       <td class="table_footer" colspan="11">
+               <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
+               <input type="submit" class="form_submit" name="edit" value="{--ADMIN_ACTION_EDIT_SUBMIT--}" />
+               <input type="submit" class="form_submit" name="activate" value="{--ADMIN_ACTION_ACTIVATE_SUBMIT--}" />
+               <input type="submit" class="form_delete" name="lock" value="{--ADMIN_ACTION_UNLOCK_SUBMIT--}" />
+               <input type="submit" class="form_delete" name="delete" value="{--ADMIN_ACTION_DELETE_SUBMIT--}" />
+       </td>
+</tr>
+</table>
+</form>
+</div>
+
+<div class="notice">
+       {--ADMIN_LIST_FORCED_CAMPAIGN_NOTICE--}
+</div>
diff --git a/templates/de/html/admin/admin_list_forced_campaigns_row.tpl b/templates/de/html/admin/admin_list_forced_campaigns_row.tpl
new file mode 100644 (file)
index 0000000..37c4872
--- /dev/null
@@ -0,0 +1,35 @@
+<tr>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               <input type="checkbox" class="form_field" title="{--ID_SELECT--} $content[forced_campaign_id]" name="forced_campaign_id[$content[forced_campaign_id]]" value="1" />
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               {%pipe,generateUserProfileLink=$content[forced_campaign_userid]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translateForcedCampaignStatus=$content[forced_campaign_status]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translateComma=$content[forced_campaign_ordered_clicks]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translateComma=$content[forced_campaign_payment_api]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               $content[forced_campaign_reload_lock]
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               $content[forced_campaign_minimum_stay]
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               $content[forced_campaign_last_locked]
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,fixEmptyContentToDashes=$content[forced_campaign_lock_reason]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               $content[forced_campaign_expired]
+       </td>
+       <td align="center" class="bottom {%template,ColorSwitch%}">
+               $content[forced_campaign_created]
+       </td>
+</tr>
diff --git a/templates/de/html/admin/admin_list_forced_costs.tpl b/templates/de/html/admin/admin_list_forced_costs.tpl
new file mode 100644 (file)
index 0000000..5f34c50
--- /dev/null
@@ -0,0 +1,25 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_forced_costs%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="800">
+<tr>
+       <td align="center" colspan="4" class="table_header">
+               <strong>{--ADMIN_LIST_FORCED_COSTS_TITLE--}</strong>
+       </td>
+</tr>
+<tr>
+       <td class="header_column bottom right" align="center"><strong>{--ID_SELECT--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_COSTS_PRICE_CLICK--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_FORCED_COSTS_PAYMENT_CLICK--}</strong></td>
+       <td class="header_column bottom" align="center"><strong>{--ADMIN_FORCED_COSTS_VISIBILITY--}</strong></td>
+</tr>
+$content
+<tr>
+       <td class="table_footer" colspan="4">
+               <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
+               <input type="submit" class="form_submit" name="edit" value="{--ADMIN_ACTION_EDIT_SUBMIT--}" />
+               <input type="submit" class="form_delete" name="delete" value="{--ADMIN_ACTION_DELETE_SUBMIT--}" />
+       </td>
+</tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_list_forced_costs_row.tpl b/templates/de/html/admin/admin_list_forced_costs_row.tpl
new file mode 100644 (file)
index 0000000..1f73af9
--- /dev/null
@@ -0,0 +1,14 @@
+<tr>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               <input type="checkbox" class="form_field" title="{--ID_SELECT--} $content[forced_costs_id]" name="forced_costs_id[$content[forced_costs_id]]" value="1" />
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translateComma=$content[forced_costs_price_click]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translateComma=$content[forced_costs_payment_click]%}
+       </td>
+       <td align="center" class="bottom {%template,ColorSwitch%}">
+               {%pipe,translateForcedCostsVisibility=$content[forced_costs_visibility]%}
+       </td>
+</tr>
index ad3ea264cd7ca31f2087b68d37da4c404cfe22fc..e89396e06696c03a352d8aa3cecdbe46ad6be518 100644 (file)
@@ -1,6 +1,14 @@
 <tr>
 <tr>
-       <td align="center" class="{%template,ColorSwitch%} bottom right">$content[link]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom right">$content[subject]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom right">$content[timestamp]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">{%pipe,getCategory=$content[cat_id]%}</td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right">
+               <a href="{%url=mailid.php?userid=$content[userid]&amp;$content[link_type]=$content[mail_id]%}" target="_blank">$content[mail_id]</a>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right">
+               $content[subject]
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right">
+               $content[timestamp]
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom">
+               {%pipe,getCategory=$content[cat_id]%}
+       </td>
 </tr>
 </tr>
index d44c69750b973f1c04b97f8125460673ae645798..e47dea204a905ac8fb1e271787e9b64d0ac514e6 100644 (file)
@@ -22,7 +22,7 @@
                $content[network_row_separator]
        </td>
        <td class="{%template,ColorSwitch%} bottom right" align="center">
                $content[network_row_separator]
        </td>
        <td class="{%template,ColorSwitch%} bottom right" align="center">
-               $content[network_request_type]
+               <span title="{%pipe,translateNetworkRequestType=$content[network_request_type]%}">$content[network_request_type]</span>
        </td>
        <td class="{%template,ColorSwitch%} bottom right" align="center">
                $content[network_charset]
        </td>
        <td class="{%template,ColorSwitch%} bottom right" align="center">
                $content[network_charset]
index 9ecc0e252c41f8dfb69968ba3119594128bfe6be..704cbd1532603eaeadbb657bcb9e7c200e0b1f39 100644 (file)
@@ -1,68 +1,68 @@
 <tr>
 <tr>
-  <td class="bottom right" colspan="2" width="46%" align="center">
-    {--EMAIL_SUBJECT--}:<br />
-    <strong>$content[subject]</strong>
-  </td>
-  <td class="bottom" width="54%" align="center">
-    {--EMAIL_TEXT--}:<br />
-    <strong><pre>$content[text]</pre></strong>
-  </td>
+       <td class="bottom right" colspan="2" width="46%" align="center">
+               <div>{--EMAIL_SUBJECT--}:</div>
+               <div><strong>$content[subject]</strong></div>
+       </td>
+       <td class="bottom" width="54%" align="center">
+               <div>{--EMAIL_TEXT--}:</div>
+               <div><strong><pre>$content[text]</pre></strong></div>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="bottom right" width="23%">
-    {--EMAIL_POINTS--}:<br />
-    <strong>{%pipe,translateComma=$content[points]%} {?POINTS?}</strong>
-  </td>
-  <td align="center" class="bottom right" width="23%">
-    {--EMAIL_SECONDS--}:<br />
-    <strong>{%pipe,createFancyTime=$content[time]%}</strong>
-  </td>
-  <td align="center" class="bottom">
-    {--EMAIL_CATEGORY--}:<br />
-    <strong>{%pipe,getCategory=$content[cat_id]%}</strong>
-  </td>
+       <td align="center" class="bottom right" width="23%">
+               <div>{--EMAIL_POINTS--}:</div>
+               <div><strong>{%pipe,translateComma=$content[points]%} {?POINTS?}</strong></div>
+       </td>
+       <td align="center" class="bottom right" width="23%">
+               <div>{--EMAIL_SECONDS--}:</div>
+               <div><strong>{%pipe,createFancyTime=$content[time]%}</strong></div>
+       </td>
+       <td align="center" class="bottom">
+               <div>{--EMAIL_CATEGORY--}:</div>
+               <div><strong>{%pipe,getCategory=$content[cat_id]%}</strong></div>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="bottom right">
-    {--EMAIL_RECEIVERS--}:<br />
-    <strong>{%pipe,translateComma=$content[mails_sent]%}</strong>
-    ({--EMAIL_RUIDS--}: <strong>{%pipe,convertReceivers=$content[receivers]%}</strong>)
-  </td>
-  <td align="center" class="bottom right">
-    {--USERS_LINKS--}:<br />
-    <strong>$content[unconfirmed_content]</strong>
-  </td>
-  <td align="center" class="bottom">
-    {--EMAIL_POOL_TYPE--}:<br />
-    <strong>{%pipe,translatePoolType=$content[data_type]%}</strong>
-  </td>
+       <td align="center" class="bottom right">
+               <div>{--EMAIL_RECEIVERS--}:</div>
+               <div><strong>{%pipe,translateComma=$content[mails_sent]%}</strong></div>
+               <div>({--EMAIL_RUIDS--}: <strong>{%pipe,convertReceivers=$content[receivers]%}</strong>)</div>
+       </td>
+       <td align="center" class="bottom right">
+               <div>{--USERS_LINKS--}:</div>
+               <div><strong>$content[unconfirmed_content]</strong></div>
+       </td>
+       <td align="center" class="bottom">
+               <div>{--EMAIL_POOL_TYPE--}:</div>
+               <div><strong>{%pipe,translatePoolType=$content[data_type]%}</strong></div>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="bottom right">
-    {--EMAIL_TSEND--}:<br />
-    <strong>{%pipe,translateComma=$content[target_send]%}</strong>
-  </td>
-  <td align="center" class="bottom right">
-    {--EMAIL_URL--}:<br />
-    <strong><a href="{%pipe,generateFrametesterUrl=$content[url]%}" target="_blank">{--ADMIN_TEST_URL--}</a></strong>
-  </td>
-  <td align="center" class="bottom">
-    {--EMAIL_TIMESTAMP--}:<br />
-    <strong>$content[timestamp]</strong>
-  </td>
+       <td align="center" class="bottom right">
+               <div>{--EMAIL_TSEND--}:</div>
+               <div><strong>{%pipe,translateComma=$content[target_send]%}</strong></div>
+       </td>
+       <td align="center" class="bottom right">
+               <div>{--EMAIL_URL--}:</div>
+               <div><strong><a href="{%pipe,generateFrametesterUrl=$content[url]%}" target="_blank">{--ADMIN_TEST_URL--}</a></strong></div>
+       </td>
+       <td align="center" class="bottom">
+               <div>{--EMAIL_TIMESTAMP--}:</div>
+               <div><strong>$content[timestamp]</strong></div>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="top right" colspan="2">
-    <div>{--EMAIL_URL--}:</div>
-    <div><strong>$content[url]</strong></div>
-  </td>
-  <td align="center" class="top">
-    {--_UNUSED--}:<br />
-    <strong>---</strong>
-  </td>
+       <td align="center" class="top right" colspan="2">
+               <div>{--EMAIL_URL--}:</div>
+               <div><strong>$content[url]</strong></div>
+       </td>
+       <td align="center" class="top">
+               <div>{--_UNUSED--}:</div>
+               <div><strong>---</strong></div>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="top admin_delete_link" colspan="3">
-    <a href="{%url=modules.php?module=admin&amp;what=del_email&amp;nid=$content[id]%}">{--ADMIN_DELETE_NOTIFY_MAIL--}</a>
-  </td>
+       <td align="center" class="top admin_delete_link" colspan="3">
+               <a href="{%url=modules.php?module=admin&amp;what=del_email&amp;nid=$content[id]%}">{--ADMIN_DELETE_NOTIFY_MAIL--}</a>
+       </td>
 </tr>
 </tr>
diff --git a/templates/de/html/admin/admin_list_points_accounts.tpl b/templates/de/html/admin/admin_list_points_accounts.tpl
new file mode 100644 (file)
index 0000000..05b7c89
--- /dev/null
@@ -0,0 +1,28 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=list_point_accounts%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="800">
+<tr>
+       <td align="center" colspan="7" class="table_header">
+               <strong>{--ADMIN_LIST_POINTS_ACCOUNTS_TITLE--}</strong>
+       </td>
+</tr>
+<tr>
+       <td class="header_column bottom right" align="center"><strong>{--ID_SELECT--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_POINTS_ACCOUNT_SUBJECT--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_POINTS_ACCOUNT_COLUMN_NAME--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_POINTS_ACCOUNT_LOCKED_MODE--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_POINTS_ACCOUNT_PAYMENT_METHOD--}</strong></td>
+       <td class="header_column bottom right" align="center"><strong>{--ADMIN_POINTS_ACCOUNT_NOTIFY_RECIPIENT--}</strong></td>
+       <td class="header_column bottom" align="center"><strong>{--ADMIN_POINTS_ACCOUNT_PROVIDER--}</strong></td>
+</tr>
+$content
+<tr>
+       <td class="table_footer" colspan="7">
+               <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
+               <input type="submit" class="form_submit" name="edit" value="{--ADMIN_ACTION_EDIT_SUBMIT--}" />
+               <input type="submit" class="form_delete" name="delete" value="{--ADMIN_ACTION_DELETE_SUBMIT--}" />
+       </td>
+</tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_list_points_accounts_row.tpl b/templates/de/html/admin/admin_list_points_accounts_row.tpl
new file mode 100644 (file)
index 0000000..6b7c50e
--- /dev/null
@@ -0,0 +1,24 @@
+<tr>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               <input type="checkbox" class="form_field" title="{--ID_SELECT--} $content[id]" name="id[$content[id]]" value="1" />
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               <strong>$content[subject]</strong>
+               <div class="tiny">({%pipe,translatePointsSubject=$content[subject]%})</div>
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translatePointsAccountType=$content[column_name]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translatePointsLockedMode=$content[locked_mode]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translatePointsPaymentMethod=$content[payment_method]%}
+       </td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">
+               {%pipe,translateYesNo=$content[notify_recipient]%}
+       </td>
+       <td align="center" class="bottom {%template,ColorSwitch%}">
+               {%pipe,translatePointsAccountProvider=$content[account_provider]%}
+       </td>
+</tr>
index c376bb56a144f9abe84fee64a42c2e43e043ef80..dcc12f8d15ad84aa357627e6eacaa273ab1186c8 100644 (file)
@@ -2,19 +2,19 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="5" align="center" class="table_header">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="5" align="center" class="table_header">
-                       <strong>{--ADMIN_LIST_RALLYES_PRICING--}:</strong>
+                       <strong>{--ADMIN_LIST_RALLYES_PRICES_TITLE--}:</strong>
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="center" width="100" class="header_column bottom right"><strong>{--RALLYE_TITLE--}:</strong></td>
-               <td align="center" width="70" class="header_column bottom right"><strong>{--RALLYE_ADMIN_ID--}:</strong></td>
-               <td align="center" width="200" class="header_column bottom right"><strong>{--RALLYE_TSTART--}:</strong></td>
-               <td align="center" width="200" class="header_column bottom"><strong>{--RALLYE_TEND--}:</strong></td>
+               <td align="center" width="100" class="header_column bottom right"><strong>{--ADMIN_RALLYE_TITLE--}:</strong></td>
+               <td align="center" width="70" class="header_column bottom right"><strong>{--ADMIN_RALLYE_ADMIN_LOGIN--}:</strong></td>
+               <td align="center" width="200" class="header_column bottom right"><strong>{--ADMIN_RALLYE_STARTED--}:</strong></td>
+               <td align="center" width="200" class="header_column bottom"><strong>{--ADMIN_RALLYE_ENDED--}:</strong></td>
        </tr>
        $content
        <tr>
                <td colspan="5" class="table_footer">
        </tr>
        $content
        <tr>
                <td colspan="5" class="table_footer">
-                       {--ADMIN_RALLYE_PRICES_NOTICE--}
+                       <div class="notice">{--ADMIN_RALLYE_PRICES_NOTICE--}</div>
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index f3454446c6d478685fe173ed05258506968e2640..d3f185e3650d74c6477b0660e9db036b84249eb4 100644 (file)
@@ -1,6 +1,6 @@
 <tr>
 <tr>
-       <td align="center" class="{%template,ColorSwitch%} bottom right"><a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[id]%}">$content[title]</a></td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right"><a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=$content[rallye_id]%}">$content[title]</a></td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">{%pipe,generateAdminLink=$content[admin_id]%}</td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">{%pipe,generateAdminLink=$content[admin_id]%}</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom right">$content[start]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">$content[end]</td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right">$content[start_time]</td>
+       <td align="center" class="{%template,ColorSwitch%} bottom">$content[end_time]</td>
 </tr>
 </tr>
diff --git a/templates/de/html/admin/admin_list_rallye_prices_simple.tpl b/templates/de/html/admin/admin_list_rallye_prices_simple.tpl
new file mode 100644 (file)
index 0000000..61e6231
--- /dev/null
@@ -0,0 +1,33 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=$content[rallye_id]%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+       <tr>
+               <td colspan="4" align="center" class="table_header">
+                       <strong>{--ADMIN_LIST_RALLYE_PRICES_SIMPLE_TITLE--}</strong>
+               </td>
+       </tr>
+       <tr>
+               <td align="center" width="10" class="header_column bottom right">
+                       <strong>{--ID_SELECT--}</strong>
+               </td>
+               <td align="center" width="50" class="header_column bottom right">
+                       <strong>{--RALLYE_LEVEL--}:</strong>
+               </td>
+               <td align="center" width="200" class="header_column bottom right">
+                       <strong>{--ADMIN_RALLYE_PRICE_POINTS--}:</strong>
+               </td>
+               <td align="center" width="320" class="header_column bottom">
+                       <strong>{--ADMIN_RALLYE_PRICE_INFO--}:</strong>
+               </td>
+       </tr>
+       $content[rows]
+       <tr>
+               <td colspan="4" class="table_footer">
+                       <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
+                       <input type="submit" class="form_submit" name="edit" value="{--ADMIN_ACTION_EDIT_SUBMIT--}" />
+                       <input type="submit" class="form_delete" name="delete" value="{--ADMIN_ACTION_DELETE_SUBMIT--}" />
+               </td>
+       </tr>
+</table>
+</form>
+</div>
diff --git a/templates/de/html/admin/admin_list_rallye_prices_simple_row.tpl b/templates/de/html/admin/admin_list_rallye_prices_simple_row.tpl
new file mode 100644 (file)
index 0000000..527c927
--- /dev/null
@@ -0,0 +1,14 @@
+<tr>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               <input type="checkbox" class="form_field" title="{--ID_SELECT--} $content[id]" name="sel[$content[id]]" value="1" />
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right" align="center">
+               $content[price_level]
+       </td>
+       <td class="{%template,ColorSwitch%} bottom right">
+               {%pipe,translateComma=$content[points]%}
+       </td>
+       <td class="{%template,ColorSwitch%} bottom">
+               {%pipe,fixEmptyContentToDashes=$content[info]%}
+       </td>
+</tr>
index 928a73ea2246917fc848d35eca17ef12e542afe4..894e76ed2b5f32aea83911fe8e9f3937195a6de5 100644 (file)
@@ -2,7 +2,7 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
        <td colspan="4" align="center" class="table_header bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
        <td colspan="4" align="center" class="table_header bottom">
-               <strong>{%message,RALLYE_LIST_USERS=$content[rallye]%}:</strong>
+               <strong>{%message,ADMIN_LIST_RALLYE_USERS_TITLE2=$content[rallye_id]%}:</strong>
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
@@ -14,7 +14,7 @@
 $content[rows]
 <tr>
        <td colspan="4" class="table_footer">
 $content[rows]
 <tr>
        <td colspan="4" class="table_footer">
-               <span class="notice">{--RALLYE_REFERRAL_POINTS_NOTICE--}</span>
+               <span class="notice">{--ADMIN_RALLYE_REFERRAL_POINTS_NOTICE--}</span>
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index 250cf0701e5f133d41cf0143a6000340ae56eb73..d72b52b0cfdee3fa4705ba60b1cabaf579dc5e64 100644 (file)
@@ -3,12 +3,12 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="6" align="center" class="table_header">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td colspan="6" align="center" class="table_header">
-                       <strong>{--RALLYE_EDIT_DELETE_RALLYES--}:</strong>
+                       <strong>{--ADMIN_LIST_RALLYES_TITLE--}:</strong>
                </td>
        </tr>
        <tr>
                <td align="center" width="10" class="header_column bottom right"><strong>{--ID_SELECT--}</strong></td>
                </td>
        </tr>
        <tr>
                <td align="center" width="10" class="header_column bottom right"><strong>{--ID_SELECT--}</strong></td>
-               <td align="center" class="header_column bottom" colspan="5"><strong>{--RALLYE_LIST_OVERVIEW_TITLE--}:</strong></td>
+               <td align="center" class="header_column bottom" colspan="5"><strong>{--ADMIN_LIST_RALLYE_DATA_OVERVIEW_TITLE--}:</strong></td>
        </tr>
        $content[rows]
        <tr>
        </tr>
        $content[rows]
        <tr>
@@ -23,5 +23,6 @@
 </div>
 
 <div class="notice">
 </div>
 
 <div class="notice">
-       {--RALLYE_EDIT_ONLY_INACTIVE_NOTICE--}
+       {--ADMIN_LIST_RALLYES_NOTICE--}
+       {--ADMIN_RALLYE_EDIT_ONLY_INACTIVE_NOTICE--}
 </div>
 </div>
index eadf0922d2e46e1db8fca76bd7403584bc995922..c578e82faa2e574b59dea1dd1d873b9d97df9819 100644 (file)
@@ -1,42 +1,42 @@
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right" rowspan="5">$content[select]</td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right" rowspan="5">$content[select]</td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
-               <strong>{--RALLYE_TITLE--}:</strong><br />
-               $content[title]
+               <strong>{--ADMIN_RALLYE_TITLE--}:</strong><br />
+               <a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=$content[rallye_id]%}">$content[title]</a>
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
-               <strong>{--RALLYE_DESCR2--}:</strong><br />
+               <strong>{--ADMIN_RALLYE_DESCRIPTION--}:</strong><br />
                {%pipe,fixEmptyContentToDashes=$content[descr]%}
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                {%pipe,fixEmptyContentToDashes=$content[descr]%}
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
-               <strong>{--RALLYE_ADMIN_ID--}:</strong><br />
+               <strong>{--ADMIN_RALLYE_ADMIN_LOGIN--}:</strong><br />
                {%pipe,generateAdminLink=$content[admin_id]%}
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                {%pipe,generateAdminLink=$content[admin_id]%}
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
-               <strong>{--RALLYE_TSTART--}:</strong><br />
+               <strong>{--ADMIN_RALLYE_STARTED--}:</strong><br />
                $content[start_date]
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom">
                $content[start_date]
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom">
-               <strong>{--RALLYE_TEND--}:</strong><br />
+               <strong>{--ADMIN_RALLYE_ENDED--}:</strong><br />
                $content[end_date]
        </td>
 </tr>
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                $content[end_date]
        </td>
 </tr>
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
-               <strong>{--RALLYE_TEMPLATE2--}:</strong><br />
+               <strong>{--ADMIN_RALLYE_TEMPLATE--}:</strong><br />
                {%pipe,fixEmptyContentToDashes=$content[template]%}
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                {%pipe,fixEmptyContentToDashes=$content[template]%}
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
-               <strong>{--RALLYE_AUTO_ADD--}:</strong><br />
-               <a href="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;rallye=$content[id]&amp;auto=$content[auto]%}" title="$content[auto_title]">{%pipe,translateYesNo=$content[auto_add_new_user]%}</a>
+               <strong>{--ADMIN_RALLYE_AUTO_ADD_USERS--}:</strong><br />
+               <a href="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;rallye_id=$content[rallye_id]&amp;auto=$content[auto]%}" title="$content[auto_title]">{%pipe,translateYesNo=$content[auto_add_new_user]%}</a>
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                <strong>{--RALLYE_ACTIVE--}:</strong><br />
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                <strong>{--RALLYE_ACTIVE--}:</strong><br />
-               <a href="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;rallye=$content[id]&amp;activate=$content[active]%}" title="$content[active_title]">{%pipe,translateYesNo=$content[is_active]%}</a>
+               <a href="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;rallye_id=$content[rallye_id]&amp;activate=$content[active]%}" title="$content[active_title]">{%pipe,translateYesNo=$content[is_active]%}</a>
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                <strong>{--RALLYE_NOTIFY--}:</strong><br />
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom right">
                <strong>{--RALLYE_NOTIFY--}:</strong><br />
-               <a ref="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;rallye=$content[id]&amp;notify=$content[notify]%}" title="$content[notify_title]">{%pipe,translateYesNo=$content[send_notify]%}</a>
+               <a ref="{%url=modules.php?module=admin&amp;what=list_rallyes&amp;rallye_id=$content[rallye_id]&amp;notify=$content[notify]%}" title="$content[notify_title]">{%pipe,translateYesNo=$content[send_notify]%}</a>
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom">
                <strong>{--RALLYE_NOTIFIED--}:</strong><br />
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom">
                <strong>{--RALLYE_NOTIFIED--}:</strong><br />
@@ -46,7 +46,7 @@
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right" colspan="3">
                <strong>{--RALLYE_ASSIGNED_PRICES--}:</strong><br />
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right" colspan="3">
                <strong>{--RALLYE_ASSIGNED_PRICES--}:</strong><br />
-               <a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye=$content[id]%}">{%pipe,translateComma=$content[prices_cnt]%}</a>
+               <a href="{%url=modules.php?module=admin&amp;what=config_rallye_prices&amp;rallye_id=$content[rallye_id]%}">{%pipe,translateComma=$content[prices_cnt]%}</a>
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom" colspan="2">
                <strong>{--RALLYE_ASSIGNED_USERS--}:</strong><br />
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom" colspan="2">
                <strong>{--RALLYE_ASSIGNED_USERS--}:</strong><br />
 </tr>
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right" colspan="3">
 </tr>
 <tr>
        <td align="center" class="{%template,ColorSwitch%} bottom right" colspan="3">
-               <strong>{--RALLYE_MIN_USERS_MINI--}:</strong><br />
+               <strong>{--ADMIN_RALLYE_MIN_USERS_MINI--}:</strong><br />
                $content[min_users]
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom" colspan="2">
                $content[min_users]
        </td>
        <td align="center" class="{%template,ColorSwitch%} bottom" colspan="2">
-               <strong>{--RALLYE_MIN_PRICES_MINI--}:</strong><br />
+               <strong>{--ADMIN_RALLYE_MIN_PRICES_MINI--}:</strong><br />
                $content[min_prices]
        </td>
 </tr>
                $content[min_prices]
        </td>
 </tr>
index d2daccb67a7451133e60ff300f52f1fbc7a7a8f1..adb797fdc5fc02ad735688651dac7df48edd3316 100644 (file)
@@ -1,13 +1,14 @@
 <div>
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
 <div>
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
 <tr>
-       <td colspan="6" class="table_header" align="center">
+       <td colspan="7" class="table_header" align="center">
                <strong>{%message,ADMIN_LIST_REFERRALS_LEVEL=$content[level]%}</strong><br />
                $content[info]
        </td>
 </tr>
 <tr>
        <td width="5%" align="center" class="header_column bottom right"><strong>{--_USERID--}</strong></td>
                <strong>{%message,ADMIN_LIST_REFERRALS_LEVEL=$content[level]%}</strong><br />
                $content[info]
        </td>
 </tr>
 <tr>
        <td width="5%" align="center" class="header_column bottom right"><strong>{--_USERID--}</strong></td>
+       <td width="5%" align="center" class="header_column bottom right"><strong>{--_REFID--}</strong></td>
        <td width="5%" align="center" class="header_column bottom right"><strong>{--REFS_COUNT--}</strong></td>
        <td width="35%" align="center" class="header_column bottom right"><strong>{--SURNAME_FAMILY--}</strong></td>
        <td width="35%" align="center" class="header_column bottom right"><strong>{--EMAIL--}</strong></td>
        <td width="5%" align="center" class="header_column bottom right"><strong>{--REFS_COUNT--}</strong></td>
        <td width="35%" align="center" class="header_column bottom right"><strong>{--SURNAME_FAMILY--}</strong></td>
        <td width="35%" align="center" class="header_column bottom right"><strong>{--EMAIL--}</strong></td>
@@ -16,7 +17,7 @@
 </tr>
 $content[rows]
 <tr>
 </tr>
 $content[rows]
 <tr>
-       <td colspan="6" class="table_footer">
+       <td colspan="7" class="table_footer">
                <!-- @TODO Nothing to say here? //-->
                &nbsp;
        </td>
                <!-- @TODO Nothing to say here? //-->
                &nbsp;
        </td>
index a6f55889b39a633eb765a619e2f01c1d56362ffa..3519b26a8c1bed2cee74a6122f9d6fb90176db96 100644 (file)
@@ -1,5 +1,5 @@
 <tr>
 <tr>
-       <td colspan="6" class="table_header bottom" height="20">
+       <td colspan="7" class="table_header bottom" height="20">
                <strong>{%message,ADMIN_LIST_USER_NO_REFERRALS=$content[userid]%}</strong>
        </td>
 </tr>
                <strong>{%message,ADMIN_LIST_USER_NO_REFERRALS=$content[userid]%}</strong>
        </td>
 </tr>
index da67d45d53c8ba8343021d2a19ca3fb19ee634be..d19c89f9a8ebd5e49fa4da5e700b94e5faa0e1d6 100644 (file)
@@ -1,5 +1,6 @@
 <tr>
 <tr>
-       <td align="right" class="bottom right {%template,ColorSwitch%}" valign="top">{%pipe,generateUserProfileLink=$content[userid]%}</td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">{%pipe,generateUserProfileLink=$content[userid]%}</td>
+       <td align="center" class="bottom right {%template,ColorSwitch%}">{%user,refid,generateUserProfileLink=$content[userid]%}</td>
        <td align="center" class="bottom right {%template,ColorSwitch%}">$content[refs_link]</td>
        <td class="bottom right {%template,ColorSwitch%}">{%user,gender,translateGender=$content[userid]%} {%user,surname=$content[userid]%} {%user,family=$content[userid]%}</td>
        <td class="bottom right {%template,ColorSwitch%}">$content[email]</td>
        <td align="center" class="bottom right {%template,ColorSwitch%}">$content[refs_link]</td>
        <td class="bottom right {%template,ColorSwitch%}">{%user,gender,translateGender=$content[userid]%} {%user,surname=$content[userid]%} {%user,family=$content[userid]%}</td>
        <td class="bottom right {%template,ColorSwitch%}">$content[email]</td>
index 5c664bd9977a2fd971ef380eb54b2ba85a400e29..45f46732127e43ddf18b2cd20131b6f8f9d53942 100644 (file)
@@ -1,39 +1,51 @@
 <tr>
 <tr>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="100"><strong>{--ID_SELECT--}</strong></td>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="240" colspan="2"><strong>{--SURNAME_FAMILY--}:</strong></td>
-  <td align="center" class="{%template,ColorSwitch%} bottom" width="160"><strong>{--SPONSOR_POINTS_LEFT--}:</strong></td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="100">
+               <strong>{--ID_SELECT--}</strong>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="240" colspan="2">
+               <strong>{--SURNAME_FAMILY--}:</strong>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom" width="160">
+               <strong>{--SPONSOR_POINTS_LEFT--}:</strong>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="100">
-    [<strong><a href="{%url=modules.php?module=admin&amp;what=list_sponsor&amp;id=$content[id]%}" title="{--ADMIN_SPONSOR_DETAILS_LINK_TITLE--}">$content[id]</a></strong>]
-  </td>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="240" colspan="2">
-    <a href="$content[email]">{%pipe,translateGender=$content[gender]%} $content[surname] $content[family]</a>
-  </td>
-  <td align="center" class="{%template,ColorSwitch%} bottom" width="160">
-    <a href="{%url=modules.php?module=admin&amp;what=edit_sponsor&amp;id=$content[id]&amp;do=add_points%}"
-     title="{--ADMIN_SPONSOR_ADD_POINTS_LINK_TITLE--}">{%pipe,translateComma=$content[points]%}</a> {?POINTS?}
-  </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="100">
+               [<strong><a href="{%url=modules.php?module=admin&amp;what=list_sponsor&amp;id=$content[id]%}" title="{--ADMIN_SPONSOR_DETAILS_LINK_TITLE--}">$content[id]</a></strong>]
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="240" colspan="2">
+               <a href="$content[email]">{%pipe,translateGender=$content[gender]%} $content[surname] $content[family]</a>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom" width="160">
+               <a href="{%url=modules.php?module=admin&amp;what=edit_sponsor&amp;id=$content[id]&amp;do=add_points%}"
+                title="{--ADMIN_SPONSOR_ADD_POINTS_LINK_TITLE--}">{%pipe,translateComma=$content[points]%}</a> {?POINTS?}
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="100">
-    <strong>{--SPONSOR_STATUS--}</strong>:
-  </td>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="160"><strong>{--SPONSOR_CREATED--}:</strong></td>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="160"><strong>{--LAST_ONLINE_SHORT--}:</strong></td>
-  <td align="center" class="{%template,ColorSwitch%} bottom" width="160"><strong>{--REMOTE_IP--}:</strong></td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="100">
+               <strong>{--SPONSOR_STATUS--}:</strong>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="160">
+               <strong>{--SPONSOR_CREATED--}:</strong>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="160">
+               <strong>{--LAST_ONLINE_SHORT--}:</strong>
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom" width="160">
+               <strong>{--REMOTE_IP--}:</strong>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="100">
-    [<strong><a href="{%url=modules.php?module=admin&amp;what=lock_sponsor&amp;id=$content[id]%}">{%pipe,translateSponsorStatus=$content[status]%}</a></strong>]
-  </td>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="120">
-    $content[sponsor_created]
-  </td>
-  <td align="center" class="{%template,ColorSwitch%} bottom right" width="120">
-    $content[last_online]
-  </td>
-  <td align="center" class="{%template,ColorSwitch%} bottom" width="160">
-    $content[remote_addr]
-  </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="100">
+               [<strong><a href="{%url=modules.php?module=admin&amp;what=lock_sponsor&amp;id=$content[id]%}">{%pipe,translateSponsorStatus=$content[status]%}</a></strong>]
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="120">
+               $content[sponsor_created]
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom right" width="120">
+               $content[last_online]
+       </td>
+       <td align="center" class="{%template,ColorSwitch%} bottom" width="160">
+               $content[remote_addr]
+       </td>
 </tr>
 </tr>
index c3873bc152555294e902fdd658e73d765808c0b2..b7eeb9fb21ae30e07af4480e1817eee84692f190 100644 (file)
@@ -24,7 +24,7 @@ $content
 <tr>
        <td colspan="4" class="table_footer" align="center">
                <input type="reset" class="form_reset" value="{--ADMIN_UNSELECT_ALL--}" />
 <tr>
        <td colspan="4" class="table_footer" align="center">
                <input type="reset" class="form_reset" value="{--ADMIN_UNSELECT_ALL--}" />
-               <input type="submit" class="form_submit" name="edit" value="{--ADMIN_SURFBAR_EDIT_ACTIONS--}" />
+               <input type="submit" class="form_submit" name="edit" value="{--ADMIN_EDIT_SURFBAR_ACTIONS_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index d08d4d1c1165c2cebda58dd4f4feba3bcc08e0c7..05cc5bf2e35f2e0385204335cccc57475804424b 100644 (file)
@@ -1,6 +1,6 @@
 <tr>
        <td align="center" class="bottom right {%template,ColorSwitch%}">
 <tr>
        <td align="center" class="bottom right {%template,ColorSwitch%}">
-               <input type="checkbox" class="form_field" title="{--ID_SELECT--} $content[actions_id]" name="id[$content[actions_id]]" value="1" />
+               <input type="checkbox" class="form_field" title="{--ID_SELECT--} $content[actions_id]" name="actions_id[$content[actions_id]]" value="1" />
        </td>
        <td align="center" class="bottom right {%template,ColorSwitch%}">
                {%pipe,translateSurfbarUrlStatus=$content[actions_status]%}
        </td>
        <td align="center" class="bottom right {%template,ColorSwitch%}">
                {%pipe,translateSurfbarUrlStatus=$content[actions_status]%}
index 1b80e70c8773b37d68a3107fe809de5320610307..13ed58d13a23c00c50d5f23702bdcefcea4f164a 100644 (file)
@@ -20,10 +20,10 @@ $content
 <tr>
        <td class="table_footer" colspan="8">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
 <tr>
        <td class="table_footer" colspan="8">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
-               <input type="submit" class="form_submit" name="edit" value="{--ADMIN_SURFBAR_EDIT_URL--}" />
-               <input type="submit" class="form_delete" name="lock" value="{--ADMIN_SURFBAR_UNLOCK_URL--}" />
-               <input type="submit" class="form_submit" name="undelete" value="{--ADMIN_SURFBAR_UNDELETE_URL--}" />
-               <input type="submit" class="form_delete" name="delete" value="{--ADMIN_SURFBAR_DELETE_URL--}" />
+               <input type="submit" class="form_submit" name="edit" value="{--ADMIN_SURFBAR_EDIT_URL_SUBMIT--}" />
+               <input type="submit" class="form_delete" name="lock" value="{--ADMIN_SURFBAR_UNLOCK_URL_SUBMIT--}" />
+               <input type="submit" class="form_submit" name="undelete" value="{--ADMIN_SURFBAR_UNDELETE_URL_SUBMIT--}" />
+               <input type="submit" class="form_delete" name="delete" value="{--ADMIN_SURFBAR_DELETE_URL_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index b354570efb08a92f750e83fa33e7b30944bafac4..dc5b684d07884fe01ae9c22213879227ad093e75 100644 (file)
                        <strong>{--TRANSFER_STAMP--}</strong>
                </td>
                <td width="120" align="center" class="header_column bottom right">
                        <strong>{--TRANSFER_STAMP--}</strong>
                </td>
                <td width="120" align="center" class="header_column bottom right">
-                       <strong>{--TRANSFER_FROM_USERID--}</strong>
+                       <strong>{--ADMIN_TRANSFER_FROM_USERID--}</strong>
                </td>
                <td width="120" align="center" class="header_column bottom right">
                </td>
                <td width="120" align="center" class="header_column bottom right">
-                       <strong>{--TRANSFER_TO_USERID--}</strong>
+                       <strong>{--ADMIN_TRANSFER_TO_USERID--}</strong>
                </td>
                <td width="230" align="center" class="header_column bottom right">
                        <strong>{--TRANSFER_POINTS_REASON--}</strong>
                </td>
                <td width="230" align="center" class="header_column bottom right">
                        <strong>{--TRANSFER_POINTS_REASON--}</strong>
index e3e345a3613c837d512d13b780a1e975750ce3fa..a5919f3c198b19a9418dba516cbd4d69b1e94143 100644 (file)
@@ -5,7 +5,7 @@
                        <strong>{%template,AdminListUserTitle%}:</strong>
                </td>
        </tr>
                        <strong>{%template,AdminListUserTitle%}:</strong>
                </td>
        </tr>
-       {%pipe,getRequestElement,alpha=sortby%}
+       {%pipe,getRequestElement,addAlphabeticalSorting=sortby%}
        $content[sort_links]
        {%pipe,addPageNavigation=$content[num_pages]%}
        $content[rows]
        $content[sort_links]
        {%pipe,addPageNavigation=$content[num_pages]%}
        $content[rows]
index 0a9b83689c0004e294ab0b495ea81046c1cfbb0c..1eedfe6c2572698baba569482ca41a7ffe94a480 100644 (file)
@@ -17,7 +17,7 @@ $content
 <tr>
        <td class="table_footer" colspan="5">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
 <tr>
        <td class="table_footer" colspan="5">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
-               <input type="submit" name="do_lock" class="admin_lock" value="{--ADMIN_SURFBAR_LOCK_URL_NOW--}" />
+               <input type="submit" name="do_lock" class="admin_lock" value="{--ADMIN_SURFBAR_LOCK_URL_NOW_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index f34d9b11b12e0f4b230984e4bd4487dd8a473928..68b515f593e77e93e0efe821834fb101cacadee7 100644 (file)
@@ -53,7 +53,7 @@
                <td align="center" colspan="2" class="table_footer">
                        <input type="hidden" name="timeout" value="0" />
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
                <td align="center" colspan="2" class="table_footer">
                        <input type="hidden" name="timeout" value="0" />
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--ADMIN_LOGIN_SUBMIT--}" />
+                       <input type="submit" class="form_submit" name="login" value="{--ADMIN_LOGIN_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index 6c229665cff41792d7fdc3d96eac2d7cd8d359f5..f9a969e9009971c81dec3961e7b2a5a8d4c5b0eb 100644 (file)
@@ -7,7 +7,7 @@
 </tr>
 </table>
 </div>
 </tr>
 </table>
 </div>
-<script language="JavaScript">
+<script type="text/javascript">
 <!--
 initMenuFoldStates();
 //-->
 <!--
 initMenuFoldStates();
 //-->
index acd2b50505918d0ccdcb6cca8a390bb825b37c7e..33a6966b9b3b417a5a8fafce16ac23833ab659d7 100644 (file)
@@ -4,7 +4,7 @@
                        <li style="white-space: normal">{--ADMIN_TASK_SUBJECT--}: <strong>$content[subject]</strong></li>
                        $content[add]
                        <li style="white-space: normal">{--ADMIN_TASK_TEXT--}: $content[text]</li>
                        <li style="white-space: normal">{--ADMIN_TASK_SUBJECT--}: <strong>$content[subject]</strong></li>
                        $content[add]
                        <li style="white-space: normal">{--ADMIN_TASK_TEXT--}: $content[text]</li>
-                       <li style="white-space: normal"><div style="text-align: right"><a href="#ext_$content[extension]">{--GOTO_TOP--}</a></div></li>
+                       <li style="white-space: normal"><div style="text-align: right"><a href="#ext_$content[ext_name]">{--GOTO_TOP--}</a></div></li>
                        <li style="white-space: normal">{--ADMIN_TASK_CREATED--}: <strong>$content[task_created]</strong></li>
                </ul>
        </td>
                        <li style="white-space: normal">{--ADMIN_TASK_CREATED--}: <strong>$content[task_created]</strong></li>
                </ul>
        </td>
index bc723f03015d2adb4a76f387a1a26ae5f4ba0770..f2c8802cc818130bd32294b258b9785daa210333 100644 (file)
                                </td>
                        </tr>
                        <tr>
                                </td>
                        </tr>
                        <tr>
-                               <td align="right" class="admin_task_left switch_sw1">{--ADMIN_TASK_RANDOM_REFID--}:</td>
-                               <td align="center" class="admin_task_right switch_sw1">
+                               <td align="right" class="admin_task_left switch_sw1 bottom">{--ADMIN_TASK_RANDOM_REFID--}:</td>
+                               <td align="center" class="admin_task_right switch_sw1 bottom">
                                        <strong>$content[random_refid]</strong>
                                </td>
                        </tr>
                                        <strong>$content[random_refid]</strong>
                                </td>
                        </tr>
+                       <tr>
+                               <td align="right" class="admin_task_left switch_sw2">{--ADMIN_TASK_TESTERS--}:</td>
+                               <td align="center" class="admin_task_right switch_sw2">
+                                       <strong>$content[testers]</strong>
+                               </td>
+                       </tr>
                </table>
                </td>
                <td align="center" valign="top">
                </table>
                </td>
                <td align="center" valign="top">
diff --git a/templates/de/html/admin/admin_receive_table.tpl b/templates/de/html/admin/admin_receive_table.tpl
new file mode 100644 (file)
index 0000000..2a15a3b
--- /dev/null
@@ -0,0 +1,9 @@
+<div class="table_row">
+       <label for="max_mails">{--ADMIN_MAX_MAILS_PER_DAY--}</label>
+
+       <div align="left">
+       <select name="max_mails" size="1" class="form_select">
+               $content
+       </select>
+       </div>
+</div>
index 0d6ff4bf9a735d6b4458d3cbe8d397c18b7899bd..453bb5428d51d1c50ab6b2f9a99a18a4f5ffbae4 100644 (file)
@@ -1,5 +1,5 @@
 <div class="{%template,ColorSwitch%} bottom">
 <div class="{%template,ColorSwitch%} bottom">
-       <div>
+       <div class="bad">
                Das Sprachpaket
                <span class="data">{%pipe,basename=$content[inc]%}</span>
                (Sprache: <span class="data">$content[lang]</span>)
                Das Sprachpaket
                <span class="data">{%pipe,basename=$content[inc]%}</span>
                (Sprache: <span class="data">$content[lang]</span>)
index 30069d7553cd79a0378d5c0eb9f83b143ebe8d50..334a8241348e394247733520a87e720522a1374e 100644 (file)
@@ -4,26 +4,32 @@
        <div class="table_header bottom">
                <strong>{%message,ADMIN_SHOW_CONFIG_NETWORK_HANDLER_TYPE_TITLE=$content[network_type_handler]%}</strong>
        </div>
        <div class="table_header bottom">
                <strong>{%message,ADMIN_SHOW_CONFIG_NETWORK_HANDLER_TYPE_TITLE=$content[network_type_handler]%}</strong>
        </div>
+
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MAX_RELOAD_TIME--} ({--TIME_UNIT--})<br />
                <strong>{%pipe,createFancyTime=$content[network_max_reload_time]%} ({%pipe,translateTimeUnit=$content[network_type_reload_time_unit]%})</strong>
        </div>
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MAX_RELOAD_TIME--} ({--TIME_UNIT--})<br />
                <strong>{%pipe,createFancyTime=$content[network_max_reload_time]%} ({%pipe,translateTimeUnit=$content[network_type_reload_time_unit]%})</strong>
        </div>
+
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_WAITING_TIME--}<br />
                <strong>{%pipe,fixEmptyContentToDashes=$content[network_min_waiting_time]%}</strong>
        </div>
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_WAITING_TIME--}<br />
                <strong>{%pipe,fixEmptyContentToDashes=$content[network_min_waiting_time]%}</strong>
        </div>
+
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_REMAIN_CLICKS--}<br />
                <strong>{%pipe,translateComma=$content[network_min_remain_clicks]%}</strong>
        </div>
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_REMAIN_CLICKS--}<br />
                <strong>{%pipe,translateComma=$content[network_min_remain_clicks]%}</strong>
        </div>
+
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_PAYMENT--}<br />
                <strong>{%pipe,translateComma=$content[network_min_payment]%}</strong>
        </div>
        <div>
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_MIN_PAYMENT--}<br />
                <strong>{%pipe,translateComma=$content[network_min_payment]%}</strong>
        </div>
+
        <div class="bottom">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALLOW_EROTIC--}<br />
                <strong>{%pipe,fixEmptyContentToDashes=$content[network_allow_erotic]%}</strong>
        </div>
        <div class="bottom">
                {--ADMIN_CONFIG_NETWORK_HANDLER_TYPE_ALLOW_EROTIC--}<br />
                <strong>{%pipe,fixEmptyContentToDashes=$content[network_allow_erotic]%}</strong>
        </div>
+
        <div class="table_footer">
                <input type="hidden" name="module" value="admin" />
                <input type="hidden" name="what" value="config_network_types" />
        <div class="table_footer">
                <input type="hidden" name="module" value="admin" />
                <input type="hidden" name="what" value="config_network_types" />
@@ -31,5 +37,6 @@
                <input type="hidden" name="network_type_id" value="$content[network_type_id]" />
                <input type="submit" class="form_submit" value="{--ADMIN_EDIT_CONFIG_NETWORK_HANDLER_TYPE_SUBMIT--}" />
        </div>
                <input type="hidden" name="network_type_id" value="$content[network_type_id]" />
                <input type="submit" class="form_submit" value="{--ADMIN_EDIT_CONFIG_NETWORK_HANDLER_TYPE_SUBMIT--}" />
        </div>
+</div>
 </form>
 </div>
 </form>
 </div>
index b46c682a07ce8c049195c728e6c34a5c0c43c7a4..173ac2ca3c39bb5b8ce3690b1049be5b20573ce0 100644 (file)
@@ -16,7 +16,7 @@ $content
 <tr>
        <td class="table_footer" colspan="4">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
 <tr>
        <td class="table_footer" colspan="4">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
-               <input type="submit" name="do_undelete" class="admin_lock" value="{--ADMIN_SURFBAR_UNDELETE_URL_NOW--}" />
+               <input type="submit" name="do_undelete" class="admin_lock" value="{--ADMIN_SURFBAR_UNDELETE_URL_NOW_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index f4a88f5d845ad3b7e642ab63c353115a4347492c..9c3a84d52089f8660094466f529a9b72756409d4 100644 (file)
        </tr>
        $content[rows]
        <tr>
        </tr>
        $content[rows]
        <tr>
-               <td class="table_footer top" colspan="8" align="center" height="35">
+               <td class="table_footer bottom top" colspan="8" align="center" height="35">
                        {--ADMIN_ENTER_REDIRECT_URL--}:
                        <input type="text" class="form_field" name="redirect" size="30" maxlength="255" value="{?reject_url?}" />
                </td>
        </tr>
        <tr>
                        {--ADMIN_ENTER_REDIRECT_URL--}:
                        <input type="text" class="form_field" name="redirect" size="30" maxlength="255" value="{?reject_url?}" />
                </td>
        </tr>
        <tr>
-               <td class="table_footer top" colspan="8" align="center" height="35">
+               <td class="table_footer" colspan="8" align="center" height="35">
                        <input type="reset" class="form_reset" value="{--RESET_SELECT--}" />
                        <input type="submit" class="form_submit" name="accept" value="{--ADMIN_EMAIL_ACCEPT--}" />
                        <input type="submit" class="form_delete" name="reject" value="{--ADMIN_EMAIL_REJECT--}" />
                        <input type="reset" class="form_reset" value="{--RESET_SELECT--}" />
                        <input type="submit" class="form_submit" name="accept" value="{--ADMIN_EMAIL_ACCEPT--}" />
                        <input type="submit" class="form_delete" name="reject" value="{--ADMIN_EMAIL_REJECT--}" />
index 7f73eef3ba8432ff58b2d3d4e3bb919ac3c46e63..442f4de3d0cdb816b676d831c2d43f0aa18fed8f 100644 (file)
@@ -17,8 +17,8 @@ $content
 <tr>
        <td class="table_footer" colspan="5">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
 <tr>
        <td class="table_footer" colspan="5">
                <input type="reset" class="form_reset" value="{--UNDO_SELECTIONS--}" />
-               <input type="submit" name="reject" class="form_submit" value="{--ADMIN_SURFBAR_REJECT_URL--}" />
-               <input type="submit" name="unlock" class="form_submit" value="{--ADMIN_SURFBAR_CONFIRM_URL--}" />
+               <input type="submit" name="reject" class="form_delete" value="{--ADMIN_SURFBAR_REJECT_URL_SUBMIT--}" />
+               <input type="submit" name="unlock" class="form_submit" value="{--ADMIN_SURFBAR_CONFIRM_URL_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index 64b5dbf3f89a9ccd40c8235b6597c372e7743eb6..5bbbb29eb81fb20bb3440b571eab0081801ed3b2 100644 (file)
@@ -55,7 +55,7 @@
                        <strong>{%user,receive_mails,translateComma=$content[userid]%}</strong>
                </td>
                <td align="center" class="bottom">
                        <strong>{%user,receive_mails,translateComma=$content[userid]%}</strong>
                </td>
                <td align="center" class="bottom">
-                       {--MAX_PER_DAY--}:<br />
+                       {--MAX_MAILS_PER_DAY--}:<br />
                        <strong>{%user,max_mails,translateComma=$content[userid]%}</strong>
                </td>
        </tr>
                        <strong>{%user,max_mails,translateComma=$content[userid]%}</strong>
                </td>
        </tr>
@@ -83,8 +83,8 @@
                        <strong>$content[last_online]</strong>
                </td>
                <td align="center" class="bottom right">
                        <strong>$content[last_online]</strong>
                </td>
                <td align="center" class="bottom right">
-                       {--ADMIN_LAST_MODULE--}:<br />
-                       <strong>{%user,last_module,fixEmptyContentToDashes=$content[userid]%}</strong>
+                       {--ADMIN_LAST_WHAT--}:<br />
+                       <strong>{%user,last_what,fixEmptyContentToDashes=$content[userid]%}</strong>
                </td>
                <td align="center" class="bottom right">
                        {--HAS_JOINED--}:<br />
                </td>
                <td align="center" class="bottom right">
                        {--HAS_JOINED--}:<br />
diff --git a/templates/de/html/ajax_test_passed.tpl b/templates/de/html/ajax_test_passed.tpl
new file mode 100644 (file)
index 0000000..1fd144f
--- /dev/null
@@ -0,0 +1,23 @@
+<div class="para">
+       Sollten Sie diesen Text zu sehen bekommen, unterst&uuml;tzt Ihr Browser
+       &quot;interaktive&quot; Webseiten (AJAX = <strong>A</strong>synchronous
+       <strong>J</strong>avascript <strong>A</strong>nd <strong>X</strong>ml).
+</div>
+
+<div class="para">
+       AJAX ist ein Konzept, wie man Webseiten aufzubauen hat. {?TITLE?} verwendet
+       das AJAX-Framework <a href="http://jquery.com" rel="external"
+        target="_blank">jQuery</a>. Dies sollte auf den meisten, modernen Browsern
+       (wie es z.B. der Firefox ist) funktionieren.
+</div>
+
+<div class="para">
+       <strong>F&uuml;r die Interssierten:</strong>
+</div>
+
+<div class="para">
+       Dieses Mini-Fenster ist in Wirklichkeit ein Konstrukt aus mehreren div-Tags,
+       das standardm&auml;&szlig;ig ausgeblendet ist (<em>display:none</em>) und dann
+       von jquery eingeblendet wird. Sie k&ouml;nnen dies separat schlie&szlig;en,
+       dazu brauchen Sie nicht das ganze Browserfenster schlie&szlig;en.
+</div>
index 2328f50cd95d044d170ec6def37c650d03b16314..4c277c75d9360f2e4977b66ec74ab76a6c0a4e1b 100644 (file)
@@ -1,12 +1,8 @@
-<div align="center" style="margin-top:10px;margin-bottom:10px">
-
-<div style="width:550px" class="table dashed">
-       <div class="table_header bottom">
+<div class="bug_table dashed">
+       <div class="bug_table_header bottom">
                <strong>{--APP_DIE_TITLE--}</strong>
        </div>
        <div align="left" style="margin:5px">
                $content
        </div>
 </div>
                <strong>{--APP_DIE_TITLE--}</strong>
        </div>
        <div align="left" style="margin:5px">
                $content
        </div>
 </div>
-
-</div>
index 5e7e80f32d9ed9462565ce8f27e24fa27e7c3d8a..276b7e8cb26d4bae6bf6667b756ff3b83dd1c799 100644 (file)
@@ -49,7 +49,7 @@
                        <tr>
                                <td colspan="2" align="center" class="table_footer">
                                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
                        <tr>
                                <td colspan="2" align="center" class="table_footer">
                                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                                       <input type="submit" class="form_submit" name="ok" value="{--DOUBLER_NOW--}" />
+                                       <input type="submit" class="form_submit" name="ok" value="{--DOUBLER_NOW_SUBMIT--}" />
                                </td>
                        </tr>
                </table>
                                </td>
                        </tr>
                </table>
index 880a51c33411be01e3b0a05be8cd3017065fc222..4b5d86ed13fd33ad8c16ae445658c732f5cac5a0 100644 (file)
@@ -1,7 +1,7 @@
 <div class="para">
        Bezahlungen mit <a href="http://www.bitcoin.org/" rel="external"
         target="_blank" title="Virtual P2P Currency Bitcoin">Bitcoins</a> sind mit
 <div class="para">
        Bezahlungen mit <a href="http://www.bitcoin.org/" rel="external"
         target="_blank" title="Virtual P2P Currency Bitcoin">Bitcoins</a> sind mit
-       dieser Erweiterung m&ouml;glich.  Bitcoin ist eine virtuelle
+       dieser Erweiterung m&ouml;glich. Bitcoin ist eine virtuelle
        Internetw&auml;hrung mit der Ihre Sponsoren Werbung bei Ihrem
        {OPEN_CONFIG}mt_word{CLOSE_CONFIG} bezahlen k&ouml;nnen. &Uuml;blicherweise
        wird solch eine virtuelle W&auml;hrung (wie z.B. FunCoins, Wernis, Klammlose
        Internetw&auml;hrung mit der Ihre Sponsoren Werbung bei Ihrem
        {OPEN_CONFIG}mt_word{CLOSE_CONFIG} bezahlen k&ouml;nnen. &Uuml;blicherweise
        wird solch eine virtuelle W&auml;hrung (wie z.B. FunCoins, Wernis, Klammlose
index 2c79fa82145a07a91a6fdf92891a1d1ba6df62f4..af01e539cc721459906c644ba53b399068b9b724 100644 (file)
@@ -1,17 +1,17 @@
 <div class="para">
 <div class="para">
-Diese Erweiterung lagert oft aus der Datenbank geladenen Daten in
-externe Dateien aus. Damit konnte ich bei mir im Intranet die Anfragen
-um <strong>50 bis 66%</strong> reduzieren, was f&uuml;r Ihren Server
-bedeutet, dass er weniger belastet wird.
+       Diese Erweiterung lagert oft aus der Datenbank geladenen Daten in
+       externe Dateien aus. Damit konnte ich bei mir im Intranet die Anfragen
+       um <strong>50 bis 66%</strong> reduzieren, was f&uuml;r Ihren Server
+       bedeutet, dass er weniger belastet wird.
 </div>
 
 <div class="para">
 </div>
 
 <div class="para">
-<strong>Bitte l&ouml;schen Sie immer die Cache-Dateien aus dem
-Verzeichnis <u>/{OPEN_CONFIG}CACHE_PATH{CLOSE_CONFIG}/</u> vor Update /
-Neuinstallation der Erweiterung!</strong>
+       <strong>Bitte l&ouml;schen Sie immer die Cache-Dateien aus dem
+       Verzeichnis <u>/{OPEN_CONFIG}CACHE_PATH{CLOSE_CONFIG}/</u> vor Update /
+       Neuinstallation der Erweiterung!</strong>
 </div>
 
 <div class="para">
 </div>
 
 <div class="para">
-Bitte lesen Sie sich vor der Installation unbedingt die Anleitung
-<strong>DOCS/de/cache/README.txt</strong> durch!
+       Bitte lesen Sie sich vor der Installation unbedingt die Anleitung
+       <strong>DOCS/de/cache/README.txt</strong> durch!
 </div>
 </div>
index c81453e14c6e3411b08c757c1c06088a4a56de44..34c084a0451231932149692c91367475637cacc2 100644 (file)
@@ -8,7 +8,7 @@
 </div>
 
 <div class="para">
 </div>
 
 <div class="para">
-       Das verdeckte Feld hat im Gegensatz zum CPR-Plugin (<u>C/<u>omments
+       Das verdeckte Feld hat im Gegensatz zum CPR-Plugin (<u>C</u>omments
        <u>P</u>ost <u>R</u>ewriter) einen Zufallsanteil, um dem Spambot das
        Erkennen des Feldes durch Mustererkennung zu erschweren. Da f&uuml;r das
        sich anmeldende Mitglied das verdeckte Feld nicht sichtbar ist (dies ist
        <u>P</u>ost <u>R</u>ewriter) einen Zufallsanteil, um dem Spambot das
        Erkennen des Feldes durch Mustererkennung zu erschweren. Da f&uuml;r das
        sich anmeldende Mitglied das verdeckte Feld nicht sichtbar ist (dies ist
diff --git a/templates/de/html/ext/ext_currency.tpl b/templates/de/html/ext/ext_currency.tpl
new file mode 100644 (file)
index 0000000..128e37e
--- /dev/null
@@ -0,0 +1,24 @@
+<div class="para">
+       Diese Erweiterung ist &auml;hnlich wie <strong>ext-network</strong> und
+       bietet eine allgemeine Anbindung an die APIs verschiedener virtueller
+       W&auml;hrungen, wie z.B. Wernis, FunCoins, eBesucher und vieles mehr. Diese
+       Erweiterung l&ouml;st zuk&uuml;nftig die bereits bestehende Erweiterungen
+       <strong>ext-funcoins</strong>, <strong>ext-primera</strong> und
+       <strong>ext-wernis</strong> ab.
+</div>
+
+<div class="para">
+       Es kann dann pro W&auml;hrung eingestellt werden, ob diese auszahlungs-,
+       einzahlungsf&auml;hig oder beides ist und dies f&uuml;r Mitglieder und
+       Sponsoren getrennt. Es kann dann auch ein Wechselkurs eingestellt werden
+       oder diesen von einer weiteren API (z.B. virtuelle B&ouml;rsen von diversen
+       virtuellen W&auml;hrungen) abgefragt werden (falls diese solches anbietet).
+</div>
+
+<div class="para">
+       Die einzelnen Transaktionen sind f&uuml;r Mitglieder, Sponsoren und
+       Administratoren f&uuml;r eine getrennt einstellbare Speicherdauer und pro
+       W&auml;hrung unterschiedlich im jeweiligen Loginbereich einsehbar (der
+       Administrator kann sich selber somit z.B. l&auml;ngere Speicherzeiten
+       einstellen als f&uuml;r Mitglieder).
+</div>
index 03376ee64b4fb8990d3ff7a0494efd7e31ea6f2a..61103a266f4ea7ca82692708ca3b370549dd9d14 100644 (file)
@@ -3,7 +3,7 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" colspan="2" class="table_header bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" colspan="2" class="table_header bottom">
-                       <div class="big">{--GUEST_REQUEST_CONFIRM_LINK_TITLE--}</div>
+                       <strong>{--GUEST_REQUEST_CONFIRM_LINK_TITLE--}</strong>
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
index 1413a103a398386d79c5d46400868d88de9cd451..76639a71f8e45113be08f4eb2f9df93f380ac6e3 100644 (file)
@@ -1,8 +1,8 @@
-  </td>
-  <td valign="top"><div class="skyscraper">
-    <!-- 120x600 may fit here //-->
-  </div></td>
+       </td>
+       <td valign="top"><div class="skyscraper">
+               <!-- 120x600 may fit here //-->
+       </div></td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" valign="top" class="guest_advert">
+       <td align="center" valign="top" class="guest_advert">
 <!-- Don't add your code here! //-->
 <!-- Don't add your code here! //-->
index b012436861bbdfba3bd276b9833ed4205a581f1c..49618dc9b89adcbe33d00946c2d759865b25712c 100644 (file)
@@ -7,13 +7,13 @@
 </tr>
 $content[rows]
 <tr>
 </tr>
 $content[rows]
 <tr>
-       <td colspan="3" class="table_footer">
-       <ul>
-               <li><div class="notice">Es werden nur aktive User gewertet.</div></li>
-               <li><div class="notice">{%pipe,determineReferralRallyeMinimumUsers=$content[min_users]%}</div></li>
-               <li><div class="notice">{%pipe,determineReferralRallyeMinimumPrices=$content[min_prices]%}</div></li>
-               <li><div class="notice">Der Rechtsweg ist ausgeschlossen.</div></li>
-       </ul>
+       <td colspan="3" class="table_footer" align="left">
+               <div align="left"><ul>
+                       <li><div class="notice">Es werden nur aktive User gewertet.</div></li>
+                       <li><div class="notice">{%pipe,determineReferralRallyeMinimumUsers=$content[min_users]%}</div></li>
+                       <li><div class="notice">{%pipe,determineReferralRallyeMinimumPrices=$content[min_prices]%}</div></li>
+                       <li><div class="notice">Der Rechtsweg ist ausgeschlossen.</div></li>
+               </ul></div>
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index d88f39fb4d10753fada8a0789dee60641a70b6ab..a355702ae55c8d80c56052d6bcc6b5253a3d83db 100644 (file)
@@ -1,6 +1,5 @@
 <tr>
 <tr>
-       <td class="{%template,ColorSwitch%} bottom">$content[idx].</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start].{%pipe,fixEmptyContentToDashes=$content[userid]%}.$content[end]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start].{%pipe,fixEmptyContentToDashes=$content[ref]%}.$content[end]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start].{%pipe,fixEmptyContentToDashes=$content[infos]%}.$content[end]</td>
+       <td align="center" class="{%template,ColorSwitch%} bottom"><strong>$content[idx]</strong></td>
+       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start]{%pipe,fixEmptyContentToDashes=$content[userid]%}$content[end]</td>
+       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start]{%pipe,fixEmptyContentToDashes=$content[ref]%}$content[end]</td>
 </tr>
 </tr>
index c8e02c7bc444852a4e8cbe20f0707bc79a811d94..7f7b91a8a0cbfb74fca6ee40b31e27f20955d697 100644 (file)
@@ -42,7 +42,7 @@
        <tr>
                <td class="table_footer" colspan="4" align="center">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        <tr>
                <td class="table_footer" colspan="4" align="center">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--LOGIN_SUBMIT--}" />
+                       <input type="submit" class="form_submit" name="login" value="{--LOGIN_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
diff --git a/templates/de/html/guest/guest_login_error_message.tpl b/templates/de/html/guest/guest_login_error_message.tpl
new file mode 100644 (file)
index 0000000..959a5ea
--- /dev/null
@@ -0,0 +1,5 @@
+<tr>
+       <td colspan="4" align="center">
+               <span class="bad">{%pipe,getMessageFromErrorCode=$content%}</span>
+       </td>
+</tr>
index ef7b8a3237bfcb20734cb0ae37b6a63b90ca8492..d5de22098c3f7977c533c1d54aea5fa7e7d91bca 100644 (file)
@@ -42,7 +42,7 @@
        <tr>
                <td colspan="4" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        <tr>
                <td colspan="4" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--LOGIN_SUBMIT--}" />
+                       <input type="submit" class="form_submit" name="login" value="{--LOGIN_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index 0c080fdb47f42502733766d24e0a5a6ee7016370..d68cd9f7a19bc512fe3a06677c1d4da09f02fbca 100644 (file)
@@ -2,7 +2,7 @@
 <table border="0" cellspacing="0" cellpadding="0" width="440" class="table dashed">
        <tr>
                <td width="60%" align="right" height="40" class="register_left">
 <table border="0" cellspacing="0" cellpadding="0" width="440" class="table dashed">
        <tr>
                <td width="60%" align="right" height="40" class="register_left">
-                       {--MAX_PER_DAY--}:
+                       {--MAX_MAILS_PER_DAY--}:
                </td>
                <td width="40%" class="register_right">
                        <select name="max_mails" size="1" class="form_select">
                </td>
                <td width="40%" class="register_right">
                        <select name="max_mails" size="1" class="form_select">
index 135d033fb423e0f88fc56060d600b957f2ee65e8..0eb2cb30f98348733dbcc524496493a0beb8360b 100644 (file)
@@ -9,8 +9,8 @@
                <td class="bottom" align="left" style="margin-left: 5px; margin-right: 5px; margin-top: 10px; margin-bottom: 10px">
                <ul>
                        <li>Titel: <strong>$content[title]</strong></li>
                <td class="bottom" align="left" style="margin-left: 5px; margin-right: 5px; margin-top: 10px; margin-bottom: 10px">
                <ul>
                        <li>Titel: <strong>$content[title]</strong></li>
-                       <li>Start: <strong>$content[start]</strong></li>
-                       <li>Ende : <strong>$content[end]</strong></li>
+                       <li>Start: <strong>$content[start_time]</strong></li>
+                       <li>Ende : <strong>$content[end_time]</strong></li>
                </ul>
                </td>
        </tr>
                </ul>
                </td>
        </tr>
index 4adfcde55076ca01ae76aec4f241fecb38acc0db..2fad426482027e77627b17f8d2e53980434fc336 100644 (file)
@@ -1,48 +1,48 @@
 <div align="center">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="550">
 <tr>
 <div align="center">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="550">
 <tr>
-  <td class="table_header bottom">
-    <div class="big">
-      {--GUEST_SPONSOR_WANT_BECOME_HEADER--}
-    </div>
-    <div>
-      {--GUEST_SPONSOR_INFOS_PRICING_HEADER--}
-    </div>
-  </td>
+       <td class="table_header bottom">
+               <div>
+                       <strong>{--GUEST_SPONSOR_WANT_BECOME_HEADER--}</strong>
+               </div>
+               <div>
+                       {--GUEST_SPONSOR_INFOS_PRICING_HEADER--}
+               </div>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" style="padding-top:8px; padding-bottom: 4px">
-    <div>
-      {--GUEST_SPONSOR_PRICING_HEADER--}
-    </div>
-    <div>
-    <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="450">
-$content[paytypes]
-    <tr>
-      <td colspan="2" class="table_footer">
-        {--GUEST_SPONSOR_PRICING_FOOTER--}
-      </td>
-    </tr>
-    </table>
-    </div>
-  </td>
+       <td align="center" style="padding-top:8px; padding-bottom: 4px">
+               <div>
+                       {--GUEST_SPONSOR_PRICING_HEADER--}
+               </div>
+               <div>
+                       <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="450">
+                       $content[paytypes]
+                       <tr>
+                               <td colspan="2" class="table_footer">
+                                       {--GUEST_SPONSOR_PRICING_FOOTER--}
+                               </td>
+                       </tr>
+                       </table>
+               </div>
+       </td>
 </tr>
 <tr>
 </tr>
 <tr>
-  <td align="center" style="padding-top: 4px; padding-bottom: 8px">
-    <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="450">
-    <tr>
-      <td colspan="2" align="center" class="table_header bottom">
-        <strong>{--GUEST_SPONSOR_ACTIONS_HEADER--}</strong>
-      </td>
-    </tr>
-$content[actions]
-    <tr>
-      <td colspan="2" class="table_footer">
-        {--GUEST_SPONSOR_ACTIONS_FOOTER--}
-      </td>
-    </tr>
-    </table>
-  </td>
+       <td align="center" style="padding-top: 4px; padding-bottom: 8px">
+               <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="450">
+               <tr>
+                       <td colspan="2" align="center" class="table_header bottom">
+                               <strong>{--GUEST_SPONSOR_ACTIONS_HEADER--}</strong>
+                       </td>
+               </tr>
+               $content[actions]
+               <tr>
+                       <td colspan="2" class="table_footer">
+                               {--GUEST_SPONSOR_ACTIONS_FOOTER--}
+                       </td>
+               </tr>
+               </table>
+       </td>
 </tr>
 </table>
 </div>
 </tr>
 </table>
 </div>
index 95e20dc4410ff5f654a330c8c7268aae9a3318a8..40f97de163d348e72dbf34239706b3c1653509fc 100644 (file)
@@ -26,7 +26,7 @@
 <tr>
        <td colspan="2" align="center" class="table_footer">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
 <tr>
        <td colspan="2" align="center" class="table_footer">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-               <input type="submit" class="form_submit" name="ok" value="{--LOGIN_SUBMIT--}" />
+               <input type="submit" class="form_submit" name="login" value="{--LOGIN_SUBMIT--}" />
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index 9d4abb02730bd58bf67d65eb8fddf02d30540a92..97fdad96e670b17f37669610131403d42eb40c02 100644 (file)
@@ -1,3 +1,3 @@
 <tr>
 <tr>
-  <td align="center" class="table_header bottom" colspan="2">$content</td>
+       <td align="center" class="table_header bottom" colspan="2">$content</td>
 </tr>
 </tr>
index 800ace9877b01663f8aaac36a2e19caf15bb9860..67589c66a6d93b8851f518bbf624a4c1f0aaacb5 100644 (file)
@@ -1,8 +1,8 @@
-<form accept-charset="UTF-8" action="{%url=install.php?page=2%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="install_main">
+<form accept-charset="UTF-8" action="{%url=install.php?install_page=2%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="install_content">
 <tr>
 <tr>
-       <td align="center">
-               <div class="install_welcome">{--INSTALLER_HEADER_MYSQL_ERRORS--}</div>
+       <td align="center" class="install_title">
+               {--INSTALLER_MYSQL_ERRORS_TITLE--}
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
diff --git a/templates/de/html/install/install_footer.tpl b/templates/de/html/install/install_footer.tpl
new file mode 100644 (file)
index 0000000..1427c26
--- /dev/null
@@ -0,0 +1,9 @@
+<div>
+       <ul id="footernav">
+               <li><input id="finish" type="button" class="form_submit disabled" value="{--PAGE_FINISH_SUBMIT--}" disabled="disabled" /></li>
+               <li><input id="next_page" type="button" class="form_submit disabled" value="{--PAGE_NEXT_SUBMIT--}" disabled="disabled" /></li>
+               <li><input id="previous_page" type="button" class="form_submit disabled" value="{--PAGE_PREVIOUS_SUBMIT--}" disabled="disabled" /></li>
+               <li><input id="save_changes" type="button" class="form_submit disabled" value="{--SAVE_CHANGES_SUBMIT--}" disabled="disabled" /></li>
+               <li><input id="installer_switch" type="button" class="form_submit" value="{--INSTALLER_SWITCH_PLAIN--}" /></li>
+       </ul>
+</div>
index bd6c0745083741ad030931ea75b8ec7d5e293a43..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,7 +1 @@
-<div class="install_header">
-       <strong>: : : {--INSTALLER_MAIN_HEADER--} : : :</strong>
-</div>
-
-<div class="install_main">
-       {%pipe,getInstallerContent%}
-</div>
+<!-- @DEPRECATED //-->
diff --git a/templates/de/html/install/install_main_ajax.tpl b/templates/de/html/install/install_main_ajax.tpl
new file mode 100644 (file)
index 0000000..6271a22
--- /dev/null
@@ -0,0 +1,74 @@
+<div class="install_main_ajax" align="center">
+<div class="install_header">
+       <strong>: : : {--INSTALLER_MAIN_TITLE--} : : :</strong>
+</div>
+
+<div align="center">
+<div class="install_menu_ajax">
+       {%pipe,generateInstallerMenu%}
+</div>
+</div>
+
+<div id="install_error" class="ajax_error">
+       <div class="ajax_error_title">
+               <strong>{--INSTALLER_AJAX_ERROR_TITLE--}</strong>
+       </div>
+       <div class="ajax_error_close">
+               <strong id="install_error_close" style="padding-left:1.5px;cursor:pointer">X</strong>
+       </div>
+       <div style="clear:both"></div>
+       <div class="ajax_error_content" id="install_error_content">
+               <!-- Content will be inserted here by AJAX //-->
+       </div>
+</div>
+
+<div id="install_warning" class="ajax_warning">
+       <div class="ajax_warning_title">
+               <strong>{--INSTALLER_AJAX_WARNING_TITLE--}</strong>
+       </div>
+       <div class="ajax_warning_close">
+               <strong id="install_warning_close" style="padding-left:1.5px;cursor:pointer">X</strong>
+       </div>
+       <div style="clear:both"></div>
+       <div class="ajax_warning_content" id="install_warning_content">
+               <!-- Content will be inserted here by AJAX //-->
+       </div>
+</div>
+
+<div style="clear:both"></div>
+
+<div class="install_content_container">
+       <div id="install_content" class="install_content">
+               {%pipe,getInstallerContent%}
+       </div>
+</div>
+
+<div class="install_footer">
+       {%pipe,generateInstallerFooterNavigation%}
+</div>
+</div>
+
+<script type="text/javascript" src="{%url=js/ajax-loader.js%}"></script>
+<script type="text/javascript">
+<!--
+// These scripts shall be loaded
+var scripts = new Array();
+scripts[0] = '{%url,js=js/ajax-common.js%}';
+scripts[1] = '{%url,js=js/jquery-ui.custom.js%}';
+scripts[2] = '{%url,js=js/install-data.js%}';
+scripts[3] = '{%url,js=js/install-common.js%}';
+
+// This must be the last one
+scripts[scripts.length] = '{%url,js=js.php?js=install_ajax&install_page=$content[install_page]%}';
+
+// Do this only when all is ready
+// Load all scripts
+if (loadScripts(scripts) == true) {
+       // Wait for loadScripts() finishing loading all scripts
+       $().ready(function () {
+               // Do stuff, when all scripts are loaded
+       });
+} // END - if
+
+//-->
+</script>
diff --git a/templates/de/html/install/install_main_plain.tpl b/templates/de/html/install/install_main_plain.tpl
new file mode 100644 (file)
index 0000000..1b292b9
--- /dev/null
@@ -0,0 +1,14 @@
+<div class="install_header">
+       <strong>: : : {--INSTALLER_MAIN_TITLE--} : : :</strong>
+</div>
+
+<div>
+       {%pipe,getInstallerContent%}
+</div>
+
+<div class="para">
+       <input type="button" class="form_submit" value="{--INSTALLER_SWITCH_START--}" onclick="switchInstaller('start'); return false" />
+       <input type="button" class="form_submit" value="{--INSTALLER_SWITCH_AJAX--}" onclick="switchInstaller('ajax'); return false" />
+</div>
+
+<script type="text/javascript" src="{%url=js/install-common.js?dummy=1%}{%ext,version=sql_patches%}"></script>
diff --git a/templates/de/html/install/install_menu.tpl b/templates/de/html/install/install_menu.tpl
new file mode 100644 (file)
index 0000000..765418e
--- /dev/null
@@ -0,0 +1,8 @@
+<ul id="tabnav">
+       <li id="install_welcome" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_WELCOME_TITLE--}">{--INSTALLER_TAB_NAVIGATION_WELCOME_LINK--}</a></li>
+       <li id="install_base_data" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_BASE_DATA_TITLE--}">{--INSTALLER_TAB_NAVIGATION_BASE_DATA_LINK--}</a></li>
+       <li id="install_database_config" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_DATABASE_CONFIG_TITLE--}">{--INSTALLER_TAB_NAVIGATION_DATABASE_CONFIG_LINK--}</a></li>
+       <li id="install_smtp_config" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_SMTP_CONFIG_TITLE--}">{--INSTALLER_TAB_NAVIGATION_SMTP_CONFIG_LINK--}</a></li>
+       <li id="install_other_config" class="tab_enabled"><a href="#" title="{--INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_TITLE--}">{--INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_LINK--}</a></li>
+       <li id="install_overview" class="tab_enabled"><a id="install_overview_link" class="tabnav_enabled" href="#" title="{--INSTALLER_TAB_NAVIGATION_OVERVIEW_TITLE--}">{--INSTALLER_TAB_NAVIGATION_OVERVIEW_LINK--}</a></li>
+</ul>
index ac15c354486c93bee5c05e601a3e7ad009b2ec1c..fd79c54e95b9b2cf5e98a4e696ecb41530769045 100644 (file)
@@ -1,34 +1,34 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=install.php?page=2%}" method="post" target="_self">
-<table border="0" cellspacing="0" cellpadding="0" class="install_main">
+<div align="center" style="margin-bottom:10px">
+<form accept-charset="UTF-8" action="{%url=install.php?install_page=2%}" method="post" target="_self">
+<table border="0" cellspacing="0" cellpadding="0" class="install_content">
        <tr>
        <tr>
-               <td colspan="2" align="center">
-                       <div class="install_welcome">{--INSTALLER_HEADER_TEXT_PAGE1--}</div>
+               <td colspan="2" align="center" class="install_title">
+                       {--INSTALLER_BASE_DATA_TITLE--}
                </td>
        </tr>
        <tr>
                <td colspan="2">
                </td>
        </tr>
        <tr>
                <td colspan="2">
-                       {--INSTALLER_TEXT_PAGE_1--}
+                       {--INSTALLER_BASE_DATA_DESCRIPTION--}
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_SERVER_PATH--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_LABEL_BASE_PATH--} ({--INSTALLER_BASE_PATH_NOTICE--})</td>
                <td align="left"><input type="text" class="form_field" name="spath" size="50" value="{?PATH?}" /></td>
        </tr>
        <tr>
                <td align="left"><input type="text" class="form_field" name="spath" size="50" value="{?PATH?}" /></td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_BASE_URL--} ({--BASE_URL_NOTICE--}):</td>
+               <td align="right" class="install_right">{--INSTALLER_LABEL_BASE_URL--} ({--INSTALLER_BASE_URL_NOTICE--}):</td>
                <td align="left"><input type="text" class="form_field" name="burl" size="50" value="{?URL?}" /></td>
        </tr>
        <tr>
                <td align="left"><input type="text" class="form_field" name="burl" size="50" value="{?URL?}" /></td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_HP_TITLE--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_LABEL_MAIN_TITLE--}</td>
                <td align="left"><input type="text" class="form_field" name="title" size="50" maxlength="255" value="{?MAIN_TITLE?}" /></td>
        </tr>
        <tr>
                <td align="left"><input type="text" class="form_field" name="title" size="50" maxlength="255" value="{?MAIN_TITLE?}" /></td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_HP_SLOGAN--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_LABEL_SLOGAN--}</td>
                <td align="left"><input type="text" class="form_field" name="slogan" size="50" maxlength="255" value="{?SLOGAN?}" /></td>
        </tr>
        <tr>
                <td align="left"><input type="text" class="form_field" name="slogan" size="50" maxlength="255" value="{?SLOGAN?}" /></td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_HP_EMAIL--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_LABEL_WEBMASTER--}</td>
                <td align="left"><input type="text" class="form_field" name="email" size="30" maxlength="255" value="{?WEBMASTER?}" /></td>
        </tr>
        <tr>
                <td align="left"><input type="text" class="form_field" name="email" size="30" maxlength="255" value="{?WEBMASTER?}" /></td>
        </tr>
        <tr>
index 27619a3265c9d7a614697101550a3dff8d6f1a19..63e66ccfa39170c1a72d9b87159a9de9d29b5158 100644 (file)
@@ -1,36 +1,36 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=install.php?page=3%}" method="post" target="_self">
-<table border="0" cellspacing="0" cellpadding="0" class="install_main">
+<div align="center" style="margin-bottom:10px">
+<form accept-charset="UTF-8" action="{%url=install.php?install_page=3%}" method="post" target="_self">
+<table border="0" cellspacing="0" cellpadding="0" class="install_content">
        <tr>
                <td colspan="2" align="center" class="install_title">
        <tr>
                <td colspan="2" align="center" class="install_title">
-                       <div class="install_welcome">{--INSTALLER_HEADER_TEXT_PAGE2--}</div>
+                       {--INSTALLER_DATABASE_CONFIG_TITLE--}
                </td>
        </tr>
        <tr>
                <td colspan="2">
                </td>
        </tr>
        <tr>
                <td colspan="2">
-                       {--INSTALLER_TEXT_PAGE_2--}
+                       {--INSTALLER_DATABASE_CONFIG_DESCRIPTION--}
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_MYSQL_HOST--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_MYSQL_HOST--}</td>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[host]" size="25" value="$content[mysql_host]" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[host]" size="25" value="$content[mysql_host]" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_MYSQL_DBASE--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_MYSQL_DBASE--}</td>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[dbase]" size="25" value="$content[mysql_dbase]" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[dbase]" size="25" value="$content[mysql_dbase]" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_MYSQL_PREFIX--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_MYSQL_PREFIX--}</td>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[prefix]" size="25" value="$content[mysql_prefix]" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[prefix]" size="25" value="$content[mysql_prefix]" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_MYSQL_TABLE_TYPE--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_MYSQL_TABLE_TYPE--}</td>
                <td align="left">
                        <select name="mysql[type]" size="1">
                                <option value="MyISAM">{--INSTALLER_TABLE_TYPE_MYISAM--}</option>
                <td align="left">
                        <select name="mysql[type]" size="1">
                                <option value="MyISAM">{--INSTALLER_TABLE_TYPE_MYISAM--}</option>
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_MYSQL_LOGIN--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_MYSQL_LOGIN--}</td>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[login]" size="25" value="$content[mysql_login]" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="text" class="form_field" name="mysql[login]" size="25" value="$content[mysql_login]" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_MYSQL_PASSWORD1--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_MYSQL_PASSWORD1--}</td>
                <td align="left">
                        <input type="password" class="form_field" name="mysql[pass1]" size="25" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="password" class="form_field" name="mysql[pass1]" size="25" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_MYSQL_PASSWORD2--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_MYSQL_PASSWORD2--}</td>
                <td align="left">
                        <input type="password" class="form_field" name="mysql[pass2]" size="25" />
                </td>
                <td align="left">
                        <input type="password" class="form_field" name="mysql[pass2]" size="25" />
                </td>
index e25c17db0b7a0ee43b5e6ad70a525c839300e5de..844ee53b85b7cc1dabc68e9952f5fa4b098c55f6 100644 (file)
@@ -1,36 +1,36 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=install.php?page=5%}" method="post" target="_self">
-<table border="0" cellspacing="0" cellpadding="0" class="install_main">
+<div align="center" style="margin-bottom:10px">
+<form accept-charset="UTF-8" action="{%url=install.php?install_page=5%}" method="post" target="_self">
+<table border="0" cellspacing="0" cellpadding="0" class="install_content">
        <tr>
        <tr>
-               <td colspan="2" align="center">
-                       <div class="install_welcome">{--INSTALLER_HEADER_TEXT_PAGE3--}</div>
+               <td colspan="2" align="center" class="install_title">
+                       {--INSTALLER_SMTP_CONFIG_TITLE--}
                </td>
        </tr>
        <tr>
                <td colspan="2">
                </td>
        </tr>
        <tr>
                <td colspan="2">
-                       {--INSTALLER_TEXT_PAGE_3--}
+                       {--INSTALLER_SMTP_CONFIG_DESCRIPTION--}
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_TEXT_SMTP_HOST--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_SMTP_HOST--}</td>
                <td align="left">
                        <input type="text" class="form_field" name="smtp_host" size="25" value="$content[smtp_host]" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="text" class="form_field" name="smtp_host" size="25" value="$content[smtp_host]" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_TEXT_SMTP_USER--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_SMTP_USER--}</td>
                <td align="left">
                        <input type="text" class="form_field" name="smtp_user" size="25" value="$content[smtp_user]" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="text" class="form_field" name="smtp_user" size="25" value="$content[smtp_user]" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_TEXT_SMTP_PASSWORD1--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_SMTP_PASSWORD1--}</td>
                <td align="left">
                        <input type="password" class="form_field" name="smtp_pass1" size="25" value="$content[smtp_pass1]" />
                </td>
        </tr>
        <tr>
                <td align="left">
                        <input type="password" class="form_field" name="smtp_pass1" size="25" value="$content[smtp_pass1]" />
                </td>
        </tr>
        <tr>
-               <td align="right" class="install_right">{--INSTALLER_TEXT_SMTP_PASSWORD2--}:</td>
+               <td align="right" class="install_right">{--INSTALLER_SMTP_PASSWORD2--}</td>
                <td align="left">
                        <input type="password" class="form_field" name="smtp_pass2" size="25" value="$content[smtp_pass2]" />
                </td>
                <td align="left">
                        <input type="password" class="form_field" name="smtp_pass2" size="25" value="$content[smtp_pass2]" />
                </td>
index fd5bf7c3509ac7b26be09fa792e90e84b6213758..e89367bb647b532854b059b1266e03297779ea6a 100644 (file)
@@ -1,18 +1,18 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=install.php?page=finalize%}" method="POST" target="_self">
-<table border="0" cellspacing="0" cellpadding="0" class="install_main">
+<div align="center" style="margin-bottom:10px">
+<form accept-charset="UTF-8" action="{%url=install.php?install_page=finalize%}" method="POST" target="_self">
+<table border="0" cellspacing="0" cellpadding="0" class="install_content">
 <tr>
 <tr>
-       <td colspan="2" align="center">
-               <div class="install">{--INSTALLER_HEADER_TEXT_PAGE5--}</div>
+       <td colspan="2" align="center" class="install_title">
+               {--INSTALLER_OTHER_CONFIG_TITLE--}
        </td>
 </tr>
 <tr>
        <td colspan="2">
        </td>
 </tr>
 <tr>
        <td colspan="2">
-               {--INSTALLER_TEXT_PAGE_5--}
+               {--INSTALLER_OTHER_CONFIG_DESCRIPTION--}
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td align="right" class="install_right">{--INSTALLER_OUTPUT_MODE--}:</td>
+       <td align="right" class="install_right">{--INSTALLER_OUTPUT_MODE--}</td>
        <td align="left">
                <select name="omode" size="1" class="form_select">
                        <option value="render">{--INSTALLER_MODE_RENDER--}</option>
        <td align="left">
                <select name="omode" size="1" class="form_select">
                        <option value="render">{--INSTALLER_MODE_RENDER--}</option>
@@ -21,7 +21,7 @@
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td align="right" class="install_right">{--INSTALLER_WARN_NO_PASSWORD--}:</td>
+       <td align="right" class="install_right">{--INSTALLER_WARN_NO_PASSWORD--}</td>
        <td align="left">
                <select name="warn_no_pass" size="1" class="form_select">
                        <option value="Y">{--YES--}</option>
        <td align="left">
                <select name="warn_no_pass" size="1" class="form_select">
                        <option value="Y">{--YES--}</option>
@@ -30,7 +30,7 @@
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td align="right" class="install_right">{--INSTALLER_CONFIG_WRITE_FOOTER--}:</td>
+       <td align="right" class="install_right">{--INSTALLER_CONFIG_WRITE_FOOTER--}</td>
        <td align="left">
                <select name="wfooter" size="1" class="form_select">
                        <option value="Y">{--YES--}</option>
        <td align="left">
                <select name="wfooter" size="1" class="form_select">
                        <option value="Y">{--YES--}</option>
@@ -39,7 +39,7 @@
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td align="right" class="install_right">{--INSTALLER_ENABLE_BACKLINK--}:</td>
+       <td align="right" class="install_right">{--INSTALLER_ENABLE_BACKLINK--}</td>
        <td align="left">
                <select name="blink" size="1" class="form_select">
                        <option value="Y">{--YES--}</option>
        <td align="left">
                <select name="blink" size="1" class="form_select">
                        <option value="Y">{--YES--}</option>
diff --git a/templates/de/html/install/install_page_base_data.tpl b/templates/de/html/install/install_page_base_data.tpl
new file mode 100644 (file)
index 0000000..acce43d
--- /dev/null
@@ -0,0 +1,52 @@
+<div align="center">
+
+<div class="install_title">
+       {--INSTALLER_BASE_DATA_TITLE--}
+</div>
+
+<div class="para">
+       {--INSTALLER_BASE_DATA_DESCRIPTION--}
+</div>
+
+<form>
+<fieldset id="base_url_path">
+       <legend>{--INSTALLER_BASE_DATA_LEGEND_BASE_URL_PATH--}</legend>
+       <div class="table_row">
+               <label class="install_label" for="base_path">{--INSTALLER_LABEL_BASE_PATH--}</label>
+               <input type="text" class="form_field" id="base_path" name="base_path" size="50" value="{%session=base_path%}" onchange="return allowSaveChanges('base_path')" />
+
+               <div class="field_note">
+                       {--INSTALLER_BASE_PATH_NOTICE--}
+               </div>
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="base_url">{--INSTALLER_LABEL_BASE_URL--}</label>
+               <input type="text" class="form_field" id="base_url" name="base_url" size="50" value="{%session=base_url%}" onchange="return allowSaveChanges('base_url')" />
+
+               <div class="field_note">
+                       {--INSTALLER_BASE_URL_NOTICE--}
+               </div>
+       </div>
+</fieldset>
+
+<fieldset id="title_slogan">
+       <legend>{--INSTALLER_BASE_DATA_LEGEND_TITLE_SLOGAN--}</legend>
+       <div class="table_row">
+               <label class="install_label" for="main_title">{--INSTALLER_LABEL_MAIN_TITLE--}</label>
+               <input type="text" class="form_field" id="main_title" name="main_title" size="50" maxlength="255" value="{%session=main_title%}" onchange="return allowSaveChanges('main_title')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="slogan">{--INSTALLER_LABEL_SLOGAN--}</label>
+               <input type="text" class="form_field" id="slogan" name="slogan" size="50" maxlength="255" value="{%session=slogan%}" onchange="return allowSaveChanges('slogan')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="webmaster">{--INSTALLER_LABEL_WEBMASTER--}</label>
+               <input type="text" class="form_field" id="webmaster" name="webmaster" size="30" maxlength="255" value="{%session=webmaster%}" onchange="return allowSaveChanges('webmaster')" />
+       </div>
+</fieldset>
+</form>
+
+</div>
diff --git a/templates/de/html/install/install_page_database_config.tpl b/templates/de/html/install/install_page_database_config.tpl
new file mode 100644 (file)
index 0000000..5857675
--- /dev/null
@@ -0,0 +1,59 @@
+<div align="center">
+<div class="install_title">
+       {--INSTALLER_DATABASE_CONFIG_TITLE--}
+</div>
+
+<div class="para">
+       {--INSTALLER_DATABASE_CONFIG_DESCRIPTION--}
+</div>
+
+<form>
+<fieldset id="host_dbase_prefix_type">
+       <legend>{--INSTALLER_DATABASE_LEGEND_HOST_DBASE_PREFIX_TYPE--}</legend>
+       <div class="table_row">
+               <label class="install_label" for="mysql_host">{--INSTALLER_MYSQL_HOST--}</label>
+               <input type="text" class="form_field" id="mysql_host" name="mysql_host" size="25" value="{%session=mysql_host%}" onchange="return allowSaveChanges('mysql_host')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="mysql_dbase">{--INSTALLER_MYSQL_DBASE--}</label>
+               <input type="text" class="form_field" id="mysql_dbase" name="mysql_dbase" size="25" value="{%session=mysql_dbase%}" onchange="return allowSaveChanges('mysql_dbase')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="mysql_prefix">{--INSTALLER_MYSQL_PREFIX--}</label>
+               <input type="text" class="form_field" id="mysql_prefix" name="mysql_prefix" size="25" value="{%session=mysql_prefix%}" onchange="return allowSaveChanges('mysql_prefix')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="mysql_type">{--INSTALLER_MYSQL_TABLE_TYPE--}</label>
+               <select id="mysql_type" name="mysql_type" size="1" class="form_select" onchange="return allowSaveChanges('mysql_type')">
+               {%pipe,generateInstallerDatabaseTypeOptions%}
+               </select>
+
+               <div class="field_note">
+                       {--INSTALLER_MYSQL_TABLE_TYPE_NOTICE--}
+               </div>
+       </div>
+</fieldset>
+
+<fieldset id="login_password">
+       <legend>{--INSTALLER_DATABASE_LEGEND_LOGIN_PASSWORD--}</legend>
+       <div class="table_row">
+               <label class="install_label" for="mysql_login">{--INSTALLER_MYSQL_LOGIN--}</label>
+               <input type="text" class="form_field" id="mysql_login" name="mysql_login" size="25" value="{%session=mysql_login%}" onchange="return allowSaveChanges('mysql_login')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="mysql_password1">{--INSTALLER_MYSQL_PASSWORD1--}</label>
+               <input type="password" class="form_field" id="mysql_password1" name="mysql_password1" size="25" value="{%session=mysql_password1%}" onchange="return allowSaveChanges('mysql_password1')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="mysql_password2">{--INSTALLER_MYSQL_PASSWORD2--}</label>
+               <input type="password" class="form_field" id="mysql_password2" name="mysql_password2" size="25" value="{%session=mysql_password2%}" onchange="return allowSaveChanges('mysql_password2')" />
+       </div>
+</fieldset>
+</form>
+
+</div>
diff --git a/templates/de/html/install/install_page_init.tpl b/templates/de/html/install/install_page_init.tpl
new file mode 100644 (file)
index 0000000..4ea3009
--- /dev/null
@@ -0,0 +1,10 @@
+<div align="center">
+<div class="install_title">
+       {--INSTALLER_PAGE_INIT_TITLE--}
+</div>
+
+<div class="para">
+       Einen Augenblick, die Installation wird vorbereitet ...
+</div>
+
+</div>
diff --git a/templates/de/html/install/install_page_other_config.tpl b/templates/de/html/install/install_page_other_config.tpl
new file mode 100644 (file)
index 0000000..9e72906
--- /dev/null
@@ -0,0 +1,47 @@
+<div align="center">
+<div class="install_title">
+       {--INSTALLER_OTHER_CONFIG_TITLE--}
+</div>
+
+<div class="para">
+       {--INSTALLER_OTHER_CONFIG_DESCRIPTION--}
+</div>
+
+<form>
+<fieldset id="login_password">
+       <legend>{--INSTALLER_OTHER_CONFIG_LEGEND_ET_CETERA--}</legend>
+       <div class="table_row">
+               <label class="install_label" for="output_mode">{--INSTALLER_OUTPUT_MODE--}</label>
+               <select id="output_mode" name="output_mode" size="1" class="form_select" onchange="return allowSaveChanges('output_mode')">
+               {%session-pipe,generateInstallerOutputModeOptions=output_mode%}
+               </select>
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="warn_no_pass">{--INSTALLER_WARN_NO_PASSWORD--}</label>
+               <select id="warn_no_pass" name="warn_no_pass" size="1" class="form_select" onchange="return allowSaveChanges('warn_no_pass')">
+               {%session-pipe,generateYesNoOptions=warn_no_pass%}
+               </select>
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="write_footer">{--INSTALLER_CONFIG_WRITE_FOOTER--}</label>
+               <select id="write_footer" name="write_footer" size="1" class="form_select" onchange="return allowSaveChanges('write_footer')">
+               {%session-pipe,generateYesNoOptions=write_footer%}
+               </select>
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="enable_backlink">{--INSTALLER_ENABLE_BACKLINK--}</label>
+               <select id="enable_backlink" name="enable_backlink" size="1" class="form_select" onchange="return allowSaveChanges('enable_backlink')">
+               {%session-pipe,generateYesNoOptions=enable_backlink%}
+               </select>
+
+               <div class="field_note">
+                       {--INSTALLER_ENABLE_BACKLINK_NOTICE--}
+               </div>
+       </div>
+</fieldset>
+</form>
+
+</div>
diff --git a/templates/de/html/install/install_page_smtp_config.tpl b/templates/de/html/install/install_page_smtp_config.tpl
new file mode 100644 (file)
index 0000000..7dfba3d
--- /dev/null
@@ -0,0 +1,39 @@
+<div align="center">
+<div class="install_title">
+       {--INSTALLER_SMTP_CONFIG_TITLE--}
+</div>
+
+<div class="para">
+       {--INSTALLER_SMTP_CONFIG_DESCRIPTION--}
+</div>
+
+<form>
+<fieldset id="login_password">
+       <legend>{--INSTALLER_SMTP_LEGEND_OPTIONAL_CONFIG--}</legend>
+       <div class="table_row">
+               <label class="install_label" for="smtp_host">{--INSTALLER_SMTP_HOST--}</label>
+               <input type="text" class="form_field" id="smtp_host" name="smtp_host" size="25" value="{%session=smtp_host%}" onchange="return allowSaveChanges('smtp_host')" />
+
+               <div class="field_note">
+                       {--INSTALLER_SMTP_HOST_NOTICE--}
+               </div>
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="smtp_user">{--INSTALLER_SMTP_USER--}</label>
+               <input type="text" class="form_field" id="smtp_user" name="smtp_user" size="20" value="{%session=smtp_user%}" onchange="return allowSaveChanges('smtp_user')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="smtp_password1">{--INSTALLER_SMTP_PASSWORD1--}</label>
+               <input type="password" class="form_field" id="smtp_password1" name="smtp_password1" size="15" value="{%session=smtp_password1%}" onchange="return allowSaveChanges('smtp_password1')" />
+       </div>
+
+       <div class="table_row">
+               <label class="install_label" for="smtp_password2">{--INSTALLER_SMTP_PASSWORD2--}</label>
+               <input type="password" class="form_field" id="smtp_password2" name="smtp_password2" size="15" value="{%session=smtp_password2%}" onchange="return allowSaveChanges('smtp_password2')" />
+       </div>
+</fieldset>
+</form>
+
+</div>
diff --git a/templates/de/html/install/install_page_welcome.tpl b/templates/de/html/install/install_page_welcome.tpl
new file mode 100644 (file)
index 0000000..fa9772d
--- /dev/null
@@ -0,0 +1,39 @@
+<div align="center">
+<div class="install_title">
+       {--INSTALLER_PAGE_WELCOME_TITLE--}
+</div>
+
+<div class="para">
+       Dieses Script wird Ihnen dabei helfen, den {?mt_word?} schrittweise zu
+       installieren. Dabei werden z.B. der absolute Serverpfad, URL, Ihre
+       Email-Adresse (Webmaster) und Daten zur Datenbank abgefragt, um dann
+       testweise eine Verbindung aufzubauen. Anschlie&szlig;end k&ouml;nnen Sie
+       optional Ihre SMTP-Zugangsdaten zu Ihrer Email-Adresse eingeben, da nicht
+       auf jedem Server der PHP-Befehl <em>mail()</em> aktiviert ist.
+</div>
+
+<div class="para">
+       Sie werden w&auml;hrend der Installation Schritt-F&uuml;r-Schritt durch die
+       einzelnen Installationsschritte gebracht. Sie brauchen dazu weder
+       Programmiererkenntnisse noch ein abgschlossenes Informatikstudium. Bitte
+       halten Sie die MySQL-und eventuelle SMTP-Zugangsdaten von Ihrem Hoster
+       bereit.
+</div>
+
+<div class="para">
+       Nach Abschluss der Installation sollten Sie als n&auml;chstes das erste
+       Administrator-Login einrichten, da sonst jeder beliebiger Anderer dies tun
+       kann. Anschliessend k&ouml;nnen Sie sich zum ersten Mal in den Adminbereich
+       einloggen und weitere Einstellungen verfeinern, sowie Erweiterungen
+       installieren.
+</div>
+
+<div class="para">
+       {?TITLE?} empfiehlt Ihnen, dann alle Installationsdateien von Ihrem Server
+       aus Sicherheitsgr&uuml;nden zu l&ouml;schen. Sie sollten auch nur auf das
+       Verzeichnis inc/cache/ (und alle Unterordner) die CHMOD-Rechte 0777 geben,
+       nicht jedoch auf die restlichen Verzeichnisse (wie z.B. inc/, templates/,
+       theme/ usw.), da sonst zu viele Dateien beschreibbar sind, was nicht
+       n&ouml;tig ist und ein Sicherheitsrisko darstellt.
+</div>
+</div>
diff --git a/templates/de/html/install/install_selector.tpl b/templates/de/html/install/install_selector.tpl
new file mode 100644 (file)
index 0000000..e662c2a
--- /dev/null
@@ -0,0 +1,96 @@
+<div class="install_header">
+       <strong>: : : {--INSTALLER_MAIN_TITLE--} : : :</strong>
+</div>
+
+<div id="install_error" class="ajax_error">
+       <div class="ajax_error_title">
+               <strong>{--INSTALLER_AJAX_ERROR_TITLE--}</strong>
+       </div>
+       <div class="ajax_error_close">
+               <strong id="install_error_close" style="padding-left:1.5px;cursor:pointer">X</strong>
+       </div>
+       <div style="clear:both"></div>
+       <div class="ajax_error_content" id="install_error_content">
+               <!-- Content will be inserted here by AJAX //-->
+       </div>
+</div>
+
+<div id="install_warning" class="ajax_warning">
+       <div class="ajax_warning_title">
+               <strong>{--INSTALLER_AJAX_TEST_TITLE--}</strong>
+       </div>
+       <div class="ajax_warning_close">
+               <strong id="install_warning_close" style="padding-left:1.5px;cursor:pointer">X</strong>
+       </div>
+       <div style="clear:both"></div>
+       <div class="ajax_warning_content" id="install_warning_content">
+               <!-- Content will be inserted here by AJAX //-->
+       </div>
+</div>
+
+<div align="center" style="margin-bottom:10px">
+<div class="install_content">
+       <div class="install_title">
+               {--INSTALLER_SELECTOR_TITLE--}
+       </div>
+
+       <div class="para">
+               Sie k&ouml;nnen jetzt zwischen zwei Installationsvarrianten
+               entscheiden. Die erste ist eine moderne, interaktive und auf dem
+               AJAX-Framework <a href="http://jquery.com" rel="external"
+                target="_blank">jQuery</a> basierend. Die zweite ist mit jedem Browser
+               kompatibel und funktioniert vollst&auml;ndig ohne JavaScript.
+       </div>
+
+       <div class="para">
+               Ersteres k&ouml;nnen Sie nur verwenden, wenn auch Ihr Browser aktuelles
+               JavaScript versteht, letzteres funktioniert auf jedem Browser. Ihr
+               Browser wird nun auf AJAX-Kompatiblit&auml;t getestet. Sollte ein
+               kleines Fenster nach 3 Sekunden erscheinen, funktioniert jquery bei
+               Ihnen. Anderfalls sollten Sie die Standardversion ausw&auml;hlen.
+       </div>
+
+       <div align="center">
+               <div style="float:left; width:38%">
+                       <form action="{%url=install.php%}" method="get">
+                               <input type="hidden" name="installer" value="ajax" />
+                               <input type="submit" id="ajax_installer" class="form_submit big disabled" disabled="disabled" value="Interaktive Version" />
+                       </form>
+               </div>
+               <div style="float:left; width:23%; text-align:center">
+                       <span id="counter">3</span> Sekunde(n)
+               </div>
+               <div style="float:left; width:38%">
+                       <form action="{%url=install.php%}" method="get">
+                               <input type="hidden" name="installer" value="plain" />
+                               <input type="submit" id="plain_installer" class="form_submit big" value="Kompatiblit&auml;tsmodus" />
+                       </form>
+               </div>
+               <div style="clear:both"></div>
+       </div>
+</div>
+</div>
+
+<script type="text/javascript" src="{%url=js/ajax-loader.js%}"></script>
+<script type="text/javascript">
+<!--
+// These scripts shall be loaded
+var scripts = new Array();
+scripts[0] = '{%url,js=js/ajax-common.js%}';
+scripts[1] = '{%url,js=js/ajax-test.js%}';
+scripts[2] = '{%url,js=js/jquery-ui.custom.js%}';
+
+// Do this only when all loaders are finished
+if (loadScripts(scripts) == true) {
+       // Wait for loadScripts() finishing loading all scripts
+       $().ready(function () {
+               // Warning window
+               $("#install_warning").draggable({opacity: 0.85});
+
+               // Error window
+               $("#install_error").draggable({opacity: 0.85});
+       });
+} // END - if
+
+//-->
+</script>
diff --git a/templates/de/html/install/install_warning_next.tpl b/templates/de/html/install/install_warning_next.tpl
new file mode 100644 (file)
index 0000000..d3e014a
--- /dev/null
@@ -0,0 +1,14 @@
+<div class="para">
+       Sie haben die farblich markierten Formularfelder noch nicht abgespeichert.
+       Wenn Sie ohne zu speichern fortfahren, gehen diese verloren und es sind
+       weiter die Standard-Einstellungen verwendet.
+</div>
+
+<div class="para">
+       Hier sind alle ge&auml;nderten Felder aufgelistet:
+       $content[out]
+</div>
+
+<div>
+       <input type="button" class="form_submit" value="{--NEXT_SAVE_CHANGES_SUBMIT--}" onclick="return doSaveChangesPage('install', 'install_content', 'next')" />
+</div>
diff --git a/templates/de/html/install/install_warning_previous.tpl b/templates/de/html/install/install_warning_previous.tpl
new file mode 100644 (file)
index 0000000..218f364
--- /dev/null
@@ -0,0 +1,14 @@
+<div class="para">
+       Sie haben die farblich markierten Formularfelder noch nicht abgespeichert.
+       Wenn Sie ohne zu speichern fortfahren, gehen diese verloren und es sind
+       weiter die Standard-Einstellungen verwendet.
+</div>
+
+<div class="para">
+       Hier sind alle ge&auml;nderten Felder aufgelistet:
+       $content[out]
+</div>
+
+<div>
+       <input type="button" class="form_submit" value="{--PREVIOUS_SAVE_CHANGES_SUBMIT--}" onclick="return doSaveChangesPage('install', 'install_content', 'previous')" />
+</div>
diff --git a/templates/de/html/install/install_warning_tab.tpl b/templates/de/html/install/install_warning_tab.tpl
new file mode 100644 (file)
index 0000000..a4ba248
--- /dev/null
@@ -0,0 +1,14 @@
+<div class="para">
+       Sie haben die farblich markierten Formularfelder noch nicht abgespeichert.
+       Wenn Sie ohne zu speichern fortfahren, gehen diese verloren und es sind
+       weiter die Standard-Einstellungen verwendet.
+</div>
+
+<div class="para">
+       Hier sind alle ge&auml;nderten Felder aufgelistet:
+       $content[out]
+</div>
+
+<div>
+       <input type="button" class="form_submit" value="{%message,TAB_SAVE_CHANGES_SUBMIT=$content[message]%}" onclick="return doSaveChangesContinue('install', 'install_content', '$content[button]')" />
+</div>
index 333d2dc4cbbdfdc44fc149071bc0bd85a77c543a..6ecee3c338d1f74732371ce3799794d3909cf244 100644 (file)
@@ -1,34 +1,47 @@
-<div class="install_welcome">
-       Willkommen zum Installationsscript vom Mailer-Projekt, dem
-       <strong>freien</strong> {?mt_word?}-Script!
+<div align="center" style="margin-bottom:10px">
+<div class="install_content">
+<div class="install_title">
+       {--INSTALLER_PAGE_WELCOME_TITLE--}
 </div>
 
 <div class="para">
 </div>
 
 <div class="para">
-       Dieses Script wird Ihnen dabei helfen, den {?mt_word?} zu installieren, die
-       Datenbank einzurichten und den {?mt_word?} vorzukonfigurieren.
+       Dieses Script wird Ihnen dabei helfen, den {?mt_word?} schrittweise zu
+       installieren. Dabei werden z.B. der absolute Serverpfad, URL, Ihre
+       Email-Adresse (Webmaster) und Daten zur Datenbank abgefragt, um dann
+       testweise eine Verbindung aufzubauen. Anschlie&szlig;end k&ouml;nnen Sie
+       optional Ihre SMTP-Zugangsdaten zu Ihrer Email-Adresse eingeben, da nicht
+       auf jedem Server der PHP-Befehl <em>mail()</em> aktiviert ist.
 </div>
 
 <div class="para">
        Sie werden w&auml;hrend der Installation Schritt-F&uuml;r-Schritt durch die
        einzelnen Installationsschritte gebracht. Sie brauchen dazu weder
        Programmiererkenntnisse noch ein abgschlossenes Informatikstudium. Bitte
 </div>
 
 <div class="para">
        Sie werden w&auml;hrend der Installation Schritt-F&uuml;r-Schritt durch die
        einzelnen Installationsschritte gebracht. Sie brauchen dazu weder
        Programmiererkenntnisse noch ein abgschlossenes Informatikstudium. Bitte
-       halten Sie die MySQL-Daten von Ihrem Hoster bereit.
+       halten Sie die MySQL-und eventuelle SMTP-Zugangsdaten von Ihrem Hoster
+       bereit.
 </div>
 
 <div class="para">
 </div>
 
 <div class="para">
-       Nach erfolgreicher Installation sollten Sie als n&auml;chstes das erste
-       Administrator-Login einrichten. Anschliessend k&ouml;nnen Sie sich einloggen
-       und weitere Einstellungen verfeinern.
+       Nach Abschluss der Installation sollten Sie als n&auml;chstes das erste
+       Administrator-Login einrichten, da sonst jeder beliebiger Anderer dies tun
+       kann. Anschliessend k&ouml;nnen Sie sich zum ersten Mal in den Adminbereich
+       einloggen und weitere Einstellungen verfeinern, sowie Erweiterungen
+       installieren.
 </div>
 
 <div class="para">
 </div>
 
 <div class="para">
-       Das Entwickler-Team empfiehlt Ihnen, dann alle Installationsdateien von Ihrem
-       Server zu l&ouml;schen.
+       {?TITLE?} empfiehlt Ihnen, dann alle Installationsdateien von Ihrem Server
+       aus Sicherheitsgr&uuml;nden zu l&ouml;schen. Sie sollten auch nur auf das
+       Verzeichnis inc/cache/ (und alle Unterordner) die CHMOD-Rechte 0777 geben,
+       nicht jedoch auf die restlichen Verzeichnisse (wie z.B. inc/, templates/,
+       theme/ usw.), da sonst zu viele Dateien beschreibbar sind, was nicht
+       n&ouml;tig ist und ein Sicherheitsrisko darstellt.
 </div>
 
 <div class="install_footer">
        <form accept-charset="UTF-8" action="install.php" method="get" target="_self">
 </div>
 
 <div class="install_footer">
        <form accept-charset="UTF-8" action="install.php" method="get" target="_self">
-               <input type="hidden" name="page" value="1" />
+               <input type="hidden" name="install_page" value="1" />
                <input type="submit" class="form_submit" value="{--INSTALLER_NEXT_PAGE--}" />
        </form>
 </div>
                <input type="submit" class="form_submit" value="{--INSTALLER_NEXT_PAGE--}" />
        </form>
 </div>
+</div>
diff --git a/templates/de/html/js/js_admin_ajax.tpl b/templates/de/html/js/js_admin_ajax.tpl
new file mode 100644 (file)
index 0000000..2d233a9
--- /dev/null
@@ -0,0 +1,86 @@
+/**
+ * JavaScript for admin AJAX stuff
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+// Make both windows drag'n'drop-able
+$().ready(function() {
+       // Fade default content in
+       window.setTimeout("requestAjaxContent('admin', 'admin_content', '$content[admin_page]', false)", 250);
+
+       // Set default tab id
+       defaultTabId = '$content[admin_page]';
+
+       // Set 'save-changes' button id
+       saveChangesId = 'save_changes';
+
+       //-----------------------------------------
+       //            Tab navigation
+       //-----------------------------------------
+       $('a').each(function (i) {
+               $(this).on('click', {index:i}, function (event) {
+                       // Do we have a valid index?
+                       if (indexTranslation[event.data.index] != null) {
+                               // Prevent default action
+                               event.preventDefault();
+
+                               // Valid found, so initialize the POST request
+                               requestAjaxContent('admin', 'admin_content', indexTranslation[event.data.index], false);
+                       } // END - if
+               });
+       });
+
+       //-----------------------------------------
+       //             Close buttons
+       //-----------------------------------------
+       $('#admin_error_close').click(function () {
+               // Close the window
+               closeErrorWindow('admin');
+       });
+
+       $('#admin_warning_close').click(function () {
+               // Close the window
+               closeWarningWindow('admin');
+       });
+
+       //-----------------------------------------
+       //             Save changes
+       //-----------------------------------------
+       $('#' + saveChangesId).click(function () {
+               // Save changes
+               saveChanges('admin');
+       });
+
+       //-----------------------------------------
+       //              Drag'N'Drop
+       //-----------------------------------------
+       $('#admin_warning').draggable({
+               opacity: 0.85
+       });
+
+       $('#admin_error').draggable({
+               opacity: 0.85
+       });
+});
index 5605e5298c5d690d8c2ff58f63a862bd12e74c81..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1 +1 @@
- onclick="return changeMenuFoldState('$content[menu_mode]', '$content[main_action]', '$content[action]', '$content[what]')"
+<!-- @DEPRECATED //-->
index dd5ae369d19b29a3c0e7b2d39298dd6ccd5b181c..1968b4781a45a1278ae97c09dd6185defeb18ce8 100644 (file)
@@ -1,5 +1,35 @@
+/**
+ * JavaScript for if cookies are disabled
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+// Loader for URL with COOKIES_DISABLED coded
 function Loader() {
        document.location.href = '{%url,js=modules.php?module=index&what=login%}&code={%code=COOKIES_DISABLED%}';
 }
 
 function Loader() {
        document.location.href = '{%url,js=modules.php?module=index&what=login%}&code={%code=COOKIES_DISABLED%}';
 }
 
+// Load after about 2 seconds
 window.setTimeout("Loader()", 2000);
 window.setTimeout("Loader()", 2000);
diff --git a/templates/de/html/js/js_install_ajax.tpl b/templates/de/html/js/js_install_ajax.tpl
new file mode 100644 (file)
index 0000000..3a23fd0
--- /dev/null
@@ -0,0 +1,104 @@
+/**
+ * JavaScript for installation AJAX stuff
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+// Make both windows drag'n'drop-able
+$().ready(function() {
+       // Fade default content in
+       window.setTimeout("requestAjaxContent('install', 'install_content', '$content[install_page]', true)", 250);
+
+       // Set default tab id
+       defaultTabId = '$content[install_page]';
+
+       // Set 'save-changes' button id
+       saveChangesId = 'save_changes';
+
+       //-----------------------------------------
+       //            Tab navigation
+       //-----------------------------------------
+       $('a').each(function (i) {
+               $(this).on('click', {index:i}, function (event) {
+                       // Do we have a valid index?
+                       if (indexTranslation[event.data.index] != null) {
+                               // Prevent default action
+                               event.preventDefault();
+
+                               // Valid found, so initialize the POST request
+                               requestAjaxContent('install', 'install_content', indexTranslation[event.data.index], true);
+                       } // END - if
+               });
+       });
+
+       //-----------------------------------------
+       //             Close buttons
+       //-----------------------------------------
+       $('#install_error_close').click(function () {
+               // Close the window
+               closeErrorWindow('install');
+       });
+
+       $('#install_warning_close').click(function () {
+               // Close the window
+               closeWarningWindow('install');
+       });
+
+       //-----------------------------------------
+       //           Footer navigation
+       //-----------------------------------------
+       $('#next_page').click(function () {
+               // 'next' button has been clicked
+               doFooterPage('install', 'install_content', 'next');
+       });
+
+       $('#previous_page').click(function () {
+               // 'previous' button has been clicked
+               doFooterPage('install', 'install_content', 'previous');
+       });
+
+       $('#installer_switch').click(function () {
+               // Switch installer (to plain)
+               switchInstaller('plain');
+       });
+
+       //-----------------------------------------
+       //             Save changes
+       //-----------------------------------------
+       $('#' + saveChangesId).click(function () {
+               // Save changes
+               saveChanges('install');
+       });
+
+       //-----------------------------------------
+       //              Drag'N'Drop
+       //-----------------------------------------
+       $('#install_warning').draggable({
+               opacity: 0.85
+       });
+
+       $('#install_error').draggable({
+               opacity: 0.85
+       });
+});
index 939b03f26cbbd9d7f460a00691aa31f61fec6221..ef32d52b9295f8a024b66b235d01abe250575524 100644 (file)
@@ -1,3 +1,31 @@
+/**
+ * JavaScript for ext-order
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
 var counter = document.getElementById('counter');
 var form    = document.getElementById('form');
 var ok      = document.getElementById('ok');
 var counter = document.getElementById('counter');
 var form    = document.getElementById('form');
 var ok      = document.getElementById('ok');
index 1126345eb555696e95f26846169f708fc9d6e022..9a1b5a0befd724b8d02c07ea669f7a6b87b092d8 100644 (file)
@@ -1,18 +1,46 @@
-var currCounter = "{%pipe,SURFBAR_GET_RELOAD_TIME=$content[url_id]%}";
-var maxCounter  = "{%pipe,SURFBAR_GET_RELOAD_TIME=$content[url_id]%}";
-var counter     = document.getElementById("surfbar_counter");
-var points      = document.getElementById("surfbar_points");
-var reload      = document.getElementById("surfbar_reload");
-var max         = document.getElementById("surfbar_max");
+/**
+ * JavaScript for ext-surfbar - top frame
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
+var currCounter = '{%pipe,gerSurfbarReloadTime=$content[url_id]%}';
+var maxCounter  = '{%pipe,gerSurfbarReloadTime=$content[url_id]%}';
+var counter     = document.getElementById('surfbar_counter');
+var points      = document.getElementById('surfbar_points');
+var reload      = document.getElementById('surfbar_reload');
+var max         = document.getElementById('surfbar_max');
 var countDown   = null;
 
 function startStopCounter () {
        if (countDown == null) {
                // Start counter
 var countDown   = null;
 
 function startStopCounter () {
        if (countDown == null) {
                // Start counter
-               document.getElementById("start").innerHTML = "{--MEMBER_SURFBAR_ACTION_PAUSE_SUBMIT--}";
-               countDown = window.setInterval("startCounter()", 1000);
+               document.getElementById('start').innerHTML = '{--MEMBER_SURFBAR_ACTION_PAUSE_SUBMIT--}';
+               countDown = window.setInterval('startCounter()', 1000);
        } else {
        } else {
-               document.getElementById("start").innerHTML = "{--MEMBER_SURFBAR_ACTION_UNPAUSE_SUBMIT--}";
+               document.getElementById('start').innerHTML = '{--MEMBER_SURFBAR_ACTION_UNPAUSE_SUBMIT--}';
                window.clearInterval(countDown);
                countDown = null;
        }
                window.clearInterval(countDown);
                countDown = null;
        }
@@ -20,17 +48,17 @@ function startStopCounter () {
 }
 
 function init () {
 }
 
 function init () {
-       countDown = window.setInterval("startCounter()", 1000);
-       window.setTimeout("initCounter()", 500);
+       countDown = window.setInterval('startCounter()', 1000);
+       window.setTimeout('initCounter()', 500);
 }
 
 function confirm () {
        if (parent.surfbar_url != null) {
                // Is in right frameset
 }
 
 function confirm () {
        if (parent.surfbar_url != null) {
                // Is in right frameset
-               parent.surfbar_url.location.href = "{%url=surfbar.php?id=$content[url_id]&check=$content[check]&salt=$content[salt]%}";
+               parent.surfbar_url.location.href = '{%url=surfbar.php?id=$content[url_id]&check=$content[check]&salt=$content[salt]%}';
        } else {
                // Called frame=top directly
        } else {
                // Called frame=top directly
-               window.location.href = "{%url=surfbar.php%}";
+               window.location.href = '{%url=surfbar.php%}';
        }
 }
 
        }
 }
 
@@ -40,7 +68,7 @@ function reloadSurfbar () {
                parent.surfbar_stats.location.reload();
        } else {
                // Called frame=top directly
                parent.surfbar_stats.location.reload();
        } else {
                // Called frame=top directly
-               window.location.href = "{%url=surfbar.php%}";
+               window.location.href = '{%url=surfbar.php%}';
        }
        this.location.reload();
 }
        }
        this.location.reload();
 }
@@ -48,16 +76,16 @@ function reloadSurfbar () {
 function initCounter () {
        if (parent.surfbar_url != null) {
                // Is in right frameset
 function initCounter () {
        if (parent.surfbar_url != null) {
                // Is in right frameset
-               parent.surfbar_url.location.href = '{%pipe,SURFBAR_GET_URL=$content[url_id]%}';
+               parent.surfbar_url.location.href = '{%pipe,gerSurfbarUrl=$content[url_id]%}';
        } else {
                // Called frame=top directly
        } else {
                // Called frame=top directly
-               window.location.href = "{%url=surfbar.php%}";
+               window.location.href = '{%url=surfbar.php%}';
        }
 
        }
 
-       counter.innerHTML = "{%pipe,SURFBAR_GET_RELOAD_TIME=$content[url_id]%}";
-       points.innerHTML  = "{%pipe,SURFBAR_GET_REWARD,translateComma=$content[url_id]%}";
-       reload.innerHTML  = "{%pipe,SURFBAR_GET_USER_LOCKS%}";
-       max.innerHTML     = "{%pipe,SURFBAR_GET_TOTAL_URLS%}";
+       counter.innerHTML = '{%pipe,gerSurfbarReloadTime=$content[url_id]%}';
+       points.innerHTML  = '{%pipe,gerSurfbarReward,translateComma=$content[url_id]%}';
+       reload.innerHTML  = '{%pipe,getSurfbarUserLocks%}';
+       max.innerHTML     = '{%pipe,getSurfbarTotalUrls%}';
 }
 
 function startCounter () {
 }
 
 function startCounter () {
@@ -71,7 +99,7 @@ function startCounter () {
        if (currCounter == 0) {
                clearInterval(countDown);
                confirm();
        if (currCounter == 0) {
                clearInterval(countDown);
                confirm();
-               window.setTimeout("reloadSurfbar()", 500);
+               window.setTimeout('reloadSurfbar()', 500);
        }
 }
 
        }
 }
 
index c6fa3c746622cdcf40492ad8ad2d4865a51f4358..fa74e28ed3e2384fc03288809c55175b706dd543 100644 (file)
@@ -1,3 +1,31 @@
+/**
+ * JavaScript for ext-surfbar - member booking script
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
 var limit       = document.getElementById('limit');
 var span        = document.getElementById('span_limit');
 var limited_no  = document.getElementById('limited_no');
 var limit       = document.getElementById('limit');
 var span        = document.getElementById('span_limit');
 var limited_no  = document.getElementById('limited_no');
index b8e754ee13223311c3473e5bffa655a8ad48ee60..9cab677d3925187c7330081b7073f850fb6f1c89 100644 (file)
@@ -1,3 +1,31 @@
+/**
+ * JavaScript for ext-surfbar - member editing page
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
 var limit = document.getElementById('limit');
 var span = document.getElementById('span_limit');
 var old_limit = {%pipe,bigintval=$content[views_max]%};
 var limit = document.getElementById('limit');
 var span = document.getElementById('span_limit');
 var old_limit = {%pipe,bigintval=$content[views_max]%};
index 6e04e692afffef4ff7b899cefc010239e07d166b..74f71b7edfffda9c6c17805ef1dc6b91c73ed50f 100644 (file)
@@ -1,14 +1,42 @@
+/**
+ * JavaScript for ext-surfbar - Stopped
+ * --------------------------------------------------------------------
+ * $Revision::                                                        $
+ * $Date::                                                            $
+ * $Tag:: 0.2.1-FINAL                                                 $
+ * $Author::                                                          $
+ * --------------------------------------------------------------------
+ * Copyright (c) 2003 - 2009 by Roland Haeder
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team
+ * For more information visit: http://mxchange.org
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA  02110-1301  USA
+ */
+
 var interval  = null;
 var interval  = null;
-var countDown = "{?surfbar_restart_time?}";
-var timer     = document.getElementById("surfbar_counter");
-var buttonDiv = document.getElementById("surfbar_button");
+var countDown = '{?surfbar_restart_time?}';
+var timer     = document.getElementById('surfbar_counter');
+var buttonDiv = document.getElementById('surfbar_button');
 
 function restart () {
        this.location.reload();
 }
 
 function showButton () {
 
 function restart () {
        this.location.reload();
 }
 
 function showButton () {
-       buttonDiv.innerHTML = "<form accept-charset='UTF-8' action='{%url=surfbar.php%}' target='_self' method='GET'><input type='hidden' name='frame' value='top' /><input type='submit' id='form_submit' value='Surfbar erneut starten' /></form>";
+       buttonDiv.innerHTML = '<form accept-charset=\'UTF-8\' action=\'{%url=surfbar.php%}\' target=\'_self\' method=\'GET\'><input type=\'hidden\' name=\'frame\' value=\'top\' /><input type=\'submit\' id=\'form_submit\' value=\'Surfbar erneut starten\' /></form>';
 }
 
 function counter () {
 }
 
 function counter () {
@@ -26,8 +54,8 @@ function counter () {
 }
 
 function init () {
 }
 
 function init () {
-       interval = window.setInterval("counter()", 1000);
-       timer.innerHTML = "{?surfbar_restart_time?}";
+       interval = window.setInterval('counter()', 1000);
+       timer.innerHTML = '{?surfbar_restart_time?}';
 }
 
 }
 
-window.setTimeout("init()", 500);
+window.setTimeout('init()', 500);
index eaf77a7c88c19c0bb19bc69eb3e674289908284c..f61e3206597a09708b0991eb65e21966b78c58f2 100644 (file)
@@ -14,8 +14,8 @@ function startCounter() {
        timer--;
        document.confirm.counter.value = timer;
        if (timer == 0) {
        timer--;
        document.confirm.counter.value = timer;
        if (timer == 0) {
-               document.location.href = '{%url,js=mailid_top.php?userid=$content[userid]&$content[type]=$content[data]&do=confirm&code=$content[rand]%}';
                clearInterval(Counter);
                clearInterval(Counter);
+               document.location.href = '{%url,js=mailid_top.php?userid=$content[userid]&$content[type]=$content[data]&do=confirm&code=$content[rand]%}';
        }
 }
 //-->
        }
 }
 //-->
index 1d4e2633b66890607d4439383aa6bb15f360490a..b2dea6d73ec0fdff085eecab938da935c19a1983 100644 (file)
@@ -1,7 +1,9 @@
 <div align="center">
 <table border="0" cellspacing="0" cellpadding="0" width="430" class="mediadata dashed">
        <tr>
 <div align="center">
 <table border="0" cellspacing="0" cellpadding="0" width="430" class="mediadata dashed">
        <tr>
-               <td class="media_header bottom" colspan="2" align="center">{--MEDIA_DATA_GENERAL--}</td>
+               <td class="media_header bottom" colspan="2" align="center">
+                       {--MEDIA_DATA_GENERAL--}
+               </td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USER_MT_START--}:</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USER_MT_START--}:</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_CONFIRMED--}:</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_CONFIRMED--}:</td>
-               <td class="bottom media_right">{%pipe,translateComma=$content[user_confirmed]%}</td>
+               <td class="bottom media_right">{%pipe,getTotalConfirmedUser,translateComma%}</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_UNCONFIRMED--}:</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_UNCONFIRMED--}:</td>
-               <td class="bottom media_right">{%pipe,translateComma=$content[user_unconfirmed]%}</td>
+               <td class="bottom media_right">{%pipe,getTotalUnconfirmedUser,translateComma%}</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_LOCKED--}:</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_LOCKED--}:</td>
-               <td class="bottom media_right">{%pipe,translateComma=$content[user_locked]%}</td>
+               <td class="bottom media_right">{%pipe,getTotalLockedUser,translateComma%}</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_MAX_MAILS--}:</td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_MAX_MAILS--}:</td>
        </tr>
        $content[out_user]
        <tr>
        </tr>
        $content[out_user]
        <tr>
-               <td class="media_header bottom" colspan="2" align="center">{--MEDIA_DATA_MAIL--}</td>
+               <td class="media_header bottom" colspan="2" align="center">
+                       {--MEDIA_DATA_MAIL--}
+               </td>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_STATS--}:</td>
                <td class="bottom media_right">{%pipe,translateComma=$content[user_stats]%}</td>
        </tr>
        <tr>
        </tr>
        <tr>
                <td class="bottom media_left" align="right">{--USERS_STATS--}:</td>
                <td class="bottom media_right">{%pipe,translateComma=$content[user_stats]%}</td>
        </tr>
        <tr>
-               <td class="bottom media_left" align="right">{--USERS_MAX_PER_DAY--}:</td>
+               <td class="bottom media_left" align="right">{--USERS_MAX_MAILS_PER_DAY--}:</td>
                <td class="bottom media_right">{%pipe,translateComma=$content[max]%}</td>
        </tr>
        <tr>
                <td class="bottom media_right">{%pipe,translateComma=$content[max]%}</td>
        </tr>
        <tr>
index cef2931940a5e8af779aae6ab9a1f4adb5bab748..e6d09fdbe87e4fd3ade5b2cb111baa6f40118975 100644 (file)
@@ -3,21 +3,21 @@
        <div class="table_header bottom">
                <strong>{--MEMBER_BEG_LINK_TITLE--}</strong>
        </div>
        <div class="table_header bottom">
                <strong>{--MEMBER_BEG_LINK_TITLE--}</strong>
        </div>
-       <div class="para">
+       <div class="table_row para">
                {--MEMBER_BEG_YOUR_LINK--}<br />
                <strong><a href="{?URL?}/beg.php?userid=$content[userid]">{?URL?}/beg.php?userid=$content[userid]</a></strong>
        </div>
                {--MEMBER_BEG_YOUR_LINK--}<br />
                <strong><a href="{?URL?}/beg.php?userid=$content[userid]">{?URL?}/beg.php?userid=$content[userid]</a></strong>
        </div>
-       <div class="para">
+       <div class="table_row para">
                {--MEMBER_BEG_CLICKS_TOTAL--}
                <strong>{%user,beg_clicks,translateComma%}</strong>
        </div>
                {--MEMBER_BEG_CLICKS_TOTAL--}
                <strong>{%user,beg_clicks,translateComma%}</strong>
        </div>
-       <div class="para">
+       <div class="table_row para">
                {--MEMBER_BEG_POINTS--}
        </div>
                {--MEMBER_BEG_POINTS--}
        </div>
-       <div class="para">
+       <div class="table_row para bottom">
                {%message,MEMBER_BEG_TIMEOUT%}
        </div>
                {%message,MEMBER_BEG_TIMEOUT%}
        </div>
-       <div class="table_footer top">
+       <div class="table_footer">
                <strong>{--MEMBER_BEG_HAVE_FUN--}</strong>
        </div>
 </div>
                <strong>{--MEMBER_BEG_HAVE_FUN--}</strong>
        </div>
 </div>
index d448e67972171b24dc4ca8e5e6b2a902e8e5a1e9..b34e1844789872135dd0444f357a5165658ab1cf 100644 (file)
@@ -1,5 +1,5 @@
-<form accept-charset="UTF-8" id="book" action="{%url=modules.php?module=login&amp;what=book_surfbar%}" method="post" onsubmit="return submitForm()" onreset="return resetForm()">
 <div align="center">
 <div align="center">
+<form accept-charset="UTF-8" id="book" action="{%url=modules.php?module=login&amp;what=book_surfbar%}" method="post" onsubmit="return submitForm()" onreset="return resetForm()">
 <div class="table3 dashed" style="margin-top:10px">
        <div class="table_header bottom" style="padding-top:5px;padding-bottom:5px">
                <strong>URL in Surfbar buchen - Dynamisch:</strong>
 <div class="table3 dashed" style="margin-top:10px">
        <div class="table_header bottom" style="padding-top:5px;padding-bottom:5px">
                <strong>URL in Surfbar buchen - Dynamisch:</strong>
        <div class="member_input" style="padding-top:5px;padding-bottom:5px">
                <div class="para">
                        Jeder Seiten-Aufruf durch andere Mitglieder kostet Ihnen mindestens
        <div class="member_input" style="padding-top:5px;padding-bottom:5px">
                <div class="para">
                        Jeder Seiten-Aufruf durch andere Mitglieder kostet Ihnen mindestens
-                       <strong>{%pipe,SURFBAR_DETERMINE_COSTS,translateComma=true%} {?POINTS?}</strong>.
+                       <strong>{%pipe,determineSurfbarCosts,translateComma=true%} {?POINTS?}</strong>.
                        Surfen Sie mit der Surfbar erhalten Sie mindestens
                        Surfen Sie mit der Surfbar erhalten Sie mindestens
-                       <strong>{%pipe,SURFBAR_DETERMINE_REWARD,translateComma=true%} {?POINTS?}</strong>
+                       <strong>{%pipe,determineSurfbarReward,translateComma=true%} {?POINTS?}</strong>
                        auf Ihr Konto gutgeschrieben.
                </div>
                <div class="para">
                        Sie haben bereits
                        auf Ihr Konto gutgeschrieben.
                </div>
                <div class="para">
                        Sie haben bereits
-                       <strong>{%pipe,SURFBAR_GET_TOTAL_USER_URLS,translateComma%}</strong>
+                       <strong>{%pipe,getSurfbarTotalUserUrls,translateComma%}</strong>
                        von maximal
                        <strong>{%config,translateComma=surfbar_max_order%}</strong>
                        erlaubten URLs gebucht.
                        von maximal
                        <strong>{%config,translateComma=surfbar_max_order%}</strong>
                        erlaubten URLs gebucht.
@@ -38,7 +38,7 @@
 
        <div class="table_header top" style="padding-top:5px;padding-bottom:5px">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
 
        <div class="table_header top" style="padding-top:5px;padding-bottom:5px">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-               <input type="submit" class="form_submit" name="ok" value="{--MEMBER_SURFBAR_ADD_URL--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--MEMBER_SURFBAR_ADD_URL_SUBMIT--}" />
        </div>
 </div>
 
        </div>
 </div>
 
index 195cb14848f90f7ceb322c45f1a485800a1c91eb..e7c712885250413cd3a5d736673143e6134e3e5a 100644 (file)
 
        <div class="member_input" style="padding-top:5px;padding-bottom:5px">
                Jeder Seiten-Aufruf durch andere Mitglieder kostet Ihnen <span
 
        <div class="member_input" style="padding-top:5px;padding-bottom:5px">
                Jeder Seiten-Aufruf durch andere Mitglieder kostet Ihnen <span
-                class="surfbar_points">{%pipe,SURFBAR_DETERMINE_COSTS,translateComma=true%}{?POINTS?}</span>. Surfen Sie mit
-               der Surfbar erhalten Sie <span class="surfbar_points">{%pipe,SURFBAR_DETERMINE_REWARD,translateComma=true%}
+                class="surfbar_points">{%pipe,determineSurfbarCosts,translateComma=true%}{?POINTS?}</span>. Surfen Sie mit
+               der Surfbar erhalten Sie <span class="surfbar_points">{%pipe,determineSurfbarReward,translateComma=true%}
                {?POINTS?}</span> auf Ihr Konto gutgeschrieben.<br />
                <br />
                {?POINTS?}</span> auf Ihr Konto gutgeschrieben.<br />
                <br />
-               Sie haben bereits <strong>{%pipe,SURFBAR_GET_TOTAL_USER_URLS,translateComma%}</strong> von maximal
+               Sie haben bereits <strong>{%pipe,getSurfbarTotalUserUrls,translateComma%}</strong> von maximal
                <strong>{%config,translateComma=surfbar_max_order%}</strong> erlaubten URLs gebucht.
        </div>
 
        <div class="table_header top" style="padding-top:5px;padding-bottom:5px">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
                <strong>{%config,translateComma=surfbar_max_order%}</strong> erlaubten URLs gebucht.
        </div>
 
        <div class="table_header top" style="padding-top:5px;padding-bottom:5px">
                <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-               <input type="submit" class="form_submit" name="ok" value="{--MEMBER_SURFBAR_ADD_URL--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--MEMBER_SURFBAR_ADD_URL_SUBMIT--}" />
        </div>
 </div>
 
        </div>
 </div>
 
index 29af0bab0db7bbf2e2f9cd47e97050b2061e2194..d41bbe7f9189c98be2009709b5e771c9c180b1ec 100644 (file)
@@ -1,5 +1,5 @@
 <div align="center">
 <div align="center">
-<form accept-charset="UTF-8" id="form" action="{%url=modules.php?module=login&amp;what=cash_coupon%}" method="post">
+<form accept-charset="UTF-8" id="cash_coupon" action="{%url=modules.php?module=login&amp;what=cash_coupon%}" method="post">
 <div class="table dashed">
        <div class="table_header bottom">
                <strong>{--MEMBER_CASH_COUPON_TITLE--}</strong>
 <div class="table dashed">
        <div class="table_header bottom">
                <strong>{--MEMBER_CASH_COUPON_TITLE--}</strong>
@@ -18,7 +18,7 @@
 </div>
 </form>
 
 </div>
 </form>
 
-<form accept-charset="UTF-8" id="form" action="{%url=modules.php?module=login&amp;what=cash_coupon%}" method="post">
+<form accept-charset="UTF-8" id="change_coupon_status" action="{%url=modules.php?module=login&amp;what=cash_coupon%}" method="post">
 <div class="table dashed">
        <div class="table_header bottom">
                <strong>{--MEMBER_COUPON_CHANGE_STATUS_TITLE--}</strong>
 <div class="table dashed">
        <div class="table_header bottom">
                <strong>{--MEMBER_COUPON_CHANGE_STATUS_TITLE--}</strong>
index 90574573ad3f961133533d83605c7a143b6cb775..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,9 +1 @@
-<tr>
-       <td class="{%template,ColorSwitch%} bottom" align="right">$content[cat]</td>
-       <td class="{%template,ColorSwitch%} bottom" align="center">
-               <input type="radio" class="form_field" name="cat[$content[id]]" value="Y"$content[jy] />
-               {--YES--}
-               <input type="radio" class="form_field" name="cat[$content[id]]" value="N"$content[jn] />
-               {--NO--}
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
diff --git a/templates/de/html/member/member_cats.tpl b/templates/de/html/member/member_cats.tpl
new file mode 100644 (file)
index 0000000..2d4bcc6
--- /dev/null
@@ -0,0 +1,17 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=categories%}" method="post">
+<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+<tr>
+       <td align="center" class="header_column bottom" width="408"><strong>{--CATEGORY_NAME--}</strong></td>
+       <td align="center" class="header_column bottom" width="180"><strong>{--SELECT_CAT--}</strong></td>
+</tr>
+$content
+<tr>
+       <td colspan="2" align="center" class="table_footer">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" class="form_submit" name="ok" value="{--SUBMIT_CHANGES--}" />
+       </td>
+</tr>
+</table>
+</form>
+</div>
index 64051c458d0d16295cee5151f6744905da54728b..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,9 +1 @@
-<tr>
-       <td colspan="2" align="center" class="table_footer">
-               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-               <input type="submit" class="form_submit" name="ok" value="{--SUBMIT_CHANGES--}" />
-       </td>
-</tr>
-</table>
-</form>
-</div>
+<!-- @DEPRECATED //-->
index 462be13630ed47f275eed8d222911859faf92ce2..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,7 +1 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=categories%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-<tr>
-       <td align="center" class="header_column bottom" width="408"><strong>{--CATEGORY_NAME--}</strong></td>
-       <td align="center" class="header_column bottom" width="180"><strong>{--SELECT_CAT--}</strong></td>
-</tr>
+<!-- @DEPRECATED //-->
diff --git a/templates/de/html/member/member_cats_row.tpl b/templates/de/html/member/member_cats_row.tpl
new file mode 100644 (file)
index 0000000..9057457
--- /dev/null
@@ -0,0 +1,9 @@
+<tr>
+       <td class="{%template,ColorSwitch%} bottom" align="right">$content[cat]</td>
+       <td class="{%template,ColorSwitch%} bottom" align="center">
+               <input type="radio" class="form_field" name="cat[$content[id]]" value="Y"$content[jy] />
+               {--YES--}
+               <input type="radio" class="form_field" name="cat[$content[id]]" value="N"$content[jn] />
+               {--NO--}
+       </td>
+</tr>
index dda93148414da790f133d2cf8866469da613b7fe..d378454bc789279aac2b4e9c234c20dcaefea4a3 100644 (file)
@@ -4,7 +4,7 @@
 <div class="table_header bottom">
        <strong>{%message,MEMBER_EARNING_POPUP_FORM_TITLE=$content[earning_provider]%}</strong>
 </div>
 <div class="table_header bottom">
        <strong>{%message,MEMBER_EARNING_POPUP_FORM_TITLE=$content[earning_provider]%}</strong>
 </div>
-<div class="bottom" style="height:25px;padding-top:5px">
+<div style="height:25px;padding-top:5px">
        {--MEMBER_EARNING_ENTER_DAILY_POPUP_AMOUNT--}
        <input type="text" class="form_field" name="earning_daily_amount" size="5" maxlength="20" />
 </div>
        {--MEMBER_EARNING_ENTER_DAILY_POPUP_AMOUNT--}
        <input type="text" class="form_field" name="earning_daily_amount" size="5" maxlength="20" />
 </div>
index fe10b6e4f6b08509af44c8bb237540bc3b9ca8e5..210b63377fdc9f6b91061857688cd1eeb1f5e268 100644 (file)
@@ -11,7 +11,7 @@
 <div class="bottom" style="padding-top:5px;padding-bottom:5px">
        {--MEMBER_EARNING_CHANGE_IS_ACTIVE--}
        <select name="earning_active" class="form_select" size="1">
 <div class="bottom" style="padding-top:5px;padding-bottom:5px">
        {--MEMBER_EARNING_CHANGE_IS_ACTIVE--}
        <select name="earning_active" class="form_select" size="1">
-       {%pipe,generateYesNoOptionList=$content[earning_active]%}
+       {%pipe,generateYesNoOptions=$content[earning_active]%}
        </select>
 </div>
 <div class="bottom" style="padding-top:5px;padding-bottom:5px">
        </select>
 </div>
 <div class="bottom" style="padding-top:5px;padding-bottom:5px">
index e1bf775206e609ba4070004c3f10e450c0f3e54f..1ff3037889ee6037ba896e1072e6269543385a44 100644 (file)
@@ -6,11 +6,11 @@
        <strong>{--MEMBER_REFBACK_EDIT_TITLE--}</strong><br />
        <span class="notice">{--MEMBER_REFBACK_REFID--}: $content[refid]</span>
 </div>
        <strong>{--MEMBER_REFBACK_EDIT_TITLE--}</strong><br />
        <span class="notice">{--MEMBER_REFBACK_REFID--}: $content[refid]</span>
 </div>
-<div class="bottom" align="center">
+<div align="center">
        {--MEMBER_ENTER_REFBACK_PERCENTS--}:
        <input type="text" class="form_field" name="refback_percents" size="6" maxlength="7" value="{%pipe,translateComma=$content[refback_percents]%}" />&#37;
 </div>
        {--MEMBER_ENTER_REFBACK_PERCENTS--}:
        <input type="text" class="form_field" name="refback_percents" size="6" maxlength="7" value="{%pipe,translateComma=$content[refback_percents]%}" />&#37;
 </div>
-<div class="bottom" align="center">
+<div align="center" class="bottom">
        {--MEMBER_ENTER_REFBACK_NOTICE_FOR_RECIPIENT--}:<br />
        <textarea class="form_field" rows="5" cols="30" name="refback_note"></textarea>
 </div>
        {--MEMBER_ENTER_REFBACK_NOTICE_FOR_RECIPIENT--}:<br />
        <textarea class="form_field" rows="5" cols="30" name="refback_note"></textarea>
 </div>
index 066262c4925c262a3c94b3d846d1401c23c63f68..76fa344726e0d55ef096b9ebe0aaa0044415ea2d 100644 (file)
@@ -3,7 +3,7 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" colspan="2" class="table_header bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" colspan="2" class="table_header bottom">
-                       <strong>{--MEMBER_HTML_INTRO--}</strong>
+                       <strong>{--MEMBER_HTML_TITLE--}</strong>
                </td>
        </tr>
        <tr>
                </td>
        </tr>
        <tr>
index 930851f028955849dcdcec93aa88575370633d30..344b962897158c3842e7192712cccead94140ab8 100644 (file)
@@ -20,7 +20,7 @@
 </table>
 
 <div class="table dashed">
 </table>
 
 <div class="table dashed">
-       <div class="table_header bottom"
+       <div class="table_header bottom">
                <strong>{--BEG_RALLYE_CONDITIONS--}:</strong>
        </div>
        <div class="bottom">
                <strong>{--BEG_RALLYE_CONDITIONS--}:</strong>
        </div>
        <div class="bottom">
index b012436861bbdfba3bd276b9833ed4205a581f1c..373c355a846c8778e446801c4369ccba4f04861b 100644 (file)
@@ -8,12 +8,12 @@
 $content[rows]
 <tr>
        <td colspan="3" class="table_footer">
 $content[rows]
 <tr>
        <td colspan="3" class="table_footer">
-       <ul>
-               <li><div class="notice">Es werden nur aktive User gewertet.</div></li>
-               <li><div class="notice">{%pipe,determineReferralRallyeMinimumUsers=$content[min_users]%}</div></li>
-               <li><div class="notice">{%pipe,determineReferralRallyeMinimumPrices=$content[min_prices]%}</div></li>
-               <li><div class="notice">Der Rechtsweg ist ausgeschlossen.</div></li>
-       </ul>
+               <div align="left"><ul>
+                       <li><div class="notice">Es werden nur aktive User gewertet.</div></li>
+                       <li><div class="notice">{%pipe,determineReferralRallyeMinimumUsers=$content[min_users]%}</div></li>
+                       <li><div class="notice">{%pipe,determineReferralRallyeMinimumPrices=$content[min_prices]%}</div></li>
+                       <li><div class="notice">Der Rechtsweg ist ausgeschlossen.</div></li>
+               </ul></div>
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
index d88f39fb4d10753fada8a0789dee60641a70b6ab..a355702ae55c8d80c56052d6bcc6b5253a3d83db 100644 (file)
@@ -1,6 +1,5 @@
 <tr>
 <tr>
-       <td class="{%template,ColorSwitch%} bottom">$content[idx].</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start].{%pipe,fixEmptyContentToDashes=$content[userid]%}.$content[end]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start].{%pipe,fixEmptyContentToDashes=$content[ref]%}.$content[end]</td>
-       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start].{%pipe,fixEmptyContentToDashes=$content[infos]%}.$content[end]</td>
+       <td align="center" class="{%template,ColorSwitch%} bottom"><strong>$content[idx]</strong></td>
+       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start]{%pipe,fixEmptyContentToDashes=$content[userid]%}$content[end]</td>
+       <td align="center" class="{%template,ColorSwitch%} bottom">$content[start]{%pipe,fixEmptyContentToDashes=$content[ref]%}$content[end]</td>
 </tr>
 </tr>
index 4ec68d8cfc6952b6ccd6b665af3433341846c493..57207486b3c014ead1ee733839ec693213c1843e 100644 (file)
@@ -1,5 +1,5 @@
 <div class="table2 dashed">
 <div class="table2 dashed">
-<div class="header_column bottom">
+<div class="table_header bottom">
        <strong>{--MEMBER_REFBACK_TITLE--}</strong>
 </div>
 $content
        <strong>{--MEMBER_REFBACK_TITLE--}</strong>
 </div>
 $content
diff --git a/templates/de/html/member/member_list_surfbar_table.tpl b/templates/de/html/member/member_list_surfbar_table.tpl
new file mode 100644 (file)
index 0000000..1d02cd8
--- /dev/null
@@ -0,0 +1,5 @@
+<table border="0" cellspacing="0" cellpadding="1" width="100%">
+<tr>
+$content
+</tr>
+</table>
index 72b674b8297ae10748e69c27d86a9aea79a1f2b8..84f424d73b31b56f08afa2093a52d8152a53dee1 100644 (file)
@@ -1,4 +1,5 @@
-<div class="para"><div align="center">
+<div class="para">
+<div align="center">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="650">
 <tr>
        <td colspan="2" align="center" class="header_column bottom">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="650">
 <tr>
        <td colspan="2" align="center" class="header_column bottom">
@@ -6,47 +7,47 @@
        </td>
 </tr>
 <tr>
        </td>
 </tr>
 <tr>
-       <td width="45%" align="center" class="switch_sw2 bottom right">{--CONFIRM_LINK--}:</strong></td>
+       <td width="45%" align="center" class="switch_sw2 bottom right">{--CONFIRM_LINK--}:</td>
        <td width="55%" align="center" class="switch_sw2 bottom">{--EMAIL_STATUS_ACTIVE--}</td>
 </tr>
 <tr>
        <td width="55%" align="center" class="switch_sw2 bottom">{--EMAIL_STATUS_ACTIVE--}</td>
 </tr>
 <tr>
-       <td align="center" class="switch_sw1 bottom right">{--EMAIL_SENDER--}:</strong></td>
+       <td align="center" class="switch_sw1 bottom right">{--EMAIL_SENDER--}:</td>
        <td align="center" class="switch_sw1 bottom">
                $content[sender]
        </td>
 </tr>
 <tr>
        <td align="center" class="switch_sw1 bottom">
                $content[sender]
        </td>
 </tr>
 <tr>
-       <td align="center" class="switch_sw2 bottom right">{--EMAIL_SUBJECT--}:</strong></td>
+       <td align="center" class="switch_sw2 bottom right">{--EMAIL_SUBJECT--}:</td>
        <td align="center" class="switch_sw2 bottom">
                $content[subject]
        </td>
 </tr>
 <tr>
        <td align="center" class="switch_sw2 bottom">
                $content[subject]
        </td>
 </tr>
 <tr>
-       <td align="center" class="switch_sw1 bottom right" valign="top">{--EMAIL_TEXT--}:</strong></td>
+       <td align="center" class="switch_sw1 bottom right" valign="top">{--EMAIL_TEXT--}:</td>
        <td align="center" class="switch_sw1 bottom">
                <pre>$content[text]</pre>
        </td>
 </tr>
 <tr>
        <td align="center" class="switch_sw1 bottom">
                <pre>$content[text]</pre>
        </td>
 </tr>
 <tr>
-       <td align="center" class="switch_sw2 bottom right">{--EMAIL_CATEGORY--}:</strong></td>
+       <td align="center" class="switch_sw2 bottom right">{--EMAIL_CATEGORY--}:</td>
        <td align="center" class="switch_sw2 bottom">
                {%pipe,getCategory=$content[cat_id]%}
        </td>
 </tr>
 <tr>
        <td align="center" class="switch_sw2 bottom">
                {%pipe,getCategory=$content[cat_id]%}
        </td>
 </tr>
 <tr>
-       <td align="center" class="switch_sw1 bottom right">{--EMAIL_TIMESTAMP--}:</strong></td>
+       <td align="center" class="switch_sw1 bottom right">{--EMAIL_TIMESTAMP--}:</td>
        <td align="center" class="switch_sw1 bottom">
                $content[timestamp]
        </td>
 </tr>
 <tr>
        <td align="center" class="switch_sw1 bottom">
                $content[timestamp]
        </td>
 </tr>
 <tr>
-       <td align="center" class="switch_sw2 bottom right">{--EMAIL_TIME--}:</strong></td>
+       <td align="center" class="switch_sw2 bottom right">{--EMAIL_TIME--}:</td>
        <td align="center" class="switch_sw2 bottom">
                {%pipe,createFancyTime=$content[time]%}
        </td>
 </tr>
 <tr>
        <td align="center" class="switch_sw2 bottom">
                {%pipe,createFancyTime=$content[time]%}
        </td>
 </tr>
 <tr>
-       <td align="center" class="switch_sw1 bottom right">{--EMAIL_POINTS--}:</strong></td>
+       <td align="center" class="switch_sw1 bottom right">{--EMAIL_POINTS--}:</td>
        <td align="center" class="switch_sw1 bottom" style="padding-right:5px">
                {%pipe,translateComma=$content[points]%} {?POINTS?}
        </td>
        <td align="center" class="switch_sw1 bottom" style="padding-right:5px">
                {%pipe,translateComma=$content[points]%} {?POINTS?}
        </td>
@@ -57,4 +58,5 @@
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
-</div></div>
+</div>
+</div>
index 7cf08d5f2c8bc2a471c42d38dd677cb3cc044dcf..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,10 +1 @@
-<div align="center">
-<form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=order%}" method="posr">
-       <div class="table">
-               {--MEMBER_THANX_ORDER--}
-       </div>
-       <div>
-               <input type="submit" class="form_submit" value="{--MEMBER_CONTINUE_AREA--}" />
-       </div>
-</form>
-</div>
+<!-- @DEPRECATED //-->
index 7691111d41c5cab422351591f24183dc3a271d1a..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,6 +1 @@
-<tr>
-       <td class="bottom" colspan="2" align="center">
-               <strong>{--MEMBER_HTML_VALID_TAGS--}:</strong><br />
-               $content <input type="hidden" name="html" value="Y" />
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
index 6d1a04201a6413396981d03e773ca376a24420f9..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,15 +1 @@
-<tr>
-       <td colspan="2" class="table_header bottom" align="center">
-               <strong>{--MEMBER_HTML_ORDER_INTRO--}</strong>
-       </td>
-</tr>
-<tr>
-       <td class="bottom" valign="top" align="center" height="20">
-               {--MEMBER_HTML_MSG--}:
-               <input type="radio" class="form_field" name="html" value="Y" />
-       </td>
-       <td class="bottom" valign="top" align="center">
-               {--MEMBER_NORMAL_MSG--}:
-               <input type="radio" class="form_field" name="html" value="N" checked="checked" />
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
index 677a17026c04a30a83753464470feede06a56703..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,32 +1 @@
-<tr>
-       <td colspan="2" align="center" class="table_header bottom">
-               <strong>{--MEMBER_ORDER_PAGE1_INTRO--}</strong>
-       </td>
-</tr>
-<tr>
-       <td colspan="2" align="center">
-               <div class="para">
-                       Geben Sie hier die ersten ein bis drei Stellen der Postleitzahl ein,
-                       in der gesendet werden soll.
-               </div>
-
-               <div class="para">
-                       Beispiele:
-                       <ul>
-                               <li><strong>1</strong> : Sendet nur an Mitglieder, deren Postleitzahl mit 1 anf&auml;ngt.</li>
-                               <li><strong>12</strong> : Sendet nur an Mitglieder, deren Postleitzahl mit 12 anf&auml;ngt.</li>
-                               <li><strong>123</strong> : Sendet nur an Mitglieder, deren Postleitzahl mit 123 anf&auml;ngt.</li>
-                       </ul>
-               </div>
-
-               <div class="para">
-                       Oder geben Sie nichts ein, wenn Sie diese Option nicht w&uuml;nschen.
-               </div>
-       </td>
-</tr>
-<tr>
-       <td class="bottom" align="right">{--MEMBER_ENTER_ZIP_CODE--}:</td>
-       <td class="bottom">
-               <input type="text" class="form_field" name="zip" size="5" maxlength="6" value="$content[zip]" />
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
index ab59fa768f7e060af5265c124eef846c488b1300..11f5d85d80b1ca4d16cf4c19e14af24e5ec2a60f 100644 (file)
@@ -1,17 +1 @@
-<tr>
-       <td colspan="2" align="center" class="table_header bottom" height="30">
-               <strong>{--MEMBER_ORDER_PAGE2_INTRO--}</strong>
-       </td>
-</tr>
-<tr>
-       <td class="bottom" align="center" colspan="2">
-       <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
-               <tr>
-                       <td align="right">{--MEMBER_ENTER_ZIP_CODE--}</td>
-                       <td>
-                               <input type="text" class="form_field" name="zip" size="5" maxlength="6" value="$content" />
-                       </td>
-               </tr>
-       </table>
-       </td>
-</tr>
+<!-- @DEPRECATED //-->
diff --git a/templates/de/html/member/member_order_html_ext.tpl b/templates/de/html/member/member_order_html_ext.tpl
new file mode 100644 (file)
index 0000000..b2c02e1
--- /dev/null
@@ -0,0 +1,5 @@
+<div class="para">
+       <strong>{--MEMBER_HTML_VALID_TAGS--}:</strong><br />
+       {%pipe,addValidHtmlTags%}
+       <input type="hidden" name="html" value="Y" />
+</div>
diff --git a/templates/de/html/member/member_order_html_intro.tpl b/templates/de/html/member/member_order_html_intro.tpl
new file mode 100644 (file)
index 0000000..c50feea
--- /dev/null
@@ -0,0 +1,12 @@
+<div class="table_header bottom">
+       <strong>{--MEMBER_HTML_ORDER_TITLE--}</strong>
+</div>
+
+<div class="table_row bottom">
+       <div align="center">
+               {--MEMBER_HTML_MESSAGE--}
+               <input type="radio" class="form_field" name="html" value="Y" />
+               {--MEMBER_NORMAL_MESSAGE--}
+               <input type="radio" class="form_field" name="html" value="N" checked="checked" />
+       </div>
+</div>
index 72a279ac871ba04524097459595fe3aa362eaa8c..3b09f801ed1a9631bf1c392c5ec03c87fd502b0e 100644 (file)
@@ -1,14 +1,18 @@
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=order%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=order%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" class="table dashed">
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--MEMBER_ORDER_PAGE1_TITLE--}</strong>
+       </div>
+
        $content[zip_content]
        $content[zip_content]
+
        $content[html_extension]
        $content[html_extension]
-       <tr>
-               <td colspan="2" align="center" class="table_footer">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" name="data" class="form_submit" value="{--ORDER_PAGE_2--}" />
-               </td>
-       </tr>
-</table>
+
+       <div class="table_footer">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" name="data" class="form_submit" value="{--ORDER_PAGE_2--}" />
+       </div>
+</div>
 </form>
 </div>
 </form>
 </div>
index 10031952107e125943dfea79832da426b7fe2741..d8954f64aa5f0f8cc8b8ebd57f321fd20ff98669 100644 (file)
@@ -1,67 +1,79 @@
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=order%}" method="post">
 <div align="center">
 <form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=order%}" method="post">
-<table border="0" cellspacing="0" cellpadding="0" width="660" class="table dashed">
+<div class="table dashed">
+       <div class="table_header bottom">
+               <strong>{--MEMBER_ORDER_PAGE2_TITLE--}</strong>
+       </div>
+
        $content[zip_content]
        $content[zip_content]
-       <tr>
-               <td align="right">{--SELECT_MAIL_TYPE--}:</td>
-               <td><select name="mail_type" size="1" class="form_select">
+
+       <div class="para">
+               <label for="mail_type">{--MEMBER_SELECT_MAIL_TYPE--}</label>
+               <div>
+               <select name="mail_type" size="1" class="form_select">
                        <option value="X" disabled="disabled">{--PLEASE_SELECT--}</option>
                        $content[type_selection]
                        <option value="X" disabled="disabled">{--PLEASE_SELECT--}</option>
                        $content[type_selection]
-               </select></td>
-       </tr>
-       <tr>
-               <td align="right">{--SELECT_CATEGORY--}:</td>
-               <td><select name="cat" size="1" class="form_select">
+               </select>
+               </div>
+       </div>
+
+       <div class="para">
+               <label for="">{--SELECT_CATEGORY--}</label>
+               <div>
+               <select name="cat" size="1" class="form_select">
                        <option value="X" disabled="disabled">{--PLEASE_SELECT--}</option>
                        $content[category_selection]
                        <option value="X" disabled="disabled">{--PLEASE_SELECT--}</option>
                        $content[category_selection]
-               </select></td>
-       </tr>
-       <tr>
-               <td align="right">
-                       {--ENTER_RECEIVER--}: Minimum: <strong>{?order_min?}</strong>
-               </td>
-               <td><input type="text" class="form_field" name="receiver" size="4" maxlength="5" value="$content[target_send]" /></td>
-       </tr>
-       <tr>
-               <td align="right">{--ENTER_SUBJECT--}:</td>
-               <td><input type="text" class="form_field" name="subject" size="30" maxlength="150" value="$content[subject]" /></td>
-       </tr>
+               </select>
+               </div>
+       </div>
+
+       <div class="para">
+               <label for="receiver">{--ENTER_RECEIVER--}</label>
+               <div>
+               <input type="text" class="form_field" name="receiver" size="4" maxlength="5" value="$content[target_send]" />
+               <span class="notice tiny">(Minimum: <strong>{?order_min?})</strong></span>
+               </div>
+       </div>
+
+       <div class="para">
+               <label for="subject">{--ENTER_SUBJECT--}</label>
+               <div>
+               <input type="text" class="form_field" name="subject" size="30" maxlength="150" value="$content[subject]" />
+               </div>
+       </div>
+
        $content[html_extension]
        $content[html_extension]
-       <tr>
-               <td align="right">{--ENTER_TEXT--}:</td>
-               <td><textarea name="text" class="form_field" rows="10" cols="50">$content[text]</textarea></td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="notice">
-                       <strong>{--MEMBER_PLEASE_NOTICE--}</strong>
-               </td>
-       </tr>
-       <tr>
-               <td colspan="2" align="center" class="notice bottom">
-                       <div align="left">
-                       <ol>
-                               <li>Bitte pr&uuml;fen Sie <strong>unbedingt vor</strong> dem Absenden die Verf&uuml;gbarkeit und <strong><u>Framekiller-Freiheit</u></strong> ihrer beworbenen Adresse!</li>
-                               <li>Unsere AGBs vergessen? <strong>[<a href="{%url=agb.php%}" target="_blank">Hier sind sie nochmal</a>]</strong>.</li>
-                               <li>Gesperrte URLs k&ouml;nnen nicht ein zweites Mal beworben werden.</li>
-                               <li>Ihre Seite wird vor dem entg&uuml;ltigem Absenden auf Framekiller hin automatisch <u>doppelt</u> gepr&uuml;ft. Sollten Sie also nur Ihre beworbene Seite sehen, enth&auml;lt diese einen Frame-Killer.</li>
-                               <li>Ist Sponsor-Mail ausgew&auml;hlt, wird die beworbene Seite nicht geladen, sondern eine neutrale Seite mit unseren Sponsor-Bannern!</li>
-                               <li>Fremde {?mt_word3?} d&uuml;rfen w&auml;hrend der gesamten Startphase (bis 100 aktive Mitglieder) nicht mehr beworben werden und werden von uns abgelehnt!</li>
-                       </ol>
-                       </div>
-               </td>
-       </tr>
-       <tr>
-               <td class="table_footer" align="right">{--MEMBER_ENTER_URL--}:</td>
-               <td class="table_footer">
-                       <input type="text" class="form_field" name="url" size="60" maxlength="350" value="$content[url]" />
-               </td>
-       </tr>
-       <tr>
-               <td class="table_footer" colspan="2" align="center">
-                       <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" name="frametester" class="form_submit" value="{--CONTINUE_FRAMETESTER--}" />
-               </td>
-       </tr>
-</table>
+
+       <div class="para">
+               <label for="text">{--ENTER_TEXT--}</label>
+               <div>
+               <textarea name="text" class="form_field" rows="10" cols="50">$content[text]</textarea>
+               </div>
+       </div>
+
+       <div class="para">
+               <label for="url">{--MEMBER_ENTER_URL--}</label>
+               <div>
+               <input type="text" class="form_field" name="url" size="60" maxlength="350" value="$content[url]" />
+               </div>
+       </div>
+
+       <div class="para notice">
+               <strong>{--MEMBER_PLEASE_NOTICE--}</strong>
+               <ol>
+                       <li>Bitte pr&uuml;fen Sie <strong>unbedingt vor</strong> dem Absenden die Verf&uuml;gbarkeit und <strong><u>Framekiller-Freiheit</u></strong> ihrer beworbenen Adresse!</li>
+                       <li>Unsere AGBs vergessen? <strong>[<a href="{%template,GetTermsConditionsLink%}" target="_blank">Hier sind sie nochmal</a>]</strong>.</li>
+                       <li>Gesperrte URLs k&ouml;nnen nicht ein zweites Mal beworben werden.</li>
+                       <li>Ihre Seite wird vor dem entg&uuml;ltigem Absenden auf Framekiller hin automatisch <u>doppelt</u> gepr&uuml;ft. Sollten Sie also nur Ihre beworbene Seite sehen, enth&auml;lt diese einen Frame-Killer.</li>
+                       <li>Ist Sponsor-Mail ausgew&auml;hlt, wird die beworbene Seite nicht geladen, sondern eine neutrale Seite mit unseren Sponsor-Bannern!</li>
+                       <li>Fremde {?mt_word3?} d&uuml;rfen w&auml;hrend der gesamten Startphase (bis 100 aktive Mitglieder) nicht mehr beworben werden und werden von uns abgelehnt!</li>
+               </ol>
+       </div>
+
+       <div class="table_footer top" colspan="2" align="center">
+               <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
+               <input type="submit" name="frametester" class="form_submit" value="{--CONTINUE_FRAMETESTER--}" />
+       </div>
+</div>
 </form>
 </div>
 </form>
 </div>
diff --git a/templates/de/html/member/member_order_thanks.tpl b/templates/de/html/member/member_order_thanks.tpl
new file mode 100644 (file)
index 0000000..19785b6
--- /dev/null
@@ -0,0 +1,15 @@
+<div align="center">
+<form accept-charset="UTF-8" action="{%url=modules.php?module=login&amp;what=order%}" method="post">
+       <div class="table_header bottom">
+               {--MEMBER_THANX_ORDER_TITLE--}
+       </div>
+
+       <div class="bottom">
+               {--MEMBER_THANX_ORDER--}
+       </div>
+
+       <div class="table_footer>
+               <input type="submit" class="form_submit" value="{--MEMBER_CONTINUE_AREA--}" />
+       </div>
+</form>
+</div>
diff --git a/templates/de/html/member/member_order_zip1.tpl b/templates/de/html/member/member_order_zip1.tpl
new file mode 100644 (file)
index 0000000..798516e
--- /dev/null
@@ -0,0 +1,23 @@
+<div class="para">
+       Geben Sie hier die ersten ein bis drei Stellen der Postleitzahl ein, in der gesendet werden soll.
+</div>
+
+<div class="para">
+       Beispiele:
+       <ul>
+               <li><strong>1</strong> : Sendet nur an Mitglieder, deren Postleitzahl mit 1 anf&auml;ngt.</li>
+               <li><strong>12</strong> : Sendet nur an Mitglieder, deren Postleitzahl mit 12 anf&auml;ngt.</li>
+               <li><strong>123</strong> : Sendet nur an Mitglieder, deren Postleitzahl mit 123 anf&auml;ngt.</li>
+       </ul>
+</div>
+
+<div class="para">
+       Oder geben Sie nichts ein, wenn Sie diese Option nicht w&uuml;nschen.
+</div>
+
+<div class="table_row bottom">
+       <div align="center">
+               {--MEMBER_ENTER_ZIP_CODE--}
+               <input type="text" class="form_field" name="zip" size="5" maxlength="6" value="$content[zip]" />
+       </div>
+</div>
diff --git a/templates/de/html/member/member_order_zip2.tpl b/templates/de/html/member/member_order_zip2.tpl
new file mode 100644 (file)
index 0000000..48caccf
--- /dev/null
@@ -0,0 +1,4 @@
+<div class="table_row bottom">
+       {--MEMBER_ENTER_ZIP_CODE--}
+       <input type="text" class="form_field" name="zip" size="5" maxlength="6" value="$content" />
+</div>
index 749b14b03e1c94e7ab8b07ab24357f58be458616..cbfdb38f9c293a97ffffb395bc376320f31837a1 100644 (file)
@@ -41,7 +41,7 @@
        <tr>
                <td colspan="2" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        <tr>
                <td colspan="2" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--MEMBER_PAYOUT_SEND_NOW--}" />
+                       <input type="submit" class="form_submit" name="ok" value="{--MEMBER_PAYOUT_SEND_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
@@ -54,6 +54,6 @@
        </div>
 
        <div class="para">
        </div>
 
        <div class="para">
-               <a href="{%url=agb.php%}" target="_blank">{--MEMBER_PAYOUT_REMEMBER_TERMS--}</a>
+               <a href="{%template,GetTermsConditionsLink%}" target="_blank">{--MEMBER_PAYOUT_REMEMBER_TERMS--}</a>
        </div>
 </div>
        </div>
 </div>
index e65a66252364a4316112f0a7dfeb75e061f9f2c3..e5808f2a7ff45318e30fc62722eedafe58d6adf5 100644 (file)
@@ -41,7 +41,7 @@
        <tr>
                <td colspan="2" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        <tr>
                <td colspan="2" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--MEMBER_PAYOUT_SEND_NOW--}" />
+                       <input type="submit" class="form_submit" name="ok" value="{--MEMBER_PAYOUT_SEND_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index d342497ab209d845964240fd0d364de173d2a56b..ee6df86aad3fa452fd80c2bb9ecc9a26391e4d8a 100644 (file)
@@ -21,7 +21,7 @@
        </tr>
        <tr>
                <td class="member_data bottom">{--POINTS_USED--}</td>
        </tr>
        <tr>
                <td class="member_data bottom">{--POINTS_USED--}</td>
-               <td class="member_data bottom">-{%user,used_points,translateComma%} {?POINTS?}</td>
+               <td class="member_data bottom">-{%user,used_points,translateComma=$content[userid]%} {?POINTS?}</td>
                <td class="member_data bottom">-</td>
                <td class="member_data bottom" align="center">-</td>
        </tr>
                <td class="member_data bottom">-</td>
                <td class="member_data bottom" align="center">-</td>
        </tr>
index 71afe4612922d4297053a11ff6f8502a9efc6b66..a0c040d3c0c2dea7c552bba1ba2f7d7de15a05b8 100644 (file)
@@ -2,7 +2,7 @@
 <table border="0" cellspacing="0" cellpadding="0" width="400" class="table dashed">
        <tr>
                <td align="right" height="40" class="register_left" style="margin-right:3px">
 <table border="0" cellspacing="0" cellpadding="0" width="400" class="table dashed">
        <tr>
                <td align="right" height="40" class="register_left" style="margin-right:3px">
-                       {--MAX_PER_DAY--}:
+                       {--MAX_MAILS_PER_DAY--}:
                </td>
                <td class="register_right">
                        <select name="max_mails" size="1" class="form_select">
                </td>
                <td class="register_right">
                        <select name="max_mails" size="1" class="form_select">
index 9ce8f3e1d40bd7e6c1778389e245e76c74a53ce1..ff298c0bd62b4cb2c7128e41ce846d02178366ad 100644 (file)
@@ -6,16 +6,16 @@
 
        <div style="padding:5px">
                Bei der dynamischen Verg&uuml;tung werden Ihnen derzeit mindestens
 
        <div style="padding:5px">
                Bei der dynamischen Verg&uuml;tung werden Ihnen derzeit mindestens
-               <strong>{%pipe,SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE,translateComma%}</strong>
-               und maximal <strong>{%pipe,SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE,translateComma%}
+               <strong>{%pipe,calculateSurfbarDynamicMininumValue,translateComma%}</strong>
+               und maximal <strong>{%pipe,calculateSurfbarDynamicMaximumValue,translateComma%}
                {?POINTS?}</strong> Aufschlag zum Basispreis f&uuml;r jede besuchte
                Seite verg&uuml;tet. Diese m&uuml;ssen Sie mindestens
                {?POINTS?}</strong> Aufschlag zum Basispreis f&uuml;r jede besuchte
                Seite verg&uuml;tet. Diese m&uuml;ssen Sie mindestens
-               <strong>{%pipe,SURFBAR_CALCULATE_DYNAMIC_MIN_VALUE,createFancyTime%}</strong>
+               <strong>{%pipe,calculateSurfbarDynamicMininumValue,createFancyTime%}</strong>
                und maximal
                und maximal
-               <strong>{%pipe,SURFBAR_CALCULATE_DYNAMIC_MAX_VALUE,createFancyTime%}</strong>
+               <strong>{%pipe,calculateSurfbarDynamicMaximumValue,createFancyTime%}</strong>
                zus&auml;tzlich zur Basiszeit angesehen haben und k&ouml;nnen die selbe
                Seite erst nach zus&auml;tzlichen
                zus&auml;tzlich zur Basiszeit angesehen haben und k&ouml;nnen die selbe
                Seite erst nach zus&auml;tzlichen
-               <strong>{%pipe,SURFBAR_CALCULATE_DYNAMIC_LOCK,createFancyTime%}</strong>
+               <strong>{%pipe,calculateSurfbarDynamicLock,createFancyTime%}</strong>
                wieder aufrufen.
        </div>
 
                wieder aufrufen.
        </div>
 
                Einige Hinweise zur Berechnung: Die derzeige Mitgliederanzahl von
                <strong>{%pipe,getTotalConfirmedUser,translateComma%}</strong>, die
                derzeit die Surfbar nutzenden
                Einige Hinweise zur Berechnung: Die derzeige Mitgliederanzahl von
                <strong>{%pipe,getTotalConfirmedUser,translateComma%}</strong>, die
                derzeit die Surfbar nutzenden
-               <strong>{%pipe,SURFBAR_DETERMINE_TOTAL_ONLINE%}</strong> Mitglieder, die
+               <strong>{%pipe,determineSurfbarTotalOnline%}</strong> Mitglieder, die
                gesamt in der Surfbar gebuchten
                gesamt in der Surfbar gebuchten
-               <strong>{%pipe,SURFBAR_GET_TOTAL_URLS,translateComma%}</strong>
+               <strong>{%pipe,getSurfbarTotalUrls,translateComma%}</strong>
                URLs (ohne von unseren Sponsoren), sowie Ihre gebuchten
                URLs (ohne von unseren Sponsoren), sowie Ihre gebuchten
-               <strong>{%pipe,getMemberId,SURFBAR_GET_TOTAL_USER_URLS,translateComma%}</strong> URLs werden als
+               <strong>{%pipe,getMemberId,getSurfbarTotalUserUrls,translateComma%}</strong> URLs werden als
                Berechnungsgrundlage verwendet. Sie erhalten allerdings nur einen
                reduzierten Anteil von
                <strong>{%config,translateComma=surfbar_dynamic_percent%}&#37;</strong>.
                Berechnungsgrundlage verwendet. Sie erhalten allerdings nur einen
                reduzierten Anteil von
                <strong>{%config,translateComma=surfbar_dynamic_percent%}&#37;</strong>.
index a4e1e6b133af3bb7bf622b017d42fb2ac24ef270..62abcc96a9efc37ec379ca9dc3bb5b7c1eacb03e 100644 (file)
@@ -3,7 +3,7 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="right" class="bottom" height="40"><strong>
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="right" class="bottom" height="40"><strong>
-                       {--TRANSFER_SELECT_TARGET_USERID--}:</strong>
+                       {--MEMBER_SELECT_TRANSFER_TARGET_USERID--}:</strong>
                </td>
                <td align="center" class="bottom">
                        $content[userid_selection]
                </td>
                <td align="center" class="bottom">
                        $content[userid_selection]
@@ -11,7 +11,7 @@
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
-                       <strong>{--TRANSFER_POINTS_MAXIMUM--}:</strong>
+                       <strong>{--MEMBER_TRANSFER_POINTS_MAXIMUM--}:</strong>
                </td>
                <td class="bottom">
                        {%pipe,translateComma=$content[max_transferable]%} {?POINTS?}
                </td>
                <td class="bottom">
                        {%pipe,translateComma=$content[max_transferable]%} {?POINTS?}
@@ -19,7 +19,7 @@
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
-                       <strong>{--TRANSFER_POINTS_AMOUNT--}:</strong>
+                       <strong>{--MEMBER_TRANSFER_POINTS_AMOUNT--}:</strong>
                </td>
                <td class="bottom">
                        <input type="text" class="form_field" name="points" size="5" maxlength="10" value="{%pipe,bigintval=$content[points]%}"$content[to_disabled] /> {?POINTS?}
                </td>
                <td class="bottom">
                        <input type="text" class="form_field" name="points" size="5" maxlength="10" value="{%pipe,bigintval=$content[points]%}"$content[to_disabled] /> {?POINTS?}
@@ -27,7 +27,7 @@
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
-                       <strong>{--TRANSFER_POINTS_REASON--}:</strong>
+                       <strong>{--MEMBER_ENTER_TRANSFER_POINTS_REASON--}:</strong>
                </td>
                <td class="bottom">
                        <input type="text" class="form_field" name="reason" size="30" maxlength="255" value="{%pipe,secureString=$content[reason]%}"$content[to_disabled] />
                </td>
                <td class="bottom">
                        <input type="text" class="form_field" name="reason" size="30" maxlength="255" value="{%pipe,secureString=$content[reason]%}"$content[to_disabled] />
@@ -35,7 +35,7 @@
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
-                       <strong>{--TRANSFER_POINTS_SECURITY_CODE--}:</strong>
+                       <strong>{--MEMBER_TRANSFER_POINTS_SECURITY_CODE--}:</strong>
                </td>
                <td class="bottom">
                        $content[captcha_code]
                </td>
                <td class="bottom">
                        $content[captcha_code]
@@ -43,7 +43,7 @@
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
        </tr>
        <tr>
                <td align="right" class="bottom" height="40">
-                       <strong>{--TRANSFER_ENTER_PASSWORD--}:</strong>
+                       <strong>{--MEMBER_ENTER_TRANSFER_PASSWORD--}:</strong>
                </td>
                <td class="bottom">
                        <input type="password" class="form_field" name="password" size="10" maxlength="255"$content[to_disabled] />
                </td>
                <td class="bottom">
                        <input type="password" class="form_field" name="password" size="10" maxlength="255"$content[to_disabled] />
@@ -52,7 +52,7 @@
        <tr>
                <td colspan="2" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}"$content[to_disabled] />
        <tr>
                <td colspan="2" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}"$content[to_disabled] />
-                       <input type="submit" class="form_submit" name="ok" value="{--TRANSFER_ADD_NEW--}"$content[to_disabled] />
+                       <input type="submit" class="form_submit" name="ok" value="{--MEMBER_TRANSFER_ADD_NEW_SUBMIT--}"$content[to_disabled] />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index c3874e5166f4c5d9f27abafa1e24d01537221d5f..ef6cc07471a9a1189d1e09374a350a4944ef9298 100644 (file)
@@ -2,11 +2,11 @@
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" width="260" class="bottom right" height="40">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed">
        <tr>
                <td align="center" width="260" class="bottom right" height="40">
-                       {--TRANSFER_LIST_INCOMING--}:<br />
+                       {--MEMBER_LIST_INCOMING_TRANSFER_TITLE--}:<br />
                        <strong>$content[in_link]</strong>
                </td>
                <td align="center" width="260" class="bottom">
                        <strong>$content[in_link]</strong>
                </td>
                <td align="center" width="260" class="bottom">
-                       {--TRANSFER_LIST_OUTGOING--}:<br />
+                       {--MEMBER_LIST_OUTGOING_TRANSFER_TITLE--}:<br />
                        <strong>$content[out_link]</strong>
                </td>
        </tr>
                        <strong>$content[out_link]</strong>
                </td>
        </tr>
@@ -18,7 +18,7 @@
        </tr>
        <tr>
                <td align="center" colspan="2" height="40" class="bottom">
        </tr>
        <tr>
                <td align="center" colspan="2" height="40" class="bottom">
-                       <strong>{--TRANSFER_TO_MEMBER_NOW--}:</strong><br />
+                       <strong>{--MEMBER_START_NEW_TRANSFER--}:</strong><br />
                        $content[new_link]
                </td>
        </tr>
                        $content[new_link]
                </td>
        </tr>
index ea95d1cb0ad9d6c2f075249eaca6cf62ff66c812..209b642cd5eab6ad44066684dcc44fa1881d7f11 100644 (file)
@@ -1,17 +1,17 @@
 <tr>
 <tr>
-  <td class="transfer_row1 {%template,ColorSwitch%} bottom right">
-    <div class="transfer_row1">$content[trans_id]</div>
-  </td>
-  <td class="transfer_row2 {%template,ColorSwitch%} bottom right">
-    <div class="transfer_row2">$content[time_trans]</div>
-  </td>
-  <td class="transfer_row3 {%template,ColorSwitch%} bottom right">
-    <div class="transfer_row3">$content[party_userid]</div>
-  </td>
-  <td class="transfer_row4 {%template,ColorSwitch%} bottom right">
-    <div class="transfer_row4">$content[reason]</div>
-  </td>
-  <td class="transfer_row5 {%template,ColorSwitch%} bottom">
-    <div class="transfer_row5">{%pipe,translateComma=$content[points]%}</div>
-  </td>
+       <td class="transfer_row1 {%template,ColorSwitch%} bottom right">
+               <div class="transfer_row1">$content[trans_id]</div>
+       </td>
+       <td class="transfer_row2 {%template,ColorSwitch%} bottom right">
+               <div class="transfer_row2">$content[time_trans]</div>
+       </td>
+       <td class="transfer_row3 {%template,ColorSwitch%} bottom right">
+               <div class="transfer_row3">$content[party_userid]</div>
+       </td>
+       <td class="transfer_row4 {%template,ColorSwitch%} bottom right">
+               <div class="transfer_row4">$content[reason]</div>
+       </td>
+       <td class="transfer_row5 {%template,ColorSwitch%} bottom">
+               <div class="transfer_row5">{%pipe,translateComma=$content[points]%}</div>
+       </td>
 </tr>
 </tr>
index 7d583e19c153a3332cbdecea874288b6730a3323..95662a006cc1d10939906be1d8471275509ff0c8 100644 (file)
@@ -2,7 +2,7 @@
 <table border="0" cellspacing="0" cellpadding="0" width="420" class="table dashed">
        <tr>
                <td align="center" width="260" class="bottom" height="50">
 <table border="0" cellspacing="0" cellpadding="0" width="420" class="table dashed">
        <tr>
                <td align="center" width="260" class="bottom" height="50">
-                       {--TRANSFER_ALLOW_OPT_IN--}
+                       {--MEMBER_ALLOW_TRANSFER_OPT_IN--}
                </td>
                <td align="center" width="160" class="bottom" height="50">
                        <input type="radio" class="form_field" name="opt_in" value="Y"$content[allow_y] /> {--YES--}<br />
                </td>
                <td align="center" width="160" class="bottom" height="50">
                        <input type="radio" class="form_field" name="opt_in" value="Y"$content[allow_y] /> {--YES--}<br />
index 63bd7e0e65f1dca7108e9adfffc05a8eb31658cb..f42860088f6730141d87e9abfd18df8bfc5dd1cd 100644 (file)
@@ -1,3 +1,4 @@
+<div align="center">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="650">
 <tr>
        <td width="100" class="header_column bottom right" align="center"><strong>{--CONFIRM_LINK2--}:</strong></td>
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="650">
 <tr>
        <td width="100" class="header_column bottom right" align="center"><strong>{--CONFIRM_LINK2--}:</strong></td>
@@ -16,3 +17,4 @@ $content[rows]
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
+</div>
index 10c0fbca382a79b7cfe70ac5fe6522d85f058ce1..99d3641819084cd210358932136c4c0ecb384af6 100644 (file)
@@ -1,3 +1,4 @@
+<div align="center">
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="550">
 <tr>
        <td width="100" class="header_column bottom right" align="center"><strong>{--CONFIRM_LINK2--}:</strong></td>
 <table border="0" cellspacing="0" cellpadding="0" class="table dashed" width="550">
 <tr>
        <td width="100" class="header_column bottom right" align="center"><strong>{--CONFIRM_LINK2--}:</strong></td>
@@ -13,3 +14,4 @@ $content[rows]
        </td>
 </tr>
 </table>
        </td>
 </tr>
 </table>
+</div>
index 5e96622859ff5fbda513f4cbec32bb92088b125c..1fabb96ce756e09795ef2f89a3776ffb830882c7 100644 (file)
@@ -1,6 +1,6 @@
 <div class="para member_content">
 <div class="para member_content">
-       {--LAST_ONLINE--}: <strong>$content[last_online]</strong><br />
-       {--LAST_MODULE--}: <strong>$content[last_module]</strong>
+       {--MEMBER_LAST_ONLINE--}: <strong>$content[last_online]</strong><br />
+       {--MEMBER_LAST_WHAT--}: <strong>$content[last_what]</strong>
 </div>
 
 <div class="para member_content">
 </div>
 
 <div class="para member_content">
index f4424ef38669c6b70a36b788165e354469fe462e..de66eba94fb7978727e14469ea72a86cf0b0b8d9 100644 (file)
@@ -8,4 +8,5 @@
 <meta http-equiv="language" content="de" />
 
 <script src="{%url=js/jquery.js?dummy=1%}{%ext,version=sql_patches%}" type="text/javascript"></script>
 <meta http-equiv="language" content="de" />
 
 <script src="{%url=js/jquery.js?dummy=1%}{%ext,version=sql_patches%}" type="text/javascript"></script>
+<script src="{%url=js/core-common.js?dummy=1%}{%ext,version=sql_patches%}" type="text/javascript"></script>
 <script src="{%url=js/menu-common.js?dummy=1%}{%ext,version=sql_patches%}" type="text/javascript"></script>
 <script src="{%url=js/menu-common.js?dummy=1%}{%ext,version=sql_patches%}" type="text/javascript"></script>
index 5098b72395f0fac798ca26bd7eee5f57f3996d8e..199263f2929bc97f620d2e558e41efb160acdf58 100644 (file)
@@ -2,7 +2,7 @@
        <a href="$content" rel="external" title="$content">$content</a>
 </noscript>
 
        <a href="$content" rel="external" title="$content">$content</a>
 </noscript>
 
-<script type="text/javascript" language="JavaScript">
+<script type="text/javascript">
 <!--
 document.location.href = '$content';
 //-->
 <!--
 document.location.href = '$content';
 //-->
index 5cf432586f167df56912509e4c44dcf30a4d8398..44e4a61090fc58aed0517f7c898a67b945ab3832 100644 (file)
@@ -1,3 +1,3 @@
-<option value="$content[id]">
+<option value="$content[id]"$content[default]>
        $content[login] ($content[special])
 </option>
        $content[login] ($content[special])
 </option>
diff --git a/templates/de/html/select/select_forced_ads_id_popup_box.tpl b/templates/de/html/select/select_forced_ads_id_popup_box.tpl
new file mode 100644 (file)
index 0000000..1abcfa7
--- /dev/null
@@ -0,0 +1,3 @@
+<div>
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_forced_ads_id_popup_option.tpl b/templates/de/html/select/select_forced_ads_id_popup_option.tpl
new file mode 100644 (file)
index 0000000..6f1183b
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[forced_ads_id]"$content[default]>
+       $content[forced_ads_click_url] ($content[forced_ads_width]x$content[forced_ads_height]; {%pipe,translateForcedAdsType=$content[forced_ads_type]%})
+</option>
diff --git a/templates/de/html/select/select_forced_ads_id_textlink_option.tpl b/templates/de/html/select/select_forced_ads_id_textlink_option.tpl
new file mode 100644 (file)
index 0000000..5e4350a
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[forced_ads_id]"$content[default]>
+       $content[forced_ads_click_url] ($content[forced_ads_alt_text]; {%pipe,translateForcedAdsType=$content[forced_ads_type]%})
+</option>
index 0e364f5ff1611c4068c3ea87f603238f0679985d..cc90fd1ea45c77965f6ef0e8f277dd180f2305d9 100644 (file)
@@ -1,3 +1,3 @@
-<option value="$content[type]">
+<option value="$content[type]"$content[default]>
        {%pipe,translateForcedAdsType=$content[type]%}
 </option>
        {%pipe,translateForcedAdsType=$content[type]%}
 </option>
diff --git a/templates/de/html/select/select_forced_costs_id_box.tpl b/templates/de/html/select/select_forced_costs_id_box.tpl
new file mode 100644 (file)
index 0000000..1abcfa7
--- /dev/null
@@ -0,0 +1,3 @@
+<div>
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_forced_costs_id_option.tpl b/templates/de/html/select/select_forced_costs_id_option.tpl
new file mode 100644 (file)
index 0000000..e34aad9
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[forced_costs_id]"$content[default]>
+       {%pipe,translateForcedCostsVisibility=$content[forced_costs_visibility]%} ({%pipe,translateComma=$content[forced_costs_price_click]%} {?POINTS?}, {%pipe,translateComma=$content[forced_costs_payment_click]%} {?POINTS?})
+</option>
diff --git a/templates/de/html/select/select_forced_costs_visibility_box.tpl b/templates/de/html/select/select_forced_costs_visibility_box.tpl
new file mode 100644 (file)
index 0000000..8bc5eb9
--- /dev/null
@@ -0,0 +1,3 @@
+<div align="center">
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_forced_costs_visibility_option.tpl b/templates/de/html/select/select_forced_costs_visibility_option.tpl
new file mode 100644 (file)
index 0000000..e75e8bc
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[visibility]"$content[default]>
+       {%pipe,translateForcedCostsVisibility=$content[visibility]%}
+</option>
index 2685a6bc5f8690e832475b9dba2d4ccf28c8f7dd..bc8b4a32bba748e55cf6f435ed02d1933eb31244 100644 (file)
@@ -1,3 +1,3 @@
-<option value="$content[network_id]">
+<option value="$content[network_id]"$content[default]>
        $content[network_title] ({%pipe,translateNetworkApiConfiguredStatusById=$content[network_id]%}, $content[network_short_name])
 </option>
        $content[network_title] ({%pipe,translateNetworkApiConfiguredStatusById=$content[network_id]%}, $content[network_short_name])
 </option>
index edf5efab1ae5cf92a250cf6363862a5aba4cbace..c109efbbe1738a4b5b75f75cf5fab774c5a855e7 100644 (file)
@@ -1,3 +1,3 @@
-<option value="$content[network_type_id]">
+<option value="$content[network_type_id]"$content[default]>
        {%pipe,translateNetworkTypeHandler=$content[network_type_handler]%}
 </option>
        {%pipe,translateNetworkTypeHandler=$content[network_type_handler]%}
 </option>
index 6b19de6a7a1a63affbc4e5f07df6d4ea63d3f6d9..0ec66f996a6c1d4bca54384641e28f35ddc55d6f 100644 (file)
@@ -1 +1,3 @@
-<option value="$content[network_type_id]">$content[network_type_handler] ($content[network_title])</option>
+<option value="$content[network_type_id]"$content[default]>
+       $content[network_type_handler] ($content[network_title])
+</option>
diff --git a/templates/de/html/select/select_points_locked_mode_box.tpl b/templates/de/html/select/select_points_locked_mode_box.tpl
new file mode 100644 (file)
index 0000000..1abcfa7
--- /dev/null
@@ -0,0 +1,3 @@
+<div>
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_points_locked_mode_option.tpl b/templates/de/html/select/select_points_locked_mode_option.tpl
new file mode 100644 (file)
index 0000000..bae94ae
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[mode]"$content[default]>
+       {%pipe,translatePointsLockedMode=$content[mode]%}
+</option>
diff --git a/templates/de/html/select/select_points_payment_method_box.tpl b/templates/de/html/select/select_points_payment_method_box.tpl
new file mode 100644 (file)
index 0000000..1abcfa7
--- /dev/null
@@ -0,0 +1,3 @@
+<div>
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_points_payment_method_option.tpl b/templates/de/html/select/select_points_payment_method_option.tpl
new file mode 100644 (file)
index 0000000..97c51d8
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[method]"$content[default]>
+       {%pipe,translatePointsPaymentMethod=$content[method]%}
+</option>
diff --git a/templates/de/html/select/select_surfbar_actions_action_box.tpl b/templates/de/html/select/select_surfbar_actions_action_box.tpl
new file mode 100644 (file)
index 0000000..8bc5eb9
--- /dev/null
@@ -0,0 +1,3 @@
+<div align="center">
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_surfbar_actions_action_option.tpl b/templates/de/html/select/select_surfbar_actions_action_option.tpl
new file mode 100644 (file)
index 0000000..775e87e
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[actions_action]"$content[default]>
+       {%pipe,translateMemberSurfbarActionToSubmit=$content[actions_action]%}
+</option>
diff --git a/templates/de/html/select/select_surfbar_actions_new_status_box.tpl b/templates/de/html/select/select_surfbar_actions_new_status_box.tpl
new file mode 100644 (file)
index 0000000..8bc5eb9
--- /dev/null
@@ -0,0 +1,3 @@
+<div align="center">
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_surfbar_actions_new_status_option.tpl b/templates/de/html/select/select_surfbar_actions_new_status_option.tpl
new file mode 100644 (file)
index 0000000..10a9648
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[actions_new_status]"$content[default]>
+       {%pipe,translateSurfbarUrlStatus=$content[actions_new_status]%}
+</option>
diff --git a/templates/de/html/select/select_surfbar_actions_status_box.tpl b/templates/de/html/select/select_surfbar_actions_status_box.tpl
new file mode 100644 (file)
index 0000000..8bc5eb9
--- /dev/null
@@ -0,0 +1,3 @@
+<div align="center">
+       $content[selection_box]
+</div>
diff --git a/templates/de/html/select/select_surfbar_actions_status_option.tpl b/templates/de/html/select/select_surfbar_actions_status_option.tpl
new file mode 100644 (file)
index 0000000..1e436dd
--- /dev/null
@@ -0,0 +1,3 @@
+<option value="$content[actions_status]"$content[default]>
+       {%pipe,translateSurfbarUrlStatus=$content[actions_status]%}
+</option>
index 7f946266aa9487bde49d9b18c27705502418b29c..30dd0432e228ad513019e93562eca174fbd7de24 100644 (file)
@@ -2,7 +2,7 @@
 <tr>
        <td id="surfbar_td">
                Guthaben: <span id="surfbar_points">{%pipe,translateComma=$content[points]%} {?POINTS?}</span> -
 <tr>
        <td id="surfbar_td">
                Guthaben: <span id="surfbar_points">{%pipe,translateComma=$content[points]%} {?POINTS?}</span> -
-               Jetzt Online: <span class="surfbar_counter">{%pipe,SURFBAR_DETERMINE_TOTAL_ONLINE%}</span> -
+               Jetzt Online: <span class="surfbar_counter">{%pipe,determineSurfbarTotalOnline%}</span> -
                Seitenaufrufe: Heute:<span class="surfbar_counter">{%config,translateComma=surfbar_daily_counter%}</span> -
                Gestern:<span class="surfbar_counter">{%config,translateComma=surfbar_yester_counter%}</span> -
                Woche:<span class="surfbar_counter">{%config,translateComma=surfbar_weekly_counter%}</span> -
                Seitenaufrufe: Heute:<span class="surfbar_counter">{%config,translateComma=surfbar_daily_counter%}</span> -
                Gestern:<span class="surfbar_counter">{%config,translateComma=surfbar_yester_counter%}</span> -
                Woche:<span class="surfbar_counter">{%config,translateComma=surfbar_weekly_counter%}</span> -
index e3ca2d1a68e20e09a1c4d396c8a64515f1c5f118..1ada1b13a46295f2bf97ba8ff195c2b658697dc4 100644 (file)
@@ -1,7 +1,7 @@
 <table border="0" cellspacing="0" cellpadding="0" width="100%" id="surfbar_table">
 <tr>
        <td id="surfbar_td">
 <table border="0" cellspacing="0" cellpadding="0" width="100%" id="surfbar_table">
 <tr>
        <td id="surfbar_td">
-               Jetzt Online: <span class="surfbar_counter">{%pipe,SURFBAR_DETERMINE_TOTAL_ONLINE%}</span> -
+               Jetzt Online: <span class="surfbar_counter">{%pipe,determineSurfbarTotalOnline%}</span> -
                <!-- @TODO These are static lines and should be replaced by a filter (see ext-network/ext-sponsor) //-->
                <a href="{%url=modules.php?module=index&amp;what=impressum%}" target="_blank">Ihr Textlink hier?</a> -
                <a href="{%url=modules.php?module=index&amp;what=impressum%}" target="_blank">Ihr Textlink hier?</a> -
                <!-- @TODO These are static lines and should be replaced by a filter (see ext-network/ext-sponsor) //-->
                <a href="{%url=modules.php?module=index&amp;what=impressum%}" target="_blank">Ihr Textlink hier?</a> -
                <a href="{%url=modules.php?module=index&amp;what=impressum%}" target="_blank">Ihr Textlink hier?</a> -
index 96f2278405a010387d56efd768ba6b7f8469d7d2..9753b0cb5d0800bda7bd5151a646ad2a0a4d012a 100644 (file)
@@ -11,7 +11,7 @@
                </div>
 
                <div>
                </div>
 
                <div>
-                       &raquo;<a href="{%pipe,SURFBAR_GET_URL=$content[url_id]%}" target="_blank">Aktuelle Seite in neuem
+                       &raquo;<a href="{%pipe,gerSurfbarUrl=$content[url_id]%}" target="_blank">Aktuelle Seite in neuem
                        Fenster &ouml;ffnen</a>&laquo;
                        <span id="surfbar_navi">[<a href="#" onclick="return startStopCounter();"
                         id="start">{--MEMBER_SURFBAR_ACTION_PAUSE_SUBMIT--}</a>|<a target="_parent"
                        Fenster &ouml;ffnen</a>&laquo;
                        <span id="surfbar_navi">[<a href="#" onclick="return startStopCounter();"
                         id="start">{--MEMBER_SURFBAR_ACTION_PAUSE_SUBMIT--}</a>|<a target="_parent"
@@ -28,5 +28,4 @@
 </table>
 </div>
 
 </table>
 </div>
 
-<script type="text/javascript"
- src="{%url=js.php?js=surfbar_frame_top&amp;url_id=$content[url_id]%}"></script>
+<script type="text/javascript" src="{%url=js.php?js=surfbar_frame_top&amp;url_id=$content[url_id]%}"></script>
index 6793c5cbe777cef817eb3b2a850b1eaecada4c11..84b3d429cf259e179cf1da00e57efb7599ca0662 100644 (file)
@@ -19,7 +19,7 @@
        <tr>
                <td colspan="4" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
        <tr>
                <td colspan="4" align="center" class="table_footer">
                        <input type="reset" class="form_reset" value="{--CLEAR_FORM--}" />
-                       <input type="submit" class="form_submit" name="ok" value="{--LOGIN_SUBMIT--}" />
+                       <input type="submit" class="form_submit" name="login" value="{--LOGIN_SUBMIT--}" />
                </td>
        </tr>
 </table>
                </td>
        </tr>
 </table>
index b880f6329a5d6b4c16e36327d9fcf8b98139bbf9..b3423ce422a8b735ae5b097a15065924eeed5749 100644 (file)
@@ -5,7 +5,7 @@ This template provides meta data for adding forced-ads to the database.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -42,13 +42,13 @@ MA  02110-1301  USA
        And all column names to read/write, leave this list tag empty for all (*).
        //-->
        <database-column-list>
        And all column names to read/write, leave this list tag empty for all (*).
        //-->
        <database-column-list>
-               <database-column-list-entry name="" type="string" value="forced_ads_click_url" />
-               <database-column-list-entry name="" type="string" value="forced_ads_alt_text" />
-               <database-column-list-entry name="" type="string" value="forced_ads_framebreaker" />
-               <database-column-list-entry name="" type="string" value="forced_ads_type" />
-               <database-column-list-entry name="" type="string" value="forced_ads_width" />
-               <database-column-list-entry name="" type="string" value="forced_ads_height" />
-               <database-column-list-entry name="" type="string" value="forced_ads_ad_url" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_click_url" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_alt_text" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_framebreaker" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_type" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_width" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_height" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_ad_url" alias="" function="" />
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
diff --git a/templates/xml/admin/admin_add_do_forced_campaigns.xml b/templates/xml/admin/admin_add_do_forced_campaigns.xml
new file mode 100644 (file)
index 0000000..5e148bc
--- /dev/null
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for adding forced-campaigns to the database.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminAddEntries" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_campaigns" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_ordered_clicks" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_reload_lock" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_minimum_stay" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_userid" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_id" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <callback-function-list-entry name="" type="string" value="convertCommaToDot" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="" type="string" value="convertZeroToNull" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+               <time-columns-list-entry name="" type="string" value="forced_campaign_reload_lock" />
+       </time-columns-list>
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_add_do_forced_costs.xml b/templates/xml/admin/admin_add_do_forced_costs.xml
new file mode 100644 (file)
index 0000000..29c6335
--- /dev/null
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for adding forced-costs to the database.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminAddEntries" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_costs" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_price_click" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_payment_click" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_visibility" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <callback-function-list-entry name="" type="string" value="convertCommaToDot" />
+               <callback-function-list-entry name="" type="string" value="convertCommaToDot" />
+               <callback-function-list-entry name="" type="string" value="" />
+       </callback-function-list>
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_delete_do_forced_ads.xml b/templates/xml/admin/admin_delete_do_forced_ads.xml
new file mode 100644 (file)
index 0000000..2895d49
--- /dev/null
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for doing deletions on forced ads.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminDeleteEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_ads" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="true" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_ads_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="forced_ads_userid" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="forced_ads_userid" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_delete_do_forced_costs.xml b/templates/xml/admin/admin_delete_do_forced_costs.xml
new file mode 100644 (file)
index 0000000..a47f720
--- /dev/null
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for doing deletions on forced costs.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminDeleteEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_costs" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="true" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_costs_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
+</admin-entry-meta-data>
index 9e0e1278dcc8bb81fc551a6f932055bf69606ae9..d9f7918a1fda4a18b341033f41bbea00c8cb4b3e 100644 (file)
@@ -6,7 +6,7 @@ the admin area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -76,4 +76,8 @@ MA  02110-1301  USA
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="url_userid" />
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="url_userid" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
 </admin-entry-meta-data>
 </admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_delete_show_forced_ads.xml b/templates/xml/admin/admin_delete_show_forced_ads.xml
new file mode 100644 (file)
index 0000000..b81695d
--- /dev/null
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for deleting forced ads.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminDeleteEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_ads" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <!--
+               A column name list entry. The type is always string, or do you have
+               numerical column names?
+               //-->
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_userid" alias="" function="" />
+               <database-column-list-entry name="added_list" type="string" table="" value="forced_ads_added" alias="forced_ads_added" function="UNIX_TIMESTAMP" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_ad_url" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_click_url" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_width" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_height" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_alt_text" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_framebreaker" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_type" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_views_counter" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_clicks_counter" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <!--
+               A call-back function list entry
+               //-->
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="added_list" type="string" value="generateDateTime" />
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+               <!--
+               A one-dimensional array with some entries
+               //-->
+               <extra-parameter-list-entry name="" type="array" value="added">
+                       <!--
+                       Our 'added' array
+                       //-->
+                       <extra-parameter-added-list>
+                               <!--
+                               A bool entry in the 'bar' array, all other types are added in a
+                               similar way.
+                               //-->
+                               <extra-parameter-added-list-entry name="" type="int" value="2" />
+                       </extra-parameter-added-list>
+               </extra-parameter-list-entry>
+       </extra-parameter-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="false" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_ads_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="forced_ads_userid" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="forced_ads_userid" />
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_delete_show_forced_costs.xml b/templates/xml/admin/admin_delete_show_forced_costs.xml
new file mode 100644 (file)
index 0000000..56dd0ac
--- /dev/null
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for deleting forced costs.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminDeleteEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_costs" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <!--
+               A column name list entry. The type is always string, or do you have
+               numerical column names?
+               //-->
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_price_click" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_payment_click" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_visibility" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <!--
+               A call-back function list entry
+               //-->
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="" type="string" value="" />
+               <callback-function-list-entry name="" type="string" value="" />
+               <callback-function-list-entry name="" type="string" value="" />
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="false" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_costs_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="" />
+</admin-entry-meta-data>
index b7cba9d2cae40ccdaa4a52233f38dada9f0f45bb..6a035fb0a04168ef5e19ebc6c115bfdfa8691688 100644 (file)
@@ -6,7 +6,7 @@ area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -47,10 +47,10 @@ MA  02110-1301  USA
                A column name list entry. The type is always string, or do you have
                numerical column names?
                //-->
                A column name list entry. The type is always string, or do you have
                numerical column names?
                //-->
-               <database-column-list-entry name="" type="string" value="url_id" />
-               <database-column-list-entry name="" type="string" value="url_userid" />
-               <database-column-list-entry name="" type="string" value="url" />
-               <database-column-list-entry name="" type="string" value="url_registered" />
+               <database-column-list-entry name="" type="string" table="" value="url_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_userid" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_registered" alias="" function="" />
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
diff --git a/templates/xml/admin/admin_edit_do_forced_ads.xml b/templates/xml/admin/admin_edit_do_forced_ads.xml
new file mode 100644 (file)
index 0000000..a2df42f
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for doing edits on forced costs
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminEditEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_ads" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="true" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_ads_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="forced_ads_userid" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_edit_do_forced_costs.xml b/templates/xml/admin/admin_edit_do_forced_costs.xml
new file mode 100644 (file)
index 0000000..950ff33
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for doing edits on forced costs
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminEditEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_costs" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="true" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_costs_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_edit_do_point_accounts.xml b/templates/xml/admin/admin_edit_do_point_accounts.xml
new file mode 100644 (file)
index 0000000..f0280cf
--- /dev/null
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for doing edits on points accounts
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminEditEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="points_data" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="true" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="points_data" />
+</admin-entry-meta-data>
index 7b28a420f4a0915ab4e8acbf10df691b91574e09..584d9e0a1ed0d87cab3066fc6e2807d16b3e9d88 100644 (file)
@@ -6,7 +6,7 @@ area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -58,6 +58,11 @@ MA  02110-1301  USA
        <extra-parameter-list>
        </extra-parameter-list>
        <!--
        <extra-parameter-list>
        </extra-parameter-list>
        <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="true" />
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="true" />
@@ -75,5 +80,9 @@ MA  02110-1301  USA
        Raw userid column ($key) to skip which is always an invalid (?) entry
        This' type can again only be 'string' (remember why?).
        //-->
        Raw userid column ($key) to skip which is always an invalid (?) entry
        This' type can again only be 'string' (remember why?).
        //-->
-       <raw-userid-column-key name="" type="string" value="url_userid" />
+       <raw-userid-column-key name="" type="string" value="" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
 </admin-entry-meta-data>
 </admin-entry-meta-data>
index 5a8c17aa4da0865053b39aae230a3d485ae932ef..060badac532ce51da6e8789bf61ee94ef61af457 100644 (file)
@@ -5,7 +5,7 @@ This template provides meta data for editing forced ads.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -77,10 +77,6 @@ MA  02110-1301  USA
        call-back function. See function handleExtraValues() for details.
        //-->
        <extra-parameter-list>
        call-back function. See function handleExtraValues() for details.
        //-->
        <extra-parameter-list>
-               <!--
-               Dummy entry
-               //-->
-               <extra-parameter-list-entry name="" type="string" value="" />
                <!--
                A one-dimensional array with some entries
                //-->
                <!--
                A one-dimensional array with some entries
                //-->
@@ -90,7 +86,7 @@ MA  02110-1301  USA
                        //-->
                        <extra-parameter-member-list>
                                <!--
                        //-->
                        <extra-parameter-member-list>
                                <!--
-                               A bool entry in the 'bar' array, all other types are added in a
+                               A bool entry in the 'member' array, all other types are added in a
                                similar way.
                                //-->
                                <extra-parameter-member-list-entry name="" type="bool" value="false" />
                                similar way.
                                //-->
                                <extra-parameter-member-list-entry name="" type="bool" value="false" />
@@ -112,7 +108,7 @@ MA  02110-1301  USA
                        //-->
                        <extra-parameter-added-list>
                                <!--
                        //-->
                        <extra-parameter-added-list>
                                <!--
-                               A bool entry in the 'bar' array, all other types are added in a
+                               A bool entry in the 'added' array, all other types are added in a
                                similar way.
                                //-->
                                <extra-parameter-added-list-entry name="" type="int" value="2" />
                                similar way.
                                //-->
                                <extra-parameter-added-list-entry name="" type="int" value="2" />
@@ -120,6 +116,11 @@ MA  02110-1301  USA
                </extra-parameter-list-entry>
        </extra-parameter-list>
        <!--
                </extra-parameter-list-entry>
        </extra-parameter-list>
        <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="false" />
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="false" />
diff --git a/templates/xml/admin/admin_edit_show_forced_campaigns.xml b/templates/xml/admin/admin_edit_show_forced_campaigns.xml
new file mode 100644 (file)
index 0000000..e8797e3
--- /dev/null
@@ -0,0 +1,157 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for editing forced campaigns.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminEditEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_campaigns" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <!--
+               A column name list entry. The type is always string, or do you have
+               numerical column names?
+               //-->
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_id" alias="" function="" />
+               <database-column-list-entry name="created_list" type="string" table="" value="forced_campaign_created" alias="forced_campaign_created" function="UNIX_TIMESTAMP" />
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_ordered_clicks" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_payment_api" alias="" function="" />
+               <database-column-list-entry name="reload_list" type="string" table="" value="forced_campaign_reload_lock" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_campaign_minimum_stay" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_ads_id" alias="" function="" />
+               <database-column-list-entry name="member_list" type="string" table="" value="forced_campaign_userid" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_id" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <!--
+               A call-back function list entry
+               //-->
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="created_list" type="string" value="generateDateTime" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="reload_list" type="string" value="createTimeSelections" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="member_list" type="string" value="doTemplateForcedCampaignUseridSelectionBox" />
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+               <!--
+               A one-dimensional array with some entries
+               //-->
+               <extra-parameter-list-entry name="" type="array" value="reload">
+                       <!--
+                       Our 'reload' array
+                       //-->
+                       <extra-parameter-reload-list>
+                               <!--
+                               A bool entry in the 'reload' array, all other types are added in a
+                               similar way.
+                               //-->
+                               <extra-parameter-reload-list-entry name="" type="string" value="forced_campaign_reload_lock" />
+                               <extra-parameter-reload-list-entry name="" type="string" value="Dhms" />
+                       </extra-parameter-reload-list>
+               </extra-parameter-list-entry>
+               <extra-parameter-list-entry name="" type="array" value="member">
+                       <!--
+                       Our 'member' array
+                       //-->
+                       <extra-parameter-member-list>
+                               <!--
+                               A bool entry in the 'member' array, all other types are added in a
+                               similar way.
+                               //-->
+                               <extra-parameter-member-list-entry name="" type="bool" value="false" />
+                               <extra-parameter-member-list-entry name="" type="bool" value="true" />
+                               <extra-parameter-member-list-entry name="" type="bool" value="true" />
+                               <!--
+                               The brackets [] are required for addMemberSelectionBox(),
+                               please read there for details.
+                               //-->
+                               <extra-parameter-member-list-entry name="" type="string" value="forced_campaign_userid[]" />
+                       </extra-parameter-member-list>
+               </extra-parameter-list-entry>
+               <!--
+               A one-dimensional array with some entries
+               //-->
+               <extra-parameter-list-entry name="" type="array" value="created">
+                       <!--
+                       Our 'created' array
+                       //-->
+                       <extra-parameter-created-list>
+                               <!--
+                               A bool entry in the 'created' array, all other types are created in a
+                               similar way.
+                               //-->
+                               <extra-parameter-created-list-entry name="" type="int" value="2" />
+                       </extra-parameter-created-list>
+               </extra-parameter-list-entry>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="false" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_campaign_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="forced_campaign_userid" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="forced_campaign_userid" />
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_edit_show_forced_costs.xml b/templates/xml/admin/admin_edit_show_forced_costs.xml
new file mode 100644 (file)
index 0000000..7f41209
--- /dev/null
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for editing forced costs.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminEditEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="forced_costs" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <!--
+               A column name list entry. The type is always string, or do you have
+               numerical column names?
+               //-->
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_price_click" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_payment_click" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="forced_costs_visibility" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <!--
+               A call-back function list entry
+               //-->
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+               <callback-function-list-entry name="" type="string" value="" />
+               <callback-function-list-entry name="" type="string" value="" />
+               <callback-function-list-entry name="" type="string" value="" />
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="false" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="forced_costs_id" />
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_edit_show_point_accounts.xml b/templates/xml/admin/admin_edit_show_point_accounts.xml
new file mode 100644 (file)
index 0000000..79a4f65
--- /dev/null
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for editing point accounts.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminEditEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="points_data" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <!--
+               A column name list entry. The type is always string, or do you have
+               numerical column names?
+               //-->
+               <database-column-list-entry name="" type="string" table="" value="id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="subject" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="column_name" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="locked_mode" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="payment_method" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="notify_recipient" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="account_provider" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <!--
+               A call-back function list entry
+               //-->
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="false" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="" />
+</admin-entry-meta-data>
diff --git a/templates/xml/admin/admin_edit_show_surfbar_actions.xml b/templates/xml/admin/admin_edit_show_surfbar_actions.xml
new file mode 100644 (file)
index 0000000..a0fc8f9
--- /dev/null
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for editing member actions of the surfbar in
+the admin area.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-entry-meta-data>
+       <!--
+       Call-back function which should all following parameter handled over
+       to. This will always be type of string but we like homogene XMLs.
+       //-->
+       <callback-function type="string" value="adminEditEntriesConfirm" />
+       <!--
+       Name of the database table where the entries should be read/write from/to.
+       //-->
+       <database-table name="" type="string" value="surfbar_actions" />
+       <!--
+       The following three lists must have the same count of list entries, else an
+       error may occur.
+       //-->
+       <!--
+       And all column names to read/write, leave this list tag empty for all (*).
+       //-->
+       <database-column-list>
+               <!--
+               A column name list entry. The type is always string, or do you have
+               numerical column names?
+               //-->
+               <database-column-list-entry name="" type="string" table="" value="actions_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="actions_status" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="actions_action" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="actions_new_status" alias="" function="" />
+       </database-column-list>
+       <!--
+       "Filter" call-back functions to call back for piping the fetched data
+       through (can be left empty, no call-back function will be called)
+       //-->
+       <callback-function-list>
+               <!--
+               A call-back function list entry
+               //-->
+               <callback-function-list-entry name="" type="string" value="bigintval" />
+       </callback-function-list>
+       <!--
+       Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
+       is provided, we have more than two parameters to handle over to the
+       call-back function. See function handleExtraValues() for details.
+       //-->
+       <extra-parameter-list>
+       </extra-parameter-list>
+       <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
+       Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
+       //-->
+       <enable-modify-entries name="" type="bool" value="false" />
+       <!--
+       The table column which should be taken for the ids (see first parameter).
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-id-column name="" type="string" value="actions_id" />
+       <!--
+       The table column which should be taken for user ids
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <table-userid-column name="" type="string" value="" />
+       <!--
+       Raw userid column ($key) to skip which is always an invalid (?) entry
+       This' type can again only be 'string' (remember why?).
+       //-->
+       <raw-userid-column-key name="" type="string" value="" />
+</admin-entry-meta-data>
index 553e9c4c32e418451ba0bc07aa33bba48779ba4b..e9465a020239677391810e4af21b933c8d1da0be 100644 (file)
@@ -6,7 +6,7 @@ area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -61,7 +61,6 @@ MA  02110-1301  USA
                //-->
                <callback-function-list-entry name="" type="string" value="bigintval" />
                <callback-function-list-entry name="member_list" type="string" value="addMemberSelectionBox" />
                //-->
                <callback-function-list-entry name="" type="string" value="bigintval" />
                <callback-function-list-entry name="member_list" type="string" value="addMemberSelectionBox" />
-               <callback-function-list-entry name="" type="string" value="" /><!-- No callback function! //-->
        </callback-function-list>
        <!--
        Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
        </callback-function-list>
        <!--
        Extra parameters (2nd, 3rd, ...) for above call-back functions. If an array
@@ -108,6 +107,11 @@ MA  02110-1301  USA
                <extra-parameter-list-entry name="" type="string" value="" />
        </extra-parameter-list>
        <!--
                <extra-parameter-list-entry name="" type="string" value="" />
        </extra-parameter-list>
        <!--
+       Columns for converting single time selections into a timestamp
+       //-->
+       <time-columns-list>
+       </time-columns-list>
+       <!--
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="false" />
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="false" />
index af04ae650afe3187773b11ce6041542717dac1ca..8f22414a5a0775e1d1719ddf696d5722db5681df 100644 (file)
@@ -5,7 +5,7 @@ This template provides meta data for listing Forced-Ads.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
index bc53245a6285d7c531b5d449a86931460c6f7f54..5695045ca2ddb6d7c1161ef7a2b8966c30272f29 100644 (file)
@@ -5,7 +5,7 @@ This template provides meta data for listing forced compains.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
index ea4d59a308b7b9480e062b3d67fe90179d346946..fc557e2d9c9dfe03103e834adec8274242d67959 100644 (file)
@@ -5,7 +5,7 @@ This template provides meta data for listing forced costs.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
diff --git a/templates/xml/admin/admin_list_nickname_history.xml b/templates/xml/admin/admin_list_nickname_history.xml
new file mode 100644 (file)
index 0000000..8c26340
--- /dev/null
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for listing nickname-change history entries.
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-list-data>
+       <!--
+       Call-back function, the extracted data from this XML will then be re-read
+       from that function. The most common function this XML uses is
+       adminListEntries() so mostly you can leave this alone unless you have JOINs.
+       //-->
+       <callback-function type="string" value="adminListEntries" />
+       <!--
+       Now we need information which template should be loaded and which functions
+       shall be called back. So lets start with the main list template. This mostly
+       requires no call-back function.
+       //-->
+       <list-template type="string" value="admin_list_nickname_history" />
+       <!--
+       The template for all rows, mostly this name has a '_row' suffix and again,
+       no call-back function is usually required.
+       //-->
+       <list-row-template type="string" value="admin_list_nickname_history_row" />
+       <!--
+       Message id to display if no entry could be found
+       //-->
+       <no-entry-found-message type="string" value="ADMIN_LIST_NICKNAME_HISTORY_404" />
+       <!--
+       The table(s) we shall grab the data from, all as list.
+       //-->
+       <data-tables>
+               <!--
+               A single table entry, with alias and without the configurable
+               _MYSQL_PREFIX. You can specify the table's name or alias later on.
+               //-->
+               <data-table type="string" alias="" value="history" />
+               <!--
+               Columns to perform the SELECT statement on, with alias and name plus which table.
+               //-->
+               <select-data-from-list>
+                       <!--
+                       A single entry with table name (can be left empty), value (must
+                       always be set), alias (again can be left empty) and SQL function
+                       (can also be left empty) which shall be applied on the column.
+                       //-->
+                       <select-data-from-list-entry type="string" table="" value="history_userid" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="history_value" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="history_added" alias="history_added" function="UNIX_TIMESTAMP" />
+                       <select-data-from-list-entry type="string" table="" value="history_last_used" alias="history_last_used" function="UNIX_TIMESTAMP" />
+               </select-data-from-list>
+               <!--
+               And the column list to perform the WHERE statement on.
+               //-->
+               <where-select-from-list>
+                       <!--
+                       A single entry to perform the WHERE statement on:
+                       - table     = table name (or alias)
+                       - value     = column name
+                       - condition = look-up condition
+                       - look-for  = What to look for
+                       //-->
+                       <where-select-from-list-entry type="string" table="" value="history_subject" condition="EQUALS" look-for="NICKNAME_CHANGED" />
+                       <!--
+                       A single entry to perform the AND statement on:
+                       - table     = table name (or alias)
+                       - value     = column name
+                       - condition = look-up condition
+                       - look-for  = What to look for
+                       //-->
+                       <where-select-from-list-entry type="string" table="" value="history_userid" condition="EQUALS" look-for="$userid" />
+               </where-select-from-list>
+               <!--
+               Columns to perform the ORDER BY statement (GROUP BY is not yet supported)
+               //-->
+               <order-by-list>
+                       <!--
+                       A single entry to perform the ORDER BY statement on, see above WHERE entry for details.
+                       //-->
+                       <order-by-list-entry type="string" table="" order="history_added" value="DESC" />
+               </order-by-list>
+       </data-tables>
+       <!--
+       List all column names from the 'select-data-from-list' node here, but now
+       with call-back informations. The list must only contain those entries where
+       a call-back function shall be called for.
+       //-->
+       <column-callback-list>
+               <!--
+               Another column, now we need a second parameter here because
+               generateDateTime() expects two parameters (first is always the data
+               from column).
+               //-->
+               <column-callback-list-entry>
+                       <!--
+                       The actual data, again.
+                       //-->
+                       <column-callback-data type="string" value="history_added" callback="generateDateTime" />
+                       <!--
+                       More parameters, remember that the first parameter is always given
+                       and that it is the data from column.
+                       //-->
+                       <callback-extra-parameter-list>
+                               <!--
+                               A single parameter, 'type' can be one of 'float', 'int',
+                               'bool', 'string'. 'array' is not yet supported.
+                               //-->
+                               <callback-extra-parameter-list-entry type="int" column="history_added" value="2" />
+                       </callback-extra-parameter-list>
+               </column-callback-list-entry>
+               <!--
+               Another column, now we need a second parameter here because
+               generateDateTime() expects two parameters (first is always the data
+               from column).
+               //-->
+               <column-callback-list-entry>
+                       <!--
+                       The actual data, again.
+                       //-->
+                       <column-callback-data type="string" value="history_last_used" callback="generateDateTime" />
+                       <!--
+                       More parameters, remember that the first parameter is always given
+                       and that it is the data from column.
+                       //-->
+                       <callback-extra-parameter-list>
+                               <!--
+                               A single parameter, 'type' can be one of 'float', 'int',
+                               'bool', 'string'. 'array' is not yet supported.
+                               //-->
+                               <callback-extra-parameter-list-entry type="int" column="history_last_used" value="2" />
+                       </callback-extra-parameter-list>
+               </column-callback-list-entry>
+       </column-callback-list>
+       <!--
+       How the named column shall be logical linked to the above.
+       //-->
+       <where-condition type="string" name="history_userid" condition="AND" />
+</admin-list-data>
diff --git a/templates/xml/admin/admin_list_point_accounts.xml b/templates/xml/admin/admin_list_point_accounts.xml
new file mode 100644 (file)
index 0000000..7a5cfe1
--- /dev/null
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+This template provides meta data for listing points accounts
+
+@author                Roland Haeder <webmaster@mxchange.org>
+@version       0.2.1-FINAL
+@copyright     (c) 2003 - 2009 by Roland Haeder
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
+@license       GNU GPL 2.0 or any newer version
+@link          http://mxchange.org
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+MA  02110-1301  USA
+//-->
+<admin-list-data>
+       <!--
+       Call-back function, the extracted data from this XML will then be re-read
+       from that function. The most common function this XML uses is
+       adminListEntries() so mostly you can leave this alone unless you have JOINs.
+       //-->
+       <callback-function type="string" value="adminListEntries" />
+       <!--
+       Now we need information which template should be loaded and which functions
+       shall be called back. So lets start with the main list template. This mostly
+       requires no call-back function.
+       //-->
+       <list-template type="string" value="admin_list_points_accounts" />
+       <!--
+       The template for all rows, mostly this name has a '_row' suffix and again,
+       no call-back function is usually required.
+       //-->
+       <list-row-template type="string" value="admin_list_points_accounts_row" />
+       <!--
+       Message id to display if no entry could be found
+       //-->
+       <no-entry-found-message type="string" value="ADMIN_POINTS_ACCOUNTS_404" />
+       <!--
+       The table(s) we shall grab the data from, all as list.
+       //-->
+       <data-tables>
+               <!--
+               A single table entry, with alias and without the configurable
+               _MYSQL_PREFIX. You can specify the table's name or alias later on.
+               //-->
+               <data-table type="string" alias="" value="points_data" />
+               <!--
+               Columns to perform the SELECT statement on, with alias and name plus which table.
+               //-->
+               <select-data-from-list>
+                       <!--
+                       A single entry with table name (can be left empty), value (must
+                       always be set), alias (again can be left empty) and SQL function
+                       (can also be left empty) which shall be applied on the column.
+                       //-->
+                       <select-data-from-list-entry type="string" table="" value="id" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="subject" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="column_name" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="locked_mode" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="payment_method" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="notify_recipient" alias="" function="" />
+                       <select-data-from-list-entry type="string" table="" value="account_provider" alias="" function="" />
+               </select-data-from-list>
+               <!--
+               And the column list to perform the WHERE statement on.
+               //-->
+               <where-select-from-list>
+               </where-select-from-list>
+               <!--
+               Columns to perform the ORDER BY statement (GROUP BY is not yet supported)
+               //-->
+               <order-by-list>
+                       <!--
+                       A single entry to perform the ORDER BY statement on, see above WHERE entry for details.
+                       //-->
+                       <order-by-list-entry type="string" table="" order="subject" value="ASC" />
+               </order-by-list>
+       </data-tables>
+       <!--
+       List all column names from the 'select-data-from-list' node here, but now
+       with call-back informations. The list must only contain those entries where
+       a call-back function shall be called for.
+       //-->
+       <column-callback-list>
+       </column-callback-list>
+</admin-list-data>
index b15cbcd6189c69f1f6f3586060500ab371e2b423..9e5bd7615bfb7c679dba5e39d4623fe7589b7294 100644 (file)
@@ -6,7 +6,7 @@ admin area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
index 2174689b429c00f83284c3e56d29f68bef2e7c68..e9f20a06404db9b3684c4d31a146d9ca1e339d04 100644 (file)
@@ -6,7 +6,7 @@ area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
index b15095758102fb122fdd70533dbfcf6750b5e132..f970ff0ab853eb43fc5de1c13c5306c1c907badf 100644 (file)
@@ -6,7 +6,7 @@ in the admin area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -88,4 +88,8 @@ MA  02110-1301  USA
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="url_userid" />
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="url_userid" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
 </admin-entry-meta-data>
 </admin-entry-meta-data>
index dbe15dbb99d770f6f6160255b07753f2547e63ba..ae28d18b0a53e777da3eddd1d5059b32afed760c 100644 (file)
@@ -6,7 +6,7 @@ admin area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -47,11 +47,11 @@ MA  02110-1301  USA
                A column name list entry. The type is always string, or do you have
                numerical column names?
                //-->
                A column name list entry. The type is always string, or do you have
                numerical column names?
                //-->
-               <database-column-list-entry name="" type="string" value="url_id" />
-               <database-column-list-entry name="" type="string" value="url_userid" />
-               <database-column-list-entry name="" type="string" value="url" />
-               <database-column-list-entry name="" type="string" value="url_registered" />
-               <database-column-list-entry name="" type="string" value="url_status" />
+               <database-column-list-entry name="" type="string" table="" value="url_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_userid" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_registered" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_status" alias="" function="" />
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
@@ -89,6 +89,10 @@ MA  02110-1301  USA
                <extra-parameter-list-entry name="" type="string" value="" />
        </extra-parameter-list>
        <!--
                <extra-parameter-list-entry name="" type="string" value="" />
        </extra-parameter-list>
        <!--
+       Informations for changing status
+       //-->
+       <status-change-column name="" type="string" value="url_status" />
+       <!--
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="false" />
        Wether to 'edit/delete/change' (change) the entries (true) or just read them for displaying (false)
        //-->
        <enable-modify-entries name="" type="bool" value="false" />
index a512d002c883e74752af936b03c48c9e17c40468..0420548067a596616f857cdd6c8a7ab416d996cf 100644 (file)
@@ -6,7 +6,7 @@ the admin area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -86,4 +86,8 @@ MA  02110-1301  USA
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="url_userid" />
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="url_userid" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="" />
 </admin-entry-meta-data>
 </admin-entry-meta-data>
index c560d11331d362904f7921d1a1238fd956330473..bcc63c2084054320b0b0e22cd8e305b2afa1d412 100644 (file)
@@ -6,7 +6,7 @@ admin area.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -47,11 +47,11 @@ MA  02110-1301  USA
                A column name list entry. The type is always string, or do you have
                numerical column names?
                //-->
                A column name list entry. The type is always string, or do you have
                numerical column names?
                //-->
-               <database-column-list-entry name="" type="string" value="url_id" />
-               <database-column-list-entry name="" type="string" value="url_userid" />
-               <database-column-list-entry name="" type="string" value="url" />
-               <database-column-list-entry name="" type="string" value="url_registered" />
-               <database-column-list-entry name="" type="string" value="url_status" />
+               <database-column-list-entry name="" type="string" table="" value="url_id" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_userid" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_registered" alias="" function="" />
+               <database-column-list-entry name="" type="string" table="" value="url_status" alias="" function="" />
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
        </database-column-list>
        <!--
        "Filter" call-back functions to call back for piping the fetched data
index 5edb946296aa9558f0ef05d8c638ae653811dac8..7bdac96841fccb68dd77e66b8441f9df012844a4 100644 (file)
@@ -8,7 +8,7 @@ tag intact.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -19,13 +19,13 @@ the Free Software Foundation; either version 2 of the License, or
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-MA  02110-1301  USA
+MA 02110-1301 USA
 //-->
 <admin-entry-meta-data>
        <!--
 //-->
 <admin-entry-meta-data>
        <!--
@@ -124,4 +124,8 @@ MA  02110-1301  USA
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="userid" />
        This' type can again only be 'string' (remember why?).
        //-->
        <raw-userid-column-key name="" type="string" value="userid" />
+       <!--
+       Cache file to delete
+       //-->
+       <cache-file name="" type="string" value="some_foo" />
 </admin-entry-meta-data>
 </admin-entry-meta-data>
index fa6084450be1d318b96a9edcdbd282a9fd05b8bc..6decdeeade429f8fca028a2ebb54414145b1f3c1 100644 (file)
@@ -6,7 +6,7 @@ of it is not yet implemented (e.g. the table join part).
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -17,13 +17,13 @@ the Free Software Foundation; either version 2 of the License, or
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-MA  02110-1301  USA
+MA 02110-1301 USA
 //-->
 <admin-list-data>
        <!--
 //-->
 <admin-list-data>
        <!--
@@ -119,10 +119,6 @@ MA  02110-1301  USA
                        //-->
                        <where-select-from-list-entry type="string" table="dt" value="userid" condition="EQUALS" look-for="$userid" />
                        <!--
                        //-->
                        <where-select-from-list-entry type="string" table="dt" value="userid" condition="EQUALS" look-for="$userid" />
                        <!--
-                       How the next described column shall be logical linked to the above.
-                       //-->
-                       <where-condition type="string" condition="AND" />
-                       <!--
                        The second column to perform the WHERE statement on. NOT-EQUALS is an alias for '!='.
                        //-->
                        <where-select-from-list-entry type="string" table="dt" name="status" condition="NOT-EQUALS" look-for="CONFIRMED" />
                        The second column to perform the WHERE statement on. NOT-EQUALS is an alias for '!='.
                        //-->
                        <where-select-from-list-entry type="string" table="dt" name="status" condition="NOT-EQUALS" look-for="CONFIRMED" />
@@ -180,4 +176,8 @@ MA  02110-1301  USA
                        </callback-extra-parameter-list>
                </column-callback-list-entry>
        </column-callback-list>
                        </callback-extra-parameter-list>
                </column-callback-list-entry>
        </column-callback-list>
+       <!--
+       How the named column shall be logical linked to the above.
+       //-->
+       <where-condition type="string" name="status" condition="AND" />
 </admin-list-data>
 </admin-list-data>
index 378ccd755809f0486f5e437199450523e1594baf..7690902d700f1ccab0a919d94c5998d91e285822 100644 (file)
@@ -7,7 +7,7 @@ author tag intact.
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
 @author                Roland Haeder <webmaster@mxchange.org>
 @version       0.2.1-FINAL
 @copyright     (c) 2003 - 2009 by Roland Haeder
-@copyright     (c) 2009 - 2011 by Mailer Developer Team
+@copyright     (c) 2009 - 2012 by Mailer Developer Team
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
 @license       GNU GPL 2.0 or any newer version
 @link          http://mxchange.org
 
@@ -18,11 +18,11 @@ the Free Software Foundation; either version 2 of the License, or
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
-MA  02110-1301  USA
+MA 02110-1301 USA
 //-->
 //-->
diff --git a/theme/business/css/ajax.css b/theme/business/css/ajax.css
new file mode 100644 (file)
index 0000000..d3ef0d5
--- /dev/null
@@ -0,0 +1,155 @@
+ul#footernav {
+       list-style-type: none;
+       margin: 0px;
+       padding: 5px;
+       background-color: #eeeeff;
+       border: 1px solid #000000;
+       height: 23px;
+       width: 680px;
+       text-align: right;
+}
+
+ul#footernav li {
+       float: right;
+       margin: 2px 2px 2px 4px;
+}
+
+ul#tabnav {
+       list-style-type: none;
+       margin: 0px;
+       padding-left: 30px;
+       padding-bottom: 24px;
+       z-index: 0;
+}
+
+ul#tabnav li {
+       float: left;
+       height: 21px;
+       background-color: #eeeeff;
+       margin: 2px 2px 0px 2px;
+       border-top: 1px solid #000000;
+       border-left: 1px solid #000000;
+       border-right: 1px solid #000000;
+       z-index: 1;
+}
+
+ul#tabnav a {
+       z-index: 1;
+}
+
+ul#tabnav li.tab_enabled a:link, ul#tabnav li.tab_enabled a:visited {
+       display: block;
+       color: #2e51a9;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_disabled a:link, ul#tabnav li.tab_disabled a:visited {
+       display: block;
+       color: #e0e0e0;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_enabled a:hover, ul#tabnav li.tab_active {
+       background-color: #ddddee;
+       color: #0a2d85;
+}
+
+ul#tabnav a:hover {
+       padding: 4px 4px 3px 4px;
+       border-bottom: 1px solid #000000;
+}
+
+ul#tabnav li.tab_active {
+       padding-bottom: 0px;
+       border-bottom: 0px none;
+}
+
+.tabnav_disabled, .tabnav_disabled:visited {
+       cursor: default;
+       height: 7px;
+       background-color: #aaaaaa;
+       color: #e0e0e0;
+}
+
+.ajax_error, .ajax_warning {
+       z-index: 200;
+       min-height: 10px;
+       overflow: visible;
+       padding: 5px;
+       display: none;
+       position: absolute;
+       top: 100px;
+       left: 26%;
+}
+
+.ajax_error {
+       background-color: #990000;
+}
+
+.ajax_warning {
+       background-color: #999900;
+}
+
+.ajax_error_title, .ajax_warning_title {
+       border: 1px solid #ffffff;
+       padding: 3px;
+       color: #ffffff;
+       float: left;
+       width: 461px;
+}
+
+.ajax_error_title {
+       background-color: #bb0000;
+}
+
+.ajax_warning_title {
+       background-color: #bbbb00;
+}
+
+.ajax_error_close, .ajax_warning_close {
+       border: 1px solid #ffffff;
+       float: right;
+       width: 10px;
+       z-index: 200;
+       min-height: 10x;
+       margin-left: 5px;
+       padding: 3px;
+       color: #ffffff;
+       text-align: center;
+}
+
+.ajax_error_close {
+       background-color: #bb0000;
+}
+
+.ajax_warning_close {
+       background-color: #bbbb00;
+}
+
+.ajax_error_content, .ajax_warning_content {
+       width: 470px;
+       border: 1px solid #ffffff;
+       margin-top: 5px;
+       color: #ffffff;
+       padding: 10px;
+}
+
+.field_changed {
+       border: 5px groove #bbbb00;
+}
+
+.field_changed:hover {
+       border: 5px groove #ffff00;
+}
+
+.field_failed {
+       border: 5px groove #bb0000;
+}
+
+.field_failed:hover {
+       border: 5px groove #ff0000;
+}
index 550b43a1cc7b0dfb687dc012dec04adeb7524765..73f794f6687033e0347fa467f7ee23d62538952c 100644 (file)
@@ -41,12 +41,33 @@ A:hover {
 
 input, textarea, select, option {
        color: #000000;
 
 input, textarea, select, option {
        color: #000000;
-       background-color: #ffffff;
        border: 1px solid #000000;
        text-decoration: none;
 }
 
        border: 1px solid #000000;
        text-decoration: none;
 }
 
-ul,ol {
+fieldset {
+       border: 1px solid #000000;
+       margin-top: 10px;
+       padding: 10px;
+}
+
+fieldset:hover, input:hover, select:hover, option:hover, textarea:hover {
+       border-color: #000080;
+}
+
+input:hover, select:hover, option:hover, textarea:hover {
+       color: #000080;
+}
+
+legend {
+       font-weight: bold;
+       color: #000000;
+       background-color: transparent;
+       padding-left: 5px;
+       padding-right: 5px;
+}
+
+ul, ol {
        margin-top: 0px;
        margin-bottom: 0px;
 }
        margin-top: 0px;
        margin-bottom: 0px;
 }
@@ -168,6 +189,15 @@ a.logout_box {
        margin: 5px;
 }
 
        margin: 5px;
 }
 
+.bug_table {
+       background-color: #ffffff;
+       margin: 0px;
+       max-width: 100%;
+       min-width: 400px;
+       overflow: auto
+       color: #000000;
+}
+
 .form_submitmenu {
        min-width: 500px;
        max-width: 90%;
 .form_submitmenu {
        min-width: 500px;
        max-width: 90%;
@@ -187,11 +217,6 @@ a.logout_box {
        height: 20px;
 }
 
        height: 20px;
 }
 
-.form_field {
-       border: solid 1px #000000;
-       background-color: #eeeeff;
-}
-
 .admin_alpha {
        text-align: center;
        height: 40px;
 .admin_alpha {
        text-align: center;
        height: 40px;
@@ -212,7 +237,7 @@ a.logout_box {
        background-color: #ffffff;
 }
 
        background-color: #ffffff;
 }
 
-.table_header {
+.table_header, .bug_table_header {
        text-align: center;
        color: #000000;
        vertical-align: middle;
        text-align: center;
        color: #000000;
        vertical-align: middle;
@@ -494,6 +519,11 @@ ul.copyright_box {
        color: #ffffff;
 }
 
        color: #ffffff;
 }
 
+.disabled:hover {
+       background-color: #aaaaaa;
+       color: #ffffff;
+}
+
 .mini_select {
        border: solid 1px #000000;
        background-color: #eeeeff;
 .mini_select {
        border: solid 1px #000000;
        background-color: #eeeeff;
@@ -546,11 +576,11 @@ ul.show_timings_block {
        background-color: #ffffff;
        margin-top: 2px;
        width: 150px;
        background-color: #ffffff;
        margin-top: 2px;
        width: 150px;
-       border: solid 1px #000000;
        height: 14px;
 }
 
 span.show_timings_column {
        height: 14px;
 }
 
 span.show_timings_column {
+       border: solid 1px #000000;
        display: inline-block;
 }
 
        display: inline-block;
 }
 
@@ -650,3 +680,29 @@ li.listing {
 .good {
        color: #00aa00;
 }
 .good {
        color: #00aa00;
 }
+
+.table_row {
+       text-align: left;
+       clear: both;
+       margin: 0px;
+       padding: 0px;
+       padding-top: 5px;
+       padding-bottom: 5px;
+       height: 28px;
+}
+
+.table_row label {
+       float: left;
+       width: 45%;
+}
+
+.form_field {
+       border: solid 1px #000000;
+       background-color: #eeeeff;
+}
+
+.field_note {
+       float: left;
+       text-align: left;
+       font-style: italic;
+}
index 6d5ecf411c82238d7402b21d5eed0cd4dc904d60..0489443edca96c9c8461be93781a0e05ba260e72 100644 (file)
@@ -1,23 +1,38 @@
-.install_main {
-       color: #000000;
-       background-color: #FFFFFF;
+.install_content {
+       background-color: #ffffff;
        text-decoration: none;
        text-decoration: none;
+       border: 1px solid #000000;
+       padding: 5px;
+       width: 670px;
+       z-index: 20;
+}
+
+.install_main_ajax {
+       padding-bottom: 6px;
 }
 
 .install_header {
        color: #000000;
 }
 
 .install_header {
        color: #000000;
-       background-color: #EEEEFF;
+       background-color: #eeeeff;
        font-size: 20px;
        text-decoration: underline;
        height: 30px;
        font-size: 20px;
        text-decoration: underline;
        height: 30px;
-       vertical-align: middle;
        padding-top: 5px;
        padding-bottom: 5px;
        padding-top: 5px;
        padding-bottom: 5px;
+       margin-bottom: 5px;
 }
 
 .install_fatalcontent {
        text-align: left;
 }
 
 .install_fatalcontent {
        text-align: left;
-       background-color: #FFFFFF;
+       background-color: #ffffff;
+}
+
+.install_title {
+       padding-top: 5px;
+       padding-bottom: 10px;
+       font-size: 16px;
+       font-weight: bold;
+       color: #000000;
 }
 
 .install_error, .install_finished {
 }
 
 .install_error, .install_finished {
        padding-bottom: 10px;
 }
 
        padding-bottom: 10px;
 }
 
+.install_footer {
+       padding-bottom: 10px;
+}
+
 .install_right {
        text-align: right;
        padding-right: 5px;
 }
 .install_right {
        text-align: right;
        padding-right: 5px;
 }
+
+.install_menu_ajax {
+       width: 700px;
+}
+
+.install_content_container {
+       height: 420px;
+       width: 700px;
+       z-index: 10;
+       overflow: hidden;
+       padding-bottom: 10px;
+}
+
+.install_tab {
+}
+
+.table_row label.install_label {
+       float: left;
+       width: 30%;
+}
index 52ebcf76d733f2714f4c7b025d55975a93de65ba..4241199fd5016c2716ed3964388439f19dcf0d29 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 //
 } // END - if
 
 //
diff --git a/theme/default/css/ajax.css b/theme/default/css/ajax.css
new file mode 100644 (file)
index 0000000..59ed0a5
--- /dev/null
@@ -0,0 +1,158 @@
+ul#footernav {
+       list-style-type: none;
+       margin: 0px;
+       padding: 5px;
+       background-color: #ddeedd;
+       border: 1px solid #009900;
+       height: 23px;
+       width: 680px;
+       text-align: right;
+}
+
+ul#footernav li {
+       float: right;
+       margin: 2px 2px 2px 4px;
+}
+
+ul#tabnav {
+       list-style-type: none;
+       margin: 0px;
+       padding-left: 30px;
+       padding-bottom: 24px;
+       z-index: 0;
+}
+
+ul#tabnav li {
+       float: left;
+       height: 21px;
+       background-color: #ddeedd;
+       margin: 2px 2px 0px 2px;
+       border-top: 1px solid #009900;
+       border-left: 1px solid #009900;
+       border-right: 1px solid #009900;
+       z-index: 1;
+}
+
+ul#tabnav a {
+       z-index: 1;
+}
+
+ul#tabnav li.tab_enabled a:link, ul#tabnav li.tab_enabled a:visited {
+       display: block;
+       color: #2e51a9;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_disabled a:link, ul#tabnav li.tab_disabled a:visited {
+       display: block;
+       color: #e0e0e0;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_enabled a:hover, ul#tabnav li.tab_active {
+       background-color: #ccddcc;
+       color: #000099;
+}
+
+ul#tabnav a:hover {
+       padding: 4px 4px 3px 4px;
+       border-bottom: 1px solid #000099;
+}
+
+ul#tabnav li.tab_active {
+       padding-bottom: 0px;
+       border-bottom: 0px none;
+}
+
+.tabnav_disabled, .tabnav_disabled:visited {
+       cursor: default;
+       height: 7px;
+       background-color: #aaaaaa;
+       color: #e0e0e0;
+}
+
+.ajax_error, .ajax_warning {
+       z-index: 200;
+       min-height: 10px;
+       overflow: visible;
+       padding: 5px;
+       display: none;
+       position: absolute;
+       top: 100px;
+       left: 26%;
+}
+
+.ajax_error {
+       background-color: #990000;
+}
+
+.ajax_warning {
+       background-color: #999900;
+}
+
+.ajax_error_title, .ajax_warning_title {
+       border: 1px solid #ffffff;
+       padding: 3px;
+       color: #ffffff;
+       float: left;
+       width: 461px;
+}
+
+.ajax_error_title {
+       background-color: #bb0000;
+}
+
+.ajax_warning_title {
+       background-color: #bbbb00;
+}
+
+.ajax_error_close, .ajax_warning_close {
+       border: 1px solid #ffffff;
+       float: right;
+       width: 10px;
+       z-index: 200;
+       min-height: 10x;
+       margin-left: 5px;
+       padding: 3px;
+       color: #ffffff;
+       text-align: center;
+}
+
+.ajax_error_close {
+       background-color: #bb0000;
+}
+
+.ajax_warning_close {
+       background-color: #bbbb00;
+}
+
+.ajax_error_message {
+}
+
+.ajax_error_content, .ajax_warning_content {
+       width: 470px;
+       border: 1px solid #ffffff;
+       margin-top: 5px;
+       color: #ffffff;
+       padding: 10px;
+}
+
+.field_changed {
+       border: 5px groove #bbbb00;
+}
+
+.field_changed:hover {
+       border: 5px groove #ffff00;
+}
+
+.field_failed {
+       border: 5px groove #bb0000;
+}
+
+.field_failed:hover {
+       border: 5px groove #ff0000;
+}
index 84a430d2f309cfd0247424e99b2d9b622e521360..37da3a0016db7d73b18e232be11e2b25f42f511b 100644 (file)
@@ -4,14 +4,7 @@ body {
        font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
        font-size: 12px;
        letter-spacing: 1px;
        font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
        font-size: 12px;
        letter-spacing: 1px;
-       scrollbar-base-color: #E9E4AE;
-       scrollbar-face-color: #CDEFCD;
-       scrollbar-highlight-color: #eeffee;
-       scrollbar-shadow-color: #CDEFCD;
-       scrollbar-3dlight-color: #dddddd;
-       scrollbar-arrow-color: #000000;
-       scrollbar-track-color: #ccEFcc;
-       scrollbar-darkshadow-color: #999999;
+
        margin: 0px;
        margin-left: 0px;
        margin-right: 0px;
        margin: 0px;
        margin-left: 0px;
        margin-right: 0px;
@@ -61,9 +54,27 @@ select, option {
        text-decoration: none;
 }
 
        text-decoration: none;
 }
 
+fieldset {
+       border: 1px solid #009900;
+       margin-top: 10px;
+       padding: 10px;
+}
+
+legend {
+       font-weight: bold;
+       color: #009900;
+       background-color: transparent;
+       padding-left: 5px;
+       padding-right: 5px;
+}
+
 input:hover, textarea:hover {
        border-color: #00dd44;
 input:hover, textarea:hover {
        border-color: #00dd44;
-       color: #007700;
+       color: #006600;
+}
+
+fieldset:hover {
+       border-color: #00dd44;
 }
 
 input.form_delete:hover {
 }
 
 input.form_delete:hover {
@@ -97,6 +108,7 @@ pre {
        color: #00aa44;
        border-color: #009900;
        cursor: pointer;
        color: #00aa44;
        border-color: #009900;
        cursor: pointer;
+       background-color: #eeffee;
 }
 
 .form_delete {
 }
 
 .form_delete {
@@ -124,10 +136,6 @@ pre {
        font-size: 12px;
 }
 
        font-size: 12px;
 }
 
-.form_submit {
-       background-color: #eeffee;
-}
-
 .banner {
        background-color: #eeffee;
        width: 488px;
 .banner {
        background-color: #eeffee;
        width: 488px;
@@ -140,8 +148,6 @@ pre {
 }
 
 .form_select {
 }
 
 .form_select {
-       border: groove 1px #009900;
-       background-color: #eeffee;
 }
 
 .description_header, .message {
 }
 
 .description_header, .message {
@@ -200,6 +206,15 @@ a.logout_box {
        margin: 5px;
 }
 
        margin: 5px;
 }
 
+.bug_table {
+       background-color: #eeffee;
+       margin: 0px;
+       max-width: 100%;
+       min-width: 400px;
+       overflow: auto
+       color: #000000;
+}
+
 .form_submitmenu {
        min-width: 500px;
        max-width: 90%;
 .form_submitmenu {
        min-width: 500px;
        max-width: 90%;
@@ -219,10 +234,6 @@ a.logout_box {
        height: 20px;
 }
 
        height: 20px;
 }
 
-.form_field {
-       border: groove 1px #009900;
-}
-
 .normal {
        border-style: groove;
 }
 .normal {
        border-style: groove;
 }
@@ -231,7 +242,7 @@ a.logout_box {
        background-color: #ddeedd;
 }
 
        background-color: #ddeedd;
 }
 
-.table_header {
+.table_header, .bug_table_header {
        text-align: center;
        color: #009900;
        vertical-align: middle;
        text-align: center;
        color: #009900;
        vertical-align: middle;
@@ -531,7 +542,13 @@ ul.copyright_box {
 .disabled {
        border-style: groove;
        background-color: #aaaaaa;
 .disabled {
        border-style: groove;
        background-color: #aaaaaa;
-       color: #ff9900;
+       color: #e0e0e0;
+       cursor: default;
+}
+
+.disabled:hover {
+       background-color: #aaaaaa;
+       color: #e0e0e0;
 }
 
 .mini_select {
 }
 
 .mini_select {
@@ -583,13 +600,13 @@ ul.show_timings_block {
        background-color: #eeffee;
        margin-top: 2px;
        width: 150px;
        background-color: #eeffee;
        margin-top: 2px;
        width: 150px;
-       border: solid 1px #009900;
        height: 14px;
        font-size: 10px;
 }
 
 span.show_timings_column {
        display: inline-block;
        height: 14px;
        font-size: 10px;
 }
 
 span.show_timings_column {
        display: inline-block;
+       border: solid 1px #009900;
 }
 
 li.show_timings_column {
 }
 
 li.show_timings_column {
@@ -696,3 +713,28 @@ li.listing {
 .good {
        color: #00aa00;
 }
 .good {
        color: #00aa00;
 }
+
+.table_row {
+       text-align: left;
+       clear: both;
+       margin: 0px;
+       padding: 0px;
+       padding-top: 5px;
+       padding-bottom: 5px;
+       height: 28px;
+}
+
+.table_row label {
+       float: left;
+       width: 45%;
+}
+
+.form_field {
+       border: groove 1px #009900;
+}
+
+.field_note {
+       float: left;
+       text-align: left;
+       font-style: italic;
+}
index c0d492e67f17d458bd448299315447f149e3b7a5..658e41172d3f5cc30ca1033ab2a1679e6bccb191 100644 (file)
@@ -1,31 +1,40 @@
-.install_main {
-       background-color: #DDEEDD;
+.install_content {
+       background-color: #ddeedd;
        text-decoration: none;
        text-decoration: none;
+       border: 1px solid #009900;
+       padding: 5px;
+       width: 670px;
+       z-index: 20;
+}
+
+.install_main_ajax {
+       padding-bottom: 6px;
 }
 
 .install_header {
        color: #009900;
 }
 
 .install_header {
        color: #009900;
-       background-color: #CCDDCC;
+       background-color: #ddeedd;
        font-size: 20px;
        text-decoration: underline;
        height: 30px;
        padding-top: 5px;
        padding-bottom: 5px;
        font-size: 20px;
        text-decoration: underline;
        height: 30px;
        padding-top: 5px;
        padding-bottom: 5px;
+       margin-bottom: 5px;
 }
 
 .install_fatalcontent {
        text-align: left;
 }
 
 .install_fatalcontent {
        text-align: left;
-       background-color: #DDEEDD;
+       background-color: #ddeedd;
 }
 
 .install_error {
        font-size: 20px;
 }
 
 .install_error {
        font-size: 20px;
-       color: #AA0000;
+       color: #aa0000;
 }
 
 .install_finished {
        font-size: 20px;
 }
 
 .install_finished {
        font-size: 20px;
-       color: #00AA00;
+       color: #00aa00;
 }
 
 .install_welcome {
 }
 
 .install_welcome {
        font-size: 16px;
 }
 
        font-size: 16px;
 }
 
+.install_title {
+       padding-top: 5px;
+       padding-bottom: 10px;
+       font-size: 16px;
+       font-weight: bold;
+       color: #009900;
+}
+
 .install_footer {
        padding-bottom: 10px;
 }
 .install_footer {
        padding-bottom: 10px;
 }
        padding-right: 5px;
 }
 
        padding-right: 5px;
 }
 
-.install_menu {
+.install_menu_ajax {
+       width: 700px;
+}
+
+.install_content_container {
+       height: 420px;
+       width: 700px;
+       z-index: 10;
+       overflow: hidden;
+       padding-bottom: 10px;
+}
+
+.install_tab {
+}
+
+.table_row label.install_label {
        float: left;
        float: left;
-       width: 120px;
-       border: 1px solid #ff0000;
+       width: 30%;
 }
 }
index 332bd6a3fb61ae0f871f0fbbbb428360bb3ab2e0..5d99efc8750c5932ec4e5e13dc54135276b1c211 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 //
 } // END - if
 
 //
diff --git a/theme/desert/css/ajax.css b/theme/desert/css/ajax.css
new file mode 100644 (file)
index 0000000..8676896
--- /dev/null
@@ -0,0 +1,157 @@
+ul#footernav {
+       list-style-type: none;
+       margin: 0px;
+       padding: 5px;
+       background-color: #ffffcc;
+       border: 1px solid #880000;
+       height: 23px;
+       width: 680px;
+       text-align: right;
+}
+
+ul#footernav li {
+       float: right;
+       margin: 2px 2px 2px 4px;
+}
+
+ul#tabnav {
+       list-style-type: none;
+       margin: 0px;
+       padding-left: 30px;
+       padding-bottom: 24px;
+       z-index: 0;
+}
+
+ul#tabnav li {
+       float: left;
+       height: 21px;
+       background-color: #ffffcc;
+       margin: 2px 2px 0px 2px;
+       border-top: 1px solid #880000;
+       border-left: 1px solid #880000;
+       border-right: 1px solid #880000;
+       z-index: 1;
+}
+
+ul#tabnav a {
+       z-index: 1;
+}
+
+ul#tabnav li.tab_enabled a:link, ul#tabnav li.tab_enabled a:visited {
+       display: block;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_disabled a:link, ul#tabnav li.tab_disabled a:visited {
+       display: block;
+       color: #e0e0e0;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_enabled a:hover, ul#tabnav li.tab_active {
+       background-color: #cccc99;
+       color: #550000;
+}
+
+ul#tabnav a:hover {
+       padding: 4px 4px 3px 4px;
+       border-bottom: 1px solid #880000;
+}
+
+ul#tabnav li.tab_active {
+       padding-bottom: 0px;
+       border-bottom: 0px none;
+}
+
+.tabnav_disabled, .tabnav_disabled:visited {
+       cursor: default;
+       height: 7px;
+       background-color: #aaaaaa;
+       color: #e0e0e0;
+}
+
+.ajax_error, .ajax_warning {
+       z-index: 200;
+       min-height: 10px;
+       overflow: visible;
+       padding: 5px;
+       display: none;
+       position: absolute;
+       top: 100px;
+       left: 26%;
+}
+
+.ajax_error {
+       background-color: #990000;
+}
+
+.ajax_warning {
+       background-color: #999900;
+}
+
+.ajax_error_title, .ajax_warning_title {
+       border: 1px solid #ffffff;
+       padding: 3px;
+       color: #ffffff;
+       float: left;
+       width: 461px;
+}
+
+.ajax_error_title {
+       background-color: #bb0000;
+}
+
+.ajax_warning_title {
+       background-color: #bbbb00;
+}
+
+.ajax_error_close, .ajax_warning_close {
+       border: 1px solid #ffffff;
+       float: right;
+       width: 10px;
+       z-index: 200;
+       min-height: 10x;
+       margin-left: 5px;
+       padding: 3px;
+       color: #ffffff;
+       text-align: center;
+}
+
+.ajax_error_close {
+       background-color: #bb0000;
+}
+
+.ajax_warning_close {
+       background-color: #bbbb00;
+}
+
+.ajax_error_message {
+}
+
+.ajax_error_content, .ajax_warning_content {
+       width: 470px;
+       border: 1px solid #ffffff;
+       margin-top: 5px;
+       color: #ffffff;
+       padding: 10px;
+}
+
+.field_changed {
+       border: 5px groove #bbbb00;
+}
+
+.field_changed:hover {
+       border: 5px groove #ffff00;
+}
+
+.field_failed {
+       border: 5px groove #bb0000;
+}
+
+.field_failed:hover {
+       border: 5px groove #ff0000;
+}
index 7ec4218f5afc1239720f7f9fdb9b66d7a3878b73..1e30da0d3fcdf9814a4425265782dbf8ce91c915 100644 (file)
@@ -39,13 +39,28 @@ A:hover {
        background-color: transparent;
 }
 
        background-color: transparent;
 }
 
-input,textarea,select,option {
+input, textarea, select, option {
        color: #880000;
        color: #880000;
-       background-color: #ffffcc;
+       background-color: #eeeebb;
        border: 1px solid #880000;
        text-decoration: none;
 }
 
        border: 1px solid #880000;
        text-decoration: none;
 }
 
+fieldset {
+       border: 1px solid #880000;
+       margin-top: 10px;
+       padding: 10px;
+}
+
+fieldset:hover, input:hover, select:hover, option:hover, textarea:hover {
+       border-color: #550000;
+}
+
+input:hover, select:hover, option:hover, textarea:hover {
+       background-color: #cccc99;
+       color: #550000;
+}
+
 ul,ol {
        margin-top: 0px;
        margin-bottom: 0px;
 ul,ol {
        margin-top: 0px;
        margin-bottom: 0px;
@@ -57,22 +72,7 @@ pre {
        padding: 5px;
 }
 
        padding: 5px;
 }
 
-.form_reset {
-       border: groove 1px #880000;
-       color: #880000;
-       cursor: pointer;
-}
-
-.form_submit {
-       color: #880000;
-       border-color: #880000;
-       cursor: pointer;
-}
-
-.form_delete {
-       border-style: groove;
-       color: #880000;
-       border-color: #880000;
+.form_reset, .form_submit, .form_delete {
        cursor: pointer;
 }
 
        cursor: pointer;
 }
 
@@ -94,7 +94,7 @@ pre {
 }
 
 .form_submit {
 }
 
 .form_submit {
-       background-color: #ffffcc;
+       background-color: #eeeebb;
 }
 
 .banner {
 }
 
 .banner {
@@ -110,17 +110,17 @@ pre {
 
 .form_select {
        border: solid 1px #880000;
 
 .form_select {
        border: solid 1px #880000;
-       background-color: #ddddaa;
+       background-color: #eeeebb;
 }
 
 .description_header, .message {
 }
 
 .description_header, .message {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        color: #880000;
        text-align: center;
 }
 
 .admin_menu {
        color: #880000;
        text-align: center;
 }
 
 .admin_menu {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        color: #880000;
        width: 230px;
        height: 25px;
        color: #880000;
        width: 230px;
        height: 25px;
@@ -169,6 +169,15 @@ a.logout_box {
        margin: 5px;
 }
 
        margin: 5px;
 }
 
+.bug_table {
+       background-color: #ffffcc;
+       margin: 0px;
+       max-width: 100%;
+       min-width: 400px;
+       overflow: auto
+       color: #880000;
+}
+
 .form_submitmenu {
        min-width: 500px;
        max-width: 90%;
 .form_submitmenu {
        min-width: 500px;
        max-width: 90%;
@@ -178,7 +187,7 @@ a.logout_box {
        text-align: center;
        color: #880000;
        vertical-align: middle;
        text-align: center;
        color: #880000;
        vertical-align: middle;
-       background-color: #ddddaa;
+       background-color: #cccc99;
        height: 60px;
 }
 
        height: 60px;
 }
 
@@ -188,11 +197,6 @@ a.logout_box {
        height: 20px;
 }
 
        height: 20px;
 }
 
-.form_field {
-       border: solid 1px #880000;
-       background-color: #ddddaa;
-}
-
 .normal {
        border-style: groove;
 }
 .normal {
        border-style: groove;
 }
@@ -201,11 +205,11 @@ a.logout_box {
        background-color: #ffffcc;
 }
 
        background-color: #ffffcc;
 }
 
-.table_header {
+.table_header, .bug_table_header {
        text-align: center;
        color: #880000;
        vertical-align: middle;
        text-align: center;
        color: #880000;
        vertical-align: middle;
-       background-color: #ddddaa;
+       background-color: #cccc99;
        padding-bottom: 5px;
        padding-top: 5px;
 }
        padding-bottom: 5px;
        padding-top: 5px;
 }
@@ -213,7 +217,7 @@ a.logout_box {
 .guest_login_header {
        color: #880000;
        vertical-align: middle;
 .guest_login_header {
        color: #880000;
        vertical-align: middle;
-       background-color: #ddddaa;
+       background-color: #cccc99;
 }
 
 .guest_menu, .member_menu {
 }
 
 .guest_menu, .member_menu {
@@ -223,7 +227,7 @@ a.logout_box {
 }
 
 .guest_menu_title, .member_menu_title {
 }
 
 .guest_menu_title, .member_menu_title {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        color: #880000;
        height: 25px;
        width: 200px;
        color: #880000;
        height: 25px;
        width: 200px;
@@ -310,7 +314,7 @@ ul.copyright_box {
 }
 
 .media_header {
 }
 
 .media_header {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        text-align: center;
        color: #880000;
        height: 26px;
        text-align: center;
        color: #880000;
        height: 26px;
@@ -331,27 +335,27 @@ ul.copyright_box {
 }
 
 .admin_sep_footer {
 }
 
 .admin_sep_footer {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        font-size: 1px;
 }
 
 .admin_sep_footer2 {
        font-size: 1px;
 }
 
 .admin_sep_footer2 {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        font-size: 1px;
 }
 
 .member_refbanner, .member_update, .admin_delete_link {
        font-size: 1px;
 }
 
 .member_refbanner, .member_update, .admin_delete_link {
-       background-color: #ddddaa;
+       background-color: #cccc99;
 }
 
 .table_footer {
 }
 
 .table_footer {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        text-align: center;
        padding: 5px;
 }
 
 .admin_task_header {
        text-align: center;
        padding: 5px;
 }
 
 .admin_task_header {
-       background-color: #ddddaa;
+       background-color: #cccc99;
        color: #880000;
        vertical-align: middle;
        font-size: 18px;
        color: #880000;
        vertical-align: middle;
        font-size: 18px;
@@ -462,7 +466,7 @@ ul.copyright_box {
 }
 
 .menu_blur:hover {
 }
 
 .menu_blur:hover {
-       background-color: #ddddaa;
+       background-color: #cccc99;
 }
 
 .admin_alpha {
 }
 
 .admin_alpha {
@@ -481,11 +485,17 @@ ul.copyright_box {
        border-style: groove;
        background-color: #aaaaaa;
        color: #ffffcc;
        border-style: groove;
        background-color: #aaaaaa;
        color: #ffffcc;
+       cursor: default;
+}
+
+.disabled:hover {
+       background-color: #aaaaaa;
+       color: #ffffcc;
 }
 
 .mini_select {
        border: solid 1px #880000;
 }
 
 .mini_select {
        border: solid 1px #880000;
-       background-color: #ddddaa;
+       background-color: #cccc99;
        font-size: 10px;
 }
 
        font-size: 10px;
 }
 
@@ -520,7 +530,7 @@ ul.copyright_box {
 
 ul.show_timings_block {
        border: solid 1px #880000;
 
 ul.show_timings_block {
        border: solid 1px #880000;
-       background-color: #ddddaa;
+       background-color: #cccc99;
        font-size: 10px;
        width: 645px;
        height: 20px;
        font-size: 10px;
        width: 645px;
        height: 20px;
@@ -531,11 +541,11 @@ ul.show_timings_block {
        background-color: #ffffcc;
        margin-top: 2px;
        width: 150px;
        background-color: #ffffcc;
        margin-top: 2px;
        width: 150px;
-       border: solid 1px #880000;
        height: 14px;
 }
 
 span.show_timings_column {
        height: 14px;
 }
 
 span.show_timings_column {
+       border: solid 1px #880000;
        display: inline-block;
 }
 
        display: inline-block;
 }
 
@@ -550,7 +560,7 @@ span.show_timings_data {
 
 .login_failure_header {
        text-align: center;
 
 .login_failure_header {
        text-align: center;
-       background-color: #ddddaa;
+       background-color: #cccc99;
        font-weight: bold;
 }
 
        font-weight: bold;
 }
 
@@ -636,3 +646,29 @@ li.listing {
 .good {
        color: #00aa00;
 }
 .good {
        color: #00aa00;
 }
+
+.table_row {
+       text-align: left;
+       clear: both;
+       margin: 0px;
+       padding: 0px;
+       padding-top: 5px;
+       padding-bottom: 5px;
+       height: 28px;
+}
+
+.table_row label {
+       float: left;
+       width: 45%;
+}
+
+.form_field {
+       border: solid 1px #880000;
+       background-color: #eeeebb;
+}
+
+.field_note {
+       float: left;
+       text-align: left;
+       font-style: italic;
+}
index 641b6bfe6c06bc5375ca46bfb63d3ed79759fac8..81c4b5f98c81712b2da082233bc27ef824b57996 100644 (file)
@@ -1,33 +1,42 @@
-.install_main {
+.install_content {
        color: #880000;
        color: #880000;
-       background-color: #FFFFCC;
+       background-color: #ffffcc;
        text-decoration: none;
        text-decoration: none;
+       border: 1px solid #880000;
+       padding: 5px;
+       width: 670px;
+       z-index: 20;
+}
+
+.install_main_ajax {
+       padding-bottom: 6px;
 }
 
 .install_header {
        color: #880000;
 }
 
 .install_header {
        color: #880000;
-       background-color: #DDDDAA;
-       width: 400px;
+       background-color: #cccc99;
        height: 30px;
        font-size: 20px;
        text-decoration: underline;
        padding-top: 5px;
        padding-bottom: 5px;
        height: 30px;
        font-size: 20px;
        text-decoration: underline;
        padding-top: 5px;
        padding-bottom: 5px;
+       margin-bottom: 5px;
 }
 
 }
 
-.install_fatalcontent {
-       text-align: left;
-       background-color: #FFFFCC;
+.install_error {
+       font-size: 20px;
+       color: #aa0000;
 }
 
 }
 
-.install_error, .install_finished {
-       font-size: 20px;
+.install_title {
+       padding-top: 5px;
+       padding-bottom: 10px;
+       font-size: 16px;
+       font-weight: bold;
        color: #880000;
 }
 
        color: #880000;
 }
 
-.install_welcome {
-       color: #880000;
-       padding-top: 5px;
+.install_footer {
        padding-bottom: 10px;
 }
 
        padding-bottom: 10px;
 }
 
        text-align: right;
        padding-right: 5px;
 }
        text-align: right;
        padding-right: 5px;
 }
+
+.install_menu_ajax {
+       width: 700px;
+}
+
+.install_content_container {
+       height: 420px;
+       width: 700px;
+       z-index: 10;
+       overflow: hidden;
+       padding-bottom: 10px;
+}
+
+.install_tab {
+}
+
+.table_row label.install_label {
+       float: left;
+       width: 30%;
+}
index de5bda5c91ade87b8cfc75c8310611ef71406577..7fc2701b2306586d511f03a2973605cc0a9ff831 100644 (file)
@@ -5,7 +5,7 @@
 .admin_task_title {
        text-align: center;
        height: 23px;
 .admin_task_title {
        text-align: center;
        height: 23px;
-       background-color: #ddddaa;
+       background-color: #cccc99;
        color: #880000;
 }
 
        color: #880000;
 }
 
index 3f17ca1716b99161d4b308daf18ef18c2880338b..050cf5259611fc58be4e340b97fcaa673a821473 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 //
 } // END - if
 
 //
index 14249c50bd7605225950b2d372f352a2dba9252a..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 100644 (file)
@@ -1 +0,0 @@
-Deny from all
\ No newline at end of file
diff --git a/theme/org/css/ajax.css b/theme/org/css/ajax.css
new file mode 100644 (file)
index 0000000..59ed0a5
--- /dev/null
@@ -0,0 +1,158 @@
+ul#footernav {
+       list-style-type: none;
+       margin: 0px;
+       padding: 5px;
+       background-color: #ddeedd;
+       border: 1px solid #009900;
+       height: 23px;
+       width: 680px;
+       text-align: right;
+}
+
+ul#footernav li {
+       float: right;
+       margin: 2px 2px 2px 4px;
+}
+
+ul#tabnav {
+       list-style-type: none;
+       margin: 0px;
+       padding-left: 30px;
+       padding-bottom: 24px;
+       z-index: 0;
+}
+
+ul#tabnav li {
+       float: left;
+       height: 21px;
+       background-color: #ddeedd;
+       margin: 2px 2px 0px 2px;
+       border-top: 1px solid #009900;
+       border-left: 1px solid #009900;
+       border-right: 1px solid #009900;
+       z-index: 1;
+}
+
+ul#tabnav a {
+       z-index: 1;
+}
+
+ul#tabnav li.tab_enabled a:link, ul#tabnav li.tab_enabled a:visited {
+       display: block;
+       color: #2e51a9;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_disabled a:link, ul#tabnav li.tab_disabled a:visited {
+       display: block;
+       color: #e0e0e0;
+       border-bottom: 0px none;
+       padding: 4px;
+       height: 13px;
+}
+
+ul#tabnav li.tab_enabled a:hover, ul#tabnav li.tab_active {
+       background-color: #ccddcc;
+       color: #000099;
+}
+
+ul#tabnav a:hover {
+       padding: 4px 4px 3px 4px;
+       border-bottom: 1px solid #000099;
+}
+
+ul#tabnav li.tab_active {
+       padding-bottom: 0px;
+       border-bottom: 0px none;
+}
+
+.tabnav_disabled, .tabnav_disabled:visited {
+       cursor: default;
+       height: 7px;
+       background-color: #aaaaaa;
+       color: #e0e0e0;
+}
+
+.ajax_error, .ajax_warning {
+       z-index: 200;
+       min-height: 10px;
+       overflow: visible;
+       padding: 5px;
+       display: none;
+       position: absolute;
+       top: 100px;
+       left: 26%;
+}
+
+.ajax_error {
+       background-color: #990000;
+}
+
+.ajax_warning {
+       background-color: #999900;
+}
+
+.ajax_error_title, .ajax_warning_title {
+       border: 1px solid #ffffff;
+       padding: 3px;
+       color: #ffffff;
+       float: left;
+       width: 461px;
+}
+
+.ajax_error_title {
+       background-color: #bb0000;
+}
+
+.ajax_warning_title {
+       background-color: #bbbb00;
+}
+
+.ajax_error_close, .ajax_warning_close {
+       border: 1px solid #ffffff;
+       float: right;
+       width: 10px;
+       z-index: 200;
+       min-height: 10x;
+       margin-left: 5px;
+       padding: 3px;
+       color: #ffffff;
+       text-align: center;
+}
+
+.ajax_error_close {
+       background-color: #bb0000;
+}
+
+.ajax_warning_close {
+       background-color: #bbbb00;
+}
+
+.ajax_error_message {
+}
+
+.ajax_error_content, .ajax_warning_content {
+       width: 470px;
+       border: 1px solid #ffffff;
+       margin-top: 5px;
+       color: #ffffff;
+       padding: 10px;
+}
+
+.field_changed {
+       border: 5px groove #bbbb00;
+}
+
+.field_changed:hover {
+       border: 5px groove #ffff00;
+}
+
+.field_failed {
+       border: 5px groove #bb0000;
+}
+
+.field_failed:hover {
+       border: 5px groove #ff0000;
+}
index 16188144b7808d7af83e67f1b40d3f07e09e2c0d..7a926aed3e09058f93de17a77514086e5354e722 100644 (file)
@@ -1,60 +1,79 @@
 body {
 body {
-       background-color        : #ddeedd;
-       color                   : #000000;
-       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
-       font-size                       : 14px;
-
-       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;
+       background-color: #ddeedd;
+       color: #000000;
+       font-family: Verdana, Arial, Geneva, Helvetica, sans-serif;
+       font-size: 12px;
+       letter-spacing: 1px;
+
+       margin: 0px;
+       margin-left: 0px;
+       margin-right: 0px;
+       margin-top: 0px;
+       margin-bottom: 0px;
 }
 
 table {
 }
 
 table {
-       table-layout            : auto;
-       border-spacing          : 0px;
-       overflow                        : auto;
+       table-layout: auto;
+       border-spacing: 0px;
+       overflow: auto;
 }
 
 A {
 }
 
 A {
-       font-style              : normal;
-       font-family             : Verdana, Arial, Geneva, Helvetica, sans-serif;
-       font-size                       : 14px;
+       font-style: normal;
        text-decoration : none;
 }
 
 A:link {
        text-decoration : none;
 }
 
 A:link {
-       color                   : #2e51a9;
+       color: #2e51a9;
 }
 
 A:visited {
 }
 
 A:visited {
-       color                   : #2e51a9;
+       color: #2e51a9;
 }
 
 A:active {
 }
 
 A:active {
-       color                   : #2e51a9;
-       background-color        : transparent;
+       color: #2e51a9;
+       background-color: transparent;
 }
 
 A:hover {
 }
 
 A:hover {
-       background-color        : transparent;
+       background-color: transparent;
 }
 
 input, textarea, select, option {
 }
 
 input, textarea, select, option {
-       color                   : #2e51a9;
-       background-color        : #EEFFEE;
-       border-color            : #BBBBBB;
-       text-decoration : none;
+       color: #2e51a9;
+       background-color: #eeffee;
+       border: 1px solid #009900;
+       text-decoration: none;
+}
+
+fieldset {
+       border: 1px solid #009900;
+       margin-top: 10px;
+       padding: 10px;
+}
+
+legend {
+       font-weight: bold;
+       color: #009900;
+       background-color: transparent;
+       padding-left: 5px;
+       padding-right: 5px;
+}
+
+input:hover, textarea:hover, select:hover, option:hover {
+       color: #0a2d85;
+       background-color: #ccddcc;
+       border-color: #005500;
+}
+
+fieldset:hover {
+       border-color: #00dd44;
+}
+
+input.form_delete:hover {
+       background-color: #770044;
+       color: #aabbaa;
 }
 
 ul, ol {
 }
 
 ul, ol {
@@ -94,44 +113,53 @@ pre {
 }
 
 .form_reset {
 }
 
 .form_reset {
-       border                          : groove 1px #000000;
-       color                           : #0000AA;
+       border: groove 1px #009900;
+       color: #0000AA;
 }
 
 .form_submit {
 }
 
 .form_submit {
-       color                           : #0000AA;
-       border-color            : #000000;
+       color: #0000aa;
+       border: 1px groove #009900;
+       cursor: pointer;
+       background-color: #eeffee;
 }
 
 .form_delete {
 }
 
 .form_delete {
-       border-style            : groove 1px #000000;
-       color                           : #881111;
+       border-style: groove 1px #009900;
+       color: #881111;
 }
 
 }
 
-.form_submit {
-       background-color        : #ddeedd;
+.banner {
+       background-color: #ddeedd;
+       width: 488px;
 }
 
 }
 
-.banner {
-       background-color        : #ddeedd;
-       width                           : 488px;
+.disabled {
+       border-style: groove;
+       background-color: #aaaaaa;
+       color: #e0e0e0;
+       cursor: default;
+}
+
+.disabled:hover {
+       background-color: #aaaaaa;
+       color: #e0e0e0;
 }
 
 .fatal_error {
 }
 
 .fatal_error {
-       background-color        : #ddeedd;
-       color                           : #eedddd;
-       font-size                       : 11px;
+       background-color: #ddeedd;
+       color: #eedddd;
+       font-size: 11px;
 }
 
 .form_select {
 }
 
 .form_select {
-       border                          : solid 1px;
-       border-color            : #000000;
-       background-color        : #EEFFEE;
+       border: solid 1px #009900;
+       background-color: #EEFFEE;
 }
 
 .admin.register, .description_header {
 }
 
 .admin.register, .description_header {
-       background-color        : #ddeedd;
-       color                   : #000000;
+       background-color: #ddeedd;
+       color: #000000;
 }
 
 .code {
 }
 
 .code {
@@ -165,14 +193,9 @@ pre {
 }
 
 .member_data {
 }
 
 .member_data {
-       background-color        : #ddeedd;
-       color                   : #000000;
-       height                  : 20px;
-}
-
-.form_field {
-       border                          : solid 1px;
-       border-color            : #000000;
+       background-color: #ddeedd;
+       color: #000000;
+       height: 20px;
 }
 
 .normal {
 }
 
 .normal {
@@ -183,18 +206,18 @@ pre {
        background-color        : #DDEEDD;
 }
 
        background-color        : #DDEEDD;
 }
 
-.table_header {
-       color                           : #000000;
-       vertical-align          : middle;
-       background-color        : #DDEEDD;
-       padding-bottom          : 5px;
-       padding-top                     : 5px;
+.table_header, .bug_table_header {
+       color: #000000;
+       vertical-align: middle;
+       background-color: #DDEEDD;
+       padding-bottom: 5px;
+       padding-top: 5px;
 }
 
 .guest_login_header {
 }
 
 .guest_login_header {
-       color                   : #000000;
-       vertical-align          : middle;
-       background-color        : #DDEEDD;
+       color: #000000;
+       vertical-align: middle;
+       background-color: #DDEEDD;
 }
 
 .guest_menu {
 }
 
 .guest_menu {
@@ -320,14 +343,14 @@ pre {
 }
 
 .media_left {
 }
 
 .media_left {
-       font-size                       : 14px;
+       font-size                       : 12px;
        width                   : 200px;
 }
 
 .media_right {
        color                   : #000000;
        font-weight             : bold;
        width                   : 200px;
 }
 
 .media_right {
        color                   : #000000;
        font-weight             : bold;
-       font-size                       : 14px;
+       font-size                       : 12px;
        width                   : 70px;
 }
 
        width                   : 70px;
 }
 
@@ -347,6 +370,7 @@ pre {
 
 .table_footer {
        padding: 5px;
 
 .table_footer {
        padding: 5px;
+       margin-top: 5px;
        text-align: center;
        background-color: #DDEEDD;
 }
        text-align: center;
        background-color: #DDEEDD;
 }
@@ -414,7 +438,7 @@ pre {
 
 .you_are_here {
        white-space         : nowrap;
 
 .you_are_here {
        white-space         : nowrap;
-       font-size           : 14px;
+       font-size           : 12px;
 }
 
 .tiny   { font-size            : 10px; }
 }
 
 .tiny   { font-size            : 10px; }
@@ -516,3 +540,28 @@ li.listing {
 .good {
        color: #00aa00;
 }
 .good {
        color: #00aa00;
 }
+
+.table_row {
+       text-align: left;
+       clear: both;
+       margin: 0px;
+       padding: 0px;
+       padding-top: 5px;
+       padding-bottom: 5px;
+       height: 28px;
+}
+
+.table_row label {
+       float: left;
+       width: 45%;
+}
+
+.form_field {
+       border: groove 1px #009900;
+}
+
+.field_note {
+       float: left;
+       text-align: left;
+       font-style: italic;
+}
index 5137d6c724afab8d6bd426c5c917d05fba25a2e7..ca59a14138f13a9a3eb49ec10a114f1a25a15818 100644 (file)
@@ -1,32 +1,67 @@
-.install_main {
+.install_content {
        color: #000000;
        color: #000000;
-       background-color: #FFFFFF;
+       background-color: #ddeedd;
        text-decoration: none;
        text-decoration: none;
+       border: 1px solid #009900;
+       padding: 5px;
+       width: 670px;
+       z-index: 20;
+}
+
+.install_main_ajax {
+       padding-bottom: 6px;
 }
 
 .install_header {
        color: #000000;
 }
 
 .install_header {
        color: #000000;
-       background-color: #EEEEFF;
+       background-color: #bbccbb;
        font-size: 20px;
        text-decoration: underline;
        font-size: 20px;
        text-decoration: underline;
+       text-align: center;
        heigth: 30px;
        heigth: 30px;
-       vertical-align: middle;
        padding-top: 5px;
        padding-bottom: 5px;
        padding-top: 5px;
        padding-bottom: 5px;
+       margin-bottom: 5px;
 }
 
 }
 
-.install_fatalcontent {
-       text-align: left;
-       background-color: #FFFFFF;
-}
-
-.install_error,.install_finished {
+.install_error {
        font-size: 20px;
        font-size: 20px;
-       color: #000000;
+       color: #aa0000;
 }
 
 }
 
-.install_welcome {
-       color: #000000;
+.install_title {
        padding-top: 5px;
        padding-bottom: 10px;
        padding-top: 5px;
        padding-bottom: 10px;
+       font-size: 16px;
+       font-weight: bold;
+       color: #009900;
+}
+
+.install_footer {
+       padding-bottom: 10px;
+}
+
+.install_right {
+       text-align: right;
+       padding-right: 5px;
+}
+
+.install_menu_ajax {
+       width: 700px;
+}
+
+.install_content_container {
+       height: 420px;
+       width: 700px;
+       z-index: 10;
+       overflow: hidden;
+       padding-bottom: 10px;
+}
+
+.install_tab {
+}
+
+.table_row label.install_label {
+       float: left;
+       width: 30%;
 }
 }
index acc765f55bbe90f6e7b1fe27e2d6119bd86b018e..19e0af8056cd00ef4c1965c0f530a7c0e499c4a2 100644 (file)
@@ -1,5 +1 @@
-.admin_pagenav {
-       text-align      : center;
-       height          : 20px;
-       vertical-align  : middle;
-}
+// @DEPRECATED
index b203486251336780e20be2565e3558d105620c0d..fa72890eb4b3c998a7d88bcc1e7cc54d652549cc 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 //
 } // END - if
 
 //
diff --git a/theme/schleuder/css/ajax.css b/theme/schleuder/css/ajax.css
new file mode 100644 (file)
index 0000000..68c5f08
--- /dev/null
@@ -0,0 +1,11 @@
+
+.ajax_error_message {
+}
+
+.ajax_error_content, .ajax_warning_content {
+       width: 470px;
+       border: 1px solid #ffffff;
+       margin-top: 5px;
+       color: #ffffff;
+       padding: 10px;
+}
index b0355932a0771e3a48224460894727f7a74f1be4..3dce90d3932e4ab193907076fb1e37236cac2735 100644 (file)
@@ -130,13 +130,13 @@ pre {
        align                   : center;
 }
 
        align                   : center;
 }
 
-.table_header {
-       background-color        : #69b2ff;
-       color                   : #FFFFFF;
-       text-align              : center;
-       align                   : center;
-       height                  : 25px;
-       font-size                       : 14px;
+.table_header, .bug_table_header {
+       background-color: #69b2ff;
+       color: #FFFFFF;
+       text-align: center;
+       align: center;
+       height: 25px;
+       font-size: 14px;
        padding-bottom: 5px;
        padding-top: 5px;
 }
        padding-bottom: 5px;
        padding-top: 5px;
 }
index a7cd7db9b12f13615083ca23d873f7f278b5e194..dcf667eb31690b67e2964512d1bda61420767e49 100644 (file)
@@ -1,4 +1,4 @@
-.install_main {
+.install_content {
        color: #000000;
        background-color: #FFFFFF;
        text-decoration: none;
        color: #000000;
        background-color: #FFFFFF;
        text-decoration: none;
        color: #000000;
 }
 
        color: #000000;
 }
 
-.install_welcome {
-       color: #000000;
+.install_title {
        padding-top: 5px;
        padding-bottom: 10px;
        padding-top: 5px;
        padding-bottom: 10px;
+       font-size: 16px;
+       font-weight: bold;
+       color: #000000;
+}
+
+.table_row label.install_label {
+       float: left;
+       width: 30%;
 }
 }
index 4ca19b59ece8133f58fdc3b649bb058d86564cea..e460dc737ca8b584edc861d4db43a340c39301f0 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 //
 } // END - if
 
 //
index f6a077e1b6d743932a31153df2c7f7c4c8c25d7d..f5aff0ff167e4bc57559535fe94f7620c9253f94 100644 (file)
@@ -127,7 +127,7 @@ pre {
        color                   : #000000;
 }
 
        color                   : #000000;
 }
 
-.table_header {
+.table_header, .bug_table_header {
        background-color        : #EEEEFF;
        color                   : #000000;
        text-align              : center;
        background-color        : #EEEEFF;
        color                   : #000000;
        text-align              : center;
index 620a4c759228cf8a54ec45ffee4e91a7a4511bfc..1e817218149b4b8e188e577d931c310959422ec8 100644 (file)
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -37,7 +37,7 @@
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
 
 // Some security stuff...
 if (!defined('__SECURITY')) {
-       die();
+       exit();
 } // END - if
 
 //
 } // END - if
 
 //
index 35f56667480bbf49341023bfa0863f656a609c41..2e9c3e813e9dfb2c7bd7a95def3ae5ae3cbd0903 100644 (file)
--- a/view.php
+++ b/view.php
@@ -16,7 +16,7 @@
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * $Author::                                                          $ *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * Copyright (c) 2009 - 2012 by Mailer Developer Team                   *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
 require('inc/libs/security_functions.php');
 
 // Init start time
 require('inc/libs/security_functions.php');
 
 // Init start time
-$GLOBALS['startTime'] = microtime(true);
+$GLOBALS['__start_time'] = microtime(true);
 
 // Set module
 
 // Set module
-$GLOBALS['__module'] = 'view';
-$GLOBALS['output_mode'] = -1;
+$GLOBALS['__module']      = 'view';
+$GLOBALS['__output_mode'] = -1;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
 // Load the required file(s)
 require('inc/config-global.php');
@@ -80,7 +80,7 @@ if ((isGetRequestElementSet('user')) && (isGetRequestElementSet('banner'))) {
 }
 
 // Shutdown
 }
 
 // Shutdown
-shutdown();
+doShutdown();
 
 // [EOF]
 ?>
 
 // [EOF]
 ?>