From e5dffd4249c97200cbad02f3f4eaf5c373fdb89a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Mon, 27 May 2013 13:37:29 +0000 Subject: [PATCH] Heacy rewrite/cleanup: - Removed all deprecated files (with only @DEPRECATED in it) - Listing of blacklist entries added (may be uncomplete, untested) - Fixed AJAX installer + added first admin registration to it - Prepared better CAPTCHA support - Various other fixes (tons!) - TODOs.txt updated --- .gitattributes | 171 +++----- DOCS/TODOs.txt | 158 ++------ DOCS/en/DESIGNING.txt | 18 - api.php | 4 +- debug.php | 2 +- img.php | 4 +- img/captcha-error.png | Bin 0 -> 7477 bytes inc/ajax-functions.php | 8 +- inc/ajax/ajax_ | 6 +- inc/ajax/ajax_admin.php | 4 +- inc/ajax/ajax_installer.php | 114 +++++- inc/autopurge.php | 3 - inc/birthday_mails.php | 3 - inc/callback-functions.php | 46 +-- inc/captcha-base.png | Bin 0 -> 5441 bytes inc/check-reset.php | 3 - inc/classes/cachesystem.class.php | 2 +- inc/code-functions.php | 2 +- inc/config-functions.php | 25 +- inc/config-local.php.dist | 3 + inc/db/lib-mysql3.php | 10 +- inc/doubler_send.php | 3 - inc/email-functions.php | 2 +- inc/extensions-functions.php | 90 +++-- inc/extensions.php | 3 - inc/extensions/admins/.htaccess | 1 + inc/extensions/admins/mode-update.php | 325 +++++++++++++++ inc/extensions/autopurge/.htaccess | 1 + inc/extensions/autopurge/mode-update.php | 237 +++++++++++ inc/extensions/beg/.htaccess | 1 + inc/extensions/beg/mode-update.php | 315 +++++++++++++++ inc/extensions/bonus/mode-update.php | 10 +- inc/extensions/doubler/.htaccess | 1 + inc/extensions/doubler/mode-setup.php | 110 +++++ inc/extensions/doubler/mode-update.php | 180 +++++++++ inc/extensions/ext-admins.php | 279 ------------- inc/extensions/ext-autopurge.php | 191 --------- inc/extensions/ext-bank.php | 2 +- inc/extensions/ext-beg.php | 275 ------------- inc/extensions/ext-blacklist.php | 4 + inc/extensions/ext-doubler.php | 198 +-------- inc/extensions/ext-forced.php | 113 +----- inc/extensions/ext-grade.php | 2 +- inc/extensions/ext-holiday.php | 2 +- inc/extensions/ext-html_mail.php | 17 +- inc/extensions/ext-order.php | 9 +- inc/extensions/ext-other.php | 191 --------- inc/extensions/ext-payout.php | 140 ------- inc/extensions/ext-rallye.php | 209 ---------- inc/extensions/ext-ranking.php | 102 +++++ inc/extensions/ext-register.php | 1 - inc/extensions/ext-removeip.php | 2 +- inc/extensions/ext-rewrite.php | 4 +- inc/extensions/ext-sql_patches.php | 4 +- inc/extensions/ext-surfbar.php | 167 -------- inc/extensions/ext-task.php | 173 -------- inc/extensions/ext-timezone.php | 6 +- inc/extensions/ext-top10.php | 3 + inc/extensions/ext-transaction.php | 101 +++++ inc/extensions/ext-transfer.php | 205 ---------- inc/extensions/ext-yoomedia.php | 4 +- inc/extensions/forced/.htaccess | 1 + inc/extensions/forced/mode-setup.php | 153 +++++++ inc/extensions/order/mode-update.php | 12 + inc/extensions/other/.htaccess | 1 + inc/extensions/other/mode-update.php | 237 +++++++++++ inc/extensions/payout/.htaccess | 1 + inc/extensions/payout/mode-update.php | 201 ++++++++++ inc/extensions/rallye/.htaccess | 1 + inc/extensions/rallye/mode-update.php | 255 ++++++++++++ inc/extensions/register/mode-update.php | 1 - inc/extensions/sql_patches/mode-remove.php | 2 - inc/extensions/sql_patches/mode-update.php | 15 +- inc/extensions/surfbar/.htaccess | 1 + inc/extensions/surfbar/mode-setup.php | 213 ++++++++++ inc/extensions/task/.htaccess | 1 + inc/extensions/task/mode-update.php | 219 ++++++++++ inc/extensions/transaction/.htaccess | 1 + inc/extensions/transaction/mode-setup.php | 44 ++ inc/extensions/transfer/.htaccess | 1 + inc/extensions/transfer/mode-setup.php | 94 +++++ inc/extensions/transfer/mode-update.php | 203 ++++++++++ inc/extensions/user/mode-setup.php | 2 +- inc/extensions/user/mode-update.php | 3 +- inc/fatal_errors.php | 3 - inc/filter-functions.php | 27 +- inc/filter/blacklist_filter.php | 34 ++ inc/filter/forced_filter.php | 25 +- inc/filter/html_mail_filter.php | 68 ++++ inc/filter/order_filter.php | 98 +++++ inc/filter/surfbar_filter.php | 4 +- inc/filter/transaction_filter.php | 57 +++ inc/filters.php | 91 +++-- inc/fix_menu.php | 8 +- inc/functions.php | 86 +++- inc/gen_sql_patches.php | 8 +- inc/hooks.php | 3 - inc/hourly/hourly_transaction.php | 114 ++++++ inc/http-functions.php | 4 +- inc/img/img_transaction_captcha.php | 61 +++ inc/inc-functions.php | 2 +- inc/install-functions.php | 111 +++++- inc/install-inc.php | 4 +- inc/install/install_page_ | 2 +- inc/install/install_page_1.php | 2 +- inc/install/install_page_2.php | 2 +- inc/install/install_page_3.php | 2 +- inc/install/install_page_5.php | 2 +- inc/install/install_page_finalize.php | 4 +- inc/install/install_page_finished.php | 2 +- inc/install/install_page_welcome.php | 2 +- inc/js/js-install_ajax.php | 2 +- inc/language-functions.php | 16 +- inc/language.php | 3 - inc/language/active_de.php | 4 +- inc/language/admins_de.php | 12 +- inc/language/autopurge_de.php | 3 +- inc/language/bank_de.php | 20 +- inc/language/beg_de.php | 4 +- inc/language/blacklist_de.php | 2 + inc/language/bonus_de.php | 6 +- inc/language/booking_de.php | 20 +- inc/language/coupon_de.php | 2 +- inc/language/de.php | 100 +++-- inc/language/doubler_de.php | 32 +- inc/language/holiday_de.php | 8 +- inc/language/install_de.php | 87 ++-- inc/language/mailid_de.php | 7 +- inc/language/nickname_de.php | 2 +- inc/language/optimize_de.php | 11 +- inc/language/other_de.php | 44 +- inc/language/pro_de.php | 3 - inc/language/rallye_de.php | 1 + inc/language/refback_de.php | 2 +- inc/language/sponsor_de.php | 2 +- inc/language/task_de.php | 12 +- inc/language/theme_de.php | 1 + inc/language/transfer_de.php | 3 +- inc/language/user_de.php | 6 +- inc/language/validator_de.php | 2 +- inc/libs/bonus_functions.php | 2 +- inc/libs/earning_functions.php | 2 +- inc/libs/forced_functions.php | 25 +- inc/libs/mailid_functions.php | 1 - inc/libs/mediadata_functions.php | 2 +- inc/libs/network_functions.php | 16 +- inc/libs/output_functions.php | 3 - inc/libs/rallye_functions.php | 4 +- inc/libs/refback_functions.php | 12 +- inc/libs/register_functions.php | 14 +- inc/libs/sponsor_functions.php | 2 +- inc/libs/surfbar_functions.php | 19 +- inc/libs/task_functions.php | 37 +- inc/libs/theme_functions.php | 2 +- inc/libs/transaction_functions.php | 376 ++++++++++++++++++ inc/libs/yoomedia_functions.php | 12 +- inc/load_config.php | 8 +- inc/load_extensions.php | 3 - inc/loader/load- | 9 +- inc/loader/load-admins.php | 7 +- inc/loader/load-config.php | 5 +- inc/loader/load-earning.php | 9 +- inc/loader/load-extension.php | 7 +- inc/loader/load-filter.php | 5 +- inc/loader/load-imprint.php | 5 +- inc/loader/load-modules.php | 8 +- inc/loader/load-payments.php | 9 +- inc/loader/load-points_data.php | 9 +- inc/loader/load-refdepths.php | 5 +- inc/loader/load-refsystem.php | 5 +- inc/loader/load-revision.php | 4 +- inc/loader/load-themes.php | 5 +- inc/mails/birthday_mails.php | 3 - inc/mails/doubler_mails.php | 4 +- inc/module-functions.php | 20 +- inc/modules/admin.php | 9 +- inc/modules/admin/admin-inc.php | 15 +- inc/modules/admin/overview-inc.php | 2 +- inc/modules/admin/what-add_tester_user.php | 2 +- inc/modules/admin/what-admins_contact.php | 3 - inc/modules/admin/what-autopurge.php | 3 - inc/modules/admin/what-config_booking.php | 58 +++ inc/modules/admin/what-config_cache.php | 3 - inc/modules/admin/what-config_cats.php | 3 - inc/modules/admin/what-config_mods.php | 3 - .../admin/what-config_rallye_prices.php | 3 - inc/modules/admin/what-config_reg.php | 3 - inc/modules/admin/what-config_rewrite.php | 7 +- inc/modules/admin/what-config_secure.php | 14 +- inc/modules/admin/what-del_task.php | 3 - inc/modules/admin/what-edit_sponsor.php | 2 +- inc/modules/admin/what-list_ | 20 +- inc/modules/admin/what-list_autopurge.php | 2 +- inc/modules/admin/what-list_blacklist.php | 89 +++++ .../admin/what-list_network_vcheck_params.php | 3 - inc/modules/admin/what-list_newsletter.php | 3 - inc/modules/admin/what-list_norefs.php | 3 - inc/modules/admin/what-list_task.php | 2 +- inc/modules/admin/what-list_user.php | 10 +- inc/modules/admin/what-list_user_amounts.php | 2 +- inc/modules/admin/what-list_yoomedia_tm.php | 2 +- inc/modules/admin/what-newsletter.php | 3 - inc/modules/admin/what-optimize.php | 2 +- inc/modules/admin/what-payments.php | 2 +- inc/modules/admin/what-repair_amenu.php | 3 - inc/modules/admin/what-repair_gmenu.php | 3 - inc/modules/admin/what-repair_mmenu.php | 3 - inc/modules/admin/what-send_coupon.php | 2 +- inc/modules/admin/what-stats.php | 3 - inc/modules/admin/what-unlock_emails.php | 2 +- inc/modules/admin/what-user_online.php | 3 - inc/modules/admin/what-welcome.php | 2 +- inc/modules/frameset.php | 3 - inc/modules/frametester.php | 2 +- inc/modules/guest/what-mediadata.php | 15 +- inc/modules/guest/what-register.php | 6 +- inc/modules/guest/what-sponsor_reg.php | 10 +- inc/modules/member/what-order.php | 108 ++--- inc/modules/member/what-refback.php | 3 +- inc/modules/member/what-reflist.php | 3 - inc/modules/member/what-stats.php | 7 +- inc/modules/member/what-transaction_fees.php | 235 +++++++++++ inc/modules/member/what-transactions.php | 176 ++++++++ inc/modules/sponsor/account.php | 2 +- inc/modules/welcome.php | 3 - inc/mysql-connect.php | 4 +- inc/mysql-manager.php | 48 ++- inc/patch-system.php | 3 - inc/pool-update.php | 3 - inc/pool/pool-user.php | 2 +- inc/profile-updte.php | 3 - inc/purge/purge-inact.php | 2 +- inc/referral-functions.php | 36 +- inc/request-functions.php | 2 +- inc/revision-functions.php | 2 +- inc/security.php | 3 - inc/sql-functions.php | 58 ++- inc/sql_error.php | 3 - inc/stats-functions.php | 6 +- inc/stats_bonus.php | 3 - inc/stylesheet.php | 14 +- inc/template-functions.php | 84 ++-- inc/template.php | 3 - inc/wrapper-functions.php | 125 +++++- inc/xml-functions.php | 17 +- inc/yearly/.htaccess | 1 + inc/yearly/yearly_ | 58 +++ js.php | 20 +- js/ajax-common.js | 45 ++- js/install-common.js | 6 +- js/install-data.js | 9 +- js/jquery-ui.custom.js | 1 - js/jquery-uncompressed.js | 1 - mailid.php | 20 +- mailid_top.php | 3 - show_bonus.php | 2 +- .../admin/admin_autopurge_del_mails.tpl | 1 - .../emails/admin/admin_autopurge_delete.tpl | 1 - .../emails/admin/admin_autopurge_inactive.tpl | 1 - .../emails/admin/admin_autopurge_points.tpl | 1 - .../de/emails/admin/admin_autopurge_tsks.tpl | 1 - .../de/emails/admin/admin_autopurge_turbo.tpl | 1 - .../admin/admin_autopurge_unconfirmed.tpl | 1 - .../de/emails/admin/admin_holiday_unlock.tpl | 4 +- ...in_only_forced_campaign_pending_active.tpl | 25 ++ .../de/emails/admin/admin_purge_task.tpl | 2 +- .../emails/member/member_holiday_unlock.tpl | 2 +- .../admin/admin_add_config_network_type.tpl | 2 +- .../admin_add_config_network_type_form.tpl | 2 +- .../admin/admin_add_network_vcheck_param.tpl | 1 - templates/de/html/admin/admin_add_payout.tpl | 2 +- .../de/html/admin/admin_add_reflevel.tpl | 1 - templates/de/html/admin/admin_add_reflvl.tpl | 1 - .../de/html/admin/admin_add_shop_cat.tpl | 1 - .../de/html/admin/admin_add_tester_user.tpl | 20 + .../html/admin/admin_admins_contact_form.tpl | 1 - .../de/html/admin/admin_admins_mails_edit.tpl | 43 +- .../de/html/admin/admin_admins_mails_list.tpl | 49 +-- templates/de/html/admin/admin_config_ | 4 +- .../de/html/admin/admin_config_active.tpl | 4 +- .../de/html/admin/admin_config_admin.tpl | 4 +- .../de/html/admin/admin_config_autopurge.tpl | 22 +- .../html/admin/admin_config_autopurge_pro.tpl | 1 - templates/de/html/admin/admin_config_beg.tpl | 323 ++++++++------- .../de/html/admin/admin_config_beg_pro.tpl | 1 - .../de/html/admin/admin_config_birthday.tpl | 4 +- .../de/html/admin/admin_config_blacklist.tpl | 6 +- .../de/html/admin/admin_config_bonus.tpl | 36 +- .../de/html/admin/admin_config_bonus_pro.tpl | 1 - .../de/html/admin/admin_config_booking.tpl | 40 ++ .../de/html/admin/admin_config_cache.tpl | 1 - .../de/html/admin/admin_config_coupon.tpl | 2 +- .../de/html/admin/admin_config_doubler.tpl | 36 +- .../html/admin/admin_config_doubler_pro.tpl | 1 - .../de/html/admin/admin_config_extensions.tpl | 4 +- .../de/html/admin/admin_config_holiday.tpl | 66 +-- templates/de/html/admin/admin_config_home.tpl | 2 +- .../de/html/admin/admin_config_home_main.tpl | 14 +- .../admin/admin_config_home_settings_pro.tpl | 1 - .../de/html/admin/admin_config_mediadata.tpl | 12 +- templates/de/html/admin/admin_config_menu.tpl | 2 +- .../de/html/admin/admin_config_network.tpl | 4 +- .../html/admin/admin_config_network_api.tpl | 4 +- .../html/admin/admin_config_network_types.tpl | 4 +- .../admin/admin_config_network_types_row.tpl | 5 +- .../de/html/admin/admin_config_newsletter.tpl | 23 +- .../de/html/admin/admin_config_nickname.tpl | 8 +- .../de/html/admin/admin_config_order.tpl | 18 +- .../de/html/admin/admin_config_other.tpl | 38 +- .../de/html/admin/admin_config_payouts.tpl | 13 +- .../admin/admin_config_point_settings.tpl | 61 +-- .../de/html/admin/admin_config_points.tpl | 13 +- .../de/html/admin/admin_config_profile.tpl | 72 ++-- .../de/html/admin/admin_config_proxy.tpl | 2 +- .../de/html/admin/admin_config_refback.tpl | 2 +- .../de/html/admin/admin_config_refid.tpl | 8 +- .../de/html/admin/admin_config_reg_pro.tpl | 1 - .../de/html/admin/admin_config_register.tpl | 4 +- .../de/html/admin/admin_config_register2.tpl | 10 +- .../de/html/admin/admin_config_removeip.tpl | 2 +- .../de/html/admin/admin_config_rewrite.tpl | 6 +- .../de/html/admin/admin_config_secure.tpl | 80 ++-- .../de/html/admin/admin_config_session.tpl | 59 +-- templates/de/html/admin/admin_config_shop.tpl | 1 - .../de/html/admin/admin_config_sponsor.tpl | 9 +- .../de/html/admin/admin_config_stats.tpl | 12 +- .../de/html/admin/admin_config_sub_points.tpl | 6 +- .../de/html/admin/admin_config_surfbar.tpl | 4 +- .../de/html/admin/admin_config_timezone.tpl | 40 +- .../de/html/admin/admin_config_title.tpl | 22 +- .../de/html/admin/admin_config_top10.tpl | 36 +- .../de/html/admin/admin_config_transfer.tpl | 12 +- .../html/admin/admin_config_transfer_pro.tpl | 1 - templates/de/html/admin/admin_config_user.tpl | 24 +- .../de/html/admin/admin_config_user_subid.tpl | 4 +- .../de/html/admin/admin_config_validator.tpl | 2 +- .../de/html/admin/admin_config_wernis.tpl | 32 +- .../de/html/admin/admin_config_yoomedia.tpl | 2 +- .../de/html/admin/admin_del_bank_packages.tpl | 37 +- .../de/html/admin/admin_delete_admin_menu.tpl | 39 +- .../de/html/admin/admin_delete_admins.tpl | 38 +- .../html/admin/admin_delete_admins_acls.tpl | 39 +- .../de/html/admin/admin_delete_forced_ads.tpl | 26 +- .../html/admin/admin_delete_forced_costs.tpl | 26 +- .../de/html/admin/admin_delete_guest_menu.tpl | 39 +- .../html/admin/admin_delete_member_menu.tpl | 2 +- ...admin_delete_network_array_translation.tpl | 33 +- .../admin_delete_network_request_params.tpl | 34 +- .../html/admin/admin_delete_network_types.tpl | 4 +- .../de/html/admin/admin_delete_networks.tpl | 24 +- .../html/admin/admin_delete_payouts_row.tpl | 2 +- .../html/admin/admin_edit_admin_menu_form.tpl | 2 +- templates/de/html/admin/admin_edit_admins.tpl | 43 +- .../de/html/admin/admin_edit_admins_acls.tpl | 12 +- .../de/html/admin/admin_edit_cats_row.tpl | 2 +- .../admin_edit_config_network_type_form.tpl | 2 +- .../de/html/admin/admin_edit_forced_ads.tpl | 26 +- .../admin/admin_edit_forced_campaigns.tpl | 4 +- .../de/html/admin/admin_edit_forced_costs.tpl | 26 +- .../html/admin/admin_edit_guest_menu_form.tpl | 41 +- .../de/html/admin/admin_edit_member_menu.tpl | 41 +- templates/de/html/admin/admin_edit_mods.tpl | 16 +- .../admin_edit_network_array_translation.tpl | 36 +- .../admin_edit_network_request_params.tpl | 36 +- .../html/admin/admin_edit_network_types.tpl | 36 +- .../de/html/admin/admin_edit_networks.tpl | 4 +- .../de/html/admin/admin_edit_payouts_row.tpl | 2 +- .../de/html/admin/admin_edit_points_data.tpl | 26 +- .../de/html/admin/admin_edit_reflevel.tpl | 1 - .../de/html/admin/admin_edit_reflevel_row.tpl | 1 - .../de/html/admin/admin_email_archiv.tpl | 21 +- .../admin_export_network_vcheck_params.tpl | 1 - .../html/admin/admin_extension_reg_form.tpl | 2 +- .../html/admin/admin_extensions_installed.tpl | 1 - .../de/html/admin/admin_extensions_list.tpl | 1 - .../de/html/admin/admin_extensions_search.tpl | 1 - templates/de/html/admin/admin_forum_add.tpl | 1 - templates/de/html/admin/admin_forum_descr.tpl | 1 - .../de/html/admin/admin_forum_display_cat.tpl | 1 - .../de/html/admin/admin_forum_edit_del.tpl | 1 - .../de/html/admin/admin_forum_edit_forum.tpl | 1 - .../de/html/admin/admin_holiday_task.tpl | 1 - .../de/html/admin/admin_import_theme.tpl | 36 +- templates/de/html/admin/admin_list_admins.tpl | 45 ++- .../de/html/admin/admin_list_admins_acls.tpl | 12 +- .../de/html/admin/admin_list_bank_package.tpl | 49 +-- .../de/html/admin/admin_list_bonus_emails.tpl | 8 +- .../de/html/admin/admin_list_booking.tpl | 22 +- .../html/admin/admin_list_doubler_already.tpl | 53 +-- .../admin/admin_list_doubler_overview.tpl | 4 +- .../html/admin/admin_list_doubler_waiting.tpl | 37 +- templates/de/html/admin/admin_list_emails.tpl | 10 +- templates/de/html/admin/admin_list_links.tpl | 32 +- templates/de/html/admin/admin_list_mods.tpl | 16 +- .../admin_list_network_array_translation.tpl | 10 +- .../de/html/admin/admin_list_network_data.tpl | 22 +- .../admin/admin_list_network_query_api.tpl | 8 +- .../admin_list_network_request_params.tpl | 50 +-- .../html/admin/admin_list_network_types.tpl | 16 +- .../admin_list_network_vcheck_params.tpl | 1 - .../admin_list_network_vcheck_params_row.tpl | 1 - .../html/admin/admin_list_notify_emails.tpl | 8 +- templates/de/html/admin/admin_list_online.tpl | 18 +- .../de/html/admin/admin_list_rallye_usr.tpl | 10 +- .../de/html/admin/admin_list_rallyes_row.tpl | 4 + .../de/html/admin/admin_list_reflevel.tpl | 1 - .../de/html/admin/admin_list_reflevel_row.tpl | 1 - .../html/admin/admin_list_sponsor_details.tpl | 30 +- .../html/admin/admin_list_sponsor_pay_del.tpl | 18 +- .../admin/admin_list_sponsor_pay_edit.tpl | 14 +- templates/de/html/admin/admin_list_task.tpl | 21 +- .../de/html/admin/admin_list_task_delete.tpl | 23 +- .../admin/admin_list_unconfirmed_header.tpl | 1 - .../de/html/admin/admin_list_user_amounts.tpl | 15 +- .../de/html/admin/admin_list_user_row.tpl | 8 + .../html/admin/admin_logout_sql_patches.tpl | 1 - .../html/admin/admin_member_menu_status.tpl | 2 +- .../de/html/admin/admin_mods_footer_list.tpl | 1 - .../de/html/admin/admin_mods_footer_stats.tpl | 1 - .../html/admin/admin_mods_footer_stats2.tpl | 1 - .../de/html/admin/admin_mods_header_list.tpl | 1 - .../de/html/admin/admin_mods_header_stats.tpl | 1 - .../html/admin/admin_mods_header_stats2.tpl | 1 - templates/de/html/admin/admin_mods_list.tpl | 1 - .../de/html/admin/admin_mods_list_row.tpl | 1 - .../admin_network_vcheck_param_added.tpl | 1 - templates/de/html/admin/admin_new_ext.tpl | 1 - .../de/html/admin/admin_newsletter_tsk.tpl | 1 - .../de/html/admin/admin_online_footer.tpl | 1 - .../de/html/admin/admin_online_header.tpl | 1 - templates/de/html/admin/admin_optimize.tpl | 45 ++- .../de/html/admin/admin_overview_header.tpl | 1 - .../de/html/admin/admin_overview_list.tpl | 8 +- .../de/html/admin/admin_overview_table.tpl | 18 +- templates/de/html/admin/admin_patches.tpl | 1 - templates/de/html/admin/admin_patches_row.tpl | 1 - .../admin/admin_payout_failed_transfer.tpl | 21 +- templates/de/html/admin/admin_reg.tpl | 1 - templates/de/html/admin/admin_reg_row.tpl | 1 - .../admin/admin_show_config_network_type.tpl | 20 +- templates/de/html/admin/admin_theme_list.tpl | 1 - templates/de/html/doubler/doubler_index.tpl | 15 +- templates/de/html/ext/ext_grade.tpl | 22 +- templates/de/html/ext/ext_primera.tpl | 1 - templates/de/html/ext/ext_ranking.tpl | 7 + templates/de/html/ext/ext_surfbar.tpl | 2 +- templates/de/html/ext/ext_transaction.tpl | 3 + templates/de/html/fatal_footer.tpl | 1 - templates/de/html/fatal_header.tpl | 1 - .../de/html/guest/guest_active_none_row.tpl | 5 +- .../de/html/guest/guest_confirm_table.tpl | 1 - templates/de/html/guest/guest_doubler.tpl | 7 +- .../html/guest/guest_list_active_row_none.tpl | 5 +- templates/de/html/guest/guest_list_rallye.tpl | 10 +- .../html/guest/guest_paidlinks_register.tpl | 1 - .../guest/guest_paidlinks_register_header.tpl | 1 - .../de/html/guest/guest_receive_table.tpl | 4 +- templates/de/html/guest/guest_show_rallye.tpl | 122 +++--- templates/de/html/impressum.tpl | 39 +- templates/de/html/install/install_header.tpl | 1 - .../de/html/install/install_main_ajax.tpl | 15 +- templates/de/html/install/install_menu.tpl | 1 + .../html/install/install_page_base_data.tpl | 6 + .../install/install_page_database_config.tpl | 10 + .../html/install/install_page_extensions.tpl | 4 + .../html/install/install_page_first_admin.tpl | 45 +++ .../install/install_page_other_config.tpl | 10 + .../html/install/install_page_smtp_config.tpl | 6 + templates/de/html/mediadata.tpl | 16 +- templates/de/html/mediadata_extra_hrow.tpl | 4 +- templates/de/html/member/member_add_subid.tpl | 4 +- templates/de/html/member/member_beg.tpl | 5 + templates/de/html/member/member_beg_404.tpl | 5 +- templates/de/html/member/member_bonus.tpl | 31 +- templates/de/html/member/member_bonus_404.tpl | 2 +- .../html/member/member_delete_user_subids.tpl | 26 +- templates/de/html/member/member_doubler.tpl | 21 +- .../html/member/member_edit_user_subids.tpl | 26 +- templates/de/html/member/member_list_beg.tpl | 39 +- .../de/html/member/member_list_rallye.tpl | 10 +- .../member_list_refback_deleted_row.tpl | 2 +- .../html/member/member_list_refback_row.tpl | 2 +- .../html/member/member_list_referral_row.tpl | 2 +- .../html/member/member_list_unconfirmed.tpl | 24 +- .../member_list_unconfirmed_nopoints.tpl | 18 +- .../de/html/member/member_nickname_form.tpl | 64 +-- templates/de/html/member/member_payout.tpl | 39 +- .../de/html/member/member_payout_form.tpl | 93 +++-- .../html/member/member_payout_form_banner.tpl | 93 +++-- templates/de/html/member/member_points.tpl | 8 +- .../de/html/member/member_pool_table.tpl | 2 +- .../de/html/member/member_receive_table.tpl | 2 +- .../de/html/member/member_stats_table.tpl | 4 +- .../de/html/member/member_themes_row.tpl | 12 +- .../html/member/member_transaction_fees.tpl | 125 ++++++ .../member_transaction_fees_config_row.tpl | 11 + .../de/html/member/member_transactions.tpl | 67 ++++ .../html/member/member_transactions_form.tpl | 28 ++ .../html/member/member_transactions_row.tpl | 7 + .../de/html/member/member_transfer_list.tpl | 65 +-- .../de/html/member/member_transfer_new.tpl | 114 +++--- .../html/member/member_transfer_overview.tpl | 57 +-- .../de/html/member/member_unconfirmed_404.tpl | 1 - .../member_unconfirmed_404_nopoints.tpl | 1 - .../de/html/member/member_unconfirmed_row.tpl | 1 - .../member_unconfirmed_row_nopoints.tpl | 1 - .../html/member/member_unconfirmed_table.tpl | 1 - .../member_unconfirmed_table_nopoints.tpl | 1 - .../html/member/member_wernis_mode_choose.tpl | 2 +- .../html/member/member_wernis_mode_list.tpl | 37 +- .../html/member/member_wernis_mode_payout.tpl | 74 ++-- .../member/member_wernis_mode_withdraw.tpl | 4 +- templates/de/html/message.tpl | 16 +- templates/de/html/metadata.tpl | 1 - .../select_forced_ads_id_banner_box.tpl | 3 + .../select_forced_ads_id_banner_option.tpl | 3 + .../select/select_network_configured_box.tpl | 2 +- .../select_network_unconfigured_box.tpl | 2 +- templates/de/html/show_bonus_msg.tpl | 38 +- templates/de/html/theme_one.tpl | 1 - templates/de/html/theme_select_box.tpl | 1 - templates/de/html/theme_select_form.tpl | 1 - .../xml/admin/admin_add_do_forced_ads.xml | 7 - templates/xml/admin/admin_list_blacklist.xml | 122 ++++++ templates/xml/admin/admin_list_booking.xml | 7 - templates/xml/admin/admin_list_forced_ads.xml | 7 - .../xml/admin/admin_list_forced_campaigns.xml | 7 - templates/xml/admin/admin_list_grade_data.xml | 7 - .../xml/admin/admin_list_nickname_history.xml | 7 - .../xml/admin/admin_list_server_name_log.xml | 7 - .../xml/admin/admin_list_surfbar_urls.xml | 7 - templates/xml/admin/admin_list_user_subid.xml | 7 - .../xml/admin/admin_list_user_subid_stats.xml | 7 - templates/xml/admin_list_data_template.xml | 7 - templates/xml/member/member_list_booking.xml | 2 +- templates/xml/member/member_list_subid.xml | 6 +- .../xml/member/member_list_subid_stats.xml | 2 +- theme/business/css/general.css | 34 +- theme/business/css/install.css | 1 - theme/business/css/register.css | 1 + theme/default/css/ajax.css | 2 +- theme/default/css/general.css | 30 +- theme/default/css/register.css | 1 + theme/desert/css/general.css | 29 +- theme/desert/css/register.css | 1 + theme/org/css/general.css | 30 +- theme/org/css/register.css | 1 + theme/schleuder/css/general.css | 27 +- theme/schleuder/css/register.css | 1 + theme/ship-simu/css/general.css | 70 ++-- theme/ship-simu/css/install.css | 75 ++++ theme/ship-simu/css/register.css | 1 + 552 files changed, 8800 insertions(+), 5432 deletions(-) create mode 100644 img/captcha-error.png delete mode 100644 inc/autopurge.php delete mode 100644 inc/birthday_mails.php create mode 100644 inc/captcha-base.png delete mode 100644 inc/check-reset.php delete mode 100644 inc/doubler_send.php delete mode 100644 inc/extensions.php create mode 100644 inc/extensions/admins/.htaccess create mode 100644 inc/extensions/admins/mode-update.php create mode 100644 inc/extensions/autopurge/.htaccess create mode 100644 inc/extensions/autopurge/mode-update.php create mode 100644 inc/extensions/beg/.htaccess create mode 100644 inc/extensions/beg/mode-update.php create mode 100644 inc/extensions/doubler/.htaccess create mode 100644 inc/extensions/doubler/mode-setup.php create mode 100644 inc/extensions/doubler/mode-update.php create mode 100644 inc/extensions/ext-ranking.php create mode 100644 inc/extensions/ext-transaction.php create mode 100644 inc/extensions/forced/.htaccess create mode 100644 inc/extensions/forced/mode-setup.php create mode 100644 inc/extensions/other/.htaccess create mode 100644 inc/extensions/other/mode-update.php create mode 100644 inc/extensions/payout/.htaccess create mode 100644 inc/extensions/payout/mode-update.php create mode 100644 inc/extensions/rallye/.htaccess create mode 100644 inc/extensions/rallye/mode-update.php create mode 100644 inc/extensions/surfbar/.htaccess create mode 100644 inc/extensions/surfbar/mode-setup.php create mode 100644 inc/extensions/task/.htaccess create mode 100644 inc/extensions/task/mode-update.php create mode 100644 inc/extensions/transaction/.htaccess create mode 100644 inc/extensions/transaction/mode-setup.php create mode 100644 inc/extensions/transfer/.htaccess create mode 100644 inc/extensions/transfer/mode-setup.php create mode 100644 inc/extensions/transfer/mode-update.php delete mode 100644 inc/fatal_errors.php create mode 100644 inc/filter/html_mail_filter.php create mode 100644 inc/filter/transaction_filter.php delete mode 100644 inc/hooks.php create mode 100644 inc/hourly/hourly_transaction.php create mode 100644 inc/img/img_transaction_captcha.php delete mode 100644 inc/language.php delete mode 100644 inc/language/pro_de.php delete mode 100644 inc/libs/output_functions.php create mode 100644 inc/libs/transaction_functions.php delete mode 100644 inc/load_extensions.php delete mode 100644 inc/mails/birthday_mails.php delete mode 100644 inc/modules/admin/what-admins_contact.php delete mode 100644 inc/modules/admin/what-autopurge.php create mode 100644 inc/modules/admin/what-config_booking.php delete mode 100644 inc/modules/admin/what-config_cache.php delete mode 100644 inc/modules/admin/what-config_cats.php delete mode 100644 inc/modules/admin/what-config_mods.php delete mode 100644 inc/modules/admin/what-config_rallye_prices.php delete mode 100644 inc/modules/admin/what-config_reg.php delete mode 100644 inc/modules/admin/what-del_task.php create mode 100644 inc/modules/admin/what-list_blacklist.php delete mode 100644 inc/modules/admin/what-list_network_vcheck_params.php delete mode 100644 inc/modules/admin/what-list_newsletter.php delete mode 100644 inc/modules/admin/what-list_norefs.php delete mode 100644 inc/modules/admin/what-newsletter.php delete mode 100644 inc/modules/admin/what-repair_amenu.php delete mode 100644 inc/modules/admin/what-repair_gmenu.php delete mode 100644 inc/modules/admin/what-repair_mmenu.php delete mode 100644 inc/modules/admin/what-stats.php delete mode 100644 inc/modules/admin/what-user_online.php delete mode 100644 inc/modules/frameset.php create mode 100644 inc/modules/member/what-transaction_fees.php create mode 100644 inc/modules/member/what-transactions.php delete mode 100644 inc/modules/welcome.php delete mode 100644 inc/patch-system.php delete mode 100644 inc/pool-update.php delete mode 100644 inc/profile-updte.php delete mode 100644 inc/security.php delete mode 100644 inc/sql_error.php delete mode 100644 inc/stats_bonus.php delete mode 100644 inc/template.php create mode 100644 inc/yearly/.htaccess create mode 100644 inc/yearly/yearly_ delete mode 100644 js/jquery-ui.custom.js delete mode 100644 js/jquery-uncompressed.js delete mode 100644 mailid_top.php delete mode 100644 templates/de/emails/admin/admin_autopurge_del_mails.tpl delete mode 100644 templates/de/emails/admin/admin_autopurge_delete.tpl delete mode 100644 templates/de/emails/admin/admin_autopurge_inactive.tpl delete mode 100644 templates/de/emails/admin/admin_autopurge_points.tpl delete mode 100644 templates/de/emails/admin/admin_autopurge_tsks.tpl delete mode 100644 templates/de/emails/admin/admin_autopurge_turbo.tpl delete mode 100644 templates/de/emails/admin/admin_autopurge_unconfirmed.tpl create mode 100644 templates/de/emails/admin/admin_only_forced_campaign_pending_active.tpl delete mode 100644 templates/de/html/admin/admin_add_network_vcheck_param.tpl delete mode 100644 templates/de/html/admin/admin_add_reflevel.tpl delete mode 100644 templates/de/html/admin/admin_add_reflvl.tpl delete mode 100644 templates/de/html/admin/admin_add_shop_cat.tpl delete mode 100644 templates/de/html/admin/admin_admins_contact_form.tpl delete mode 100644 templates/de/html/admin/admin_config_autopurge_pro.tpl delete mode 100644 templates/de/html/admin/admin_config_beg_pro.tpl delete mode 100644 templates/de/html/admin/admin_config_bonus_pro.tpl create mode 100644 templates/de/html/admin/admin_config_booking.tpl delete mode 100644 templates/de/html/admin/admin_config_cache.tpl delete mode 100644 templates/de/html/admin/admin_config_doubler_pro.tpl delete mode 100644 templates/de/html/admin/admin_config_home_settings_pro.tpl delete mode 100644 templates/de/html/admin/admin_config_reg_pro.tpl delete mode 100644 templates/de/html/admin/admin_config_shop.tpl delete mode 100644 templates/de/html/admin/admin_config_transfer_pro.tpl delete mode 100644 templates/de/html/admin/admin_edit_reflevel.tpl delete mode 100644 templates/de/html/admin/admin_edit_reflevel_row.tpl delete mode 100644 templates/de/html/admin/admin_export_network_vcheck_params.tpl delete mode 100644 templates/de/html/admin/admin_extensions_installed.tpl delete mode 100644 templates/de/html/admin/admin_extensions_list.tpl delete mode 100644 templates/de/html/admin/admin_extensions_search.tpl delete mode 100644 templates/de/html/admin/admin_forum_add.tpl delete mode 100644 templates/de/html/admin/admin_forum_descr.tpl delete mode 100644 templates/de/html/admin/admin_forum_display_cat.tpl delete mode 100644 templates/de/html/admin/admin_forum_edit_del.tpl delete mode 100644 templates/de/html/admin/admin_forum_edit_forum.tpl delete mode 100644 templates/de/html/admin/admin_holiday_task.tpl delete mode 100644 templates/de/html/admin/admin_list_network_vcheck_params.tpl delete mode 100644 templates/de/html/admin/admin_list_network_vcheck_params_row.tpl delete mode 100644 templates/de/html/admin/admin_list_reflevel.tpl delete mode 100644 templates/de/html/admin/admin_list_reflevel_row.tpl delete mode 100644 templates/de/html/admin/admin_list_unconfirmed_header.tpl delete mode 100644 templates/de/html/admin/admin_logout_sql_patches.tpl delete mode 100644 templates/de/html/admin/admin_mods_footer_list.tpl delete mode 100644 templates/de/html/admin/admin_mods_footer_stats.tpl delete mode 100644 templates/de/html/admin/admin_mods_footer_stats2.tpl delete mode 100644 templates/de/html/admin/admin_mods_header_list.tpl delete mode 100644 templates/de/html/admin/admin_mods_header_stats.tpl delete mode 100644 templates/de/html/admin/admin_mods_header_stats2.tpl delete mode 100644 templates/de/html/admin/admin_mods_list.tpl delete mode 100644 templates/de/html/admin/admin_mods_list_row.tpl delete mode 100644 templates/de/html/admin/admin_network_vcheck_param_added.tpl delete mode 100644 templates/de/html/admin/admin_new_ext.tpl delete mode 100644 templates/de/html/admin/admin_newsletter_tsk.tpl delete mode 100644 templates/de/html/admin/admin_online_footer.tpl delete mode 100644 templates/de/html/admin/admin_online_header.tpl delete mode 100644 templates/de/html/admin/admin_overview_header.tpl delete mode 100644 templates/de/html/admin/admin_patches.tpl delete mode 100644 templates/de/html/admin/admin_patches_row.tpl delete mode 100644 templates/de/html/admin/admin_reg.tpl delete mode 100644 templates/de/html/admin/admin_reg_row.tpl delete mode 100644 templates/de/html/admin/admin_theme_list.tpl delete mode 100644 templates/de/html/ext/ext_primera.tpl create mode 100644 templates/de/html/ext/ext_ranking.tpl create mode 100644 templates/de/html/ext/ext_transaction.tpl delete mode 100644 templates/de/html/fatal_footer.tpl delete mode 100644 templates/de/html/fatal_header.tpl delete mode 100644 templates/de/html/guest/guest_confirm_table.tpl delete mode 100644 templates/de/html/guest/guest_paidlinks_register.tpl delete mode 100644 templates/de/html/guest/guest_paidlinks_register_header.tpl delete mode 100644 templates/de/html/install/install_header.tpl create mode 100644 templates/de/html/install/install_page_first_admin.tpl create mode 100644 templates/de/html/member/member_transaction_fees.tpl create mode 100644 templates/de/html/member/member_transaction_fees_config_row.tpl create mode 100644 templates/de/html/member/member_transactions.tpl create mode 100644 templates/de/html/member/member_transactions_form.tpl create mode 100644 templates/de/html/member/member_transactions_row.tpl delete mode 100644 templates/de/html/member/member_unconfirmed_404.tpl delete mode 100644 templates/de/html/member/member_unconfirmed_404_nopoints.tpl delete mode 100644 templates/de/html/member/member_unconfirmed_row.tpl delete mode 100644 templates/de/html/member/member_unconfirmed_row_nopoints.tpl delete mode 100644 templates/de/html/member/member_unconfirmed_table.tpl delete mode 100644 templates/de/html/member/member_unconfirmed_table_nopoints.tpl delete mode 100644 templates/de/html/metadata.tpl create mode 100644 templates/de/html/select/select_forced_ads_id_banner_box.tpl create mode 100644 templates/de/html/select/select_forced_ads_id_banner_option.tpl delete mode 100644 templates/de/html/theme_one.tpl delete mode 100644 templates/de/html/theme_select_box.tpl delete mode 100644 templates/de/html/theme_select_form.tpl create mode 100644 templates/xml/admin/admin_list_blacklist.xml create mode 100644 theme/ship-simu/css/install.css diff --git a/.gitattributes b/.gitattributes index 58b7ba4876..4da017eb54 100644 --- a/.gitattributes +++ b/.gitattributes @@ -101,6 +101,7 @@ DOCS/tpl-validator.php svneol=native#text/plain /debug.php svneol=native#text/plain /doubler.php svneol=native#text/plain /img.php svneol=native#text/plain +img/captcha-error.png -text svneol=unset#image/png img/politician-stop/politiker-stopp-print-kopf.png -text svneol=unset#image/png img/politician-stop/politiker-stopp_150x24.png -text svneol=unset#image/png img/uberwach/uberwach-button-gruen.gif -text svneol=unset#image/gif @@ -111,17 +112,15 @@ inc/ajax/.htaccess svneol=native#text/plain inc/ajax/ajax_ svneol=native#text/plain inc/ajax/ajax_admin.php svneol=native#text/plain inc/ajax/ajax_installer.php svneol=native#text/plain -inc/autopurge.php svneol=native#text/plain inc/autopurge/.htaccess svneol=native#text/plain inc/autopurge/purge- svneol=native#text/plain -inc/birthday_mails.php svneol=native#text/plain inc/cache/.htaccess svneol=native#text/plain inc/cache/_compiled/.htaccess svneol=native#text/plain inc/cache/_compiled/email/.htaccess svneol=native#text/plain inc/cache/_compiled/html/.htaccess svneol=native#text/plain inc/cache/_compiled/xml/.htaccess svneol=native#text/plain inc/callback-functions.php svneol=native#text/plain -inc/check-reset.php svneol=native#text/plain +inc/captcha-base.png -text svneol=unset#image/png inc/classes/.htaccess svneol=native#text/plain inc/classes/cachesystem.class.php svneol=native#text/plain inc/classes/primera_api.class.php svneol=native#text/plain @@ -155,14 +154,21 @@ inc/debug/client/.htaccess svneol=native#text/plain inc/debug/relay/.htaccess svneol=native#text/plain inc/debug/request_ svneol=native#text/plain inc/debug/server/.htaccess svneol=native#text/plain -inc/doubler_send.php svneol=native#text/plain inc/email-functions.php svneol=native#text/plain inc/expression-functions.php svneol=native#text/plain inc/extensions-functions.php svneol=native#text/plain -inc/extensions.php svneol=native#text/plain inc/extensions/.htaccess svneol=native#text/plain +inc/extensions/admins/.htaccess svneol=native#text/plain +inc/extensions/admins/mode-update.php svneol=native#text/plain +inc/extensions/autopurge/.htaccess svneol=native#text/plain +inc/extensions/autopurge/mode-update.php svneol=native#text/plain +inc/extensions/beg/.htaccess svneol=native#text/plain +inc/extensions/beg/mode-update.php svneol=native#text/plain inc/extensions/bonus/.htaccess svneol=native#text/plain inc/extensions/bonus/mode-update.php svneol=native#text/plain +inc/extensions/doubler/.htaccess svneol=native#text/plain +inc/extensions/doubler/mode-setup.php svneol=native#text/plain +inc/extensions/doubler/mode-update.php svneol=native#text/plain inc/extensions/ext- svneol=native#text/plain inc/extensions/ext-active.php svneol=native#text/plain inc/extensions/ext-admins.php svneol=native#text/plain @@ -218,6 +224,7 @@ inc/extensions/ext-payout.php svneol=native#text/plain inc/extensions/ext-politician-stop.php svneol=native#text/plain inc/extensions/ext-profile.php svneol=native#text/plain inc/extensions/ext-rallye.php svneol=native#text/plain +inc/extensions/ext-ranking.php svneol=native#text/plain inc/extensions/ext-refback.php svneol=native#text/plain inc/extensions/ext-refsell.php svneol=native#text/plain inc/extensions/ext-register.php svneol=native#text/plain @@ -239,6 +246,7 @@ inc/extensions/ext-terms.php svneol=native#text/plain inc/extensions/ext-theme.php svneol=native#text/plain inc/extensions/ext-timezone.php svneol=native#text/plain inc/extensions/ext-top10.php svneol=native#text/plain +inc/extensions/ext-transaction.php svneol=native#text/plain inc/extensions/ext-transfer.php svneol=native#text/plain inc/extensions/ext-uberwach.php svneol=native#text/plain inc/extensions/ext-update.php svneol=native#text/plain @@ -248,10 +256,18 @@ inc/extensions/ext-validator.php svneol=native#text/plain inc/extensions/ext-wernis.php svneol=native#text/plain inc/extensions/ext-yacy.php svneol=native#text/plain inc/extensions/ext-yoomedia.php svneol=native#text/plain +inc/extensions/forced/.htaccess svneol=native#text/plain +inc/extensions/forced/mode-setup.php svneol=native#text/plain inc/extensions/network/.htaccess svneol=native#text/plain inc/extensions/network/mode-setup.php svneol=native#text/plain inc/extensions/order/.htaccess svneol=native#text/plain inc/extensions/order/mode-update.php svneol=native#text/plain +inc/extensions/other/.htaccess svneol=native#text/plain +inc/extensions/other/mode-update.php svneol=native#text/plain +inc/extensions/payout/.htaccess svneol=native#text/plain +inc/extensions/payout/mode-update.php svneol=native#text/plain +inc/extensions/rallye/.htaccess svneol=native#text/plain +inc/extensions/rallye/mode-update.php svneol=native#text/plain inc/extensions/register/.htaccess svneol=native#text/plain inc/extensions/register/mode-update.php svneol=native#text/plain inc/extensions/sponsor/.htaccess svneol=native#text/plain @@ -259,11 +275,19 @@ inc/extensions/sponsor/mode-setup.php svneol=native#text/plain inc/extensions/sql_patches/.htaccess svneol=native#text/plain inc/extensions/sql_patches/mode-remove.php svneol=native#text/plain inc/extensions/sql_patches/mode-update.php svneol=native#text/plain +inc/extensions/surfbar/.htaccess svneol=native#text/plain +inc/extensions/surfbar/mode-setup.php svneol=native#text/plain +inc/extensions/task/.htaccess svneol=native#text/plain +inc/extensions/task/mode-update.php svneol=native#text/plain +inc/extensions/transaction/.htaccess svneol=native#text/plain +inc/extensions/transaction/mode-setup.php svneol=native#text/plain +inc/extensions/transfer/.htaccess svneol=native#text/plain +inc/extensions/transfer/mode-setup.php svneol=native#text/plain +inc/extensions/transfer/mode-update.php svneol=native#text/plain inc/extensions/user/.htaccess svneol=native#text/plain inc/extensions/user/mode-remove.php svneol=native#text/plain inc/extensions/user/mode-setup.php svneol=native#text/plain inc/extensions/user/mode-update.php svneol=native#text/plain -inc/fatal_errors.php svneol=native#text/plain inc/filter-functions.php svneol=native#text/plain inc/filter/.htaccess svneol=native#text/plain inc/filter/_filter.php svneol=native#text/plain @@ -279,6 +303,7 @@ inc/filter/coupon_filter.php svneol=native#text/plain inc/filter/doubler_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/html_mail_filter.php svneol=native#text/plain inc/filter/mediadata_filter.php svneol=native#text/plain inc/filter/menu_filter.php svneol=native#text/plain inc/filter/online_filter.php svneol=native#text/plain @@ -291,6 +316,7 @@ inc/filter/removeip_filter.php svneol=native#text/plain inc/filter/surfbar_filter.php svneol=native#text/plain inc/filter/theme_filter.php svneol=native#text/plain inc/filter/timezone_filter.php svneol=native#text/plain +inc/filter/transaction_filter.php svneol=native#text/plain inc/filter/uberwach_filter.php svneol=native#text/plain inc/filter/user_filter.php svneol=native#text/plain inc/filters.php svneol=native#text/plain @@ -304,13 +330,14 @@ inc/gen_mediadata.php svneol=native#text/plain inc/gen_sql_patches.php svneol=native#text/plain inc/handler.php svneol=native#text/plain inc/header.php svneol=native#text/plain -inc/hooks.php svneol=native#text/plain inc/hourly/.htaccess svneol=native#text/plain inc/hourly/hourly_ svneol=native#text/plain +inc/hourly/hourly_transaction.php svneol=native#text/plain inc/http-functions.php svneol=native#text/plain inc/img/.htaccess svneol=native#text/plain inc/img/img- svneol=native#text/plain inc/img/img_ svneol=native#text/plain +inc/img/img_transaction_captcha.php svneol=native#text/plain inc/inc-functions.php svneol=native#text/plain inc/install-functions.php svneol=native#text/plain inc/install-inc.php svneol=native#text/plain @@ -338,7 +365,6 @@ inc/js/js-surfbar_member_edit.php svneol=native#text/plain inc/js/js-surfbar_stopped.php svneol=native#text/plain inc/js/js-uberwach.php svneol=native#text/plain inc/language-functions.php svneol=native#text/plain -inc/language.php svneol=native#text/plain inc/language/.htaccess svneol=native#text/plain inc/language/_de.php svneol=native#text/plain inc/language/_en.php svneol=native#text/plain @@ -382,7 +408,6 @@ inc/language/optimize_de.php svneol=native#text/plain inc/language/order_de.php svneol=native#text/plain inc/language/other_de.php svneol=native#text/plain inc/language/payout_de.php svneol=native#text/plain -inc/language/pro_de.php svneol=native#text/plain inc/language/profile_de.php svneol=native#text/plain inc/language/rallye_de.php svneol=native#text/plain inc/language/refback_de.php svneol=native#text/plain @@ -437,7 +462,6 @@ inc/libs/online_functions.php svneol=native#text/plain inc/libs/optimize_functions.php svneol=native#text/plain inc/libs/order_functions.php svneol=native#text/plain inc/libs/other_functions.php svneol=native#text/plain -inc/libs/output_functions.php svneol=native#text/plain inc/libs/payout_functions.php svneol=native#text/plain inc/libs/politician-stop_functions.php svneol=native#text/plain inc/libs/profile_functions.php svneol=native#text/plain @@ -453,6 +477,7 @@ inc/libs/task_functions.php svneol=native#text/plain inc/libs/theme_functions.php svneol=native#text/plain inc/libs/timezone_functions.php svneol=native#text/plain inc/libs/top10_functions.php svneol=native#text/plain +inc/libs/transaction_functions.php svneol=native#text/plain inc/libs/transfer_functions.php svneol=native#text/plain inc/libs/uberwach_functions.php svneol=native#text/plain inc/libs/user_functions.php svneol=native#text/plain @@ -460,7 +485,6 @@ inc/libs/wernis_functions.php svneol=native#text/plain inc/libs/yoomedia_functions.php svneol=native#text/plain inc/load_cache.php svneol=native#text/plain inc/load_config.php svneol=native#text/plain -inc/load_extensions.php svneol=native#text/plain inc/loader/.htaccess svneol=native#text/plain inc/loader/load- svneol=native#text/plain inc/loader/load-admins.php svneol=native#text/plain @@ -480,7 +504,6 @@ inc/loader/load_cache- svneol=native#text/plain inc/mails/.htaccess svneol=native#text/plain inc/mails/_mails.php svneol=native#text/plain inc/mails/beg_mails.php svneol=native#text/plain -inc/mails/birthday_mails.php svneol=native#text/plain inc/mails/bonus_mails.php svneol=native#text/plain inc/mails/doubler_mails.php svneol=native#text/plain inc/math-functions.php svneol=native#text/plain @@ -532,11 +555,9 @@ 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-admins_contact.php svneol=native#text/plain inc/modules/admin/what-admins_contct.php svneol=native#text/plain inc/modules/admin/what-admins_edit.php svneol=native#text/plain inc/modules/admin/what-admins_mails.php svneol=native#text/plain -inc/modules/admin/what-autopurge.php svneol=native#text/plain inc/modules/admin/what-bonus.php svneol=native#text/plain inc/modules/admin/what-cache_stats.php svneol=native#text/plain inc/modules/admin/what-config_ svneol=native#text/plain @@ -547,8 +568,7 @@ inc/modules/admin/what-config_beg.php svneol=native#text/plain inc/modules/admin/what-config_birthday.php svneol=native#text/plain inc/modules/admin/what-config_blacklist.php svneol=native#text/plain inc/modules/admin/what-config_bonus.php svneol=native#text/plain -inc/modules/admin/what-config_cache.php svneol=native#text/plain -inc/modules/admin/what-config_cats.php svneol=native#text/plain +inc/modules/admin/what-config_booking.php svneol=native#text/plain inc/modules/admin/what-config_coupon.php svneol=native#text/plain inc/modules/admin/what-config_doubler.php svneol=native#text/plain inc/modules/admin/what-config_extensions.php svneol=native#text/plain @@ -557,7 +577,6 @@ inc/modules/admin/what-config_home.php svneol=native#text/plain inc/modules/admin/what-config_imprint.php svneol=native#text/plain inc/modules/admin/what-config_mediadata.php svneol=native#text/plain inc/modules/admin/what-config_menu.php svneol=native#text/plain -inc/modules/admin/what-config_mods.php svneol=native#text/plain inc/modules/admin/what-config_network.php svneol=native#text/plain inc/modules/admin/what-config_network_api.php svneol=native#text/plain inc/modules/admin/what-config_network_types.php svneol=native#text/plain @@ -569,10 +588,8 @@ inc/modules/admin/what-config_payouts.php svneol=native#text/plain inc/modules/admin/what-config_points.php svneol=native#text/plain inc/modules/admin/what-config_profile.php svneol=native#text/plain inc/modules/admin/what-config_proxy.php svneol=native#text/plain -inc/modules/admin/what-config_rallye_prices.php svneol=native#text/plain inc/modules/admin/what-config_refback.php svneol=native#text/plain inc/modules/admin/what-config_refid.php svneol=native#text/plain -inc/modules/admin/what-config_reg.php svneol=native#text/plain inc/modules/admin/what-config_register.php svneol=native#text/plain inc/modules/admin/what-config_register2.php svneol=native#text/plain inc/modules/admin/what-config_removeip.php svneol=native#text/plain @@ -594,7 +611,6 @@ inc/modules/admin/what-config_yoomedia.php svneol=native#text/plain inc/modules/admin/what-del_email.php svneol=native#text/plain inc/modules/admin/what-del_holiday.php svneol=native#text/plain inc/modules/admin/what-del_sponsor.php svneol=native#text/plain -inc/modules/admin/what-del_task.php svneol=native#text/plain inc/modules/admin/what-del_transfer.php svneol=native#text/plain inc/modules/admin/what-del_user.php svneol=native#text/plain inc/modules/admin/what-edit_emails.php svneol=native#text/plain @@ -613,6 +629,7 @@ inc/modules/admin/what-list_admins_acls.php svneol=native#text/plain inc/modules/admin/what-list_autopurge.php svneol=native#text/plain inc/modules/admin/what-list_bank_package.php svneol=native#text/plain inc/modules/admin/what-list_beg.php svneol=native#text/plain +inc/modules/admin/what-list_blacklist.php svneol=native#text/plain inc/modules/admin/what-list_bonus.php svneol=native#text/plain inc/modules/admin/what-list_booking.php svneol=native#text/plain inc/modules/admin/what-list_cats.php svneol=native#text/plain @@ -631,10 +648,7 @@ inc/modules/admin/what-list_network_array_translation.php svneol=native#text/pla inc/modules/admin/what-list_network_data.php svneol=native#text/plain inc/modules/admin/what-list_network_request_params.php svneol=native#text/plain inc/modules/admin/what-list_network_types.php svneol=native#text/plain -inc/modules/admin/what-list_network_vcheck_params.php svneol=native#text/plain -inc/modules/admin/what-list_newsletter.php svneol=native#text/plain inc/modules/admin/what-list_nickname.php svneol=native#text/plain -inc/modules/admin/what-list_norefs.php svneol=native#text/plain inc/modules/admin/what-list_notifications.php svneol=native#text/plain inc/modules/admin/what-list_payouts.php svneol=native#text/plain inc/modules/admin/what-list_point_accounts.php svneol=native#text/plain @@ -664,24 +678,19 @@ inc/modules/admin/what-logs.php svneol=native#text/plain inc/modules/admin/what-maintenance.php svneol=native#text/plain inc/modules/admin/what-mem_add.php svneol=native#text/plain inc/modules/admin/what-memedit.php svneol=native#text/plain -inc/modules/admin/what-newsletter.php svneol=native#text/plain inc/modules/admin/what-optimize.php svneol=native#text/plain inc/modules/admin/what-payments.php svneol=native#text/plain inc/modules/admin/what-query_network_apis.php svneol=native#text/plain inc/modules/admin/what-refbanner.php svneol=native#text/plain -inc/modules/admin/what-repair_amenu.php svneol=native#text/plain inc/modules/admin/what-repair_amnu.php svneol=native#text/plain inc/modules/admin/what-repair_cats.php svneol=native#text/plain -inc/modules/admin/what-repair_gmenu.php svneol=native#text/plain inc/modules/admin/what-repair_gmnu.php svneol=native#text/plain inc/modules/admin/what-repair_lang.php svneol=native#text/plain -inc/modules/admin/what-repair_mmenu.php svneol=native#text/plain inc/modules/admin/what-repair_mmnu.php svneol=native#text/plain inc/modules/admin/what-repair_refs.php svneol=native#text/plain inc/modules/admin/what-send_bonus.php svneol=native#text/plain inc/modules/admin/what-send_coupon.php svneol=native#text/plain inc/modules/admin/what-send_newsletter.php svneol=native#text/plain -inc/modules/admin/what-stats.php svneol=native#text/plain inc/modules/admin/what-stats_mods.php svneol=native#text/plain inc/modules/admin/what-sub_points.php svneol=native#text/plain inc/modules/admin/what-surfbar_stats.php svneol=native#text/plain @@ -693,11 +702,9 @@ inc/modules/admin/what-unlock_surfbar_urls.php svneol=native#text/plain 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-user_online.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/frameset.php svneol=native#text/plain inc/modules/frametester.php svneol=native#text/plain inc/modules/guest/.htaccess svneol=native#text/plain inc/modules/guest/action- svneol=native#text/plain @@ -787,6 +794,8 @@ inc/modules/member/what-subids.php svneol=native#text/plain inc/modules/member/what-support.php svneol=native#text/plain inc/modules/member/what-surfbar_list.php svneol=native#text/plain inc/modules/member/what-themes.php svneol=native#text/plain +inc/modules/member/what-transaction_fees.php svneol=native#text/plain +inc/modules/member/what-transactions.php svneol=native#text/plain inc/modules/member/what-transfer.php svneol=native#text/plain inc/modules/member/what-unconfirmed.php svneol=native#text/plain inc/modules/member/what-welcome.php svneol=native#text/plain @@ -800,7 +809,6 @@ inc/modules/sponsor/guest.php svneol=native#text/plain inc/modules/sponsor/logout.php svneol=native#text/plain inc/modules/sponsor/settings.php svneol=native#text/plain inc/modules/sponsor/welcome.php svneol=native#text/plain -inc/modules/welcome.php svneol=native#text/plain inc/monthly/.htaccess svneol=native#text/plain inc/monthly/monthly_ svneol=native#text/plain inc/monthly/monthly_beg.php svneol=native#text/plain @@ -809,7 +817,6 @@ inc/monthly/monthly_newsletter.php svneol=native#text/plain inc/monthly/monthly_surfbar.php svneol=native#text/plain inc/mysql-connect.php svneol=native#text/plain inc/mysql-manager.php svneol=native#text/plain -inc/patch-system.php svneol=native#text/plain inc/phpmailer/ChangeLog.txt svneol=native#text/plain inc/phpmailer/class.phpmailer.php svneol=native#text/plain inc/phpmailer/class.pop3.php svneol=native#text/plain @@ -859,12 +866,10 @@ inc/phpmailer/test/phpmailer_test.php svneol=native#text/plain inc/phpmailer/test/phpunit.php svneol=native#text/plain inc/phpmailer/test/test.png -text svneol=unset#image/png inc/pool-functions.php svneol=native#text/plain -inc/pool-update.php svneol=native#text/plain inc/pool/.htaccess svneol=native#text/plain inc/pool/pool- svneol=native#text/plain inc/pool/pool-bonus.php svneol=native#text/plain inc/pool/pool-user.php svneol=native#text/plain -inc/profile-updte.php svneol=native#text/plain inc/purge/.htaccess svneol=native#text/plain inc/purge/purge- svneol=native#text/plain inc/purge/purge-coupon.php svneol=native#text/plain @@ -879,22 +884,20 @@ inc/request-functions.php svneol=native#text/plain inc/reset/.htaccess svneol=native#text/plain inc/reset/reset_ svneol=native#text/plain inc/revision-functions.php svneol=native#text/plain -inc/security.php svneol=native#text/plain inc/session-functions.php svneol=native#text/plain inc/session.php svneol=native#text/plain inc/sql-functions.php svneol=native#text/plain -inc/sql_error.php svneol=native#text/plain inc/stats-functions.php svneol=native#text/plain -inc/stats_bonus.php svneol=native#text/plain inc/stylesheet.php svneol=native#text/plain inc/template-functions.php svneol=native#text/plain -inc/template.php svneol=native#text/plain inc/versions.php svneol=native#text/plain inc/weekly/.htaccess svneol=native#text/plain inc/weekly/weekly_ svneol=native#text/plain inc/weekly/weekly_surfbar.php svneol=native#text/plain inc/wrapper-functions.php svneol=native#text/plain inc/xml-functions.php svneol=native#text/plain +inc/yearly/.htaccess svneol=native#text/plain +inc/yearly/yearly_ svneol=native#text/plain /index.php svneol=native#text/plain /install.php svneol=native#text/plain /js.php svneol=native#text/plain @@ -908,17 +911,14 @@ 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-ui.js svneol=native#text/javascript js/jquery-ui.uncompressed.js svneol=native#text/javascript -js/jquery-uncompressed.js svneol=native#text/javascript js/jquery.js svneol=native#text/javascript js/jquery.uncompressed.js svneol=native#text/javascript js/menu-common.js svneol=native#text/javascript /lead-confirm.php svneol=native#text/plain /login.php svneol=native#text/plain /mailid.php svneol=native#text/plain -/mailid_top.php svneol=native#text/plain /modules.php svneol=native#text/plain /network-delurl.php svneol=native#text/plain /network-vcheck.php svneol=native#text/plain @@ -943,13 +943,6 @@ templates/de/emails/admin/admin_admin_add_all_ref_referral.tpl svneol=native#tex 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_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_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 @@ -988,6 +981,7 @@ templates/de/emails/admin/admin_monthly_bonus_ref_referral.tpl svneol=native#tex 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_only_forced_campaign_pending_active.tpl svneol=native#text/plain templates/de/emails/admin/admin_order_normal.tpl svneol=native#text/plain templates/de/emails/admin/admin_payout_request.tpl svneol=native#text/plain templates/de/emails/admin/admin_payout_request_banner.tpl svneol=native#text/plain @@ -1224,7 +1218,6 @@ templates/de/html/admin/admin_add_network.tpl svneol=native#text/plain templates/de/html/admin/admin_add_network_array_translation.tpl svneol=native#text/plain templates/de/html/admin/admin_add_network_request_param.tpl svneol=native#text/plain 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_point_accounts.tpl svneol=native#text/plain @@ -1234,15 +1227,11 @@ templates/de/html/admin/admin_add_rallye.tpl svneol=native#text/plain templates/de/html/admin/admin_add_rallye_prices.tpl svneol=native#text/plain templates/de/html/admin/admin_add_refbanner.tpl svneol=native#text/plain templates/de/html/admin/admin_add_referral_level.tpl svneol=native#text/plain -templates/de/html/admin/admin_add_reflevel.tpl svneol=native#text/plain -templates/de/html/admin/admin_add_reflvl.tpl svneol=native#text/plain -templates/de/html/admin/admin_add_shop_cat.tpl svneol=native#text/plain 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_tester_user.tpl svneol=native#text/plain -templates/de/html/admin/admin_admins_contact_form.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_mails_edit.tpl svneol=native#text/plain @@ -1257,22 +1246,17 @@ 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_config_admin.tpl svneol=native#text/plain templates/de/html/admin/admin_config_autopurge.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_autopurge_pro.tpl svneol=native#text/plain templates/de/html/admin/admin_config_beg.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_beg_pro.tpl svneol=native#text/plain templates/de/html/admin/admin_config_birthday.tpl svneol=native#text/plain templates/de/html/admin/admin_config_blacklist.tpl svneol=native#text/plain templates/de/html/admin/admin_config_bonus.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_bonus_pro.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_cache.tpl svneol=native#text/plain +templates/de/html/admin/admin_config_booking.tpl svneol=native#text/plain templates/de/html/admin/admin_config_coupon.tpl svneol=native#text/plain templates/de/html/admin/admin_config_doubler.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_doubler_pro.tpl svneol=native#text/plain templates/de/html/admin/admin_config_extensions.tpl svneol=native#text/plain templates/de/html/admin/admin_config_holiday.tpl svneol=native#text/plain templates/de/html/admin/admin_config_home.tpl svneol=native#text/plain templates/de/html/admin/admin_config_home_main.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_home_settings_pro.tpl svneol=native#text/plain templates/de/html/admin/admin_config_mediadata.tpl svneol=native#text/plain templates/de/html/admin/admin_config_menu.tpl svneol=native#text/plain templates/de/html/admin/admin_config_network.tpl svneol=native#text/plain @@ -1291,7 +1275,6 @@ templates/de/html/admin/admin_config_profile.tpl svneol=native#text/plain templates/de/html/admin/admin_config_proxy.tpl svneol=native#text/plain templates/de/html/admin/admin_config_refback.tpl svneol=native#text/plain templates/de/html/admin/admin_config_refid.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_reg_pro.tpl svneol=native#text/plain templates/de/html/admin/admin_config_register.tpl svneol=native#text/plain templates/de/html/admin/admin_config_register2.tpl svneol=native#text/plain templates/de/html/admin/admin_config_register_row.tpl svneol=native#text/plain @@ -1300,7 +1283,6 @@ templates/de/html/admin/admin_config_rewrite.tpl svneol=native#text/plain templates/de/html/admin/admin_config_rewrite_rows.tpl svneol=native#text/plain templates/de/html/admin/admin_config_secure.tpl svneol=native#text/plain templates/de/html/admin/admin_config_session.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_shop.tpl svneol=native#text/plain templates/de/html/admin/admin_config_sponsor.tpl svneol=native#text/plain templates/de/html/admin/admin_config_stats.tpl svneol=native#text/plain templates/de/html/admin/admin_config_sub_points.tpl svneol=native#text/plain @@ -1309,7 +1291,6 @@ templates/de/html/admin/admin_config_timezone.tpl svneol=native#text/plain templates/de/html/admin/admin_config_title.tpl svneol=native#text/plain templates/de/html/admin/admin_config_top10.tpl svneol=native#text/plain templates/de/html/admin/admin_config_transfer.tpl svneol=native#text/plain -templates/de/html/admin/admin_config_transfer_pro.tpl svneol=native#text/plain templates/de/html/admin/admin_config_user.tpl svneol=native#text/plain templates/de/html/admin/admin_config_user_subid.tpl svneol=native#text/plain templates/de/html/admin/admin_config_validator.tpl svneol=native#text/plain @@ -1424,8 +1405,6 @@ templates/de/html/admin/admin_edit_refbanner.tpl svneol=native#text/plain templates/de/html/admin/admin_edit_refbanner_row.tpl svneol=native#text/plain templates/de/html/admin/admin_edit_refdepths.tpl svneol=native#text/plain templates/de/html/admin/admin_edit_refdepths_row.tpl svneol=native#text/plain -templates/de/html/admin/admin_edit_reflevel.tpl svneol=native#text/plain -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 @@ -1446,25 +1425,15 @@ templates/de/html/admin/admin_export_network_array_translation.tpl svneol=native templates/de/html/admin/admin_export_network_data.tpl svneol=native#text/plain templates/de/html/admin/admin_export_network_request_params.tpl svneol=native#text/plain templates/de/html/admin/admin_export_network_types.tpl svneol=native#text/plain -templates/de/html/admin/admin_export_network_vcheck_params.tpl svneol=native#text/plain templates/de/html/admin/admin_extension_notes.tpl svneol=native#text/plain templates/de/html/admin/admin_extension_reg_form.tpl svneol=native#text/plain templates/de/html/admin/admin_extension_sql_row.tpl svneol=native#text/plain templates/de/html/admin/admin_extension_sql_table.tpl svneol=native#text/plain -templates/de/html/admin/admin_extensions_installed.tpl svneol=native#text/plain -templates/de/html/admin/admin_extensions_list.tpl svneol=native#text/plain -templates/de/html/admin/admin_extensions_search.tpl svneol=native#text/plain templates/de/html/admin/admin_extensions_text.tpl svneol=native#text/plain templates/de/html/admin/admin_footer.tpl svneol=native#text/plain templates/de/html/admin/admin_form_selection_box.tpl svneol=native#text/plain -templates/de/html/admin/admin_forum_add.tpl svneol=native#text/plain -templates/de/html/admin/admin_forum_descr.tpl svneol=native#text/plain -templates/de/html/admin/admin_forum_display_cat.tpl svneol=native#text/plain -templates/de/html/admin/admin_forum_edit_del.tpl svneol=native#text/plain -templates/de/html/admin/admin_forum_edit_forum.tpl svneol=native#text/plain templates/de/html/admin/admin_guest_menu_status.tpl svneol=native#text/plain templates/de/html/admin/admin_header.tpl svneol=native#text/plain -templates/de/html/admin/admin_holiday_task.tpl svneol=native#text/plain templates/de/html/admin/admin_import_theme.tpl svneol=native#text/plain templates/de/html/admin/admin_import_theme_form.tpl svneol=native#text/plain templates/de/html/admin/admin_import_theme_none.tpl svneol=native#text/plain @@ -1541,8 +1510,6 @@ templates/de/html/admin/admin_list_network_request_params.tpl svneol=native#text templates/de/html/admin/admin_list_network_request_params_row.tpl svneol=native#text/plain templates/de/html/admin/admin_list_network_types.tpl svneol=native#text/plain templates/de/html/admin/admin_list_network_types_row.tpl svneol=native#text/plain -templates/de/html/admin/admin_list_network_vcheck_params.tpl svneol=native#text/plain -templates/de/html/admin/admin_list_network_vcheck_params_row.tpl svneol=native#text/plain templates/de/html/admin/admin_list_nickname_history.tpl svneol=native#text/plain templates/de/html/admin/admin_list_nickname_history_row.tpl svneol=native#text/plain templates/de/html/admin/admin_list_notify_emails.tpl svneol=native#text/plain @@ -1570,8 +1537,6 @@ templates/de/html/admin/admin_list_refbanner.tpl svneol=native#text/plain templates/de/html/admin/admin_list_refbanner_row.tpl svneol=native#text/plain templates/de/html/admin/admin_list_refdepths.tpl svneol=native#text/plain templates/de/html/admin/admin_list_refdepths_row.tpl svneol=native#text/plain -templates/de/html/admin/admin_list_reflevel.tpl svneol=native#text/plain -templates/de/html/admin/admin_list_reflevel_row.tpl svneol=native#text/plain templates/de/html/admin/admin_list_refs.tpl svneol=native#text/plain templates/de/html/admin/admin_list_refs_level.tpl svneol=native#text/plain templates/de/html/admin/admin_list_refs_nodata.tpl svneol=native#text/plain @@ -1600,7 +1565,6 @@ templates/de/html/admin/admin_list_task_rows.tpl svneol=native#text/plain templates/de/html/admin/admin_list_transfer.tpl svneol=native#text/plain templates/de/html/admin/admin_list_transfer_row.tpl svneol=native#text/plain templates/de/html/admin/admin_list_unconfirmed.tpl svneol=native#text/plain -templates/de/html/admin/admin_list_unconfirmed_header.tpl svneol=native#text/plain templates/de/html/admin/admin_list_unconfirmed_list.tpl svneol=native#text/plain templates/de/html/admin/admin_list_unconfirmed_row.tpl svneol=native#text/plain templates/de/html/admin/admin_list_unconfirmed_row_404.tpl svneol=native#text/plain @@ -1631,7 +1595,6 @@ templates/de/html/admin/admin_login_form.tpl svneol=native#text/plain templates/de/html/admin/admin_login_msg.tpl svneol=native#text/plain templates/de/html/admin/admin_logout.tpl svneol=native#text/plain templates/de/html/admin/admin_logout_form.tpl svneol=native#text/plain -templates/de/html/admin/admin_logout_sql_patches.tpl svneol=native#text/plain templates/de/html/admin/admin_logout_sql_patches_install.tpl svneol=native#text/plain templates/de/html/admin/admin_logout_sql_patches_remove.tpl svneol=native#text/plain templates/de/html/admin/admin_main.tpl svneol=native#text/plain @@ -1648,32 +1611,18 @@ templates/de/html/admin/admin_menu_status_row.tpl svneol=native#text/plain templates/de/html/admin/admin_metadata.tpl svneol=native#text/plain templates/de/html/admin/admin_mini_online.tpl svneol=native#text/plain templates/de/html/admin/admin_mods_footer_edit.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_footer_list.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_footer_stats.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_footer_stats2.tpl svneol=native#text/plain templates/de/html/admin/admin_mods_header_edit.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_header_list.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_header_stats.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_header_stats2.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_list.tpl svneol=native#text/plain -templates/de/html/admin/admin_mods_list_row.tpl svneol=native#text/plain templates/de/html/admin/admin_network_added.tpl svneol=native#text/plain templates/de/html/admin/admin_network_array_translation_added.tpl svneol=native#text/plain templates/de/html/admin/admin_network_request_param_added.tpl svneol=native#text/plain templates/de/html/admin/admin_network_type_added.tpl svneol=native#text/plain -templates/de/html/admin/admin_network_vcheck_param_added.tpl svneol=native#text/plain -templates/de/html/admin/admin_new_ext.tpl svneol=native#text/plain templates/de/html/admin/admin_newsletter.tpl svneol=native#text/plain templates/de/html/admin/admin_newsletter_nohtml.tpl svneol=native#text/plain -templates/de/html/admin/admin_newsletter_tsk.tpl svneol=native#text/plain templates/de/html/admin/admin_next_link.tpl svneol=native#text/plain -templates/de/html/admin/admin_online_footer.tpl svneol=native#text/plain -templates/de/html/admin/admin_online_header.tpl svneol=native#text/plain templates/de/html/admin/admin_optimize.tpl svneol=native#text/plain templates/de/html/admin/admin_optimize_row.tpl svneol=native#text/plain templates/de/html/admin/admin_other_sqls.tpl svneol=native#text/plain templates/de/html/admin/admin_other_sqls_row.tpl svneol=native#text/plain -templates/de/html/admin/admin_overview_header.tpl svneol=native#text/plain templates/de/html/admin/admin_overview_list.tpl svneol=native#text/plain templates/de/html/admin/admin_overview_list_ext_rows.tpl svneol=native#text/plain templates/de/html/admin/admin_overview_list_rows.tpl svneol=native#text/plain @@ -1682,16 +1631,12 @@ templates/de/html/admin/admin_overview_table.tpl svneol=native#text/plain templates/de/html/admin/admin_overview_task.tpl svneol=native#text/plain templates/de/html/admin/admin_overview_task_extras.tpl svneol=native#text/plain templates/de/html/admin/admin_overview_task_rows.tpl svneol=native#text/plain -templates/de/html/admin/admin_patches.tpl svneol=native#text/plain -templates/de/html/admin/admin_patches_row.tpl svneol=native#text/plain templates/de/html/admin/admin_payout_accept_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.tpl svneol=native#text/plain templates/de/html/admin/admin_reg_form.tpl svneol=native#text/plain -templates/de/html/admin/admin_reg_row.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_repair_lang_row_compares.tpl svneol=native#text/plain @@ -1717,7 +1662,6 @@ templates/de/html/admin/admin_surfbar_url_stats_row.tpl svneol=native#text/plain templates/de/html/admin/admin_task_holiday.tpl svneol=native#text/plain templates/de/html/admin/admin_task_order.tpl svneol=native#text/plain templates/de/html/admin/admin_theme_installed.tpl svneol=native#text/plain -templates/de/html/admin/admin_theme_list.tpl svneol=native#text/plain templates/de/html/admin/admin_undelete_surfbar_urls.tpl svneol=native#text/plain templates/de/html/admin/admin_undelete_surfbar_urls_row.tpl svneol=native#text/plain templates/de/html/admin/admin_unlock_emails.tpl svneol=native#text/plain @@ -1815,9 +1759,9 @@ templates/de/html/ext/ext_other.tpl svneol=native#text/plain templates/de/html/ext/ext_partner.tpl svneol=native#text/plain templates/de/html/ext/ext_payout.tpl svneol=native#text/plain templates/de/html/ext/ext_politician-stop.tpl svneol=native#text/plain -templates/de/html/ext/ext_primera.tpl svneol=native#text/plain templates/de/html/ext/ext_profile.tpl svneol=native#text/plain templates/de/html/ext/ext_rallye.tpl svneol=native#text/plain +templates/de/html/ext/ext_ranking.tpl svneol=native#text/plain templates/de/html/ext/ext_refback.tpl svneol=native#text/plain templates/de/html/ext/ext_refsell.tpl svneol=native#text/plain templates/de/html/ext/ext_register.tpl svneol=native#text/plain @@ -1839,6 +1783,7 @@ templates/de/html/ext/ext_terms.tpl svneol=native#text/plain templates/de/html/ext/ext_theme.tpl svneol=native#text/plain templates/de/html/ext/ext_timezone.tpl svneol=native#text/plain templates/de/html/ext/ext_top10.tpl svneol=native#text/plain +templates/de/html/ext/ext_transaction.tpl svneol=native#text/plain templates/de/html/ext/ext_transfer.tpl svneol=native#text/plain templates/de/html/ext/ext_uberwach.tpl svneol=native#text/plain templates/de/html/ext/ext_update.tpl svneol=native#text/plain @@ -1849,8 +1794,6 @@ templates/de/html/ext/ext_wernis.tpl svneol=native#text/plain templates/de/html/ext/ext_yacy.tpl svneol=native#text/plain templates/de/html/ext/ext_yoomedia.tpl svneol=native#text/plain templates/de/html/fatal_errors.tpl svneol=native#text/plain -templates/de/html/fatal_footer.tpl svneol=native#text/plain -templates/de/html/fatal_header.tpl svneol=native#text/plain templates/de/html/guest/.htaccess svneol=native#text/plain templates/de/html/guest/guest_active_none_row.tpl svneol=native#text/plain templates/de/html/guest/guest_advert.tpl svneol=native#text/plain @@ -1859,7 +1802,6 @@ templates/de/html/guest/guest_beg.tpl svneol=native#text/plain templates/de/html/guest/guest_cat_row.tpl svneol=native#text/plain templates/de/html/guest/guest_cat_table.tpl svneol=native#text/plain templates/de/html/guest/guest_confirm_link.tpl svneol=native#text/plain -templates/de/html/guest/guest_confirm_table.tpl svneol=native#text/plain templates/de/html/guest/guest_content_footer.tpl svneol=native#text/plain templates/de/html/guest/guest_doubler.tpl svneol=native#text/plain templates/de/html/guest/guest_doubler_list.tpl svneol=native#text/plain @@ -1884,8 +1826,6 @@ templates/de/html/guest/guest_menu_td.tpl svneol=native#text/plain templates/de/html/guest/guest_menu_title.tpl svneol=native#text/plain templates/de/html/guest/guest_metadata.tpl svneol=native#text/plain templates/de/html/guest/guest_nickname_login.tpl svneol=native#text/plain -templates/de/html/guest/guest_paidlinks_register.tpl svneol=native#text/plain -templates/de/html/guest/guest_paidlinks_register_header.tpl svneol=native#text/plain templates/de/html/guest/guest_rallye_404.tpl svneol=native#text/plain templates/de/html/guest/guest_receive_table.tpl svneol=native#text/plain templates/de/html/guest/guest_register.tpl svneol=native#text/plain @@ -1925,7 +1865,6 @@ 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_header.tpl svneol=native#text/plain templates/de/html/install/install_list_extensions.tpl svneol=native#text/plain templates/de/html/install/install_list_extensions_row.tpl svneol=native#text/plain templates/de/html/install/install_main_ajax.tpl svneol=native#text/plain @@ -1940,6 +1879,7 @@ 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_extensions.tpl svneol=native#text/plain +templates/de/html/install/install_page_first_admin.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_overview.tpl svneol=native#text/plain @@ -2112,18 +2052,17 @@ templates/de/html/member/member_surfbar_edit_action_form.tpl svneol=native#text/ templates/de/html/member/member_surfbar_link.tpl svneol=native#text/plain templates/de/html/member/member_themes.tpl svneol=native#text/plain templates/de/html/member/member_themes_row.tpl svneol=native#text/plain +templates/de/html/member/member_transaction_fees.tpl -text +templates/de/html/member/member_transaction_fees_config_row.tpl -text +templates/de/html/member/member_transactions.tpl -text +templates/de/html/member/member_transactions_form.tpl -text +templates/de/html/member/member_transactions_row.tpl -text templates/de/html/member/member_transfer_list.tpl svneol=native#text/plain templates/de/html/member/member_transfer_new.tpl svneol=native#text/plain templates/de/html/member/member_transfer_overview.tpl svneol=native#text/plain templates/de/html/member/member_transfer_row.tpl svneol=native#text/plain templates/de/html/member/member_transfer_row2.tpl svneol=native#text/plain templates/de/html/member/member_transfer_settings.tpl svneol=native#text/plain -templates/de/html/member/member_unconfirmed_404.tpl svneol=native#text/plain -templates/de/html/member/member_unconfirmed_404_nopoints.tpl svneol=native#text/plain -templates/de/html/member/member_unconfirmed_row.tpl svneol=native#text/plain -templates/de/html/member/member_unconfirmed_row_nopoints.tpl svneol=native#text/plain -templates/de/html/member/member_unconfirmed_table.tpl svneol=native#text/plain -templates/de/html/member/member_unconfirmed_table_nopoints.tpl svneol=native#text/plain templates/de/html/member/member_welcome.tpl svneol=native#text/plain templates/de/html/member/member_welcome_footer.tpl svneol=native#text/plain templates/de/html/member/member_welcome_header.tpl svneol=native#text/plain @@ -2156,7 +2095,6 @@ templates/de/html/menu/menu_table.tpl svneol=native#text/plain templates/de/html/menu/menu_what_begin.tpl svneol=native#text/plain templates/de/html/menu/menu_what_end.tpl svneol=native#text/plain templates/de/html/message.tpl svneol=native#text/plain -templates/de/html/metadata.tpl svneol=native#text/plain templates/de/html/noindex_metadata.tpl svneol=native#text/plain templates/de/html/online_now.tpl svneol=native#text/plain templates/de/html/page_body.tpl svneol=native#text/plain @@ -2180,6 +2118,8 @@ templates/de/html/select/select_actions_status_surfbar_box.tpl svneol=native#tex templates/de/html/select/select_actions_status_surfbar_option.tpl 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_banner_box.tpl svneol=native#text/plain +templates/de/html/select/select_forced_ads_id_banner_option.tpl svneol=native#text/plain templates/de/html/select/select_forced_ads_id_box.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 @@ -2239,9 +2179,6 @@ templates/de/html/theme/.htaccess svneol=native#text/plain templates/de/html/theme/theme_one.tpl svneol=native#text/plain templates/de/html/theme/theme_select_box.tpl svneol=native#text/plain templates/de/html/theme/theme_select_form.tpl svneol=native#text/plain -templates/de/html/theme_one.tpl svneol=native#text/plain -templates/de/html/theme_select_box.tpl svneol=native#text/plain -templates/de/html/theme_select_form.tpl svneol=native#text/plain templates/de/html/tlock_message.tpl svneol=native#text/plain templates/de/html/uberwach/.htaccess svneol=native#text/plain templates/de/html/uberwach/uberwach_snippet.tpl svneol=native#text/plain @@ -2297,6 +2234,7 @@ templates/xml/admin/admin_edit_show_referral_levels.xml svneol=native#text/plain templates/xml/admin/admin_edit_show_surfbar_actions.xml svneol=native#text/plain templates/xml/admin/admin_edit_show_surfbar_urls.xml svneol=native#text/plain templates/xml/admin/admin_edit_show_user_subid.xml svneol=native#text/plain +templates/xml/admin/admin_list_blacklist.xml svneol=native#text/plain templates/xml/admin/admin_list_booking.xml svneol=native#text/plain templates/xml/admin/admin_list_forced_ads.xml svneol=native#text/plain templates/xml/admin/admin_list_forced_campaigns.xml svneol=native#text/plain @@ -2455,6 +2393,7 @@ theme/schleuder/theme.php svneol=native#text/plain theme/ship-simu/css/ajax.css svneol=native#text/css theme/ship-simu/css/bonus.css svneol=native#text/css theme/ship-simu/css/general.css svneol=native#text/css +theme/ship-simu/css/install.css svneol=native#text/css theme/ship-simu/css/politician-stop.css svneol=native#text/css theme/ship-simu/css/register.css svneol=native#text/css theme/ship-simu/images/code_bg.jpg -text svneol=unset#image/jpeg diff --git a/DOCS/TODOs.txt b/DOCS/TODOs.txt index a3264374e2..9c5107be24 100644 --- a/DOCS/TODOs.txt +++ b/DOCS/TODOs.txt @@ -5,9 +5,9 @@ ./beg.php:173: // @TODO Opps, what is missing here??? ./cron.php:62:// @TODO Do stuff here ./inc/classes/cachesystem.class.php:516: // @TODO Add support for more types which break in last else-block -./inc/config-functions.php:150: // @TODO Make this all better... :-/ -./inc/config-functions.php:327: // @TODO Call setConfigEntry() somehow -./inc/config-functions.php:355: // @TODO Call setConfigEntry() somehow +./inc/config-functions.php:151: // @TODO Make this all better... :-/ +./inc/config-functions.php:328: // @TODO Call setConfigEntry() somehow +./inc/config-functions.php:356: // @TODO Call setConfigEntry() somehow ./inc/daily/daily_beg.php:52:// @TODO This should be converted in a daily beg rallye ./inc/daily/daily_birthday.php:68:// @TODO Rewrite these if() blocks to a filter ./inc/email-functions.php:113: * @TODO Rewrite this to an extension 'smtp' @@ -15,7 +15,7 @@ ./inc/expression-functions.php:173:// @TODO FILTER_COMPILE_CONFIG does not handle call-back functions so we handle it here again ./inc/expression-functions.php:46: // @TODO is escapeQuotes() enough for strings with single/double quotes? ./inc/extensions/bonus/mode-update.php:43:// @TODO Remove double tabs from all lines -./inc/extensions/ext-html_mail.php:136: // @TODO Move these arrays into config +./inc/extensions/ext-html_mail.php:149: // @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-newsletter.php:218: // @TODO Move these into configuration ./inc/extensions/ext-nickname.php:52: // @TODO NOT NULL DEFAULT '' is bad practice, use NULL @@ -63,25 +63,27 @@ ./inc/extensions/sponsor/mode-setup.php:43:// @TODO Remove double tabs from all lines ./inc/extensions/sql_patches/mode-update.php:43:// @TODO Remove double tabs from all lines ./inc/extensions/user/mode-update.php:43:// @TODO Remove double tabs from all lines -./inc/filter/blacklist_filter.php:82: // @TODO Insert log entry -./inc/filter/blacklist_filter.php:93: // @TODO Insert log entry +./inc/filter/blacklist_filter.php:105: // @TODO Insert log entry +./inc/filter/blacklist_filter.php:116: // @TODO Insert log entry +./inc/filter/blacklist_filter.php:127: // @TODO Insert log entry ./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/forced_filter.php:73: // @TODO This part is unfinished ./inc/filter-functions.php:119: // @TODO Remove this forced removal after a year or so -./inc/filters.php:1380: // @TODO No banner found, output some default banner +./inc/filter/order_filter.php:132: // @TODO 200 is hard-coded here, swap it out to config + admin_config_order.tpl +./inc/filters.php:1370: // @TODO No banner found, output some default banner ./inc/functions.php:1210: // @TODO Are these convertions still required? ./inc/functions.php:1231:// @TODO Rewrite this function to use readFromFile() and writeToFile() ./inc/functions.php:1535: // @TODO This should be rewritten not to load the cache file for just checking if it is there for save removal. -./inc/functions.php:1859: // @TODO Find a way to cache this -./inc/functions.php:1963: // @TODO This is still very static, rewrite it somehow -./inc/functions.php:2167: // @TODO Rename column data_type to e.g. mail_status -./inc/functions.php:2517:// @TODO cacheFiles is not yet supported +./inc/functions.php:1896: // @TODO Find a way to cache this +./inc/functions.php:2000: // @TODO This is still very static, rewrite it somehow +./inc/functions.php:2204: // @TODO Rename column data_type to e.g. mail_status +./inc/functions.php:2554:// @TODO cacheFiles is not yet supported ./inc/gen_sql_patches.php:95:// @TODO Rewrite this to a filter ./inc/header.php:66:// @TODO Find a way to not use direct module comparison ./inc/install-functions.php:446: // @TODO Comparing with DEFAULT_MAIN_TITLE doesn't work ./inc/install-functions.php:97: // @TODO DEACTIVATED: changeDataInLocalConfigurationFile('OUTPUT-MODE', "setConfigEntry('OUTPUT_MODE', '", "');", postRequestElement('omode'), 0); -./inc/language/de.php:1162: // @TODO Rewrite these two constants -./inc/language/de.php:1178: // @TODO Rewrite these three constants +./inc/language/de.php:1163: // @TODO Rewrite these two constants +./inc/language/de.php:1179: // @TODO Rewrite these three constants ./inc/language/de.php:46: // @TODO Please sort these language elements ./inc/language/de.php:748:// @TODO Are these constants longer used? ./inc/language-functions.php:254: // @TODO These are all valid languages, again hard-coded @@ -168,8 +170,8 @@ ./inc/modules/admin/what-list_user_cats.php:68: // @TODO Rewrite this to countSum.....() function ./inc/modules/admin/what-list_user.php:104: // @TODO Refacture these old link generation to functions ./inc/modules/admin/what-list_user.php:121: // @TODO Refacture birth_foo to avoid uni* timetstamps as older members cannot be greeded correctly -./inc/modules/admin/what-list_user.php:291: // @TODO Rewrite this into a filter -./inc/modules/admin/what-list_user.php:356: // @TODO Rewrite this into a filter +./inc/modules/admin/what-list_user.php:288: // @TODO Rewrite this into a filter +./inc/modules/admin/what-list_user.php:350: // @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 @@ -180,7 +182,7 @@ ./inc/modules/admin/what-usr_online.php:49: // @TODO Add a filter for sponsor ./inc/modules/frametester.php:91: // @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-mediadata.php:188:// @TODO Rewrite all these if-blocks to filters +./inc/modules/guest/what-mediadata.php:183:// @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-rallyes.php:99: // @TODO Reactivate this: $content['admin'] = '' . $content['login'] . ''; ./inc/modules/guest/what-sponsor_reg.php:293: // @TODO Maybe a default referral id? @@ -192,12 +194,13 @@ ./inc/modules/member/what-logout.php:17: * @TODO Rewrite the code to a filter * ./inc/modules/member/what-logout.php:52: // @TODO Move this in a filter, e.g. member_logout ./inc/modules/member/what-mydata.php:82: // @TODO Move this to a function (for better EL code) -./inc/modules/member/what-order.php:365: // @TODO Rewrite this to a filter +./inc/modules/member/what-order.php:317: // @TODO Rewrite this to a filter ./inc/modules/member/what-order.php:72: // @TODO Try to move out url_tlock to a filter for extra SQL statements ./inc/modules/member/what-payout.php:208: // @TODO Rewrite this to a filter ./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'] = '' . $content['login'] . ''; ./inc/modules/member/what-reflinks.php:52:// @TODO Move this into a filter +./inc/modules/member/what-transaction_fees.php:210:// @TODO Make this working ./inc/modules/member/what-transfer.php:128: // @TODO Rewrite this to a filter ./inc/modules/member/what-unconfirmed.php:124: // @TODO This call cannot be saved as EL code cannot be "framed" in other EL code ./inc/modules/member/what-unconfirmed.php:168: // @TODO Try to rewrite this to $content = SQL_FETCHARRAY() @@ -226,8 +229,8 @@ ./inc/template-functions.php:209: * @TODO On some pages this is buggy ./inc/template-functions.php:298: // @TODO Remove these sanity checks if all is fine ./inc/template-functions.php:747: // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates -./inc/wrapper-functions.php:3227: // @TODO Find a way to not use direct module comparison -./inc/wrapper-functions.php:566:// @TODO Do some more sanity check here +./inc/wrapper-functions.php:3274: // @TODO Find a way to not use direct module comparison +./inc/wrapper-functions.php:583:// @TODO Do some more sanity check here ./inc/xml-functions.php:240: // @TODO Handle characters ./mailid.php:123: // @TODO Rewrite this to a filter/function ./mailid.php:160: // @TODO Rewrite this to a filter @@ -241,6 +244,7 @@ ./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_optimize.tpl:3: +./templates/de/html/ext/ext_transaction.tpl:2: @TODO Transaktionen ... ./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. @@ -256,123 +260,7 @@ ./.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.php:2:// @DEPRECATED -./inc/birthday_mails.php:2:// @DEPRECATED -./inc/check-reset.php:2:// @DEPRECATED -./inc/doubler_send.php:2:// @DEPRECATED -./inc/extensions.php:2:// @DEPRECATED -./inc/fatal_errors.php:2:// @DEPRECATED -./inc/hooks.php:2:// @DEPRECATED -./inc/language.php:2:// @DEPRECATED -./inc/language/pro_de.php:2:// @DEPRECATED -./inc/libs/output_functions.php:2:// @DEPRECATED -./inc/load_extensions.php:2:// @DEPRECATED -./inc/mails/birthday_mails.php:2:// @DEPRECATED ./inc/modules/admin/admin-inc.php:534:// @DEPRECATED -./inc/modules/admin/what-admins_contact.php:2:// @DEPRECATED -./inc/modules/admin/what-autopurge.php:2:// @DEPRECATED -./inc/modules/admin/what-config_cache.php:2:// @DEPRECATED -./inc/modules/admin/what-config_cats.php:2:// @DEPRECATED -./inc/modules/admin/what-config_mods.php:2:// @DEPRECATED -./inc/modules/admin/what-config_rallye_prices.php:2:// @DEPRECATED -./inc/modules/admin/what-config_reg.php:2:// @DEPRECATED -./inc/modules/admin/what-del_task.php:2:// @DEPRECATED -./inc/modules/admin/what-list_network_vcheck_params.php:2:// @DEPRECATED -./inc/modules/admin/what-list_newsletter.php:2:// @DEPRECATED -./inc/modules/admin/what-list_norefs.php:2:// @DEPRECATED -./inc/modules/admin/what-newsletter.php:2:// @DEPRECATED -./inc/modules/admin/what-repair_amenu.php:2:// @DEPRECATED -./inc/modules/admin/what-repair_gmenu.php:2:// @DEPRECATED -./inc/modules/admin/what-repair_mmenu.php:2:// @DEPRECATED -./inc/modules/admin/what-stats.php:2:// @DEPRECATED -./inc/modules/admin/what-user_online.php:2:// @DEPRECATED -./inc/modules/frameset.php:2:// @DEPRECATED -./inc/modules/welcome.php:2:// @DEPRECATED -./inc/patch-system.php:2:// @DEPRECATED -./inc/pool-update.php:2:// @DEPRECATED -./inc/profile-updte.php:2:// @DEPRECATED -./inc/security.php:2:// @DEPRECATED -./inc/sql_error.php:2:// @DEPRECATED -./inc/stats_bonus.php:2:// @DEPRECATED -./inc/template.php:2:// @DEPRECATED -./mailid_top.php:2:// @DEPRECATED -./templates/de/emails/admin/admin_autopurge_delete.tpl:1:@DEPRECATED -./templates/de/emails/admin/admin_autopurge_del_mails.tpl:1:@DEPRECATED -./templates/de/emails/admin/admin_autopurge_inactive.tpl:1:@DEPRECATED -./templates/de/emails/admin/admin_autopurge_points.tpl:1:@DEPRECATED -./templates/de/emails/admin/admin_autopurge_tsks.tpl:1:@DEPRECATED -./templates/de/emails/admin/admin_autopurge_turbo.tpl:1:@DEPRECATED -./templates/de/emails/admin/admin_autopurge_unconfirmed.tpl:1:@DEPRECATED -./templates/de/html/admin/admin_add_network_vcheck_param.tpl:1: -./templates/de/html/admin/admin_add_reflevel.tpl:1: -./templates/de/html/admin/admin_add_reflvl.tpl:1: -./templates/de/html/admin/admin_add_shop_cat.tpl:1: -./templates/de/html/admin/admin_admins_contact_form.tpl:1: -./templates/de/html/admin/admin_config_autopurge_pro.tpl:1: -./templates/de/html/admin/admin_config_beg_pro.tpl:1: -./templates/de/html/admin/admin_config_bonus_pro.tpl:1: -./templates/de/html/admin/admin_config_cache.tpl:1: -./templates/de/html/admin/admin_config_doubler_pro.tpl:1: -./templates/de/html/admin/admin_config_home_settings_pro.tpl:1: -./templates/de/html/admin/admin_config_reg_pro.tpl:1: -./templates/de/html/admin/admin_config_shop.tpl:1: -./templates/de/html/admin/admin_config_transfer_pro.tpl:1: -./templates/de/html/admin/admin_edit_reflevel_row.tpl:1: -./templates/de/html/admin/admin_edit_reflevel.tpl:1: -./templates/de/html/admin/admin_export_network_vcheck_params.tpl:1: -./templates/de/html/admin/admin_extensions_installed.tpl:1: -./templates/de/html/admin/admin_extensions_list.tpl:1: -./templates/de/html/admin/admin_extensions_search.tpl:1: -./templates/de/html/admin/admin_forum_add.tpl:1: -./templates/de/html/admin/admin_forum_descr.tpl:1: -./templates/de/html/admin/admin_forum_display_cat.tpl:1: -./templates/de/html/admin/admin_forum_edit_del.tpl:1: -./templates/de/html/admin/admin_forum_edit_forum.tpl:1: -./templates/de/html/admin/admin_holiday_task.tpl:1: -./templates/de/html/admin/admin_list_network_vcheck_params_row.tpl:1: -./templates/de/html/admin/admin_list_network_vcheck_params.tpl:1: -./templates/de/html/admin/admin_list_reflevel_row.tpl:1: -./templates/de/html/admin/admin_list_reflevel.tpl:1: -./templates/de/html/admin/admin_list_unconfirmed_header.tpl:1: -./templates/de/html/admin/admin_logout_sql_patches.tpl:1: -./templates/de/html/admin/admin_mods_footer_list.tpl:1: -./templates/de/html/admin/admin_mods_footer_stats2.tpl:1: -./templates/de/html/admin/admin_mods_footer_stats.tpl:1: -./templates/de/html/admin/admin_mods_header_list.tpl:1: -./templates/de/html/admin/admin_mods_header_stats2.tpl:1: -./templates/de/html/admin/admin_mods_header_stats.tpl:1: -./templates/de/html/admin/admin_mods_list_row.tpl:1: -./templates/de/html/admin/admin_mods_list.tpl:1: -./templates/de/html/admin/admin_network_vcheck_param_added.tpl:1: -./templates/de/html/admin/admin_new_ext.tpl:1: -./templates/de/html/admin/admin_newsletter_tsk.tpl:1: -./templates/de/html/admin/admin_online_footer.tpl:1: -./templates/de/html/admin/admin_online_header.tpl:1: -./templates/de/html/admin/admin_overview_header.tpl:1: -./templates/de/html/admin/admin_patches_row.tpl:1: -./templates/de/html/admin/admin_patches.tpl:1: -./templates/de/html/admin/admin_reg_row.tpl:1: -./templates/de/html/admin/admin_reg.tpl:1: -./templates/de/html/admin/admin_theme_list.tpl:1: -./templates/de/html/ext/ext_primera.tpl:1: -./templates/de/html/fatal_footer.tpl:1: -./templates/de/html/fatal_header.tpl:1: -./templates/de/html/guest/guest_confirm_table.tpl:1: -./templates/de/html/guest/guest_paidlinks_register_header.tpl:1: -./templates/de/html/guest/guest_paidlinks_register.tpl:1: -./templates/de/html/install/install_header.tpl:1: -./templates/de/html/member/member_unconfirmed_404_nopoints.tpl:1: -./templates/de/html/member/member_unconfirmed_404.tpl:1: -./templates/de/html/member/member_unconfirmed_row_nopoints.tpl:1: -./templates/de/html/member/member_unconfirmed_row.tpl:1: -./templates/de/html/member/member_unconfirmed_table_nopoints.tpl:1: -./templates/de/html/member/member_unconfirmed_table.tpl:1: -./templates/de/html/metadata.tpl:1: -./templates/de/html/theme_one.tpl:1: -./templates/de/html/theme_select_box.tpl:1: -./templates/de/html/theme_select_form.tpl:1: -./js/jquery-ui.custom.js:1:// @DEPRECATED -./js/jquery-uncompressed.js:1:// @DEPRECATED ### ### template-warnings.log follows: ### ### 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 diff --git a/DOCS/en/DESIGNING.txt b/DOCS/en/DESIGNING.txt index d7f97fd329..f9bdda0d1c 100644 --- a/DOCS/en/DESIGNING.txt +++ b/DOCS/en/DESIGNING.txt @@ -561,16 +561,6 @@ Auszug aus der originalen general.css: background-color : #eeffbc; } -.media_header, .impressum_header { - background-color : #b8fccb; - align : center; - text-align : center; - color : #009900; - height : 26px; - font-weight : bold; - font-size : 20px; -} - .media_left { font-size : 14px; width : 200px; @@ -606,14 +596,6 @@ Auszug aus der originalen general.css: height : 30px } -.admin_task_header { - background-color : #DDEEDD; - color : #009900; - vertical-align : middle; - font-size : 18px; - height : 35px; -} - .separator { font-size : 1px } diff --git a/api.php b/api.php index fb54301d80..a6524ae02c 100644 --- a/api.php +++ b/api.php @@ -57,10 +57,10 @@ $GLOBALS['__footer_sent'] = 2; require('inc/config-global.php'); // Load special API library -//loadIncludeOnce('inc/ajax-functions.php'); +//loadIncludeOnce('inc/api-functions.php'); // Init API request (including HTTP status code) -//initAjax(); +//initApi(); // Load header here loadIncludeOnce('inc/header.php'); diff --git a/debug.php b/debug.php index 10af24c857..e5aedcd104 100644 --- a/debug.php +++ b/debug.php @@ -55,7 +55,7 @@ if ((isExtensionActive('debug')) && (!ifFatalErrorsDetected())) { // Handle the request if (DEBUG_HANDLE_REQUEST(postRequestElement('request'))) { // Construct FQFN for the module - $inc = sprintf("inc/debug/%s/request_%s.php", + $inc = sprintf('inc/debug/%s/request_%s.php', getConfig('debug_mode'), sqlEscapeString(postRequestElement('request')) ); diff --git a/img.php b/img.php index f8c5fdaa14..d9780a6b22 100644 --- a/img.php +++ b/img.php @@ -57,9 +57,7 @@ if (isGetRequestElementSet('code')) { generateImageOrCode(bigintval(getRequestElement('code'))); } elseif (isGetRequestElementSet('img')) { // 'img' set so create the IFN (Include-FileName) - $inc = sprintf("inc/img/img_%s.php", - getRequestElement('img') - ); + $inc = sprintf('inc/img/img_%s.php', getRequestElement('img')); // Include is readable? if (isIncludeReadable($inc)) { diff --git a/img/captcha-error.png b/img/captcha-error.png new file mode 100644 index 0000000000000000000000000000000000000000..ab0a996a46fbaebca87ec326d93b052ffb006f20 GIT binary patch literal 7477 zcmV-59m?W~P)4tL(&!30000ObVXQn zLvL+uWo~o;O=VEhL!*{Z zeqci70U|LJBGE{Zs5`T>AHcHgPS5nr^vv{qf829>Zuj);7t6B3oT{$rxqbWg?bGL; zd%o_u3S*36h(P5(%Z8w-*#NWPEjD;~mNCYd3hV}u2JjSsP1bXmY4)>6djb3xfGtn~ z9l$yOQvoyp09sBz9i{emtNOujd;^Jw2J3&Ztxam|8~{xKW&n(BV~jmY-EFsZJ~4JI z%YX0zYX;cCn{Q^#0Bbqp4Av}ThsEjl4MwHgsNhjsWA>Y>fkvJ9Zzk3L)gY07HDm1m z7-M+`#ul<-vB*-X6icVmj4{SisT5<3Rs1&$gJm)qtE^ZoGELK%X_~C3r<*B5Nwmrk zkAM{z!k*HI~2v5kzeJbmVk)(1au z?X~<1?%&UH@4m~)bM$D&7-NNw4hO+uoCi1~2Q@?XGn5Jos0A1HvsZ_G{ zjbFQ(G1fDJN5D{m7w81=I)E5}G2o-?mE+v4wKB$10J;IJrVnkOUXCrS2Qbe$%D3_n zid{r~UYcsY1z?U<(ah%&R}>sxxDcjc@G@No03_<`5myw%6$R<_>#cjlIb#foSPZSx zra3y40aLF;m)Xe}MBG%`pFQftpLIuK9X*+-f zfCWTvO@v816b~G*@lF7U*VQ3;=9v~|#q}f0m*en~CB1a)1^@>EbbvGZ{{YAVC_-WE z5ymBqdg{<;!3V^cVWO{1gt5~(1H;370#jpwQBY`ZMt;v8M`LLKn}kugwhRQlMt1KBzP(Pc2dV8uFaYGJQS}NipMhq%pV%~^sw#519Q=Mi zRJAvOWCvj^0id3DDwD|o=tf=LcmP1DRDw<#jA*Q`uFh&gzRnm!j7D6kRD#Fjfu?Ej zdc6pRLeMk~01%BvZJo_zG6)8P@OV66j3J#)qpq$Qsydd7E?%z}b#>#BqLITp$s6L= z>a1(d>x!aS|2-0&iI)k7?UIKm4+ewCX0yoW^H3B8fj|KH{1gCvG#@$ED_hB zpUBe543Pk^kIeQsuJY&chgmLV9Z-QKG$V#-u31I%%?2{jY{F35vqvs`!yyE$rSlb* zp-tjh1|4book%81%RoeptU0l8WLymRclJv-abfUjk}Px*3=J~;T|(-iXmHaBgt0V@ zt_6MZtW9KSTu%aP1l+s$2eK#sk&NEW#K(k@a!J3{(nGi0fa;+{fF3ld|;;=t8ca{;NV3vs_6i7|G&W2vhP@kqqFw`=KAuA$DKkL2XZy{IrU z==AOpdZ#Ut=~x^uSSmD8)@Guh*@Uz-X{dg(o~FqLZPGaic{f!&zGvl16h8O>W1f7H zzeqHS37wr#0|6UiCNXCH9=ZR1uuKLGzx}OMW+8g+Tm-MY646_3v44QMa}k^|1JT=V zE4Q5Ymd)m_lbKm~3%ZC$bpS{L zxSPtmX&BBT1b_2WI`r-U@QW%46Sj{qfOqKKcgu2C7{D3Q4M9m~eTX!0Km9Hsb?%v7 zyOVnCF~ozx0a%NU9^#79kLZRS02WIYg`6~EfO6DCH-L+%>;kBqd8ed`+o^%=L}e=o zNkKxWKv)dG%e{8#$d7&m^{o;%H|40O#-~KjOsRRHxykG%3@3@1X zFI>M`5{-?l(9WYv z4liA51%nilNfxiKw;cC!ph&!-ffZU?S-ig9a^5%hD~Lq+XErj%?qrNTPj2-%`D%K| z*Z(#d^qwW-+D50VWV?j2i^?N(q-378hE$!s z#ORX_8w?}BNX(lusT%`%xxpVzFJv5z|GbQ+mV z2D+{z5{ZB@hD;^{P18^!<}dEES&&WBvi4PjY&MHjDuqI!V0{ox(~wS!8Sois+T|z| zK95vtJPL(9$mdT(DiuPpn5Eg$kdgHr_|(6kSS%u&olXz&AQZj;s;a{0^U<}e)qzkb z)aNw;z17h)4UtF$p->2nF(`@x(=;t4c^sB&C&B|H@VX&W(=>!aA;e-a_3vblUoeKHr@Pg<>#_vk?dc5DJB1%+Yn?c1S|vzsucGsieh`NxX0)7 zSsx>l$$&A2a5!xBQ$81ckk4zD(wbShW>&5ttA?zT0$Ikzk_u1*J6fvNg)P1TBO_XWIAKM_ zh*Irl=&X4SseiOfcwjKlU1-0+U}jT)cl5{qFz|Med~E7sOJ*_sPKJ zr(yO09q)r*-%pL6N)1(yi%+dwiBZ4!1tu|u3GM9_9%ccp)2E~B-g~*tY27+R$fM)* zUdI&$hZihB+XWX?AZik0D0OwA+2=#+^yz3BHx5UB_A|u$w6Y4H=c^KrY9rPoZ14X8 z7panjgCG>fHd4s@ev~7C(}X;6{yvEkMUug$pjt>$JP-hAMb_!v-ALBg+q}=kwl=g* znS#dc+tE39F2;ZOA>xXHiKdCJMT_7)>nudS_dT>UG+BJE8jhn3PWUYcOSBdkxX=f4|IEB%`1^ zyg>ZQ3vPFpVFpo_SXGjfu1ygu(}WZC211x1!Jx$OWoYO(X9!($4HBb9SxW@c>((K9 z`|Zd){WR(%WC6hVefyAXY{bED_CF*b``T*=%^HYElSA1PEyAqi_v)6|jJ#a1L&Q4h zju`?p>;#g&g>o3uE-Kp!9&Ph!gIVA%u+;#5N{ER`*H_Uf6D;Xcr|2Mt-D>Hk4vh`DCv~5rbtq(h+A5Pa*zlJX^X)fvDJZ@CR)!u z7jZ>__WR!t3knMV{&z(jmphy*4MPzaA`sRnA90kv~O1c)7sB0~N z|LL_mt&=CC>7W0^B*qZE{dSvN)br3o=(zlH&Izu#0*NtWP|`H$n>JZ8nwd_!2DbGk zCUh-cjD|-a?E_I>n&DSV2!jJ*N$GqFEDv>MPza+HMvpjxDe@FF(N2LBz2`R2)~{#H z0Qv&8YR^8)TF*b#H4!I z13^TDO@zuW6O@&6Oq1uhJRnTg2S56X_^SpD4?Q#j5G4=ATggJ4b{USdsa#xBWqa0U zhl2c$3*S1CKzOne;Av635@qcowMSn684;A#MZ<8fbezbD0u8~nr1xGxLb#x;OHf`T znj|w-xWBOus{kx6&s6SEJl(0;S+Sb(YHb07z2;V@R4TzR z48&qFYuP!#Ble=vsI|a4m&>74D#0|(ilJI46p+nkZPX^7lg(xkjYbinMF*)=3c+9y zu~-aw$_ix|22@o=Byu(w3!zYW9g)a$V9ZBD@TWq8zlu0NcNplpj&S&Flu9KOi$z;p zD8CjS@U`CRWV2ZWDc^%>n(+C20APhIik0f6QVHR3*tK1s&xc?zXoXtJ&kKb@wlYOg zpg1Ib!!T_1{Qi3-q5M|xH9irM^&$ekd`z>g*LPCKV6XL7N1luoMX@c}H%-$*mfFV> z6T>iUai)EN2)cDXw-UBEjelj3U&0wBJkV>-;o?@OuC5Ncu3JL_0E)#TG)=R@yhXii zHj8vRZIy8<@LM?)#1IzG759h<0007k08*(Gve~Sa^r62{izyud)FS_ClvRV;D6Bz^ zuxe0)K@isKs0G2-VDKR5r&GvSJyHS;kcKVN5P+1)J>UVkd*K>lRD+WQULd>Q3~;mi z1J$&2vAALe_?93Y;Qmt+JWT6UaEFKRJ*L3}X#C(-od`~@u=tY=(nJTzus!7fMB8_-u?ts0CJ;L}$nY$e$m;11}fez#bKV;Rz~ z=@9J2d6>A=782&t;8Uu+;Nn%{Vw-B;ZbZTi$WE*Bl2S3Pr7_sl=zUCuMjyl_2yj2i zS!=)-2fqTlZ+lHm{u)uR9xxtrOnWlJIC`i;Se+1iO>v>TNW}93X@Z^9k#mWF&LrY{ z4BQT;5;xm9Vu(xL%46c;!@buTH3}1s9I5c_4<(2Q;Yr8cqt-rmdPL$KCG80>oL%=6D9t|&M# zbLODYr>)})u_Cm>qpv#3G0vwtiLv8ARC8REvj*@0#d&lzgU1ld2{O0Sl)1%GF0QSl z^G)C}xO<`Uz~n6`=b(NOJX$+Rg4;JqwcL$zz^*ugMBOoJ<9;e%M4W3L>^Wiwm*F6_ zl6O4z!yi_1nL~%rGJZT-#*c@wZyz!*z2r)SX(Ad$Rgr!3O=}&4Tb(GaI_^)~xxfG2 zT4L0*YL&J5Uo{Z*+s;4VwT-SH`~an{E@c1uSF7yEPkw^j+i$z}d0<4PO5%+HzCO*l z?)40kz1|_35bHtwD6gWF^KxH`a(wn|VkZ0H<%ZFJ(S!W-8v(bft|F>-V~aUQc@BJ) zi%QetVgTO;H@NPQv_=(t+2`hdp(FS9+c0+Sg!i0t5c=BJDz3LrpAPfTA$~6Hb6NQ4 zqq6j{aU;z3b_BlqRg8Y{L1<4s#ifaBu5qp7JNxW@x1D|MHBR))mt$0~J4o8=ha}>( z+E}&>qksKt0D#%k0{{rloQcuD{3W!fpRVZhz`!KgS8Td*E)j*lO8vXZl+XqD?euiG zyP9tREie=Un_oIqlB2{@bitu?;zk{?uh5K0|GiTA5|lUZYLM(7jRWUa_qb=1^u9ao}^rwnG_aA1FIUzyca3acCwvAryJ0IoL$Ihj^VHa*EphHfU zFH@q(L36X1BuKy$8~2GNz#mK8N^E<0lZ)oKiELi?(A4@sO-meB5V>^{L{uwC9u{0E zC{1^6!uS^07ugHK(!rPR$V;o60VLfBOD3+5!510GiTZb-yfjY`U5+^1D)6P!4fJ5a zy+o&ky!AJl!(Xm_^I?Hm;D&8oA_&7Vl_jPBMaTX7XzDav2(W`_L|6}!0Ish_Sc14x zuxD%7O%%F?EU{uoo-s7H%7S{gL4bvySG5UFg3JO;xZS|v?h|Xh(ua95H$xKY*jqC9_4kj5fa=7 zzwvYTuYSdM33=iPn7JGZAAN+wcin~jKmIY~pM;f4XlZIfTv3pF=bd3Cht#8wBCaSn zGXE+K=k7JpDj8r8>yI{4&x{J_#ip#wm|KjsOYU0up1#@=cdN`2=P* ziC(IuJLNn9dJitaF32!`?^_`33c3Bo!k&6RG@ zNStZA^w1{BC|04TNo-ZtIK^%(M;{G6@z5che)urLH{OW!(@&$dsR@bt`igqdyYAw| z@yH`+ojMiffdd%($}0$6afMYU@TD&S01kZdi)cOVG!$D}5Tr5y$ZpzI}Wzr-vVg=af^1z`Fh_?12LE zeoQj42=3)1t}$dLN;@<}S?=0w5vW>@r@7Q2Bf0VllDRJKqn_YiF*-V>@~yDvNg5a& zy6GlpPdx=zETZnl8&P)?&wexN$3L#98(X}Xqww*^VJ4Fpvta|mA~#Yhg#&Zupl;qg zOvvZaNYf~Dtb5IG+r|mu%U>R_nd4~82<_AP_A33cjr9$i9P(@@nG*ge5l6QR_sYSZ z=Sc|gX$OasgBA<`DW|V+r;A1)gIhA1Y9IvsiDbb~QTxLuw6kInt)KY}N*{lWQ=WYm zk$Lk@VgY_NcnsYliAi*$9Jp8SBFwu9_9<|8pDNifWw{(~!uwQ-HCCIe`#VC~$UShG zWH?0b>t#w@4|`VPH7LhI*I;D85@HbY zHx%;Jc5pwh=|Wr`^evr=QqZB8MTTmL{aPZXNbQ?_>I|oIz+>vO?sYaScW;yh`709m&KZG6v+2MUD(3WWknrIMAC$nW=C*{ud! z_t?NaBtL@)?0lLs*UAeitTtAGZBr( zpeSELvA7l4Y}U#XCx3{_`xv6pC=^Ap_COwr`>GMbK-i zk_#3J1*;ywv!5}>tkiFUP<%e0Z4YO!*NZ?PU`z8hkh;}4Vm6zFs;USEgYbAfD3wYm z6bcrH6?J?*pVdc^BvIZjS;m!kKgJd!n|%a8H#{B>yj~q%ua07I6!Q57C`u8LNS?I* z9C)xn5DH^?<`ldDK-V>tN}$gD2)h0=ghF-5<#GsxLQoV1x~^AzWU;@qcqx&D@L1jF zgu%2U_NkVUEEB2BN#sqqIikJr`~9{Uc~Qsj_gf!QY(o#gwiW$A>N-IXxwGFgRC_nZ znDuOtu21X;9}EVq=~vFH7>PunC_e$P1EtdcLf3-;G(@BF&R1b!wRG>0s`^kW6;Lb| zVHiKRrUJ$ol^L!dSyfdlbEaV!$Nav^eh<8zLZJXfQEak|VHnoV@$&Q}axa>u3Bxcf zjw9z%6w-y;$98g{fz)-ILY@6~<7jSmL^5DeUMv=2nr1~^QP1o3(%^Z3>gNF%@cA0x zwvbir?E{I1gTbKHu*c)ErUEx%cDU}-G|e?7^2xAPHOa}RU z-ueK7OF4-`5UpshP$)pxb=#CW(7JB#EBcnrW-WogP$<}vlselNQ+zI$LogV$aADBy zZO(TQX>gr{DaxzKgtb(WH8>_v%jj2wV*>vVkl`CPqYUw@00000NkvXXu0mjfw=w!5 literal 0 HcmV?d00001 diff --git a/inc/ajax-functions.php b/inc/ajax-functions.php index 512b3ae575..35cb192c65 100644 --- a/inc/ajax-functions.php +++ b/inc/ajax-functions.php @@ -61,7 +61,7 @@ function initAjax () { setUsername('{--USERNAME_AJAX--}'); // In installation phase load ajax_installer.php - if (isInstallationPhase()) { + if (isInstaller()) { // Load it loadIncludeOnce('inc/ajax/ajax_installer.php'); } // END - if @@ -88,7 +88,7 @@ function isAjaxRequestLevelValid () { switch (postRequestElement('level')) { case 'install': // Installation phase level // Simply check for it - $isValid = isInstallationPhase(); + $isValid = isInstaller(); break; case 'admin': // Admin area @@ -131,9 +131,9 @@ function processAjaxRequest () { } // Send AJAX content -function sendAjaxContent () { +function sendAjaxContent ($forceOutput = FALSE) { // Is the status fine or template not found (404)? - if (isAjaxHttpStatusAccepted()) { + if ((isAjaxHttpStatusAccepted()) || ($forceOutput === TRUE)) { // Then output the JSON outputHtml(encodeJson($GLOBALS['ajax_reply'])); } // END - if diff --git a/inc/ajax/ajax_ b/inc/ajax/ajax_ index 20099b8c05..de592ac950 100644 --- a/inc/ajax/ajax_ +++ b/inc/ajax/ajax_ @@ -1,7 +1,7 @@ 'Access forbidden'), JSON_FORCE_OBJECT)); } // END - if diff --git a/inc/ajax/ajax_admin.php b/inc/ajax/ajax_admin.php index 9b5996b7f4..98af1a4624 100644 --- a/inc/ajax/ajax_admin.php +++ b/inc/ajax/ajax_admin.php @@ -36,7 +36,9 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isAjaxOutputMode()) || (!isAdmin())) { +if (!defined('__SECURITY')) { + die(); +} elseif ((!isAjaxOutputMode()) || (!isAdmin())) { header('HTTP/1.1 403 Forbidden'); die(json_encode(array('reply_content' => 'Access forbidden'), JSON_FORCE_OBJECT)); } // END - if diff --git a/inc/ajax/ajax_installer.php b/inc/ajax/ajax_installer.php index 108fd3e913..0031a183cd 100644 --- a/inc/ajax/ajax_installer.php +++ b/inc/ajax/ajax_installer.php @@ -36,7 +36,9 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isAjaxOutputMode()) || (!isInstallationPhase())) { +if (!defined('__SECURITY')) { + die(); +} elseif ((!isAjaxOutputMode()) || (!isInstaller())) { header('HTTP/1.1 403 Forbidden'); die(json_encode(array('reply_content' => 'Access forbidden'), JSON_FORCE_OBJECT)); } // END - if @@ -63,19 +65,22 @@ function establishAjaxInstallerDatabaseLink () { if (!is_resource($linkResource)) { // Is not a resource reportBug(__FUNCTION__, __LINE__, 'linkResource[]=' . gettype($linkResource) . ', expected: link resource'); - } // END - if + } elseif (!isSqlLinkUp()) { + // SQL link is not up + reportBug(__FUNCTION__, __LINE__, 'Could not bring up SQL link.'); + } // Does selecting the database work? if (!sqlSelectDatabase(getSession('mysql_dbase'), __FUNCTION__, __LINE__)) { // Could not be selected reportBug(__FUNCTION__, __LINE__, 'Could not select database ' . getSession('mysql_dbase')); - } elseif ((!isFileReadable(getSession('base_path') . 'install/tables.sql')) || (!isFileReadable(getSession('base_path') . 'install/menu-'.getLanguage().'.sql'))) { + } elseif (!isInstallerSqlsReadable(getSession('base_path'))) { // Installation area not found reportBug(__FUNCTION__, __LINE__, 'SQL dumps not found. Please extract ALL files from the archive or checkout all files out from SVN.'); } elseif (ifFatalErrorsDetected()) { // Some other fatal error occured reportBug(__FUNCTION__, __LINE__, 'Some fatal error detected, please check debug.log for details.'); - } // END - if + } // Set type, prefix from POST data and database name for later queries setConfigEntry('_TABLE_TYPE' , getSession('mysql_engine')); @@ -90,7 +95,7 @@ function establishAjaxInstallerDatabaseLink () { // Processes AJAX requests for installer function doAjaxProcessInstall () { // 'do' must always be set and installation phase must be true - if (!isInstallationPhase()) { + if (!isInstaller()) { // This shall not happen reportBug(__FUNCTION__, __LINE__, 'This AJAX request handler was called outside the installer.'); } elseif (!isPostRequestElementSet('do')) { @@ -145,6 +150,7 @@ function doAjaxInstallerFooterNavigation () { case 'smtp_config': case 'other_config': case 'extensions': + case 'first_admin': array_push($enabledNavigations, 'previous'); case 'welcome': // Only 'next' works for welcome page array_push($enabledNavigations, 'next'); @@ -187,17 +193,20 @@ function doAjaxInstallerDoStep () { // Is the function there? if (function_exists($callbackName)) { // Call it for setting values in session - call_user_func($callbackName); + $status = call_user_func($callbackName); } else { // Log missing functions reportBug(__FUNCTION__, __LINE__, 'Call-back function ' . $callbackName . ' does not exist.'); } - // Set dummy content - setAjaxReplyContent(encodeJson(postRequestElement('step').'=OK')); + // Did the installation step went fine? + if ($status === TRUE) { + // All fine + setAjaxReplyContent(encodeJson(postRequestElement('step') . '=OK')); - // All okay if we reach this point - setHttpStatus('200 OK'); + // All okay if we reach this point + setHttpStatus('200 OK'); + } // END - if } // Processes installer AJAX calls for content-requests @@ -366,13 +375,13 @@ function doAjaxPrepareInstallerBaseData () { // Is 'main_title' not set? if (!isSessionVariableSet('main_title')) { // Then set it from default main title - setSession('main_title', '{--DEFAULT_MAIN_TITLE--}'); + setSession('main_title', compileRawCode(getMessage('DEFAULT_MAIN_TITLE'))); } // END - if // Is 'slogan' not set? if (!isSessionVariableSet('slogan')) { // Then set it from default slogan - setSession('slogan', '{--DEFAULT_SLOGAN--}'); + setSession('slogan', compileRawCode(getMessage('DEFAULT_SLOGAN'))); } // END - if // Is 'webmaster' not set? @@ -464,8 +473,8 @@ function doAjaxPrepareInstallerExtensions () { // Is 'extensions' set? if (!isSessionVariableSet('extensions')) { /* - * At least ext-sql_patches and ext-task should be installed - *(ext-sql_patches is a must!) + * At least ext-admins, ext-sql_patches and ext-task should be installed + * (ext-sql_patches is a must!) */ setSession('extensions', 'admins:sql_patches:task'); } elseif (strpos(getSession('extensions'), 'sql_patches') === FALSE) { @@ -474,6 +483,33 @@ function doAjaxPrepareInstallerExtensions () { } } +// Prepare AJAX request 'first_admin' +function doAjaxPrepareInstallerFirstAdmin () { + // Is 'admin_login' set? + if (!isSessionVariableSet('admin_login')) { + // Set it + setSession('admin_login', 'admin'); + } // END - if + + // Is 'admin_email' set? + if (!isSessionVariableSet('admin_email')) { + // Set it + setSession('admin_email', getSession('webmaster')); + } // END - if + + // Is 'admin_password1' set? + if (!isSessionVariableSet('admin_password1')) { + // Set it + setSession('admin_password1', ''); + } // END - if + + // Is 'admin_password2' set? + if (!isSessionVariableSet('admin_password2')) { + // Set it + setSession('admin_password2', ''); + } // END - if +} + // Prepare AJAX request 'overview' function doAjaxPrepareInstallerOverview () { // 'tab' must always be set to create a post-check-callback @@ -579,6 +615,9 @@ function doAjaxInstallerStepImportTablesSql () { // Close SQL link sqlCloseLink(__FUNCTION__, __LINE__); + + // All fine + return TRUE; } // Call-back function to import menu SQL file @@ -603,6 +642,9 @@ function doAjaxInstallerStepImportMenuSql () { // Close SQL link sqlCloseLink(__FUNCTION__, __LINE__); + + // All fine + return TRUE; } // Call-back function to install some important extensions @@ -633,6 +675,9 @@ function doAjaxInstallerStepInstallExtensions () { reportBug(__FUNCTION__, __LINE__, 'Cannot load/register extension ' . $ext_name . '.'); } // END - if } // END - foreach + + // All fine + return TRUE; } // Call-back function to write local configuration file @@ -641,7 +686,16 @@ function doAjaxInstallerStepWriteLocalConfig () { if (!isSessionDataSet(array('base_path', 'base_url', 'main_title', 'slogan', 'webmaster', 'mysql_host', 'mysql_dbase', 'mysql_prefix', 'mysql_login', 'mysql_password1', 'mysql_password2', 'mysql_engine', 'output_mode', 'warn_no_pass', 'write_footer', 'enable_backlink'))) { // Some required session data is not set reportBug(__FUNCTION__, __LINE__, 'Required session data for this step not found.'); - } // END - if + } elseif (isInstalled()) { + // Is already installed = local config written + reportBug(__FUNCTION__, __LINE__, 'Local config file is already written.'); + } elseif (isAdminRegistered()) { + // Admin is already registered + reportBug(__FUNCTION__, __LINE__, 'First administrator account is already registered.'); + } + + // Establish database link + establishAjaxInstallerDatabaseLink(); // Write config file if (!doInstallWriteLocalConfigurationFile( @@ -667,6 +721,36 @@ function doAjaxInstallerStepWriteLocalConfig () { removeFile(getSession('base_path') . getCachePath() . 'config-local.php'); reportBug(__FUNCTION__, __LINE__, 'Did not fully write config-local.php .'); } + + // Change ADMIN_REGISTERED flag + $done = changeDataInLocalConfigurationFile('ADMIN-SETUP', "setConfigEntry('ADMIN_REGISTERED', '", "');", 'Y', 0); + + // All fine + return $done; +} + +// Call-back function to register first admin +function doAjaxInstallerStepRegisterFirstAdmin () { + // Is all set? + if (!isSessionDataSet(array('admin_login', 'admin_email', 'admin_password1', 'admin_password2'))) { + // Some required session data is not set + reportBug(__FUNCTION__, __LINE__, 'Required session data for this step not found.'); + } elseif (isAdminRegistered()) { + // First admin is already registered + reportBug(__FUNCTION__, __LINE__, 'First administrator is already registered.'); + } + + // Establish database link + establishAjaxInstallerDatabaseLink(); + + // Load admin include + loadIncludeOnce('inc/modules/admin/admin-inc.php'); + + // Register first admin + $ret = addAdminAccount(getSession('admin_login'), md5(getSession('admin_password1')), getSession('admin_email'), 'allow'); + + // Did it work? + return ($ret == 'done'); } // [EOF] diff --git a/inc/autopurge.php b/inc/autopurge.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/autopurge.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/birthday_mails.php b/inc/birthday_mails.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/birthday_mails.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/callback-functions.php b/inc/callback-functions.php index 821bbd4daf..ee0a38754b 100644 --- a/inc/callback-functions.php +++ b/inc/callback-functions.php @@ -43,7 +43,7 @@ if (!defined('__SECURITY')) { // Handles the XML node 'admin-entry-meta-data' function doXmlAdminEntryMetaData ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes)); } // END - if @@ -52,7 +52,7 @@ function doXmlAdminEntryMetaData ($resource, $attributes) { // Handles the XML node 'member-entry-meta-data' function doXmlMemberEntryMetaData ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes)); } // END - if @@ -118,7 +118,7 @@ function doXmlDatabaseTable ($resource, $attributes) { // Handles the XML node 'database-column-list' function doXmlDatabaseColumnList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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 @@ -172,7 +172,7 @@ function doXmlDatabaseColumnListEntry ($resource, $attributes) { // Handles the XML node 'callback-function-list' function doXmlCallbackFunctionList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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 @@ -214,7 +214,7 @@ function doXmlCallbackFunctionListEntry ($resource, $attributes) { // Handles the XML node 'extra-parameter-list' function doXmlExtraParameterList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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 @@ -256,7 +256,7 @@ function doXmlExtraParameterListEntry ($resource, $attributes) { // Handles the XML node 'time-columns-list' function doXmlTimeColumnsList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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 @@ -298,7 +298,7 @@ function doXmlTimeColumnsListEntry ($resource, $attributes) { // Handles the XML node 'extra-parameter-member-list' function doXmlExtraParameterMemberList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['member_list'])) { @@ -310,7 +310,7 @@ function doXmlExtraParameterMemberList ($resource, $attributes) { // Handles the XML node 'extra-parameter-reload-list' function doXmlExtraParameterReloadList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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'])) { @@ -322,7 +322,7 @@ function doXmlExtraParameterReloadList ($resource, $attributes) { // Handles the XML node 'extra-parameter-waiting-list' function doXmlExtraParameterWaitingList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['waiting_list'])) { @@ -424,7 +424,7 @@ function doXmlExtraParameterWaitingListEntry ($resource, $attributes) { // Handles the XML node 'extra-parameter-added-list' function doXmlExtraParameterAddedList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['added_list'])) { @@ -466,7 +466,7 @@ function doXmlExtraParameterAddedListEntry ($resource, $attributes) { // Handles the XML node 'extra-parameter-created-list' function doXmlExtraParameterCreatedList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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'])) { @@ -538,7 +538,7 @@ function doXmlStatusChangeColumn ($resource, $attributes) { // Handles the XML node 'status-change-list' function doXmlStatusChangeList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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'])) { @@ -740,7 +740,7 @@ function doXmlCacheFile ($resource, $attributes) { // Handles the XML node 'admin-list-data' function doXmlAdminListData ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes)); } // END - if @@ -749,7 +749,7 @@ function doXmlAdminListData ($resource, $attributes) { // Handles the XML node 'member-list-data' function doXmlMemberListData ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes)); } // END - if @@ -758,7 +758,7 @@ function doXmlMemberListData ($resource, $attributes) { // Handles the XML node 'data-tables' function doXmlDataTables ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes)); } // END - if @@ -803,7 +803,7 @@ function doXmlDataTable ($resource, $attributes) { // Handles the XML node 'table-join-condition' function doXmlTableJoinCondition ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes)); } // END - if @@ -855,7 +855,7 @@ function doXmlTableJoinName ($resource, $attributes) { // Handles the XML node 'join-on' function doXmlJoinOn ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes reportBug(__FUNCTION__, __LINE__, 'Expected 0 attributes, got ' . count($attributes)); } // END - if @@ -958,7 +958,7 @@ function doXmlJoinOnCondition ($resource, $attributes) { // Handles the XML node 'select-data-from-list' function doXmlSelectDataFromList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['data_table'])) { @@ -1012,7 +1012,7 @@ function doXmlSelectDataFromListEntry ($resource, $attributes) { // Handles the XML node 'where-select-from-list' function doXmlWhereSelectFromList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['data_table'])) { @@ -1102,7 +1102,7 @@ function doXmlWhereCondition ($resource, $attributes) { // Handles the XML node 'order-by-list' function doXmlOrderByList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['data_table'])) { @@ -1210,7 +1210,7 @@ function doXmlListRowTemplate ($resource, $attributes) { // Handles the XML node 'column-callback-list' function doXmlColumnCallbackList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['data_table'])) { @@ -1225,7 +1225,7 @@ function doXmlColumnCallbackList ($resource, $attributes) { // Handles the XML node 'column-callback-list-entry' function doXmlColumnCallbackListEntry ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // 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']['column_callback_list'])) { @@ -1270,7 +1270,7 @@ function doXmlColumnCallbackData ($resource, $attributes) { // Handles the XML node 'callback-extra-parameter-list' function doXmlCallbackExtraParameterList ($resource, $attributes) { // There should be no attributes - if (count($attributes) > 0) { + if (isFilledArray($attributes)) { // Please don't add any attributes to foo-list nodes 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'])) { diff --git a/inc/captcha-base.png b/inc/captcha-base.png new file mode 100644 index 0000000000000000000000000000000000000000..f29f083766dc8a4ec9a26eab69d81f391aa117d7 GIT binary patch literal 5441 zcmV-H6~5|;P)CglkAlXiW(2Q9>HpVoFGZFB~D5Bbag=N2&`U zbP7|{pV(Fjsa)Uk9zMaNA@aE1HJ^NaP->TFBczLWoHL~>%il{?0S&K zN#GIvREC-jwI^3Y7>3ab@O@wPdc7Fd^u4bsr53jE3Rq9b!yNDdFbeEIuderQ^RSNF z7^?yEz#B5rYZWhRffK;NB*xC8u{MU5d3j(L@D1Rp4aQy#_z5rpOv$y!%)lJrF1heI z@D*T>u%r7n7*j6*KM)4$J?yJ;IiMs0B!znSXc9s+sTmix^xG1WGBT+U@qD`*HYFrPP8b zc)v0_hK7ZOg@}{3TCM0>@?P3~rIczmn=yUF49IZmI7e2>^Sp?o`@SCyyxrCka!WE; zXDf1iXR)?%yWv%%hq-9oqH>!D^cry0tU^Pyf3XHN>{j8Q7hMrT55&5e7bbfCmbKSg zq^UXJUw{wA^tvY8{^d;^#yNTa$mm?}D~*-o!qw-1CxGq-W2=rf1s=D=o)*-3P2{hO zpf>Oona+)bYC>7>FEkO*dqmf%ippOR%ssk+gPInhT(dCe+kC1b^IDPyWAc7s0|zxG z3(J=Q{h*s7kEZKmqhp3Ncg4`&ni+Onw9(Ci(=vU#g>jFrpKTZf0j}#t-@`D(aU5E$7Ov~! zILj#{7X)M1fH6I&Mxz1DGdz4Z0KHxh-3hS` zz2yB|E*E_t8XD@$FL{_sC9Zjx>!nhOX0u7V-6ogIQ7jf|x9z@*57BX#6KfWpDB!$7(MYHfl7Yopi_D97$G##GaMi{Hh>Y7+d z8ond*W+rNhd8q*n}8KlR|YL%90&q@MZNpZ7J>UB3`AfnRAA+%wExc!Ejx) zeAhzSL7}+1baEAVc0iHzIPkXc=~4ng@1UK-mB@^@q~Vm@aOv+BOvr1ebk>p%#>DzL zA>U68D6-B1-xtbiMaHp)XDq5iTpa+HY(1+YJ`XGd8Zpy;Ac%71eL~E+w+9qi7tos{ z^A^JD*8NMCVgLJbZ7(^cex@|Fj9QKNiZ|(TTWmLjMedL2~%Lu5rsU%>w=sBI41A& z@MqheDws_nOfF%H{Hk_Y5r8#`8R?)hgw38Ko4tT#hgdBP7`# zMdJds5ne17mqe!Ld6dg#Mn^{}6bcc7Mn*;`m&?@a^=J|cg+HfU9wi7Kpja$YE>{Rz z|Ah`fapTLd)9KJ^wHO&0!S{WN#bPwjwcPVOFIrB^{l3|3((QHu?IU&^2jBPU^?DSG z#mG_JZntT-+Z2n%2tkG_&2MwLT2I3~vPSJ7KUPu&^FiV*dI z<;$8x$6cLE2EY4aJUe1c8ejZ4TO(S3GvUah6=g}ol3??3bkLRwciS%rdye#-+Chdi zkID&oe`O^N-h`0`miKVla#?`h;n{A>a#EastJbrUerdB;Xf{=kZW9C0 z6Zd}D(l1&vp-DkY%U_;GZ-c!A_y$?7klVOLId)R&z0xL6f75YLCF47yCgo-F zZP;fiq|o0M1GwJ=zPmy}2SnOkL2LCTi{aZaKEPDfqQ4Vu!mRA)nzz`D9r!bO89v0_Em}lFWK;Rqb zup=KQj#U#JVuHJ#uZAr7i>(0nHl?J}uF4N))mk7RE~! z!d_%>!;QL@$`B-^pMi%hM4DujRCC7!x4o1?q9u#J4QkZinS>sdjGzfDc4UzF3D%DE zYzhNpi8cL}yq_Ilo^>9b@O3cZG_cu`(FTlU{L~=pv6OY41m99EW(Hh?KQB`KIg$GI za%@>hs$0zdS%a)rV%P*qFgsb-(D|QvOWI!)gW6ay+D>-*u8J%4gW0CHIif(j$d8NNyVqKdzL+^CM|1|A z(^R?HScjv)p_J5(?Et1Y$rr-QUZ5YD9gmZDmPgQa`Fu#50h@rRv>2<6h5hoJ_X)3_ zw)l74*iJ##D;AUAW!XzVz5V`zR*N7A2*WT6iZcif!!U~MTRl93c6javt(IHOlP&^?hG0 zEG$ITZF;?)w7IN2@BdU7{-^T1Un|f1wUp-hE2UIhIeJ4e>2CSoC|1+X);6%#dueTY zy&gdjFgiLKrJaM0*c%xci4v?^troprk1z}uE!9q^L$le8QJeXnX0yr2$OzS{mTI+H zjZ&$^=;$czc3W#vL4e~pRI3l5RGCia1FF@ZqEtba;P;IN|AcUUZ6o@=Po?qzy(?EfflrN~I{&(*D14xg5Ke z%jL-BaN~j*3)_@aMvTc%&;hyA#P{4XxU=9L@%!yVyWI~j zWu=?sihbxKL1xkWry)8_>n`+$huKoAqqo{zv{$FfofQ^;r$JrlU@2xYCp2@OzBlU? z;E1sbUq%;zGF5OV(0VKOBj*Oo-Hf+!4DATC3ImqpK-L?;Ko zM|^L4GSk1d6r6zISVHXC4CB^e3BsB~ySPfCly`-A-VsZ1P6o0^2bAx-MKN5W;y{Smp)dH9T7~pf7||nZdm+y4VRJ zI-`GOiv8_{WHC$I$}@0P=F_Dgxjtn{C;Pg&XJU>|W72qXO8uLP>r{wu;<|{phsCtC ziOKeJ*w;R@+8(p4$8N^Cwggc*#LontLg&|}ai`bO!H@1T;?dOQP8w|vj&_W?7BwP& zbQqnaae{s+Qr)JBJU-U zR(aAB41LnKnhyY9wNqDJ>*a_Zbud9dKH4ERYY`I(;<6Kc4$-gjJZ||vc4qUusqmz@ z6Ryb|-iywnPbP&Y;bHoTS;dyo#LT`*W4f z<^oaTb`wh~;DT_i_bffDC4X=fohm&pL~6K~+0Zrv{74kOce6R)G>&zgzL93;*A`_n z*7t7W_n!-41__nP=vlih@4*c4%uOr76zxxp1!oLd~{lbge%gqn|fhMW@K_%jSDiVO%W3E;=nY>F~BiBP=e+vlo5b zgnd1*Xv2uX8-_$@S)6H4f5vbFTr+F-)Bc*}SxgJ@eo#9@i z@|v@*pC?`?DT9rN(+PccPFx9ZS;R4)!o6C=>pU3+zMkN4wu4Yc6?IRg!xdDP@T1S^5WB+T3g2`rRi< zxwPBrd?{Idvn%8}x@xS6=gEtcF0%x054 z=g{a=Q|Nu(Fon2gWiH1O{go1iS#`Zq?2ijERkJx8D0otQTlXaN>nlPe_YpraA<4-M zQ6)VBw`BXDvP{{D1X0b=uS1-{)`c@NcW;VLY(kSyimLM-dS7^+zTYuO=-{o?o>$4S zOkmi@;&OPMc&)^XGJx%~2N(na?RJ}dKEJ4f)XhMr)1lMp(ChW0nnbSaM%As>+IC~$ zW%@^yjEhU+vZymJ2p=+8TX&JZ9ptW-u%1Ill0K25Q@zFZI1gnpm?Lb>sjRCd$a1+% zKA&H=wwnWw3defR5|QH~r5+X$dMzRTDlyS0g!Q~o<)pB>LlHvFakl0-UZp}tMn=iy z{(x@xJk4e^suO2V#Nyv6Mn*=+<#N#($m{XDr3hiQ{j}R{f*_z!DB!wotR&^o&`_+n zV5ifG+JUZqrj&|GzZpU)6bi93ob&lS#bPm5=4~}?m*R-cW)sJ8D3wYK4Gq!j_2_gu z5r;Kx3WY*6MpGowJ}%kDm3cm;zC*M5BVeAPp&{~lpM2h@+x-pN?QwFsF4byVto{}{ z*q}sCskTZgUI4!D(d!|D`)hpv?2%2Daxq;d2!iP3cw0P~+KXWr5(GiSaqL=( zM!QIx>?8+TP1`gPnjCi;M@wsCiUFJJ-ENmK3>URE?eh7&ES|&Cz6}Hv3ge_DvO3F6 zkm diff --git a/inc/classes/cachesystem.class.php b/inc/classes/cachesystem.class.php index 06fc673a40..2da580312f 100644 --- a/inc/classes/cachesystem.class.php +++ b/inc/classes/cachesystem.class.php @@ -494,7 +494,7 @@ class CacheSystem { $GLOBALS[__METHOD__][$ext_name] = ((isset($this->version[$this->name][$ext_name])) && ($this->version[$this->name][$ext_name] == $ext_ver)); } elseif ($this->isCacheReadable()) { // No cache version found - logDebugMessage(__METHOD__, __LINE__, 'Cache ' . $this->name . ' has missing version entry for extension ' . $ext_name . '! Purging cache...'); + logDebugMessage(__METHOD__, __LINE__, 'Cache ' . $this->name . ' has missing version entry for extension ext-' . $ext_name . '! Purging cache...'); // Remove the cache file $this->removeCacheFile(TRUE); diff --git a/inc/code-functions.php b/inc/code-functions.php index 00ff1d8e10..53fc0c3d28 100644 --- a/inc/code-functions.php +++ b/inc/code-functions.php @@ -50,7 +50,7 @@ function getCode ($key) { // Is the key set? if (!isCodeSet($key)) { // Abort here - reportBug(__FUNCTION__, __LINE__, sprintf("%s[%s:] Code %s is not set.", + reportBug(__FUNCTION__, __LINE__, sprintf('%s[%s:] Code %s is not set.', __FUNCTION__, __LINE__, $key diff --git a/inc/config-functions.php b/inc/config-functions.php index 4b5152864b..7b398bc93e 100644 --- a/inc/config-functions.php +++ b/inc/config-functions.php @@ -58,6 +58,7 @@ function initConfig () { // 'DEBUG_HOURLY' => 'N', // 'DEBUG_DAILY' => 'N', // 'DEBUG_MONTHLY' => 'N', + // 'DEBUG_YEARLY' => 'N', // 'DEBUG_WEEKLY' => 'N', // 'DEBUG_REGEX' => 'N', // 'ADMIN_REGISTERED' => 'N', @@ -75,7 +76,7 @@ function getConfig ($configEntry) { // Is the entry there? if (!isConfigEntrySet($configEntry)) { // Raise an error of missing entries - reportBug(__FUNCTION__, __LINE__, sprintf("Configuration entry %s is missing.", $configEntry)); + reportBug(__FUNCTION__, __LINE__, sprintf('Configuration entry %s is missing.', $configEntry)); } // END - if // Return it @@ -286,11 +287,11 @@ function updateOldConfigFile () { } // Update config entries -function updateConfiguration ($entries, $values, $updateMode = '', $config = '0') { +function updateConfiguration ($entries, $values, $updateMode = '', $config = '0', $force = FALSE) { // Do not update config in CSS mode - if ((isCssOutputMode()) || (isRawOutputMode()) || (isInstallationPhase())) { + if (($force === FALSE) && ((isCssOutputMode()) || (isRawOutputMode()) || (isInstaller()))) { // This logger line may be very noisy - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not updating configuration. entries[]=' . gettype($entries) . ',values[]=' . gettype($values) . ',updateMode=' . $updateMode . ',config=' . $config . ',isCssOutputMode()=' . intval(isCssOutputMode()) . ',isRawOutputMode()=' . intval(isRawOutputMode()) . ',isInstallationPhase()=' . intval(isInstallationPhase())); + /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not updating configuration. entries[]=' . gettype($entries) . ',values[]=' . gettype($values) . ',updateMode=' . $updateMode . ',config=' . $config . ',isCssOutputMode()=' . intval(isCssOutputMode()) . ',isRawOutputMode()=' . intval(isRawOutputMode()) . ',isInstaller()=' . intval(isInstaller())); return; } // END - if @@ -312,7 +313,7 @@ function updateConfiguration ($entries, $values, $updateMode = '', $config = '0' reportBug(__FUNCTION__, __LINE__, 'values[' . $idx . '] should not be an array! Content=
'.print_r($values[$idx], TRUE).'
'); } elseif ($values[$idx] == 'UNIX_TIMESTAMP()') { // Function UNIX_TIMESTAMP() detected - $SQL .= sprintf("`%s`=UNIX_TIMESTAMP(),", $entry); + $SQL .= sprintf('`%s`=UNIX_TIMESTAMP(),', $entry); // Set timestamp in array as well setConfigEntry($entry, time()); @@ -325,10 +326,10 @@ function updateConfiguration ($entries, $values, $updateMode = '', $config = '0' // Update mode set // @TODO Call setConfigEntry() somehow - $SQL .= $entries = sprintf("`%s`=`%s`%s%s", $entry, $entry, $updateMode, (float) $values[$idx]); + $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]); + $SQL .= sprintf('`%s`=%s,', $entry, (float) $values[$idx]); // Set it in config as well setConfigEntry($entry, $values[$idx]); @@ -353,16 +354,16 @@ function updateConfiguration ($entries, $values, $updateMode = '', $config = '0' // Update mode set // @TODO Call setConfigEntry() somehow - $SQL = sprintf("`%s`=`%s`%s%s", $entries, $entries, $updateMode, (float) $values); + $SQL = sprintf('`%s`=`%s`%s%s', $entries, $entries, $updateMode, (float) $values); } elseif (($values + 0) === $values) { // Number detected - $SQL = 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 - $SQL = sprintf("`%s`=UNIX_TIMESTAMP()", $entries); + $SQL = sprintf('`%s`=UNIX_TIMESTAMP()', $entries); // Set timestamp in array as well setConfigEntry($entries, time()); @@ -376,7 +377,7 @@ function updateConfiguration ($entries, $values, $updateMode = '', $config = '0' // Run database update //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SQL=' . $SQL); - sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_config` SET ".$SQL." WHERE `config`=%s LIMIT 1", + sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_config` SET " . $SQL . " WHERE `config`=%s LIMIT 1", array(bigintval($config)), __FUNCTION__, __LINE__); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'SQL=' . $SQL . ',affectedRows=' . sqlAffectedRows()); @@ -387,7 +388,7 @@ function updateConfiguration ($entries, $values, $updateMode = '', $config = '0' // Filter for loading configuration function FILTER_LOAD_CONFIGURATION ($no = '0') { // Is installation phase? - if (isInstallationPhase()) { + if (isInstaller()) { // Then don't load any configuration return; } // END - if diff --git a/inc/config-local.php.dist b/inc/config-local.php.dist index ddaf86551b..bed4e0e404 100644 --- a/inc/config-local.php.dist +++ b/inc/config-local.php.dist @@ -101,6 +101,9 @@ setConfigEntry('DEBUG_TEMPLATE_CACHE', 'N'); // CFG: DEBUG-MONTHLY (comment in to test monthly reset, comment out to not test) //setConfigEntry('DEBUG_MONTHLY', 'Y'); +// CFG: DEBUG-YEARLY (comment in to test yearly reset, comment out to not test) +//setConfigEntry('DEBUG_YEARLY', 'Y'); + // CFG: DEBUG-REGEX (comment in to debug regular expressions) //setConfigEntry('DEBUG_REGEX', 'Y'); diff --git a/inc/db/lib-mysql3.php b/inc/db/lib-mysql3.php index 5414a494ae..3a8c1108a3 100644 --- a/inc/db/lib-mysql3.php +++ b/inc/db/lib-mysql3.php @@ -52,13 +52,13 @@ function sqlQuery ($sqlString, $file, $line, $enableCodes = TRUE) { // Empty query string or link is not up? if (empty($sqlStringModified)) { // Empty SQL string! - reportBug(__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($file), $line )); } elseif (!isSqlLinkUp()) { // We should not quietly ignore this - reportBug(__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($file), $line @@ -222,7 +222,7 @@ function sqlConnectToDatabase ($host, $login, $password, $file, $line) { * isSqlLinkUp() will only return 'true' if there is really a * working database link. */ - setSqlLink(__FUNCTION__, __LINE__, $linkResource); + setSqlLink($file . ':' . __FUNCTION__, $line . ':' . __LINE__, $linkResource); // Init charsets (UTF-8 is default now) sqlQuery("SET @@ -230,7 +230,7 @@ function sqlConnectToDatabase ($host, $login, $password, $file, $line) { `character_set_client`='utf8', `character_set_connection`='utf8', `character_set_database`='utf8', - `character_set_server`='utf8'", __FUNCTION__, __LINE__); + `character_set_server`='utf8'", $file . ':' . __FUNCTION__, $line . ':' . __LINE__); } // END - if // Return the resource @@ -374,7 +374,7 @@ function sqlError ($file, $line, $message) { } // END - if // Is there installation phase? - if (isInstallationPhase()) { + if (isInstaller()) { /* * In installation phase, we don't want SQL errors abort e.g. connection * tests, so just log it away. diff --git a/inc/doubler_send.php b/inc/doubler_send.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/doubler_send.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/email-functions.php b/inc/email-functions.php index 7731595ae4..3663ca4ce8 100644 --- a/inc/email-functions.php +++ b/inc/email-functions.php @@ -50,7 +50,7 @@ function sendEmail ($toEmail, $subject, $message, $isHtml = 'N', $mailHeader = ' } // END - if // Set from header - if ((!isInString('@', $toEmail)) && ($toEmail > 0)) { + if ((!isInString('@', $toEmail)) && (isValidId($toEmail))) { // Does the user exist? if ((isExtensionActive('user')) && (fetchUserData($toEmail))) { // Get the email diff --git a/inc/extensions-functions.php b/inc/extensions-functions.php index eddc591557..b7b57b30f1 100644 --- a/inc/extensions-functions.php +++ b/inc/extensions-functions.php @@ -104,7 +104,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA //* 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)); + logDebugMessage(__FUNCTION__, __LINE__, sprintf('Extension %s already loaded.', $ext_name)); // Abort here return FALSE; @@ -113,7 +113,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA // Is the extension file NOT there? if (!isExtensionNameValid($ext_name)) { // Debug message - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Extension %s not found or not readable or the PHP script is deprecated.", $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; @@ -130,7 +130,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA // Not yet loaded? if ((($GLOBALS['cache_array']['extension']['ext_func'][$ext_name] == 'Y') || (!isset($GLOBALS['cache_array']['extension']['ext_func'][$ext_name]))) && (!isExtensionLibraryLoaded($ext_name))) { // Construct IFN for functions file - $funcsInclude = sprintf("inc/libs/%s_functions.php", $ext_name); + $funcsInclude = sprintf('inc/libs/%s_functions.php', $ext_name); // Mark it as loaded markExtensionLibraryAsLoaded($ext_name); @@ -140,7 +140,7 @@ function loadExtension ($ext_name, $ext_mode, $ext_ver = '0.0.0', $isDryRun = FA } // END - if } elseif ((!isset($GLOBALS['cache_array']['extension']['ext_func'][$ext_name])) && (isDebugModeEnabled()) && (isHtmlOutputMode()) && ($ext_name != 'sql_patches') && (substr($ext_name, 0, 10) != 'admintheme') && (getExtensionMode() == 'test')) { // No functions file is not so good... - logDebugMessage(__FUNCTION__, __LINE__, sprintf("NOTICE: Extension %s has no own functions file or we cannot read from it. mode=%s", + logDebugMessage(__FUNCTION__, __LINE__, sprintf('NOTICE: Extension %s has no own functions file or we cannot read from it. mode=%s', $ext_name, getExtensionMode() )); @@ -195,16 +195,16 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate enableExtensionProductive(); // This shall never do a non-admin user or if the extension is active (already installed) - if (((!isAdmin()) && (!isInstallationPhase())) || (isExtensionInstalled($ext_name))) { + if (((!isAdmin()) && (!isInstaller())) || (isExtensionInstalled($ext_name))) { // Abort here with 'false' - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - ABORTED: isAdmin()=' . intval(isAdmin()) . ',isInstallationPhase()=' . intval(isInstallationPhase()) . ',isExtensionInstalled()=' . intval(isExtensionInstalled($ext_name))); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - ABORTED: isAdmin()=' . intval(isAdmin()) . ',isInstaller()=' . intval(isInstaller()) . ',isExtensionInstalled()=' . intval(isExtensionInstalled($ext_name))); return FALSE; } // END - if // When this extension is already in registration/update phase, all is fine if ((isExtensionRegistrationRunning($ext_name)) || ((isExtensionUpdateRunning($ext_name)) && ($ignoreUpdates === FALSE))) { // Then abort here with 'true' because it is fine - /* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates)); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - already in registration/update phase, all fine,isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates)); //* BUG: */ reportBug(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',isDryRun=' . intval($isDryRun) . ',ignoreUpdates=' . intval($ignoreUpdates) . ' - Please investigate!'); return TRUE; } // END - if @@ -219,7 +219,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate } // END - if // Is the task id zero? Then we need to auto-fix it here - if ((!isValidId($taskId)) && (!isInstallationPhase())) { + if ((!isValidId($taskId)) && (!isInstaller())) { // Try to find the task $taskId = determineExtensionTaskId(getCurrentExtensionName()); @@ -231,7 +231,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate // Is it still zero? if (!isValidId($taskId)) { // Then request a bug report - reportBug(__FUNCTION__, __LINE__, sprintf("%s: task_id is still zero after determineExtensionTaskId/createNewExtensionTask(%s)", + reportBug(__FUNCTION__, __LINE__, sprintf('%s: task_id is still zero after determineExtensionTaskId/createNewExtensionTask(%s)', __FUNCTION__, getCurrentExtensionName() )); @@ -291,14 +291,14 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate } // 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?'); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_ver[' . gettype($ext_ver) . ']=' . $ext_ver . ',isInstaller()=' . intval(isInstaller()) . ',currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ' - EMPTY?'); if (empty($ext_ver)) { // Extension not registered so far so first load task's id... $updateTaskId = determineExtensionTaskId($ext_update); // Entry found? - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'updateTaskId=' . $updateTaskId . ',isInstallationPhase()=' . intval(isInstallationPhase()) . ',currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ' - CHECKING!'); - if ((isValidId($updateTaskId)) || (isInstallationPhase())) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'updateTaskId=' . $updateTaskId . ',isInstaller()=' . intval(isInstaller()) . ',currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ' - CHECKING!'); + if ((isValidId($updateTaskId)) || (isInstaller())) { // Try to register the extension //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'currName=' . getCurrentExtensionName() . ',ext_update=' . $ext_update . ',updateTaskId=' . $updateTaskId . ',isExtensionDryRun()=' . intval(isExtensionDryRun())); $processResult = registerExtension($ext_update, $updateTaskId, isExtensionDryRun(), TRUE, $ext_name); @@ -437,7 +437,7 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate } // @TODO This redirect is still needed to register sql_patches! Please try to avoid it - if (($ret === TRUE) && ($isDryRun === FALSE) && ($ext_name == 'sql_patches') && (!isInstallationPhase())) { + if (($ret === TRUE) && ($isDryRun === FALSE) && ($ext_name == 'sql_patches') && (!isInstaller())) { /* * This is a really dirty hack to prevent an error about a missing * configuration entry which should be there after registration of @@ -455,8 +455,8 @@ function registerExtension ($ext_name, $taskId, $isDryRun = FALSE, $ignoreUpdate // @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 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!'); + if ((!isAdmin()) && (!isInstaller())) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_id=' . $ext_id. ',load_mode=' . $load_mode . ',isAdmin()=' . intval(isAdmin()) . ',isInstaller()=' . intval(isInstaller()) . ' - ABORT!'); return FALSE; } // END - if @@ -537,7 +537,7 @@ function isExtensionInstalled ($ext_name) { // Count cache hits incrementStatsEntry('cache_hits'); - } elseif (isInstallationPhase()) { + } elseif ((isInstaller()) && (!isSqlLinkUp())) { // Extensions are all inactive/not installed during installation //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ' - installation phase detected.'); } else { @@ -567,7 +567,7 @@ function isExtensionInstalled ($ext_name) { // Check if given extension is active function isExtensionActive ($ext_name) { - if (isInstallationPhase()) { + if ((isInstaller()) && (!isSqlLinkUp())) { // Extensions are all inactive during installation //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Extensions are always inactive while installation phase. ext_name=' . $ext_name); return FALSE; @@ -663,7 +663,7 @@ function getExtensionVersion ($ext_name, $force = FALSE) { } // END - if // Extensions are all inactive during installation - if (isInstallationPhase()) { + if ((isInstaller()) && (!isSqlLinkUp())) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',force=' . intval($force) . ' - Installation phase detected, returning empty version.'); return ''; } // END - if @@ -692,7 +692,7 @@ function getExtensionVersion ($ext_name, $force = FALSE) { setExtensionCacheRow($ext_name, $data); } elseif (isDebugModeEnabled()) { // Not found, may happen while an extension is uninstalled - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Cannot find extension %s in database!", $ext_name)); + logDebugMessage(__FUNCTION__, __LINE__, sprintf('Cannot find extension %s in database!', $ext_name)); } // Free result @@ -702,7 +702,7 @@ function getExtensionVersion ($ext_name, $force = FALSE) { // Extension version should not be invalid if (($data['ext_version'] == 'false') && ($force === FALSE)) { // Please report this trouble - reportBug(__FUNCTION__, __LINE__, sprintf("Extension %s has empty version!", $ext_name)); + reportBug(__FUNCTION__, __LINE__, sprintf('Extension %s has empty version!', $ext_name)); } // END - if // Return result @@ -765,7 +765,7 @@ function updateExtension ($ext_name, $ext_ver, $isDryRun = FALSE, $ignoreDepende $depencies = getExtensionUpdateDependencies(); // Nothing to apply? - if (count($depencies) > 0) { + if (isFilledArray($depencies)) { // Apply all extension depencies foreach ($depencies as $ext_depend) { // Did we already update/register this? @@ -1075,9 +1075,8 @@ function createNewExtensionTask ($ext_name) { $message = '{%message,ADMIN_EXTENSION_TEXT_FILE_MISSING=' . $ext_name . '%}'; // Template file - $FQFN = sprintf("%stemplates/%s/html/ext/ext_%s.tpl", - getPath(), - getLanguage(), + $FQFN = sprintf('%s/ext/ext_%s.tpl', + getTemplateBasePath('html'), $ext_name ); @@ -1120,7 +1119,7 @@ function createExtensionDeactivationTask ($ext_name) { // Determines the task id for given extension function determineExtensionTaskId ($ext_name) { // Is it installation phase and table task_system is not found? - if ((isInstallationPhase()) && (!ifSqlTableExists('task_system'))) { + if ((isInstaller()) && (!ifSqlTableExists('task_system'))) { // Then return NULL (not found) return NULL; } // END - if @@ -1786,9 +1785,8 @@ function getExtensionHasCss () { // Is there cache? if (!isset($GLOBALS[__FUNCTION__][getCurrentExtensionName()][getCurrentTheme()])) { // Construct FQFN for check - $FQFN = sprintf("%stheme/%s/css/%s.css", - getPath(), - getCurrentTheme(), + $FQFN = sprintf('%s%s.css', + getBasePathFromTheme(getCurrentTheme()), getCurrentExtensionName() ); @@ -2062,7 +2060,7 @@ function addSponsorMenuSql ($action, $what, $title, $active, $sort) { // Add ALTER TABLE `foo` ADD sql if not found function addExtensionAddTableColumnSql ($tableName, $columnName, $columnSql) { // Is the column there? - if (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName, isInstallationPhase())) { + if (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName, isInstaller())) { // Then add it addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD `' . $columnName . '` ' . $columnSql); } elseif (isDebugModeEnabled()) { @@ -2074,7 +2072,7 @@ function addExtensionAddTableColumnSql ($tableName, $columnName, $columnSql) { // Add ALTER TABLE `foo` ADD INDEX sql if not found function addExtensionAddTableIndexSql ($tableName, $indexName, $columnSql) { // Is the column there? - if (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstallationPhase())) { + if (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller())) { // Then add it addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD INDEX `' . $indexName . '` ' . $columnSql); } elseif (isDebugModeEnabled()) { @@ -2086,7 +2084,7 @@ function addExtensionAddTableIndexSql ($tableName, $indexName, $columnSql) { // Add ALTER TABLE `foo` ADD UNIQUE INDEX sql if not found function addExtensionAddTableUniqueSql ($tableName, $indexName, $columnSql) { // Is the column there? - if (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstallationPhase())) { + if (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller())) { // Then add it addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD UNIQUE INDEX `' . $indexName . '` ' . $columnSql); } elseif (isDebugModeEnabled()) { @@ -2098,7 +2096,7 @@ function addExtensionAddTableUniqueSql ($tableName, $indexName, $columnSql) { // Add ALTER TABLE `foo` ADD FULLTEXT sql if not found function addExtensionAddTableFulltextSql ($tableName, $indexName, $columnSql) { // Is the column there and MyISAM engine? (InnoDB doesn't support FULLTEXT) - if ((getTableType() == 'MyISAM') && (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstallationPhase()))) { + if ((getTableType() == 'MyISAM') && (!ifSqlTableIndexExist('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller()))) { // Then add it addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` ADD FULLTEXT `' . $indexName . '` ' . $columnSql); } elseif (isDebugModeEnabled()) { @@ -2110,7 +2108,7 @@ function addExtensionAddTableFulltextSql ($tableName, $indexName, $columnSql) { // Add ALTER TABLE `foo` CHANGE sql if not found function addExtensionChangeTableColumnSql ($tableName, $fromColumnName, $toColumnName, $columnSql) { // Is the column there? - if ((ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $fromColumnName)) && (($fromColumnName == $toColumnName) || (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $toColumnName, isInstallationPhase())))) { + if ((ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $fromColumnName)) && (($fromColumnName == $toColumnName) || (!ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $toColumnName, isInstaller())))) { // Then add it addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` CHANGE `' . $fromColumnName . '` `' . $toColumnName . '` ' . $columnSql); } elseif (isDebugModeEnabled()) { @@ -2122,7 +2120,7 @@ function addExtensionChangeTableColumnSql ($tableName, $fromColumnName, $toColum // Add ALTER TABLE `foo` DROP sql if not found function addExtensionDropTableColumnSql ($tableName, $columnName) { // Is the column there? - if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName, isInstallationPhase())) { + if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $columnName, isInstaller())) { // Then add it addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` DROP `' . $columnName . '`'); } elseif (isDebugModeEnabled()) { @@ -2134,7 +2132,7 @@ function addExtensionDropTableColumnSql ($tableName, $columnName) { // Add ALTER TABLE `foo` DROP INDEX sql if not found function addExtensionDropTableIndexSql ($tableName, $indexName) { // Is the column there? - if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstallationPhase())) { + if (ifSqlTableColumnExists('{?_MYSQL_PREFIX?}_' . $tableName, $indexName, isInstaller())) { // Then add it addExtensionSql('ALTER TABLE `{?_MYSQL_PREFIX?}_' . $tableName . '` DROP INDEX `' . $indexName . '`'); } elseif (isDebugModeEnabled()) { @@ -2166,11 +2164,17 @@ function addConfigChangeSql ($oldColumnName, $newColumnName, $columnSql) { * extension registration queue. */ function registerExtensionPointsData ($subject, $columnName, $lockedMode, $paymentMethod) { + // Is the suffix '_ref' not set? + if (!ifSubjectHasReferralSuffix($subject)) { + // Register this first + registerExtensionPointsData($subject . '_ref', $columnName, $lockedMode, $paymentMethod); + } // END - if + // Default is old extension version $add = ''; // Is the extension equal or newer 0.8.9? - if (((isInstallationPhase()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { + if (((isInstaller()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { // Then add provider $add = " AND `account_provider`='EXTENSION'"; } // END - if @@ -2179,15 +2183,15 @@ function registerExtensionPointsData ($subject, $columnName, $lockedMode, $payme //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ifSqlTableExists(points_data)=' . ifSqlTableExists('points_data') . ',getExtensionMode()=' . getExtensionMode() . ',add=' . $add); if (((!ifSqlTableExists('points_data')) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (countSumTotalData($subject, 'points_data', 'id', 'subject', TRUE, $add) == 0)) { // Not found so: - if ((!isInstallationPhase()) && (isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) { + if ((!isInstaller()) && (isset($GLOBALS['previous_extension'][getCurrentExtensionName()])) && (!ifSqlTableExists('points_data'))) { // This may happen (but when?) // @TODO Is this really neccessary? $dummy = $GLOBALS['previous_extension'][getCurrentExtensionName()]; - reportBug(__FUNCTION__, __LINE__, 'previous_extension[' . gettype($dummy) . ']=' . $dummy . ',getCurrentExtensionName()=' . getCurrentExtensionName() . ' - Under development, please report this!'); + reportBug(__FUNCTION__, __LINE__, 'dummy[' . gettype($dummy) . ']=' . $dummy . ',getCurrentExtensionName()=' . getCurrentExtensionName() . ' - Under development, please report this!'); } // END - if // With or without account_provider? - if (((isInstallationPhase()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { + if (((isInstaller()) && ((getExtensionMode() == 'setup') || (getExtensionMode() == 'update'))) || (isExtensionInstalledAndNewer('sql_patches', '0.8.9'))) { // Add account_provider addExtensionSql(sprintf("INSERT INTO `{?_MYSQL_PREFIX?}_points_data` (`subject`, `column_name`, `locked_mode`, `payment_method`, `account_provider`) VALUES ('%s','%s','%s','%s','EXTENSION')", $subject, @@ -2212,6 +2216,12 @@ function registerExtensionPointsData ($subject, $columnName, $lockedMode, $payme * extension unregistration queue. */ function unregisterExtensionPointsData ($subject) { + // Is the suffix '_ref' not set? + if (!ifSubjectHasReferralSuffix($subject)) { + // Unregister this first + unregisterExtensionPointsData($subject . '_ref'); + } // END - if + // Default is old extension version $add = ''; @@ -2314,7 +2324,7 @@ function copyExtensionDataToCacheArray ($ext_name, $ext_id) { $GLOBALS['cache_array']['extension']['ext_active'][$ext_name] = getThisExtensionAlwaysActive(); $GLOBALS['cache_array']['extension']['ext_lang'][$ext_name] = convertBooleanToYesNo(isExtensionLanguageFileReadable($ext_name)); $GLOBALS['cache_array']['extension']['ext_func'][$ext_name] = convertBooleanToYesNo(isExtensionFunctionFileReadable($ext_name)); - $GLOBALS['cache_array']['extension']['ext_menu'][$ext_name] = convertBooleanToYesNo(ifModuleHasMenu($ext_name, isInstallationPhase())); + $GLOBALS['cache_array']['extension']['ext_menu'][$ext_name] = convertBooleanToYesNo(ifModuleHasMenu($ext_name, isInstaller())); $GLOBALS['cache_array']['extension']['ext_css'][$ext_name] = convertBooleanToYesNo(getExtensionHasCss()); $GLOBALS['cache_array']['extension']['ext_deprecated'][$ext_name] = 'N'; } diff --git a/inc/extensions.php b/inc/extensions.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/extensions.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/extensions/admins/.htaccess b/inc/extensions/admins/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/admins/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/admins/mode-update.php b/inc/extensions/admins/mode-update.php new file mode 100644 index 0000000000..be66d51b49 --- /dev/null +++ b/inc/extensions/admins/mode-update.php @@ -0,0 +1,325 @@ +Access Control Lines sind zu deutsch Zugriffkontrollzeilen, mit denen Sie einstellen können, was welcher Admin machen darf oder nicht. Nur Sie haben momentan Vollzugriff auf den Adminbereich."); + break; + + case '0.3.1': // SQL queries for v0.3.1 + addExtensionChangeTableColumnSql('admins_acls', 'id', 'id', 'BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT'); + break; + + case '0.4.0': // SQL queries for v0.4.0 + addDropTableSql('admins_mails'); + addCreateTableSql('admins_mails', " +`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`admin_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +`mail_template` VARCHAR(255) NOT NULL, +PRIMARY KEY (`id`), +INDEX (`admin_id`)", + 'Mail template -> admin connection table'); + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`, `what`, `title`, `descr`, `sort`) VALUES ('admins','admins_mails','Admin-Mails','Stellen Sie hier ein, welcher Admin welche Mail erhalten soll. Sie können dies (derzeit) jedoch erst, wenn einmal die Mail versendet wurde!',5)"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Kontrollieren Sie, welche Mails welcher Admin oder alle (admin_id=0) bekommen soll oder im UserLog (admin_id=-1) verzeichnet werden soll. Standardmässig wird weiter an alle versendet."); + break; + + case '0.4.1': // SQL queries for v0.4.1 + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE mail_template LIKE '% %'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Admins-Mails-Tabelle geleert."); + + case '0.4.4': // SQL queries for v0.4.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("&admin= in &amp;admin= umgewandelt."); + break; + + case '0.4.5': // SQL queries for v0.4.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Vorbereitet auf Cache-System"); + break; + + case '0.4.6': // SQL queries for v0.4.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit cache-Erweiterung gefixt. Der Admin-Bereich war permanent gesperrt."); + break; + + case '0.4.7': // SQL queries for v0.4.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Es wurde die Zeitmarke der Cache-Datei admins.cache mit berücksichtigt."); + break; + + case '0.4.8': // SQL queries for v0.4.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.4.9': // SQL queries for v0.4.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.5.0': // SQL queries for v0.5.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.5.1': // SQL queries for v0.5.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Cache wird endlich gelöscht, wenn Admin entfernt wird."); + break; + + case '0.5.2': // SQL queries for v0.5.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Löschen von Admin-Accounts repariert und HTML-Code ausgelagert in Templates."); + break; + + case '0.5.3': // SQL queries for v0.5.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.5.4': // SQL queries for v0.5.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); + break; + + case '0.5.5': // SQL queries for v0.5.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Menüpunkt Admin-Mails korregiert: SQL-Anweisung war fehlerhaft; und HTML-Code in Templates ausgelagert."); + break; + + case '0.5.6': // SQL queries for v0.5.6 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='admins_contct' WHERE `what`='admins_contact' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Namenskonflikt zwischen den Erweiterungen admins und (kommender) contact."); + break; + + case '0.5.7': // SQL queries for v0.5.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Links wegen what=admins_contct geändert."); + break; + + case '0.5.8': // SQL queries for v0.5.8 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='admins_contct' WHERE `what`='admins_contact' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ein Punkt in der Versionsnummernliste verhinderte das 0.5.6-Update."); + break; + + case '0.5.9': // SQL queries for v0.5.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate: SQL-Anweisungen geschützt."); + break; + + case '0.6.0': // SQL queries for v0.6.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link in "ACL Einstellen" zum Admin-Kontaktformular korregiert."); + break; + + case '0.6.1': // SQL queries for v0.6.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Speichern von Admin-Accounts klappt wieder."); + break; + + case '0.6.2': // SQL queries for v0.6.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bitte verschieben Sie die admins-Templates (Ordner: {?PATH?}/templates/de/emails/) in den neuen Order admins!"); + break; + + case '0.6.3': // SQL queries for v0.6.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.6.4': // SQL queries for v0.6.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit der Rechtevererbung beseitigt: Geben Sie nun ein Hauptmenü frei (Allow), dann kann der Admin auch die Untermenüs erreichen. Zudem können Sie gezielte Untermenüs im freigegeben Hauptmenü dennoch sperren."); + break; + + case '0.6.5': // SQL queries for v0.6.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.6.6': // SQL queries for v0.5.6 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='admins_contct' WHERE `what`='admins_contact' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Namenskonflikt zwischen den Erweiterungen admins und (kommender) contact."); + break; + + case '0.6.7': // SQL queries for v0.6.7 + addExtensionAddTableColumnSql('admins', 'la_mode', "ENUM('global','OLD','NEW') NOT NULL DEFAULT 'global'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Namenskonflikt zwischen den Erweiterungen admins und (kommender) contact. Beseitigung eines Fehlers HTTP_POSR_VARS beim Ändern von Administratoren."); + break; + + case '0.6.8': // SQL queries for v0.6.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("setSession() mit @-Zeichen gegen ungewollte Ausgaben abgesichert."); + break; + + case '0.6.9': // SQL queries for v0.6.9 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Admin-Management' WHERE `action`='admins' AND (`what`='' OR `what` IS NULL) LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Verwaltung nach Management umbenannt."); + break; + + case '0.7.0': // SQL queries for v0.7.0 + addExtensionAddTableColumnSql('admins', 'login_failtures', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"); + addExtensionAddTableColumnSql('admins', 'last_failture', "TIMESTAMP NULL DEFAULT NULL"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Veraltetes Update."); + break; + + case '0.7.1': // SQL queries for v0.7.1 + // Add filters + 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ügt und ist von sql_patches abhängig."); + break; + + case '0.7.2': // SQL queries for v0.7.2 + addExtensionDropTableColumnSql('admins', 'login_failtures'); + addExtensionDropTableColumnSql('admins', 'last_failture'); + addExtensionAddTableColumnSql('admins', 'login_failures', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addExtensionAddTableColumnSql('admins', 'last_failure', "TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Schreibweise korregiert."); + break; + + case '0.7.3': // SQL queries for v0.7.3 + addExtensionAddTableColumnSql('admins', 'expert_settings', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addExtensionAddTableColumnSql('admins', 'expert_warning', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Entwicklereinstellungen sind nun hinzugekommen."); + break; + + case '0.7.4': // SQL queries for v0.7.4 + // Add filter + 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."); + break; + + case '0.7.5': // SQL queries for v0.7.5 + // Add filter + 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ügt."); + break; + + case '0.7.6': // SQL queries for v0.7.6 + addExtensionChangeTableColumnSql('admins', 'last_failure', 'last_failure', 'TIMESTAMP NULL DEFAULT NULL'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ausgangswert ist nicht mehr 0000-00-00 00:00:00, sondern NULL."); + break; + + case '0.7.7': // SQL queries for v0.7.7 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_admins_acls' WHERE `what`='config_admins' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ausgangswert ist nicht mehr 0000-00-00 00:00:00, sondern NULL."); + break; + + case '0.7.8': // SQL queries for v0.7.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abgekürzte Bezeichnungen können für Missverständnisse am Code sorgen. Daher wurde der Spaltenalias def_acl entfernt."); + break; + + case '0.7.9': // SQL queries for v0.7.9 + addExtensionChangeTableColumnSql('admins_mails', 'admin_id', 'admin_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_admins_mails` SET `admin_id` = NULL WHERE `admin_id`=0'); + addExtensionSql("DELETE FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE `mail_template` IN ('admin-del_links', 'back-admin', 'done-admin', 'order-admin', 'register-admin')"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Spalte admin_id ist jetzt Ausgangswert NULL, alte Mail-Templates bereinigt."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/autopurge/.htaccess b/inc/extensions/autopurge/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/autopurge/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/autopurge/mode-update.php b/inc/extensions/autopurge/mode-update.php new file mode 100644 index 0000000000..6288fbcb8d --- /dev/null +++ b/inc/extensions/autopurge/mode-update.php @@ -0,0 +1,237 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227 behoben."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Anstelle von ref_depth wurde level programmiert."); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + addConfigAddSql('autopurge_tasks', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('ap_tasks_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7)); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bereinigung von zu löschenden Aufgaben klappt wieder. Zeitlimit für genanntes kann eingestellt werden (Default = 7 Tage).

Bitte aktualisieren Sie auch die Admin-Templates!"); + break; + + case '0.2.0': // SQL queries for v0.2.0 + addConfigAddSql('ap_in_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('ap_un_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('ap_tasks_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.

Bitte aktualisieren Sie auch die Admin-Templates!"); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)"); + break; + + case '0.2.5': // SQL queries for v0.2.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)"); + break; + + case '0.2.7': // SQL queries for v0.2.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); + break; + + case '0.2.8': // SQL queries for v0.2.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); + break; + + case '0.2.9': // SQL queries for v0.2.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Mailbetreffs korregiert."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Template admin_config_autopurge_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); + break; + + case '0.3.1': // SQL queries for v0.3.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich."); + break; + + case '0.3.2': // SQL queries for v0.3.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); + break; + + case '0.3.3': // SQL queries for v0.3.3 + addConfigAddSql('ap_del_mails', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('ap_dm_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('ap_dm_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert."); + break; + + case '0.3.4': // SQL queries for v0.3.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler mit timestamp_send (Zeile 308) beseitigt."); + break; + + case '0.3.5': // SQL queries for v0.3.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler mit ap_del_emails (Einstellungen im Admin-Bereich) beseitigt."); + break; + + case '0.3.6': // SQL queries for v0.3.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Die Accounts der Standard-Referral-Id, der Bonus-Id, Bettellink-Id und der Verdoppler-Id werden nun nicht mehr gelöscht und tauchen auch unterhalb der Inaktiven-Liste nicht mehr auf."); + break; + + case '0.3.7': // SQL queries for v0.3.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.3.8': // SQL queries for v0.3.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); + break; + + case '0.3.9': // SQL queries for v0.3.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("if-Anweisungen auf Funktion empty() umgestellt. Unter Auto-Löschung finden Sie nun auch die Einstellungen zu Mailbestätigungs wieder. Zudem werden keine Urlauber (neue Urlaubsschaltung beachtet) mehr als inaktiv erkannt."); + break; + + case '0.4.0': // SQL queries for v0.4.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen."); + break; + + case '0.4.1': // SQL queries for v0.4.1 + // Register with points data system + registerExtensionPointsData('autopurge_add', 'points', 'LOCKED', 'DIRECT'); + + // Update notes + setExtensionUpdateNotes("Rückschriften bei Auto-Löschungen werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); + break; + + case '0.4.2': // SQL queries for v0.4.2 + addConfigAddSql('auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14)); + addConfigAddSql('auto_purge_active', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes + setExtensionUpdateNotes("Konfiguration in diese Erweiterung verschoben."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/beg/.htaccess b/inc/extensions/beg/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/beg/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/beg/mode-update.php b/inc/extensions/beg/mode-update.php new file mode 100644 index 0000000000..e45d7e2b89 --- /dev/null +++ b/inc/extensions/beg/mode-update.php @@ -0,0 +1,315 @@ +Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + addConfigAddSql('beg_points_max', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.10000'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Maximale Obergrenze an {?POINTS?} einstellbar (Standard: 0,1 {?POINTS?})"); + break; + + case '0.0.4': // SQL queries for v0.0.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Überlange Kommastellen bei Punktangaben aus Bettellink und Gastbereich entfernt und Admin-Templates repariert ("Unbekannte Spalte beg_points_ma")."); + break; + + case '0.0.5': // SQL queries for v0.0.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Im Mitgliedsmenü wurde die Beschreibung aus dem Gastmenü verwendet."); + break; + + case '0.0.6': // SQL queries for v0.0.6 + addConfigAddSql('beg_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ein Mitgliedsaccount (empfehlenswert ist Ihr eigenes!) kann zum Abbuchen der {?POINTS?} verwendet werden. Template admin_config_beg.tpl (und pro!) nicht vergessen, zu aktualisieren."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + addConfigAddSql('beg_ip_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 1800'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Zeitsperre gegen die selbe IP-Nummer hinzugefügt."); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bitte verschieben Sie die beg-Templates (Ordner: {?PATH?}/templates/".getLanguage()."/html/) in den neuen Order beg!"); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); + break; + + case '0.1.2': + // SQL queries for v0.1.2 + addConfigAddSql('beg_ranks', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); + addConfigAddSql('beg_active', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigAddSql('beg_rallye', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addExtensionAddTableColumnSql('user_data', 'beg_points', 'FLOAT(21,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + + // Menu system + addAdminMenuSql('user', 'list_beg', 'Bettel-Rallye', 'Listet alle Teilnehmer der monatlichen Bettel-Rallye auf.', 12); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Optionale Bettel-Rallye möglich. Und die erbettelten {?POINTS?} können entweder nur dem bettelndem Mitglied direkt oder auch seinem Werber gutgeschrieben werden können."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Erbettelte {?POINTS?} werden nach Deaktivierung der Bettel-Rallye gelöscht."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen (member_list_beg.tpl); Template member_beg_404.tpl fehlte!"); + break; + + case '0.1.5': // SQL queries for v0.1.5 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Bettellink/-rallye', descr='IP-Sperre, {OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Vergütung und auch die Bettel-Rallye können Sie hier einstellen.' WHERE `what`='config_beg' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlendes Template im Admin-Bereich hinzugefügt. Im Admin-Bereich Hinweis hinzugefügt, wenn Bettel-Rallye inaktiv ist. Bitte Script inc/monthly_beg.php löschen!"); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Es wurden immer dem ersten bettelndem Mitglied die {?POINTS?} gutgeschrieben."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + addConfigAddSql('beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigAddSql('beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigAddSql('beg_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigAddSql('beg_notify_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + addConfigAddSql('beg_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30'); + addExtensionAddTableColumnSql('user_data', 'beg_ral_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addExtensionAddTableColumnSql('user_data', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addExtensionAddTableColumnSql('user_data', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Die Mitglieder können nun optional automatisch über eine aktivierte und/oder deaktivierte Bettel-Rallye informiert werden. Beide Benachrichtigungen können Sie unter Einstellungen --> Bettel-Link/-rallye seperat ein- und ausschalten! Zudem ist eine Sperre gegen eingeloggte Mitglieder eingebaut, die das Klicken auf den eigenen Bettel-Link etwas erschweren soll."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler unknown column 'userid' beseitigt."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + addConfigAddSql('beg_include_own', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Eigene Mitglieds-Ids sind von der Bettel-Rallye nun ausschliessbar."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abfrage des Account-Status eingebaut. Es können nur bestätigte Accounts betteln."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=1 WHERE `what`='beg' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + addExtensionAddTableColumnSql('beg_ips', 'sid', "VARCHAR(255) NOT NULL DEFAULT ''"); + addConfigAddSql('beg_pay_mode', "ENUM('IMG','JS','BOTH','NONE') DEFAULT 'NONE' NOT NULL ;"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("IP-Lock mit Session-Id erweitert. Tracker-Script eingefügt, dass das Einbinden des Bettel-Links als Bild/Script/CSS verhindern soll."); + break; + + case '0.2.7': // SQL queries for v0.2.7 + addConfigChangeSql('beg_ral_en_notify', 'beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigChangeSql('beg_ral_di_notify', 'beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigChangeSql('beg_new_mem_notify', 'beg_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addExtensionChangeTableColumnSql('user_data', 'beg_ral_en_notify', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addExtensionChangeTableColumnSql('user_data', 'beg_ral_di_notify', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention"); + break; + + case '0.2.8': // SQL queries for v0.2.8 + addConfigChangeSql('beg_ral_enable_notify', 'beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigChangeSql('beg_ral_disable_notify', 'beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addExtensionChangeTableColumnSql('user_data', 'beg_ral_enable_notify', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addExtensionChangeTableColumnSql('user_data', 'beg_ral_disable_notify', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention"); + break; + + case '0.2.9': // SQL queries for v0.2.9 + 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, +`referral_url` TINYTEXT NOT NULL, +PRIMARY KEY (`id`), +INDEX (`userid`)", + 'Recorded referral URLs'); + + // Add admin menu + 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ügt."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + addConfigDropSql('beg_mode'); + + // Register points data + registerExtensionPointsData('beg' , 'points', 'LOCKED', 'DIRECT'); + registerExtensionPointsData('monthly_beg', 'points', 'LOCKED', 'DIRECT'); + + // Update notes + setExtensionUpdateNotes("Monatliche Bettelrallye und die erbettelten {?POINTS?} werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); + break; + + case '0.3.1': // SQL queries for v0.3.1 + // Add/move menu + addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='beg2'"); + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `action`='members',`sort`=3 WHERE `what`='beg' LIMIT 1"); + addMemberMenuSql('rals', 'beg2', 'Bettel-Rallye', 3); + + // Update notes + setExtensionUpdateNotes("Bettel-Rallye re-hinzugefügt."); + break; + + case '0.3.2': // SQL queries for v0.3.2 + // Add module entry + addModuleSql('beg', '{OPEN_LANGUAGE}MODULE_BEG_TITLE{CLOSE_LANGUAGE}', 'Y', 'Y', 'N', 'N'); + + // Set module title + 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 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ür Anmeldeformular und Aufrämen der IPs hinzugefügt."); + break; + + case '0.3.4': // SQL queries for v0.3.4 + // SQL queries (renaming) + addRenameTableSql('beg_referrals', 'referrals'); + addExtensionChangeTableColumnSql('beg_referrals', 'referal_url', 'referral_url', 'TINYTEXT NOT NULL'); + 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ür Referralgutgschriften registriert."); + break; + + case '0.3.5': // SQL queries for v0.3.5 + // Register a filter + registerFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXCLUDE_BEG_USERID', FALSE, TRUE, isExtensionDryRun()); + + // Update notes + setExtensionUpdateNotes("Filter für das Ausschließen des konfigurierbaren Mitgliedaccounts hinzugefügt."); + break; + + case '0.3.6': // SQL queries for v0.3.6 + // SQL to update module + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='{OPEN_LANGUAGE}MODULE_BEG_TITLE{CLOSE_LANGUAGE}' WHERE `module`='beg' LIMIT 1"); + + // Update notes + setExtensionUpdateNotes("Modul-Titel nach neuem Format angepasst."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/bonus/mode-update.php b/inc/extensions/bonus/mode-update.php index d6b9164fdd..81a836c17a 100644 --- a/inc/extensions/bonus/mode-update.php +++ b/inc/extensions/bonus/mode-update.php @@ -184,7 +184,7 @@ INDEX `userid` (`userid`)", case '0.3.7': // SQL queries for v0.3.7 // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mitglieder-Account auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden."); + setExtensionUpdateNotes("Mitgliedaccount auwählbar, von dem die {?POINTS?} für den Aktiv- und Login-Bonus abgebucht werden."); break; case '0.3.8': // SQL queries for v0.3.8 @@ -230,7 +230,7 @@ INDEX `userid` (`userid`)", addExtensionAddTableColumnSql('user_data', 'bonus_stats', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bonus-{?POINTS?} für: Mailbestellung, Referral-Werbung (bei Best. der EMail-Adresse) und wenn 100% Klickrate jeder Mailbuchung erreicht wurde.
Template admin_config_bonus_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!
Eingestellte Bonus-{?POINTS?} für Rank 2 war um eins verschoben."); + setExtensionUpdateNotes("Bonus-{?POINTS?} für: Mailbuchung, Referral-Werbung (bei Best. der EMail-Adresse) und wenn 100% Klickrate jeder Mailbuchung erreicht wurde.
Template admin_config_bonus_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!
Eingestellte Bonus-{?POINTS?} für Rank 2 war um eins verschoben."); break; case '0.4.5': // SQL queries for v0.4.5 @@ -411,9 +411,9 @@ ORDER BY break; case '0.7.7': // SQL queries for v0.7.7 - addConfigAddSql('bonus_en_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigAddSql('bonus_di_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigAddSql('bonus_new_mem_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigAddSql('bonus_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigAddSql('bonus_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + addConfigAddSql('bonus_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); addConfigAddSql('bonus_notify_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); addConfigAddSql('bonus_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30'); addExtensionAddTableColumnSql('user_data', 'bonus_ral_en_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); diff --git a/inc/extensions/doubler/.htaccess b/inc/extensions/doubler/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/doubler/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/doubler/mode-setup.php b/inc/extensions/doubler/mode-setup.php new file mode 100644 index 0000000000..e3bf00329d --- /dev/null +++ b/inc/extensions/doubler/mode-setup.php @@ -0,0 +1,110 @@ +none) + addConfigAddSql('doubler_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + // Total payed out points from your doublers + addConfigAddSql('doubler_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + // Sending mode of mails (immediately/daily reset) + // --> This also means who fast the doubled points will be payed out! + addConfigAddSql('doubler_send_mode', "ENUM('DIRECT','RESET') NOT NULL DEFAULT 'DIRECT'"); + // Timeout for entries to be purged (default: one week) + addConfigAddSql('doubler_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7)); + // Number of newest entries to display + addConfigAddSql('doubler_display_new', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); + // Number of entries which will be payed out soon + addConfigAddSql('doubler_display_pay', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); + // Number of entries which are already payed out + addConfigAddSql('doubler_display_old', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); + // Points used by every member + addExtensionAddTableColumnSql('user_data', 'doubler_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + // Counter for usage of the doubler + addConfigAddSql('doubler_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + + // + // --- MENU SYSTEMS --- + // + // Admin menu + addAdminMenuSql('doubler', NULL, '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Verdoppler','Einstellungen und Einträge auflisten.', 4); + addAdminMenuSql('doubler','list_doubler','Auflisten','Einträge aus der Verdiensttabelle auflisten', 1); + addAdminMenuSql('doubler','config_doubler','Einstellungen','Prozentuale Gebühr usw. einstellen.', 2); + + // Guest menu (informations / default doubler link) + addGuestMenuSql('main', 'doubler', 'Verdoppeln!', 3); + + // Member menu + addMemberMenuSql('main', 'doubler', 'Verdoppeln!', 7); + +// [EOF] +?> diff --git a/inc/extensions/doubler/mode-update.php b/inc/extensions/doubler/mode-update.php new file mode 100644 index 0000000000..da3cb462ea --- /dev/null +++ b/inc/extensions/doubler/mode-update.php @@ -0,0 +1,180 @@ +Template admin_config_doubler_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); + break; + + case '0.0.7': // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar.

Minus-Guthaben des Verdoppler-Accounts repariert und Mitgliedsmail erweitert mit Transaktionsummer und IP-Nummer."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bitte verschieben Sie die doubler-Templates (Ordner: {?PATH?}/templates/".getLanguage()."/html/) in den neuen Order doubler!"); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Zwei SQL-Fehler in inc/doubler_send.php beseitigt."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=4 WHERE `what`='doubler' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_config` SET `doubler_charge`=`doubler_charge`*100 WHERE `config`=0 LIMIT 1'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_config` SET `doubler_ref`=`doubler_ref`*100 WHERE `config`=0 LIMIT 1'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Register points data + registerExtensionPointsData('doubler_direct', 'points', 'LOCKED', 'DIRECT'); + registerExtensionPointsData('doubler_reset' , 'points', 'LOCKED', 'DIRECT'); + + // Update notes + setExtensionUpdateNotes("Doppler-Gutschriften werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Total payed out points from your doublers + addConfigAddSql('doubler_used', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + + // Update notes + setExtensionUpdateNotes("Fehlender Konfigurationseintrag doubler_used hinzgefügt."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + // Register filter + registerFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXLCUDE_DOUBLER_USERID', FALSE, TRUE, isExtensionDryRun()); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Filter zum Ausschließen des konfigurierten Mitgliedaccounts."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Register subject lines + registerExtensionPointsData('doubler_direct', 'points', 'LOCKED', 'DIRECT'); + registerExtensionPointsData('doubler_reset', 'points', 'LOCKED', 'DIRECT'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Verwendungszwecks für Guthabenkonten hinzugefügt."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/ext-admins.php b/inc/extensions/ext-admins.php index c38fe16d00..f206c8d986 100644 --- a/inc/extensions/ext-admins.php +++ b/inc/extensions/ext-admins.php @@ -82,285 +82,6 @@ switch (getExtensionMode()) { break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.2.0': // SQL queries for v0.2 - addAdminMenuSql('admins','admins_contact','Admin kontaktieren','Kontaktiert einen Admin per Mail oder Nachricht (nur wenn messaging-Erweiterung installiert ist).',2); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fügt den Menüpunkt "Admin kontaktieren" hinzu."); - break; - - case '0.3.0': // SQL queries for v0.3 - // Add admin menu - addAdminMenuSql('admins','config_admins','ACL einstellen','Richten Sie Zugriffskontrollzeilen für jeden Admin individuell ein, um ihm nur bestimmte Bereiche des Admin-Bereiches zugänglich zu machen oder zu sperren.',4); - - // Which is the default setting when you create a new admin login? - addConfigAddSql('admins_default_acl', "ENUM('deny','allow') NOT NULL DEFAULT 'deny'"); - - // Default is deny everything - addExtensionAddTableColumnSql('admins', 'default_acl', "ENUM('deny','allow') NOT NULL DEFAULT 'deny'"); - - // But allow current admin everything (THIS SHALL BE YOU!) - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admins` SET `default_acl`='allow' WHERE `id`=".bigintval(getCurrentAdminId())." LIMIT 1"); - addDropTableSql('admins_acls'); - addCreateTableSql('admins_acls', " -`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`admin_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`action_menu` VARCHAR(255) NOT NULL DEFAULT '', -`what_menu` VARCHAR(255) NOT NULL DEFAULT '', -`access_mode` ENUM('deny','allow') NOT NULL DEFAULT 'deny', -PRIMARY KEY (`id`), -INDEX (`admin_id`)", - 'Access control lines (ACLs)'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sogn. ACLs werden hinzugefügt: Access Control Lines sind zu deutsch Zugriffkontrollzeilen, mit denen Sie einstellen können, was welcher Admin machen darf oder nicht. Nur Sie haben momentan Vollzugriff auf den Adminbereich."); - break; - - case '0.3.1': // SQL queries for v0.3.1 - addExtensionChangeTableColumnSql('admins_acls', 'id', 'id', 'BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT'); - break; - - case '0.4.0': // SQL queries for v0.4.0 - addDropTableSql('admins_mails'); - addCreateTableSql('admins_mails', " -`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`admin_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, -`mail_template` VARCHAR(255) NOT NULL, -PRIMARY KEY (`id`), -INDEX (`admin_id`)", - 'Mail template -> admin connection table'); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu` (`action`, `what`, `title`, `descr`, `sort`) VALUES ('admins','admins_mails','Admin-Mails','Stellen Sie hier ein, welcher Admin welche Mail erhalten soll. Sie können dies (derzeit) jedoch erst, wenn einmal die Mail versendet wurde!',5)"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Kontrollieren Sie, welche Mails welcher Admin oder alle (admin_id=0) bekommen soll oder im UserLog (admin_id=-1) verzeichnet werden soll. Standardmässig wird weiter an alle versendet."); - break; - - case '0.4.1': // SQL queries for v0.4.1 - addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE mail_template LIKE '% %'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Admins-Mails-Tabelle geleert."); - - case '0.4.4': // SQL queries for v0.4.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("&admin= in &amp;admin= umgewandelt."); - break; - - case '0.4.5': // SQL queries for v0.4.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Vorbereitet auf Cache-System"); - break; - - case '0.4.6': // SQL queries for v0.4.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit cache-Erweiterung gefixt. Der Admin-Bereich war permanent gesperrt."); - break; - - case '0.4.7': // SQL queries for v0.4.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Es wurde die Zeitmarke der Cache-Datei admins.cache mit berücksichtigt."); - break; - - case '0.4.8': // SQL queries for v0.4.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.4.9': // SQL queries for v0.4.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.5.0': // SQL queries for v0.5.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.5.1': // SQL queries for v0.5.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Cache wird endlich gelöscht, wenn Admin entfernt wird."); - break; - - case '0.5.2': // SQL queries for v0.5.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Löschen von Admin-Accounts repariert und HTML-Code ausgelagert in Templates."); - break; - - case '0.5.3': // SQL queries for v0.5.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case '0.5.4': // SQL queries for v0.5.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); - break; - - case '0.5.5': // SQL queries for v0.5.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Menüpunkt Admin-Mails korregiert: SQL-Anweisung war fehlerhaft; und HTML-Code in Templates ausgelagert."); - break; - - case '0.5.6': // SQL queries for v0.5.6 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='admins_contct' WHERE `what`='admins_contact' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Namenskonflikt zwischen den Erweiterungen admins und (kommender) contact."); - break; - - case '0.5.7': // SQL queries for v0.5.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Links wegen what=admins_contct geändert."); - break; - - case '0.5.8': // SQL queries for v0.5.8 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='admins_contct' WHERE `what`='admins_contact' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ein Punkt in der Versionsnummernliste verhinderte das 0.5.6-Update."); - break; - - case '0.5.9': // SQL queries for v0.5.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sicherheitsupdate: SQL-Anweisungen geschützt."); - break; - - case '0.6.0': // SQL queries for v0.6.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link in "ACL Einstellen" zum Admin-Kontaktformular korregiert."); - break; - - case '0.6.1': // SQL queries for v0.6.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Speichern von Admin-Accounts klappt wieder."); - break; - - case '0.6.2': // SQL queries for v0.6.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bitte verschieben Sie die admins-Templates (Ordner: {?PATH?}/templates/de/emails/) in den neuen Order admins!"); - break; - - case '0.6.3': // SQL queries for v0.6.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.6.4': // SQL queries for v0.6.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit der Rechtevererbung beseitigt: Geben Sie nun ein Hauptmenü frei (Allow), dann kann der Admin auch die Untermenüs erreichen. Zudem können Sie gezielte Untermenüs im freigegeben Hauptmenü dennoch sperren."); - break; - - case '0.6.5': // SQL queries for v0.6.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); - break; - - case '0.6.6': // SQL queries for v0.5.6 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='admins_contct' WHERE `what`='admins_contact' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Namenskonflikt zwischen den Erweiterungen admins und (kommender) contact."); - break; - - case '0.6.7': // SQL queries for v0.6.7 - addExtensionAddTableColumnSql('admins', 'la_mode', "ENUM('global','OLD','NEW') NOT NULL DEFAULT 'global'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Namenskonflikt zwischen den Erweiterungen admins und (kommender) contact. Beseitigung eines Fehlers HTTP_POSR_VARS beim Ändern von Administratoren."); - break; - - case '0.6.8': // SQL queries for v0.6.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("setSession() mit @-Zeichen gegen ungewollte Ausgaben abgesichert."); - break; - - case '0.6.9': // SQL queries for v0.6.9 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Admin-Management' WHERE `action`='admins' AND (`what`='' OR `what` IS NULL) LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Verwaltung nach Management umbenannt."); - break; - - case '0.7.0': // SQL queries for v0.7.0 - addExtensionAddTableColumnSql('admins', 'login_failtures', "BIGINT(20) UNSIGNED NOT NULL DEFAULT 0"); - addExtensionAddTableColumnSql('admins', 'last_failture', "TIMESTAMP NULL DEFAULT NULL"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Veraltetes Update."); - break; - - case '0.7.1': // SQL queries for v0.7.1 - // Add filters - 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ügt und ist von sql_patches abhängig."); - break; - - case '0.7.2': // SQL queries for v0.7.2 - addExtensionDropTableColumnSql('admins', 'login_failtures'); - addExtensionDropTableColumnSql('admins', 'last_failture'); - addExtensionAddTableColumnSql('admins', 'login_failures', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addExtensionAddTableColumnSql('admins', 'last_failure', "TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Schreibweise korregiert."); - break; - - case '0.7.3': // SQL queries for v0.7.3 - addExtensionAddTableColumnSql('admins', 'expert_settings', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addExtensionAddTableColumnSql('admins', 'expert_warning', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Entwicklereinstellungen sind nun hinzugekommen."); - break; - - case '0.7.4': // SQL queries for v0.7.4 - // Add filter - 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."); - break; - - case '0.7.5': // SQL queries for v0.7.5 - // Add filter - 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ügt."); - break; - - case '0.7.6': // SQL queries for v0.7.6 - addExtensionChangeTableColumnSql('admins', 'last_failure', 'last_failure', 'TIMESTAMP NULL DEFAULT NULL'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ausgangswert ist nicht mehr 0000-00-00 00:00:00, sondern NULL."); - break; - - case '0.7.7': // SQL queries for v0.7.7 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_admins_acls' WHERE `what`='config_admins' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ausgangswert ist nicht mehr 0000-00-00 00:00:00, sondern NULL."); - break; - - case '0.7.8': // SQL queries for v0.7.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abgekürzte Bezeichnungen können für Missverständnisse am Code sorgen. Daher wurde der Spaltenalias def_acl entfernt."); - break; - - case '0.7.9': // SQL queries for v0.7.9 - addExtensionChangeTableColumnSql('admins_mails', 'admin_id', 'admin_id', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL'); - addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_admins_mails` SET `admin_id` = NULL WHERE `admin_id`=0'); - addExtensionSql("DELETE FROM `{?_MYSQL_PREFIX?}_admins_mails` WHERE `mail_template` IN ('admin-del_links', 'back-admin', 'done-admin', 'order-admin', 'register-admin')"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Spalte admin_id ist jetzt Ausgangswert NULL, alte Mail-Templates bereinigt."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-autopurge.php b/inc/extensions/ext-autopurge.php index ed34f03b30..ea52ca403f 100644 --- a/inc/extensions/ext-autopurge.php +++ b/inc/extensions/ext-autopurge.php @@ -81,197 +81,6 @@ switch (getExtensionMode()) { break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.1.0': // SQL queries for v0.1.0 - // Add dependency to 'user' - addExtensionDependency('user'); - - // SQL queries - addConfigAddSql('autopurge_inactive', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('autopurge_unconfirmed', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('ap_inactive_since', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 2592000'); - addConfigAddSql('ap_inactive_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 25200'); - addConfigAddSql('ap_unconfirmed_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 432000'); - addAdminMenuSql('setup', 'config_autopurge', 'Auto-Löschung', 'Automatisch inaktive oder nicht bestätigte Accounts löschen.', 12); - addAdminMenuSql('user', 'list_autopurge', 'Inaktive finden', 'Lassen Sie sich vor dem täglichen Reset anzeigen, welche Mitglieder als inaktiv erkannt werden und welche gelöscht werden.', 10); - addExtensionAddTableColumnSql('user_data', 'ap_notified', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Automatisches Löschen von inaktiven bzw. nicht bestätigten Accounts hinzugefügt."); - break; - - case '0.1.2': // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Automatisches Löschen von als zu löschen markierte Tasks hinzugefügt."); - break; - - case '0.1.3': // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Nicht mehr verwendetes Update."); - break; - - case '0.1.4': // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler
Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227
behoben."); - break; - - case '0.1.5': // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Anstelle von ref_depth wurde level programmiert."); - break; - - case '0.1.6': // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.1.7': // SQL queries for v0.1.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - addConfigAddSql('autopurge_tasks', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('ap_tasks_time', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7)); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bereinigung von zu löschenden Aufgaben klappt wieder. Zeitlimit für genanntes kann eingestellt werden (Default = 7 Tage).

Bitte aktualisieren Sie auch die Admin-Templates!"); - break; - - case '0.2.0': // SQL queries for v0.2.0 - addConfigAddSql('ap_in_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('ap_un_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('ap_tasks_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mail wird bei Löschung von Aufgaben ausgesendet.

Bitte aktualisieren Sie auch die Admin-Templates!"); - break; - - case '0.2.1': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Diverse angebundene Erweiterungen gefixt."); - break; - - case '0.2.2': // SQL queries for v0.2.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Betreffzeile für gelöschte Aufgaben korregiert."); - break; - - case '0.2.3': // SQL queries for v0.2.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv."); - break; - - case '0.2.4': // SQL queries for v0.2.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Auto-Löschung von Bestätigungslinks kann unter "Sonstige Einstellungen" abgeschaltet werden (0 setzen!)"); - break; - - case '0.2.5': // SQL queries for v0.2.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case '0.2.6': // SQL queries for v0.2.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Jackpot beseitigt ({?POINTS?} wurden nicht gutgeschrieben.)"); - break; - - case '0.2.7': // SQL queries for v0.2.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); - break; - - case '0.2.8': // SQL queries for v0.2.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); - break; - - case '0.2.9': // SQL queries for v0.2.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mailbetreffs korregiert."); - break; - - case '0.3.0': // SQL queries for v0.3.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Template admin_config_autopurge_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); - break; - - case '0.3.1': // SQL queries for v0.3.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Datumsformat festgelegt auf ausführlich."); - break; - - case '0.3.2': // SQL queries for v0.3.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); - break; - - case '0.3.3': // SQL queries for v0.3.3 - addConfigAddSql('ap_del_mails', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('ap_dm_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('ap_dm_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Von bereits gelöschten Mitgliedern die Mails löschen integriert."); - break; - - case '0.3.4': // SQL queries for v0.3.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler mit timestamp_send (Zeile 308) beseitigt."); - break; - - case '0.3.5': // SQL queries for v0.3.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler mit ap_del_emails (Einstellungen im Admin-Bereich) beseitigt."); - break; - - case '0.3.6': // SQL queries for v0.3.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Die Accounts der Standard-Referral-Id, der Bonus-Id, Bettellink-Id und der Verdoppler-Id werden nun nicht mehr gelöscht und tauchen auch unterhalb der Inaktiven-Liste nicht mehr auf."); - break; - - case '0.3.7': // SQL queries for v0.3.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.3.8': // SQL queries for v0.3.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); - break; - - case '0.3.9': // SQL queries for v0.3.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("if-Anweisungen auf Funktion empty() umgestellt. Unter Auto-Löschung finden Sie nun auch die Einstellungen zu Mailbestätigungs wieder. Zudem werden keine Urlauber (neue Urlaubsschaltung beachtet) mehr als inaktiv erkannt."); - break; - - case '0.4.0': // SQL queries for v0.4.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Template-Problem beseitigt. Dies verhinderte das Abspeichern der Einstellungen."); - break; - - case '0.4.1': // SQL queries for v0.4.1 - // Register with points data system - registerExtensionPointsData('autopurge_add', 'points', 'LOCKED', 'DIRECT'); - - // Update notes - setExtensionUpdateNotes("Rückschriften bei Auto-Löschungen werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); - break; - - case '0.4.2': // SQL queries for v0.4.2 - addConfigAddSql('auto_purge', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay()*14)); - addConfigAddSql('auto_purge_active', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - - // Update notes - setExtensionUpdateNotes("Konfiguration in diese Erweiterung verschoben."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-bank.php b/inc/extensions/ext-bank.php index 8124702703..123ae857fa 100644 --- a/inc/extensions/ext-bank.php +++ b/inc/extensions/ext-bank.php @@ -141,7 +141,7 @@ UNIQUE INDEX (`account_id`, `tan`)", addAdminMenuSql('bank', 'list_bank_account', 'Konten auflisten', 'Auflistung aller Konto oder eines auswählbaren Mitglieds.', 7); addAdminMenuSql('bank', 'edit_bank_account', 'Konto ändern', 'Ändern Sie hier bestehende Konten, z.B. den Dispositionskredit usw. PINs und TANs sind hier nicht änderbar! Bestätigungsmails sind optional versendbar.', 8); addAdminMenuSql('bank', 'lock_bank_account', 'Konto ent-/sperren', 'Sperren Sie hier Konten bei Bedarf. Auch das Freischalten ist hier möglich. Eine Benachrichtigung per Mail wird dann an das Mitglied ausgesendet.', 9); - addAdminMenuSql('bank', 'del_bank_account', 'Konto löschen', 'Löschen von Konten mit Bestätigungsmail. Wenn Sie ein Mitglieder-Account löschen, so müssen Sie derzeit seine angelegten Konten auch löschen!', 10); + addAdminMenuSql('bank', 'del_bank_account', 'Konto löschen', 'Löschen von Konten mit Bestätigungsmail. Wenn Sie ein Mitgliedaccount löschen, so müssen Sie derzeit seine angelegten Konten auch löschen!', 10); addAdminMenuSql('bank', 'send_bank_tanlist', 'TAN-Liste aussenden', 'Listet zuerst Anfragen von Mitgliedern auf, die eine neue (i)TAN-Liste benötigen, anschliessend kann die Liste dann ausgesendet werden.', 11); addAdminMenuSql('bank', 'lock_bank_tanlist', 'TAN-Liste ent-/sperren', 'Bestehende TAN-Listen können auf Kundenwunsch hin gesperrt und wieder entsperrt werden. Dies passiert auch, wenn der Kunde x-mal (siehe Angebotspakete) eine verkehrte TAN eingegeben hat. Einzelne TANs sind nicht ent-/sperrbar.', 12); addAdminMenuSql('bank', 'list_bank_trans', 'Überweisungen auflisten', 'Nach Auswahl eines Mitgliedes und einem Konto (benötgt JavaScript!) können Sie seitenweise die Überweisungen durchschauen.', 13); diff --git a/inc/extensions/ext-beg.php b/inc/extensions/ext-beg.php index e2be67f590..4fd43f9172 100644 --- a/inc/extensions/ext-beg.php +++ b/inc/extensions/ext-beg.php @@ -81,9 +81,7 @@ INDEX (`userid`)", // 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"); @@ -109,279 +107,6 @@ INDEX (`userid`)", break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.0.1': // SQL queries for v0.0.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Design "Solid-Business" eingebaut."); - break; - - case '0.0.2': // SQL queries for v0.0.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case '0.0.3': // SQL queries for v0.0.3 - addConfigAddSql('beg_points_max', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.10000'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Maximale Obergrenze an {?POINTS?} einstellbar (Standard: 0,1 {?POINTS?})"); - break; - - case '0.0.4': // SQL queries for v0.0.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Überlange Kommastellen bei Punktangaben aus Bettellink und Gastbereich entfernt und Admin-Templates repariert ("Unbekannte Spalte beg_points_ma")."); - break; - - case '0.0.5': // SQL queries for v0.0.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Im Mitgliedsmenü wurde die Beschreibung aus dem Gastmenü verwendet."); - break; - - case '0.0.6': // SQL queries for v0.0.6 - addConfigAddSql('beg_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ein Mitgliedsaccount (empfehlenswert ist Ihr eigenes!) kann zum Abbuchen der {?POINTS?} verwendet werden. Template admin_config_beg.tpl (und pro!) nicht vergessen, zu aktualisieren."); - break; - - case '0.0.8': // SQL queries for v0.0.8 - addConfigAddSql('beg_ip_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 1800'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Zeitsperre gegen die selbe IP-Nummer hinzugefügt."); - break; - - case '0.0.9': // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bitte verschieben Sie die beg-Templates (Ordner: {?PATH?}/templates/".getLanguage()."/html/) in den neuen Order beg!"); - break; - - case '0.1.0': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.1.1': // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); - break; - - case '0.1.2': - // SQL queries for v0.1.2 - addConfigAddSql('beg_ranks', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); - addConfigAddSql('beg_active', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigAddSql('beg_rallye', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addExtensionAddTableColumnSql('user_data', 'beg_points', 'FLOAT(21,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - - // Menu system - addAdminMenuSql('user', 'list_beg', 'Bettel-Rallye', 'Listet alle Teilnehmer der monatlichen Bettel-Rallye auf.', 12); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Optionale Bettel-Rallye möglich. Und die erbettelten {?POINTS?} können entweder nur dem bettelndem Mitglied direkt oder auch seinem Werber gutgeschrieben werden können."); - break; - - case '0.1.3': // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Erbettelte {?POINTS?} werden nach Deaktivierung der Bettel-Rallye gelöscht."); - break; - - case '0.1.4': // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Rechtlichen Hinweis im Mitgliedsbereich vergessen (member_list_beg.tpl); Template member_beg_404.tpl fehlte!"); - break; - - case '0.1.5': // SQL queries for v0.1.5 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Bettellink/-rallye', descr='IP-Sperre, {OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Vergütung und auch die Bettel-Rallye können Sie hier einstellen.' WHERE `what`='config_beg' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlendes Template im Admin-Bereich hinzugefügt. Im Admin-Bereich Hinweis hinzugefügt, wenn Bettel-Rallye inaktiv ist. Bitte Script inc/monthly_beg.php löschen!"); - break; - - case '0.1.6': // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Es wurden immer dem ersten bettelndem Mitglied die {?POINTS?} gutgeschrieben."); - break; - - case '0.1.7': // SQL queries for v0.1.7 - addConfigAddSql('beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigAddSql('beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigAddSql('beg_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigAddSql('beg_notify_bonus', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - addConfigAddSql('beg_notify_wait', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30'); - addExtensionAddTableColumnSql('user_data', 'beg_ral_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addExtensionAddTableColumnSql('user_data', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addExtensionAddTableColumnSql('user_data', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Die Mitglieder können nun optional automatisch über eine aktivierte und/oder deaktivierte Bettel-Rallye informiert werden. Beide Benachrichtigungen können Sie unter Einstellungen --> Bettel-Link/-rallye seperat ein- und ausschalten! Zudem ist eine Sperre gegen eingeloggte Mitglieder eingebaut, die das Klicken auf den eigenen Bettel-Link etwas erschweren soll."); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler im täglichen Reset beseitigt."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden."); - break; - - case '0.2.0': // SQL queries for v0.2.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bei {?POINTS?}-Gleichstand wird als nächstes nach wer als letztes Online war umsortiert."); - break; - - case '0.2.1': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler unknown column 'userid' beseitigt."); - break; - - case '0.2.2': // SQL queries for v0.2.2 - addConfigAddSql('beg_include_own', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Eigene Mitglieds-Ids sind von der Bettel-Rallye nun ausschliessbar."); - break; - - case '0.2.3': // SQL queries for v0.2.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abfrage des Account-Status eingebaut. Es können nur bestätigte Accounts betteln."); - break; - - case '0.2.4': // SQL queries for v0.2.4 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=1 WHERE `what`='beg' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut."); - break; - - case '0.2.5': // SQL queries for v0.2.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); - break; - - case '0.2.6': // SQL queries for v0.2.6 - addExtensionAddTableColumnSql('beg_ips', 'sid', "VARCHAR(255) NOT NULL DEFAULT ''"); - addConfigAddSql('beg_pay_mode', "ENUM('IMG','JS','BOTH','NONE') DEFAULT 'NONE' NOT NULL ;"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("IP-Lock mit Session-Id erweitert. Tracker-Script eingefügt, dass das Einbinden des Bettel-Links als Bild/Script/CSS verhindern soll."); - break; - - case '0.2.7': // SQL queries for v0.2.7 - addConfigChangeSql('beg_ral_en_notify', 'beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigChangeSql('beg_ral_di_notify', 'beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigChangeSql('beg_new_mem_notify', 'beg_new_member_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addExtensionChangeTableColumnSql('user_data', 'beg_ral_en_notify', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addExtensionChangeTableColumnSql('user_data', 'beg_ral_di_notify', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention"); - break; - - case '0.2.8': // SQL queries for v0.2.8 - addConfigChangeSql('beg_ral_enable_notify', 'beg_rallye_enable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addConfigChangeSql('beg_ral_disable_notify', 'beg_rallye_disable_notify', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - addExtensionChangeTableColumnSql('user_data', 'beg_ral_enable_notify', 'beg_rallye_enable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addExtensionChangeTableColumnSql('user_data', 'beg_ral_disable_notify', 'beg_rallye_disable_notify', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Umbenannt nach neuer Namenskonvention"); - break; - - case '0.2.9': // SQL queries for v0.2.9 - 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, -`referral_url` TINYTEXT NOT NULL, -PRIMARY KEY (`id`), -INDEX (`userid`)", - 'Recorded referral URLs'); - - // Add admin menu - 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ügt."); - break; - - case '0.3.0': // SQL queries for v0.3.0 - addConfigDropSql('beg_mode'); - - // Register points data - registerExtensionPointsData('beg' , 'points', 'LOCKED', 'DIRECT'); - registerExtensionPointsData('monthly_beg', 'points', 'LOCKED', 'DIRECT'); - - // Update notes - setExtensionUpdateNotes("Monatliche Bettelrallye und die erbettelten {?POINTS?} werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); - break; - - case '0.3.1': // SQL queries for v0.3.1 - // Add/move menu - addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='beg2'"); - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_guest_menu` SET `action`='members',`sort`=3 WHERE `what`='beg' LIMIT 1"); - addMemberMenuSql('rals', 'beg2', 'Bettel-Rallye', 3); - - // Update notes - setExtensionUpdateNotes("Bettel-Rallye re-hinzugefügt."); - break; - - case '0.3.2': // SQL queries for v0.3.2 - // Add module entry - addModuleSql('beg', '{OPEN_LANGUAGE}MODULE_BEG_TITLE{CLOSE_LANGUAGE}', 'Y', 'Y', 'N', 'N'); - - // Set module title - 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 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ür Anmeldeformular und Aufrämen der IPs hinzugefü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) - addRenameTableSql('beg_referrals', 'referrals'); - addExtensionChangeTableColumnSql('beg_referrals', 'referal_url', 'referral_url', 'TINYTEXT NOT NULL'); - 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ür Referralgutgschriften registriert."); - break; - - case '0.3.5': // SQL queries for v0.3.5 - // Register a filter - registerFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXCLUDE_BEG_USERID', FALSE, TRUE, isExtensionDryRun()); - - // Update notes - setExtensionUpdateNotes("Filter für das Ausschließen des konfigurierbaren Mitgliedaccounts hinzugefügt."); - break; - - case '0.3.6': // SQL queries for v0.3.6 - // SQL to update module - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_mod_reg` SET `title`='{OPEN_LANGUAGE}MODULE_BEG_TITLE{CLOSE_LANGUAGE}' WHERE `module`='beg' LIMIT 1"); - - // Update notes - setExtensionUpdateNotes("Modul-Titel nach neuem Format angepasst."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-blacklist.php b/inc/extensions/ext-blacklist.php index fa6c130581..911ee626a0 100644 --- a/inc/extensions/ext-blacklist.php +++ b/inc/extensions/ext-blacklist.php @@ -79,8 +79,10 @@ INDEX (`pool_id`)", registerFilter(__FILE__, __LINE__, 'pre_user_registration' , 'CHECK_EMAIL_BLACKLISTED', FALSE, TRUE, isExtensionDryRun()); registerFilter(__FILE__, __LINE__, 'pre_user_registration' , 'CHECK_IP_BLACKLISTED' , FALSE, TRUE, isExtensionDryRun()); registerFilter(__FILE__, __LINE__, 'pre_update_user_data' , 'CHECK_EMAIL_BLACKLISTED', FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'pre_mail_order' , 'CHECK_URL_BLACKLISTED' , FALSE, TRUE, isExtensionDryRun()); registerFilter(__FILE__, __LINE__, 'post_email_blacklisted', 'LOG_EMAIL_BLACKLISTED' , FALSE, TRUE, isExtensionDryRun()); registerFilter(__FILE__, __LINE__, 'post_ip_blacklisted' , 'LOG_IP_BLACKLISTED' , FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'post_url_blacklisted' , 'LOG_URL_BLACKLISTED' , FALSE, TRUE, isExtensionDryRun()); break; case 'remove': // Do stuff when removing extension @@ -94,8 +96,10 @@ INDEX (`pool_id`)", unregisterFilter(__FILE__, __LINE__, 'pre_user_registration' , 'CHECK_EMAIL_BLACKLISTED', TRUE, isExtensionDryRun()); unregisterFilter(__FILE__, __LINE__, 'pre_user_registration' , 'CHECK_IP_BLACKLISTED' , TRUE, isExtensionDryRun()); unregisterFilter(__FILE__, __LINE__, 'pre_update_user_data' , 'CHECK_EMAIL_BLACKLISTED', TRUE, isExtensionDryRun()); + unregisterFilter(__FILE__, __LINE__, 'pre_mail_order' , 'CHECK_URL_BLACKLISTED' , TRUE, isExtensionDryRun()); unregisterFilter(__FILE__, __LINE__, 'post_email_blacklisted', 'LOG_EMAIL_BLACKLISTED' , TRUE, isExtensionDryRun()); unregisterFilter(__FILE__, __LINE__, 'post_ip_blacklisted' , 'LOG_IP_BLACKLISTED' , TRUE, isExtensionDryRun()); + unregisterFilter(__FILE__, __LINE__, 'post_url_blacklisted' , 'LOG_URL_BLACKLISTED' , TRUE, isExtensionDryRun()); break; case 'activate': // Do stuff when admin activates this extension diff --git a/inc/extensions/ext-doubler.php b/inc/extensions/ext-doubler.php index 4d78b29c67..b0cedb8dc9 100644 --- a/inc/extensions/ext-doubler.php +++ b/inc/extensions/ext-doubler.php @@ -41,77 +41,13 @@ if (!defined('__SECURITY')) { } // END - if // Version number -setThisExtensionVersion('0.2.0'); +setThisExtensionVersion('0.2.1'); // 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')); +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')); switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running - // Doubler table - addDropTableSql('doubler'); - addCreateTableSql('doubler', " -`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`refid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`points` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000, -`remote_ip` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0', -`timemark` BIGINT(10) NOT NULL DEFAULT 0, -`completed` ENUM('Y','N') NOT NULL DEFAULT 'N', -`is_ref` ENUM('Y','N') NOT NULL DEFAULT 'N', -PRIMARY KEY (`id`), -INDEX (`refid`), -INDEX (`userid`)", - 'User doubler data'); - - // - // --- SETTINGS --- - // - // Minimum points to double - addConfigAddSql('doubler_min', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 100.00000'); - // Maximum points to double - addConfigAddSql('doubler_max', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 10000.00000'); - // Points left on users account after doubling - addConfigAddSql('doubler_left', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 1000'); - // Charge for doubling points which goes to the webmaster (shreddered in fact!) - addConfigAddSql('doubler_charge', 'FLOAT(7,5) UNSIGNED NOT NULL DEFAULT 0.03000'); - // Referral percents - addConfigAddSql('doubler_ref', 'FLOAT(7,5) UNSIGNED NOT NULL DEFAULT 0.02000'); - // Shall I use the jackpot to take points from? (Y/N, default=Y) - addConfigAddSql('doubler_jackpot', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - // A user account to take points from (default: 0->none) - addConfigAddSql('doubler_userid', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - // Total payed out points from your doublers - addConfigAddSql('doubler_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - // Sending mode of mails (immediately/daily reset) - // --> This also means who fast the doubled points will be payed out! - addConfigAddSql('doubler_send_mode', "ENUM('DIRECT','RESET') NOT NULL DEFAULT 'DIRECT'"); - // Timeout for entries to be purged (default: one week) - addConfigAddSql('doubler_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7)); - // Number of newest entries to display - addConfigAddSql('doubler_display_new', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); - // Number of entries which will be payed out soon - addConfigAddSql('doubler_display_pay', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); - // Number of entries which are already payed out - addConfigAddSql('doubler_display_old', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 10'); - // Points used by every member - addExtensionAddTableColumnSql('user_data', 'doubler_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - // Counter for usage of the doubler - addConfigAddSql('doubler_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - - // - // --- MENU SYSTEMS --- - // - // Admin menu - addAdminMenuSql('doubler', NULL, '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Verdoppler','Einstellungen und Einträge auflisten.', 4); - addAdminMenuSql('doubler','list_doubler','Auflisten','Einträge aus der Verdiensttabelle auflisten', 1); - addAdminMenuSql('doubler','config_doubler','Einstellungen','Prozentuale Gebühr usw. einstellen.', 2); - - // Guest menu (informations / default doubler link) - addGuestMenuSql('main', 'doubler', 'Verdoppeln!', 3); - - // Member menu - addMemberMenuSql('main', 'doubler', 'Verdoppeln!', 7); break; case 'remove': // Do stuff when removing extension @@ -127,6 +63,10 @@ INDEX (`userid`)", // Unregister filters unregisterFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXLCUDE_DOUBLER_USERID', TRUE, isExtensionDryRun()); + + // Unregister subject lines + unregisterExtensionPointsData('doubler_direct'); + unregisterExtensionPointsData('doubler_reset'); break; case 'activate': // Do stuff when admin activates this extension @@ -144,132 +84,6 @@ INDEX (`userid`)", break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.0.1': // SQL queries for v0.0.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Mitglieds-Id behoben."); - break; - - case '0.0.2': // SQL queries for v0.0.2 - // Total used points - addConfigAddSql('doubler_user', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Gebühr wird vom Verdoppler-Pott abgezogen."); - break; - - case '0.0.3': // SQL queries for v0.0.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Drei SQL-Fehler beseitigt."); - break; - - case '0.0.4': // SQL queries for v0.0.4 - // Shall I use the doubler's account to take points from? (Y/N, default=Y) - addConfigAddSql('doubler_own', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("{?POINTS?}-Guthaben des Verdopplers kann optional nicht mit einbezogen werden."); - break; - - case '0.0.5': // SQL queries for v0.0.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Counter-Stand und noch zum Verdoppeln übrige {?POINTS?} in Templates eingebunden. Auflistung in Admin-Bereich komplettiert."); - break; - - case '0.0.6': // SQL queries for v0.0.6 - addConfigAddSql('doubler_max_sent', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 1'); - addConfigAddSql('doubler_group_sent', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 1'); - addConfigAddSql('doubler_sent_all', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Gebührenabzug wird beim Einzahlen abgezogen (wurde von Auszahlung abgezogen) und maximal bei Auszahlung zu kontrollierende Accounts einstellbar.
Template admin_config_doubler_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); - break; - - case '0.0.7': // SQL queries for v0.0.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar.

Minus-Guthaben des Verdoppler-Accounts repariert und Mitgliedsmail erweitert mit Transaktionsummer und IP-Nummer."); - break; - - case '0.0.8': // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bitte verschieben Sie die doubler-Templates (Ordner: {?PATH?}/templates/".getLanguage()."/html/) in den neuen Order doubler!"); - break; - - case '0.0.9': // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.1.0': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); - break; - - case '0.1.1': // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Zwei SQL-Fehler in inc/doubler_send.php beseitigt."); - break; - - case '0.1.2': // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); - break; - - case '0.1.3': // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("De-/Aktivieren des mit dieser Erweiterung verknüpften Modules eingebunden."); - break; - - case '0.1.4': // SQL queries for v0.1.4 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=4 WHERE `what`='doubler' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut."); - break; - - case '0.1.5': // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); - break; - - case '0.1.6': // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); - break; - - case '0.1.7': // SQL queries for v0.1.7 - addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_config` SET `doubler_charge`=`doubler_charge`*100 WHERE `config`=0 LIMIT 1'); - addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_config` SET `doubler_ref`=`doubler_ref`*100 WHERE `config`=0 LIMIT 1'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Register points data - registerExtensionPointsData('doubler_direct', 'points', 'LOCKED', 'DIRECT'); - registerExtensionPointsData('doubler_reset' , 'points', 'LOCKED', 'DIRECT'); - - // Update notes - setExtensionUpdateNotes("Doppler-Gutschriften werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - // Total payed out points from your doublers - addConfigAddSql('doubler_used', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - - // Update notes - setExtensionUpdateNotes("Fehlender Konfigurationseintrag doubler_used hinzgefügt."); - break; - - case '0.2.0': // SQL queries for v0.2.0 - // Register filter - registerFilter(__FILE__, __LINE__, 'config_userid_exclusion_sql', 'EXLCUDE_DOUBLER_USERID', FALSE, TRUE, isExtensionDryRun()); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Filter zum Ausschließen des konfigurierten Mitgliedaccounts."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-forced.php b/inc/extensions/ext-forced.php index d85f200df9..7ded2845a1 100644 --- a/inc/extensions/ext-forced.php +++ b/inc/extensions/ext-forced.php @@ -51,113 +51,6 @@ enableExtensionProductive(FALSE); switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running - // Add dependency for ext-earning - addExtensionDependency('earning'); - - // All required tables for this extension: - // - Ads - addDropTableSql('forced_ads'); - addCreateTableSql('forced_ads', " -`forced_ads_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`forced_ads_provider` ENUM('ADMIN', 'MEMBER', 'API', 'UNKNOWN') NOT NULL DEFAULT 'UNKNOWN', -`forced_ads_api_type` VARCHAR(255) NULL DEFAULT NULL, -`forced_ads_ad_url` VARCHAR(255) NULL DEFAULT NULL, -`forced_ads_click_url` VARCHAR(255) NOT NULL, -`forced_ads_width` SMALLINT(3) UNSIGNED NULL DEFAULT NULL, -`forced_ads_height` SMALLINT(3) UNSIGNED NULL DEFAULT NULL, -`forced_ads_alt_text` VARCHAR(255) NULL DEFAULT NULL, -`forced_ads_framebreaker` ENUM('Y','N') NOT NULL DEFAULT 'Y', -`forced_ads_type` VARCHAR(255) NOT NULL DEFAULT 'INVALID', -`forced_ads_views_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`forced_ads_clicks_counter` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`forced_ads_added` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -`forced_ads_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL, -PRIMARY KEY (`forced_ads_id`), -INDEX (`forced_ads_userid`)", - 'Forced Ads Data'); - - // - Connection ->ext-network - addDropTableSql('forced_network'); - addCreateTableSql('forced_network', " -`forced_network_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`forced_ads_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -PRIMARY KEY (`forced_network_id`), -UNIQUE `ads_type` (`forced_ads_id`, `network_type_id`)", - 'Forced Campaign Data'); - - // - Campaigns - addDropTableSql('forced_campaigns'); - addCreateTableSql('forced_campaigns', " -`forced_campaign_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`forced_campaign_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -`forced_campaign_status` ENUM('ACTIVE','PENDING','EXPIRED','LOCKED') NOT NULL DEFAULT 'PENDING', -`forced_campaign_last_locked` TIMESTAMP NULL DEFAULT NULL, -`forced_campaign_lock_reason` VARCHAR(255) NULL DEFAULT NULL, -`forced_campaign_expired` TIMESTAMP NULL DEFAULT NULL, -`forced_campaign_ordered_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`forced_campaign_payment_api` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, -`forced_campaign_reload_lock` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`forced_campaign_minimum_stay` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`forced_ads_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`forced_campaign_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL, -`forced_costs_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, -PRIMARY KEY (`forced_campaign_id`), -INDEX (`forced_costs_id`)", - 'Forced Campaign Data'); - - // - Campaign costs - addDropTableSql('forced_costs'); - addCreateTableSql('forced_costs', " -`forced_costs_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`forced_costs_price_click` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, -`forced_costs_payment_click` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, -`forced_costs_visibility` ENUM('MEMBER','SPONSOR','ALL','NONE') NOT NULL DEFAULT 'NONE', -PRIMARY KEY (`forced_costs_id`)", - 'Forced Campaign Costs'); - - // - Campaign Statistics - addDropTableSql('forced_stats'); - addCreateTableSql('forced_stats', " -`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_remote_addr` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0', -`forced_stats_ua` VARCHAR(255) NULL DEFAULT NULL, -`forced_stats_is_proxy` ENUM('Y','N') NOT NULL DEFAULT 'N', -`forced_stats_session_id` VARCHAR(100) NULL DEFAULT NULL, -PRIMARY KEY (`forced_stats_id`), -INDEX (`forced_stats_campaign_id`), -INDEX (`forced_stats_userid`)", - 'Forced Campaign Statistics'); - - // Menu system - // - Administrator - addAdminMenuSql('forced', NULL, 'Forced-Ads', 'Verwalten Sie hier bequem alle laufenden Forced-Banner, -Textlinks, -PopUps und deren Kampgnen. Sie können hier auch neue Werbmittel (Ads) hinzufügen oder laufende Forced-Kampagnen bei z.B. Regelverstössen sperren oder löschen. Auch das naträgliche Editieren von Ads und Kampagnen ist jederzeit mö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ügen und kö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ügt neue hinzu. Sie können hier diese nachträglich editieren falls Sie mal eine falsche URL eingegeben haben oder den Text ändern wollen. Löschen Sie hier auch Forced-Banner, die nicht mehr gültig sind (z.B. abgelaufen sind). Sollten doch mit dem Werbmittel verknüpfte Kampagnen vorhanden sein, erhalten Sie einen Warnhinweis. Neue Werbmittel können Sie hier ebenfalls hinzufü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önnen Sie Kampagnen stoppen, falls Sie dies wünschen oder ein Regelverstoss vorliegt. Haben Sie ein Werbemittel hinzugefügt, so fügen Sie bitte unbedingt eine Kampagne hinzu, da es sonst nicht angezeigt wird.', 3); - addAdminMenuSql('forced', 'list_forced_costs', 'Preise verwalten', 'Legen Sie die Preise pro Klick für Forced-Werbemittelbuchungen fest und wie viele {OPEN_CONFIG}POINTS{CLOSE_CONFIG} Ihre Mitglieder erhalten sollen. Generell sollten Sie bei Mitgliederbuchungen höhere Kosten pro Klick als was Ihre Mitglieder pro Klick erhalten einstellen, da so die {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abgebaut werden (Sie kö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öscht werden (bitte auch nicht selber tun) da sie auch gleichzeitigt als Reload-Sperre dient.', 5); - - // - Members - addMemberMenuSql('earn', 'forced_banner', 'Forced-Banner', 3); - addMemberMenuSql('earn', 'forced_textlink', 'Forced-Textlinks', 4); - addMemberMenuSql('extras', 'book_forced', 'Forced-Kampagne buchen', 3); - - // Register Forced-PopUps with earning_data table - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_earning_data` (`earning_group`, `earning_provider`, `earning_sorting`) VALUES ('POPUP','FORCED_POPUP',1)"); - - // Register filters - 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()); - registerFilter(__FILE__, __LINE__, 'handle_click_php', 'HANDLE_FORCED_AD_CLICK', FALSE, TRUE, isExtensionDryRun()); - registerFilter(__FILE__, __LINE__, 'handle_view_php', 'HANDLE_FORCED_AD_VIEW', FALSE, TRUE, isExtensionDryRun()); break; case 'remove': // Do stuff when removing extension @@ -172,9 +65,9 @@ INDEX (`forced_stats_userid`)", addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_admin_menu` WHERE `action`='forced'"); addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what` LIKE '%forced%'"); - // Is earning_data there? - if (ifSqlTableExists('earning_data')) { - // Unregister Forced-PopUps from earning_data + // Is ext-earning there? + if (isExtensionInstalled('earning')) { + // Unregister Forced-PopUps from ext-earning addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_earning_data` WHERE `earning_provider`='FORCED_POPUP' LIMIT 1"); } // END - if diff --git a/inc/extensions/ext-grade.php b/inc/extensions/ext-grade.php index accff3319e..3eca648b6c 100644 --- a/inc/extensions/ext-grade.php +++ b/inc/extensions/ext-grade.php @@ -103,7 +103,7 @@ PRIMARY KEY (`connect_id`)", addAdminMenuSql('grade', NULL, 'Accountstufen', 'Stufen Sie Ihre Mitglieder ein, die sie ab einer einstellbaren Anzahl an {OPEN_CONFIG}POINTS{CLOSE_CONFIG} oder bestätigten Mails usw. erhalten und durch die Accountstufe Ermäßigungen oder Sonderboni erhalten können.', 6); addAdminMenuSql('grade', 'list_grade_data', 'Auflisten...', 'Listet alle Accountstufen auf, auch sind diese hier editierbar, neue hinzufügbar und löschbar.', 1); addAdminMenuSql('grade', 'list_cash_grade', 'Ermäßigungen/Sonderboni', 'Listet alle Ermäßigungen/Sonderboni auf, auch sind diese hier editierbar, neue hinzufügbar und löschbar.', 2); - addAdminMenuSql('grade', 'list_current_grades', 'Mitglieder-Accountstufen', 'Liste alle durch die Mitglieder aktuell erreichten Einstungen auf. Diese sind nicht editierbar (wir wollen ja nicht schummeln und bestimmten Mitgliedern bessere Accountstufen geben, oder? ;-) ).', 3); + addAdminMenuSql('grade', 'list_current_grades', 'Mitgliedaccountsstufen', 'Liste alle durch die Mitglieder aktuell erreichten Einstungen auf. Diese sind nicht editierbar (wir wollen ja nicht schummeln und bestimmten Mitgliedern bessere Accountstufen geben, oder? ;-) ).', 3); addAdminMenuSql('grade', 'config_grade', 'Einstellungen ...', 'Diverse Einstellungen zu den Accountstufen.', 4); // Member menu diff --git a/inc/extensions/ext-holiday.php b/inc/extensions/ext-holiday.php index d570f40a46..e5fe2acff3 100644 --- a/inc/extensions/ext-holiday.php +++ b/inc/extensions/ext-holiday.php @@ -159,7 +159,7 @@ INDEX (`userid`)", addConfigAddSql('holiday_lock', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 2)); // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Die Mitglieder-Accounts werden nicht mehr gesperrt, sondern nur auf Urlaub geschaltet. Lassen Sie sich nicht davon verwirren, dass sie "freigegeben" sind!"); + setExtensionUpdateNotes("Die Mitgliedaccounts werden nicht mehr gesperrt, sondern nur auf Urlaub geschaltet. Lassen Sie sich nicht davon verwirren, dass sie "freigegeben" sind!"); break; case '0.1.4': // SQL queries for v0.1.4 diff --git a/inc/extensions/ext-html_mail.php b/inc/extensions/ext-html_mail.php index 21d1c0151e..53eb0ab7ca 100644 --- a/inc/extensions/ext-html_mail.php +++ b/inc/extensions/ext-html_mail.php @@ -41,10 +41,10 @@ if (!defined('__SECURITY')) { } // END - if // Version number -setThisExtensionVersion('0.1.6'); +setThisExtensionVersion('0.1.7'); // 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.51', '0.0.52', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6')); +setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0.0.5', '0.0.51', '0.0.52', '0.0.6', '0.0.7', '0.0.8', '0.0.9', '0.1.0', '0.1.1', '0.1.2', '0.1.3', '0.1.4', '0.1.5', '0.1.6', '0.1.7')); switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running @@ -58,6 +58,9 @@ switch (getExtensionMode()) { case 'remove': // Do stuff when removing extension // SQL commands to run addExtensionSql("DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_member_menu` WHERE `what`='html_mail' LIMIT 1"); + + // Remove filter(s) + unregisterFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_URL', TRUE, isExtensionDryRun()); break; case 'activate': // Do stuff when admin activates this extension @@ -120,8 +123,18 @@ switch (getExtensionMode()) { case '0.1.6': // Dependency is needed for ext-registration!! (want to alter a non existent Table) addExtensionDependency('bonus'); + + // Update notes (these will be set as task text!) setExtensionUpdateNotes("Abhänigkeit von der Erweiterung bonus hinzugefügt."); break; + + case '0.1.7': + // Register filter + registerFilter(__FILE__, __LINE__, 'pre_mail_order', 'CHECK_HTML_MAIL_ORDER', FALSE, TRUE, isExtensionDryRun()); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Filter für ext-order hinzugefügt."); + break; } // END - switch break; diff --git a/inc/extensions/ext-order.php b/inc/extensions/ext-order.php index d366b46418..9d43bfacdd 100644 --- a/inc/extensions/ext-order.php +++ b/inc/extensions/ext-order.php @@ -41,10 +41,10 @@ if (!defined('__SECURITY')) { } // END - if // Version number -setThisExtensionVersion('0.5.9'); +setThisExtensionVersion('0.6.0'); // 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', '0.5.7', '0.5.8', '0.5.9')); +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', '0.5.8', '0.5.9', '0.6.0')); switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running @@ -64,6 +64,11 @@ switch (getExtensionMode()) { 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()); + unregisterFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_SUBJECT', TRUE, isExtensionDryRun()); + unregisterFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_TEXT', TRUE, isExtensionDryRun()); + unregisterFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_TYPE', TRUE, isExtensionDryRun()); + unregisterFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_URL', TRUE, isExtensionDryRun()); + unregisterFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_RECEIVER', TRUE, isExtensionDryRun()); break; case 'activate': // Do stuff when admin activates this extension diff --git a/inc/extensions/ext-other.php b/inc/extensions/ext-other.php index 7806c419cc..50a2b7aeca 100644 --- a/inc/extensions/ext-other.php +++ b/inc/extensions/ext-other.php @@ -74,197 +74,6 @@ switch (getExtensionMode()) { break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.0.1': // SQL queries for v0.0.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler
Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227
behoben."); - break; - - case '0.0.2': // SQL queries for v0.0.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Speichern der Einstellungen vereinfacht. Es wird dazu die Funktion adminSaveSettings() verwendet."); - break; - - case '0.0.3': // SQL queries for v0.0.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.0.4': // SQL queries for v0.0.4 - addConfigAddSql('max_comma', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 3'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Angezeigte Kommastellen können zwischen 0 und 5 eingestellt werden."); - break; - - case '0.0.5': // SQL queries for v0.0.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); - break; - - case '0.0.6': // SQL queries for v0.0.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen endlich beseitigt."); - break; - - case '0.0.7': // SQL queries for v0.0.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ausgabemodus der CSS-Dateien hinzugefügt. Bitte auch das Admin-Template aktualisieren!"); - break; - - case '0.0.8': // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv."); - break; - - case '0.0.9': // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern der Einstellungen repariert."); - break; - - case '0.1.0': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Folgende Einstellungen können auf 0 gesetzt werden: -
    -
  1. Selbe beworbene URL nicht mehr bewerbar (0 = URL kann sofort wieder gebucht werden)
  2. -
  3. Gültigkeitsdauer der Bestätigungslinks (0 = Bestätigungslinks laufen nie ab)
  4. -
  5. Sperrzeit des Mitgliedprofiles nach Änderung (0 = Mitglied kann sein Account immer und sofort ändern)
  6. -
  7. Profilaktualisierungsinterval (0 = Es wird keine Mail zum Profilaktualisierunng durch das Mitglied ausgesendet(
  8. -
  9. Erneute Aussendung der Mail (0 = Siehe oben)
  10. -
"); - break; - - case '0.1.1': // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich voneinander getrentt ein- und auschalten."); - break; - - case '0.1.2': // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); - break; - - case '0.1.3': // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wort "Baustelle" vom Auto-Versand entfernt, da dieser nun klappt."); - break; - - case '0.1.4': // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.1.5': // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.1.6': // SQL queries for v0.1.6 - addConfigAddSql('reject_url', "VARCHAR(255) NOT NULL DEFAULT '{?URL?}'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bei Ablehnung der URL wird jetzt endlich eine Standard-URL eingesetzt, die konfigurierbar ist. Fehler beim Laden der Konfiguration gefunden."); - break; - - case '0.1.7': // SQL queries for v0.1.7 - addConfigAddSql('currency', "VARCHAR(255) NOT NULL DEFAULT '€'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Standard-Währung der Gebühren für alle Erweiterungen geltend hinzugefügt."); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Die sonstigen Einstellungen lassen sich nun nur noch ändern, wenn die Erweiterung other auch installiert ist. Anderfalls gibt es einen SQL-Fehler beim Speichern und GROSS_GESCHRIEBENE Worte im Formular."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - 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ährend der Bestätigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden."); - break; - - case '0.2.0': // SQL queries for v0.2.0 - addConfigChangeSql('mailid_error_redirect', 'mailid_error_redirect', "ENUM('INDEX','REJECT') NOT NULL DEFAULT 'INDEX'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Bei fehlerhafter Mail während der Bestätigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden."); - break; - - case '0.2.1': // SQL queries for v0.2.1 - addConfigAddSql('min_age', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 16'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Minimumalter ist nun konfigurierbar."); - break; - - case '0.2.2': // SQL queries for v0.2.2 - addConfigAddSql('display_debug_sqls', "ENUM('N','Y') NOT NULL DEFAULT 'N'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("(Fast) alle SQL-Abfragen lassen sich nun zu Debugging-Zwecken (!) einschalten. Nur der Administrator sieht diese unten am Ende der Seite."); - break; - - case '0.2.3': // SQL queries for v0.2.3 - addConfigAddSql('max_send', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlende Konfiguration hinzugefügt."); - break; - - case '0.2.4': // SQL queries for v0.2.4 - // Register filter - 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ührten SQL-Anweisungen hinzugefügt."); - break; - - case '0.2.5': // SQL queries for v0.2.5 - addConfigAddSql('code_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 5'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Codelänge aus tables.sql rausgeholt."); - break; - - case '0.2.6': // SQL queries for v0.2.6 - addConfigAddSql('internal_stats', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Interne Statistiken sind nun abschaltbar (kann Performance bringen)."); - break; - - case '0.2.7': // SQL queries for v0.2.7 - addConfigChangeSql('stats_enabled', 'internal_stats', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Der Suffix _enabled in Konfigurationseinträgen ist deprecated und sollte nicht mehr verwendet werden. Da sonst Wrapper-Funktionsnamen wie z.B. isStatsEnabledEnabled() 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("mailid_error_redirect bzw. alle ENUMs haben gross geschriebene Werte."); - break; - - case '0.2.9': // SQL queries for v0.2.9 - addConfigAddSql('word_wrap', 'TINYINT(3) NOT NULL DEFAULT 15'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Anzahl Zeichen für wordwrap()-Aufruf hinzugefügt."); - break; - - case '0.3.0': // SQL queries for v0.3.0 - addConfigAddSql('check_double_email', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('admin_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('activate_xchange', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 100'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Konfiguration aus allgemeiner tables.sql zu dieser Erweiterung verschoben."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-payout.php b/inc/extensions/ext-payout.php index d78bd11cf0..79b6600cf0 100644 --- a/inc/extensions/ext-payout.php +++ b/inc/extensions/ext-payout.php @@ -100,146 +100,6 @@ PRIMARY KEY (`id`)", break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.1.2': // SQL queries for v0.1.2 - addAdminMenuSql('payouts', NULL, 'Auszahlungsmanagement','Management der Auszahlungsarten.',8); - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `action`='payouts',`title`='Einstellungen' WHERE `action`='setup' AND `what`='config_payouts' LIMIT 1"); - break; - - case '0.1.3': // SQL queries for v0.1.3 - addExtensionChangeTableColumnSql('payout_types', 'from_account', "VARCHAR(255) NOT NULL DEFAULT ''"); - addExtensionChangeTableColumnSql('payout_types', 'from_pass', "VARCHAR(255) NOT NULL DEFAULT ''"); - addExtensionChangeTableColumnSql('payout_types', 'engine_url', "VARCHAR(255) NOT NULL DEFAULT ''"); - addExtensionChangeTableColumnSql('payout_types', 'engine_ret_ok', "VARCHAR(255) NOT NULL DEFAULT ''"); - addExtensionChangeTableColumnSql('payout_types', 'engine_ret_failed', "VARCHAR(255) NOT NULL DEFAULT ''"); - addExtensionChangeTableColumnSql('payout_types', 'pass_enc', "ENUM('md5','base64','none') NOT NULL DEFAULT 'md5'"); - break; - - case '0.1.4': // SQL queries for v0.1.4 - addExtensionChangeTableColumnSql('user_payouts', 'password', "VARCHAR(255) NOT NULL DEFAULT ''"); - break; - - case '0.1.5': // SQL queries for v0.1.5 - addExtensionChangeTableColumnSql('user_payouts', 'target_url', 'LONGTEXT NOT NULL'); - addExtensionChangeTableColumnSql('user_payouts', 'banner_url', 'LONGTEXT NOT NULL'); - addExtensionChangeTableColumnSql('user_payouts', 'link_text', "VARCHAR(30) NOT NULL DEFAULT ''"); - addExtensionChangeTableColumnSql('payout_types', 'allow_url', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - break; - - case '0.1.6': // SQL queries for v0.1.6 - addExtensionChangeTableColumnSql('payout_types', 'pass_enc', 'pass_enc', "ENUM('md5','base64','xxx') NOT NULL DEFAULT 'xxx'"); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Auflistung der Auszahlungen ausgelagert in Template member_payout.tpl."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.2.0': // SQL queries for v0.2.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("5 Nachkommastellen implementiert."); - break; - - case '0.2.1': // SQL queries for v0.2.1 - addExtensionChangeTableColumnSql('user_payouts', 'payout_total', 'payout_total', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - addExtensionChangeTableColumnSql('payout_types', 'rate', 'rate', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); - break; - - case '0.2.2': // SQL queries for v0.2.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Buttons aus Aufgabenauflisten ausgelagert"); - break; - - case '0.2.3': // SQL queries for v0.2.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); - break; - - case '0.2.4': // SQL queries for v0.2.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ausgabe der Auszahlungsmöglichkeiten im Mitgliedsbereich repariert."); - break; - - case '0.2.5': // SQL queries for v0.2.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case '0.2.6': // SQL queries for v0.2.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); - break; - - case '0.2.7': // SQL queries for v0.2.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); - break; - - case '0.2.8': // SQL queries for v0.2.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Work-Arount-Lösung zu temporären Problemen mit der Task-Id eingebaut."); - break; - - case '0.2.9': // SQL queries for v0.2.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Nachricht an Admin bei Auszahlungsanfrage wird endlich versendet."); - break; - - case '0.3.0': // SQL queries for v0.3.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); - break; - - case '0.3.1': // SQL queries for v0.3.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler in Auszahlungsfunktion beseitigt, wenn Umrechnungsrate ungleich 1 eingestellt ist."); - break; - - case '0.3.2': // SQL queries for v0.3.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.3.3': // SQL queries for v0.3.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); - break; - - case '0.3.4': // SQL queries for v0.3.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Anzahl zu überweisende {?POINTS?} müssen immer grösser 0 sein, ansonsten bricht das Script mit einer Fehlermeldung an das Mitglied ab."); - break; - - case '0.3.5': // SQL queries for v0.3.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); - break; - - case '0.3.6': // SQL queries for v0.3.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); - break; - - case '0.3.7': // SQL queries for v0.3.7 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Auszahlungsmanagement' WHERE `action`='payouts' AND (`what`='' OR `what` IS NULL) LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Verwaltung nach Management umgestellt."); - break; - - case '0.3.8': // SQL queries for v0.3.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-rallye.php b/inc/extensions/ext-rallye.php index 75b4297759..54c4d84c4d 100644 --- a/inc/extensions/ext-rallye.php +++ b/inc/extensions/ext-rallye.php @@ -134,215 +134,6 @@ INDEX (`userid`)", break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.0.1': // SQL queries for v0.0.1 - addExtensionAddTableColumnSql('rallye_data', 'expired', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ablaufen der Rallyes intergriert."); - break; - - case '0.0.2': // SQL queries for v0.0.2 - addExtensionAddTableColumnSql('rallye_users', 'curr_points', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Aktueller {?POINTS?}-Stand wird beachtet."); - break; - - case '0.0.6': // SQL queries for v0.0.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler Unknown column 'd.useid' in 'on clause' behoben."); - break; - - case '0.0.7': // SQL queries for v0.0.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist."); - break; - - case '0.0.8': // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler Template nicht gefunden behoben und Admin-Formulare ausgelagert"); - break; - - case '0.0.9': // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist. Und der vorherige Fehler Template nicht gefunden ist endlich beseitigt."); - break; - - case '0.1.0': // SQL queries for v0.2.1 - addExtensionChangeTableColumnSql('rallye_users', 'curr_points', 'curr_points', 'FLOAT(23,5) UNSIGNED NOT NULL DEFAULT 0.00000'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("5 Nachkommastellen implementiert."); - break; - - case '0.1.1': // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.1.2': // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); - break; - - case '0.1.3': // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Anzeigefehler im Gast-/Mitgliedsbereich behoben."); - break; - - case '0.1.4': // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Admin-Mails korregiert."); - break; - - case '0.1.5': // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); - break; - - case '0.1.6': // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case '0.1.7': // SQL queries for v0.1.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Aktivierte bzw. abgelaufene Rallyes werden nur ausserhalb des CSS-Modus geladen (wenn also nicht css.php aufgerufen wurde)"); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Weitere Templates vom Admin-Bereich ausgelagert und Referral-Anazahl in der Mail zur Rallye-Ankündigung repariert."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Funktion generateUserProfileLink() mit Verlinkung auf Referral-Liste implementiert."); - break; - - case '0.2.0': // SQL queries for v0.2.0 - addExtensionAddTableColumnSql('rallye_data', 'min_users', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addExtensionAddTableColumnSql('rallye_data', 'min_prices', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 3'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Ablaufen der Rallyes intergriert. Bauen Sie in Ihr Template templates/de/emails/member/member_rallye_notify.tpl folgende zwei Zeilen ein:
-
    -
  • $DATA[min_users]
  • -
  • $DATA[min_prices]
  • -
-Zudem sollten Sie mindestens folgende Templates (in templates/".getLanguage()."/html/guest/ !) aktualisieren:
-
    -
  • guest_rallye_footer.tpl
  • -
  • guest_rallye_header.tpl
  • -
"); - break; - - case '0.2.1': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); - break; - - case '0.2.2': // SQL queries for v0.2.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Links wegen what=admins_contct geändert."); - break; - - case '0.2.3': // SQL queries for v0.2.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); - break; - - case '0.2.4': // SQL queries for v0.2.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.2.5': // SQL queries for v0.2.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Menüpunkt "Rallyes verwalten" repariert."); - break; - - case '0.2.6': // SQL queries for v0.2.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Automatisches Starten von Referral-Rallyes repariert."); - break; - - case '0.2.7': // SQL queries for v0.2.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fatalen Fehler beseitigt."); - break; - - case '0.2.8': // SQL queries for v0.2.8 - // Update notes (these will be set as task text!) - - setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); - break; - - case '0.2.9': // SQL queries for v0.2.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); - break; - - case '0.3.0': // SQL queries for v0.3.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("if-Anweisungen auf Funktion empty() umgestellt."); - break; - - case '0.3.1': // SQL queries for v0.3.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Erweiterung für automatisch generierte Admin-Kontaktlinks geändert."); - break; - - case '0.3.2': // SQL queries for v0.3.2 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals',`title`='Referral-Rallye',`sort`=1 WHERE `what`='rallyes' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut."); - break; - - case '0.3.3': // SQL queries for v0.3.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Rallyes werden nun nur dann automatisch beseitigt, wenn die Erweiterung autopurge installiert und aktiviert ist."); - break; - - case '0.3.4': // SQL queries for v0.3.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); - break; - - case '0.3.5': // SQL queries for 0.3.5 - // Register filter - registerFilter(__FILE__, __LINE__, 'extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', FALSE, TRUE, isExtensionDryRun()); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Filter hinzugefügt und ist von sql_patches abhängig."); - break; - - case '0.3.6': // SQL queries for v0.3.6 - // Register points data - registerExtensionPointsData('rallye_winner', 'points', 'LOCKED', 'DIRECT'); - - // Update notes - setExtensionUpdateNotes("Gewinn aus der Referral-Rallye wird nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); - break; - - case '0.3.7': // SQL queries for v0.3.7 - // Register filter - registerFilter(__FILE__, __LINE__, 'init', 'RALLYE_NOTIFY_USERS', FALSE, TRUE, isExtensionDryRun()); - registerFilter(__FILE__, __LINE__, 'add_rallye_notify_sqls', 'ADD_RALLYE_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun()); - - // Update notes - setExtensionUpdateNotes("Weitere Filter hinzugefügt."); - break; - - case '0.3.8': // SQL queries for v0.3.8 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_rallye_prices' WHERE `action`='rallye' AND `what`='config_rallye_prices' LIMIT 1"); - - // Update notes - setExtensionUpdateNotes("Menü umbenannt, da "config" nur für die Konfigurationstabelle {?_MYSQL_PREFIX?}_config ist."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-ranking.php b/inc/extensions/ext-ranking.php new file mode 100644 index 0000000000..5521cd3292 --- /dev/null +++ b/inc/extensions/ext-ranking.php @@ -0,0 +1,102 @@ + diff --git a/inc/extensions/ext-register.php b/inc/extensions/ext-register.php index 5de3b7daf1..79b4558e95 100644 --- a/inc/extensions/ext-register.php +++ b/inc/extensions/ext-register.php @@ -61,7 +61,6 @@ switch (getExtensionMode()) { // 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()); diff --git a/inc/extensions/ext-removeip.php b/inc/extensions/ext-removeip.php index 5c80253d4e..3a7fb4b073 100644 --- a/inc/extensions/ext-removeip.php +++ b/inc/extensions/ext-removeip.php @@ -84,7 +84,7 @@ switch (getExtensionMode()) { registerFilter(__FILE__, __LINE__, 'post_youhere_line', 'ADD_ANONYMITY_NOTICE', FALSE, TRUE, isExtensionDryRun()); // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Filter hinzugefügt und ist von sql_patches abhängig."); + setExtensionUpdateNotes("Filter hinzugefügt."); break; } // END - switch break; diff --git a/inc/extensions/ext-rewrite.php b/inc/extensions/ext-rewrite.php index ccc62f1819..44a7d844ab 100644 --- a/inc/extensions/ext-rewrite.php +++ b/inc/extensions/ext-rewrite.php @@ -46,8 +46,8 @@ setThisExtensionVersion('0.1.3'); // 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')); -// This extension is deprecated! -// Only since 'seo' is ready! setExtensionDeprecated('Y'); +// This extension is deprecated +// @TODO Only when 'seo' is ready: setExtensionDeprecated('Y'); switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running diff --git a/inc/extensions/ext-sql_patches.php b/inc/extensions/ext-sql_patches.php index 203d7c6f44..fd19bd02d4 100644 --- a/inc/extensions/ext-sql_patches.php +++ b/inc/extensions/ext-sql_patches.php @@ -41,10 +41,10 @@ if (!defined('__SECURITY')) { } // END - if // Version number -setThisExtensionVersion('0.9.8'); +setThisExtensionVersion('0.9.9'); // 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.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')); +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.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')); // Keep this extension always active! setExtensionAlwaysActive('Y'); diff --git a/inc/extensions/ext-surfbar.php b/inc/extensions/ext-surfbar.php index 2f0211148b..87fff72dee 100644 --- a/inc/extensions/ext-surfbar.php +++ b/inc/extensions/ext-surfbar.php @@ -51,173 +51,6 @@ enableExtensionProductive(FALSE); switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running - // SQL commands to run (surfbar URLs) - addDropTableSql('surfbar_urls'); - addCreateTableSql('surfbar_urls', " -`url_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`url_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL, -`url_package_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, -`url` VARCHAR(255) NOT NULL DEFAULT '', -`url_last_salt` VARCHAR(255) NOT NULL DEFAULT '', -`url_views_total` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`url_views_max` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`url_views_allowed` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`url_status` ENUM('PENDING', 'ACTIVE', 'LOCKED', 'STOPPED', 'REJECTED', 'DELETED', 'MIGRATED', 'DEPLETED') NOT NULL DEFAULT 'PENDING', -`url_registered` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -`url_last_locked` TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00', -`url_lock_reason` VARCHAR(255) NOT NULL DEFAULT '', -`url_reject_reason` VARCHAR(255) NOT NULL DEFAULT '', -`url_fixed_reload` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`url_fixed_waiting` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -PRIMARY KEY (`url_id`), -UNIQUE INDEX `userid_url` (`url_userid`, `url`), -INDEX `status_userid` (`url_status`, `url_userid`), -INDEX (`url_package_id`)", - 'Visitor add-on URLs'); - - // Booking packages for members - addDropTableSql('surfbar_packages'); - addCreateTableSql('surfbar_packages', " -`package_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`package_reload` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`package_waiting` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`package_points_costs` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000, -`package_points_reward` FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000, -PRIMARY KEY (`package_id`), -UNIQUE INDEX `package` (`package_reload`, `package_waiting`)", - 'Booking packages'); - - // Reload locks - addDropTableSql('surfbar_locks'); - addCreateTableSql('surfbar_locks', " -`locks_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`locks_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`locks_url_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`locks_last_surfed` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -PRIMARY KEY (`locks_id`), -UNIQUE INDEX `userid_url` (`locks_userid`, `locks_url_id`), -INDEX (`locks_url_id`)", - 'Vistor-addon reload locks'); - - // Visitor add-on salts - addDropTableSql('surfbar_salts'); - addCreateTableSql('surfbar_salts', " -`salts_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`salts_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`salts_url_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`salts_last_salt` VARCHAR(255) NOT NULL DEFAULT '', -PRIMARY KEY (`salts_id`), -UNIQUE INDEX `salts_userid_url` (`salts_userid`, `salts_url_id`), -INDEX (`salts_url_id`)", - 'Visitor add-on last used salts'); - - // Statistics - addDropTableSql('surfbar_stats'); - addCreateTableSql('surfbar_stats', " -`stats_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`stats_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`stats_url_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`stats_count` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`stats_last_surfed` TIMESTAMP ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, -PRIMARY KEY (`stats_id`), -UNIQUE INDEX `userid_url` (`stats_userid`, `stats_url_id`), -INDEX (`stats_url_id`)", - 'Visitor add-on Statistics'); - - // Member actions pending on status - addDropTableSql('surfbar_actions'); - addCreateTableSql('surfbar_actions', " -`actions_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`actions_status` ENUM('PENDING', 'ACTIVE', 'LOCKED', 'STOPPED', 'REJECTED', 'DELETED', 'MIGRATED', 'DEPLETED') NULL DEFAULT NULL, -`actions_action` ENUM('EDIT', 'DELETE', 'PAUSE', 'UNPAUSE', 'FRAMETEST', 'RETREAT', 'RESUBMIT', 'BOOKNOW') NULL DEFAULT NULL, -`actions_new_status` ENUM('PENDING', 'ACTIVE', 'LOCKED', 'STOPPED', 'REJECTED', 'DELETED', 'MIGRATED', 'DEPLETED') NULL DEFAULT NULL, -PRIMARY KEY (`actions_id`), -UNIQUE INDEX `status_action` (`actions_status`, `actions_action`)", - 'Visitor add-on Member Actions'); - - // Member actions - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('PENDING', 'RETREAT', 'DELETED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('PENDING', 'FRAMETEST',NULL)"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('PENDING', 'EDIT',NULL)"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('ACTIVE', 'EDIT', 'PENDING')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('ACTIVE', 'DELETE', 'DELETED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('ACTIVE', 'PAUSE', 'STOPPED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('ACTIVE', 'FRAMETEST',NULL)"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('LOCKED', 'DELETE', 'DELETED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('LOCKED', 'FRAMETEST',NULL)"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('LOCKED', 'RESUBMIT', 'PENDING')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('STOPPED', 'EDIT', 'PENDING')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('STOPPED', 'DELETE', 'DELETED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('STOPPED', 'UNPAUSE', 'PENDING')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('DEPLETED', 'EDIT', 'PENDING')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('DEPLETED', 'DELETE', 'DELETED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('REJECTED', 'EDIT', 'PENDING')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('REJECTED', 'DELETE', 'DELETED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('REJECTED', 'FRAMETEST',NULL)"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('REJECTED', 'RESUBMIT', 'PENDING')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('MIGRATED', 'EDIT', 'MIGRATED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('MIGRATED', 'DELETE', 'DELETED')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('MIGRATED', 'FRAMETEST',NULL)"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_surfbar_actions` (`actions_status`, `actions_action`, `actions_new_status`) VALUES ('MIGRATED', 'BOOKNOW', 'PENDING')"); - - // Config entries - addConfigAddSql('surfbar_payment_model', "ENUM('STATIC', 'DYNAMIC') NOT NULL DEFAULT 'STATIC'"); - addConfigAddSql('surfbar_static_reward', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.25000'); - addConfigAddSql('surfbar_static_costs', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 1.00000'); - addConfigAddSql('surfbar_static_time', 'SMALLINT(6) UNSIGNED NOT NULL DEFAULT 60'); - addConfigAddSql('surfbar_static_lock', 'SMALLINT(6) UNSIGNED NOT NULL DEFAULT ' . (60 * 5)); - 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_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_yester_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addConfigAddSql('surfbar_weekly_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addConfigAddSql('surfbar_monthly_counter', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); - addConfigAddSql('surfbar_stats_reload', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 30'); - addConfigAddSql('surfbar_purge_deleted', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 7)); - addConfigAddSql('surfbar_purge_migrated', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 3)); - addConfigAddSql('surfbar_pause_mode', "ENUM('INTERNAL', 'EXERNAL') NOT NULL DEFAULT 'INTERNAL'"); - addConfigAddSql('surfbar_pause_url', "VARCHAR(255) NOT NULL DEFAULT ''"); - addConfigAddSql('surfbar_notify_limits', "ENUM('Y', 'N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('surfbar_notify_admin_unlock', "ENUM('Y', 'N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('surfbar_warn_low_points', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 100'); - addConfigAddSql('surfbar_low_interval', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}'); - addConfigAddSql('surfbar_migrate_order', "ENUM('Y', 'N') NOT NULL DEFAULT 'Y'"); - addConfigAddSql('surfbar_notification_mode', "ENUM('INSTANT', 'RESET') NOT NULL DEFAULT 'INSTANT'"); - addConfigAddSql('surfbar_guest_login_form', "ENUM('Y', 'N') NOT NULL DEFAULT 'Y'"); - - // Extend user data - addExtensionAddTableColumnSql('user_data', 'surfbar_low_notified', "TIMESTAMP NOT NULL DEFAULT '0000-00-00 00:00:00'"); - - // Member menus - addMemberMenuSql('surfbar', NULL, 'Besuchertausch', 4); - addMemberMenuSql('surfbar', 'start_surfbar', 'Besuchertausch starten', 1); - addMemberMenuSql('surfbar', 'book_surfbar', 'Seite buchen', 2); - addMemberMenuSql('surfbar', 'list_surfbar', 'Seiten-Management', 3); - addMemberMenuSql('surfbar', 'stats_surfbar', 'Seiten-Statistik', 4); - - // Admin menus - addAdminMenuSql('surfbar', NULL, 'Besuchertausch', 'URLs im Besuchertausch verwalten, Einstellungen ändern und vieles mehr.', 7); - addAdminMenuSql('surfbar', 'add_surfbar_url', 'URL hinzufügen', 'Fügen Sie URLs z.B. von Werbenetzwerken hinzu, oder Ihre eigenen Projekte. Vorsicht! Ihnen muss es auch gestattet sein, URLs aus dem Werbenetzwerk im Besuchertausch einzufügen.', 1); - addAdminMenuSql('surfbar', 'list_surfbar_urls', 'URLs verwalten', 'Verwalten Sie hier alle im Besuchertausch befindlichen URLs mit nur wenigen Klicks.', 2); - addAdminMenuSql('surfbar', 'unlock_surfbar_urls', 'Wartende URLs freigeben', 'Geben Sie hier für den Besuchertausch gebuchte URLs frei.', 3); - addAdminMenuSql('surfbar', 'list_surfbar_packages', 'Buchungspakete verwalten', '"Buchungspakete" erlauben dem Mitglied nur von Ihnen definierte Reloadzeiten und Mindestauffenthalte.', 4); - addAdminMenuSql('surfbar', 'config_surfbar', 'Einstellungen', 'Einstellungen am Besuchertausch ändern, wie Festvergütung, prozentuale Ref-Vergütung und vieles mehr.', 5); - addAdminMenuSql('surfbar', 'surfbar_stats', 'Statistiken', 'Detailierte Statistiken zu einer ausgewählten URL anzeigen.', 6); - addAdminMenuSql('surfbar', 'list_surfbar_actions', 'Mitglieder-Aktionen', 'Listet alle Mitglieder-Aktionen auf.', 7); - - // Register module - addModuleSql('surfbar', '{OPEN_LANGUAGE}MODULE_SURFBAR_TITLE{CLOSE_LANGUAGE}', 'Y', 'Y', 'N', 'N'); - - // Insert data for points accounts - registerExtensionPointsData('monthly_surfbar', 'points', 'LOCKED', 'DIRECT'); - - // Register filters - 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 diff --git a/inc/extensions/ext-task.php b/inc/extensions/ext-task.php index e3675f30ec..5aad99b64f 100644 --- a/inc/extensions/ext-task.php +++ b/inc/extensions/ext-task.php @@ -80,179 +80,6 @@ switch (getExtensionMode()) { break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.0.1': // SQL queries for v0.0.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Veraltetes Update entfernt."); - break; - - case '0.0.1': // SQL queries for v0.0.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Unnötige Script-Teile aus what-list_tasks.php herausgelöscht; beim Anzeigen einer Extension-Update, oder -Register Aufgabe werden bei eingeschaltetem Verbose-Modus alle SQL-Anweisungen aufgelistet."); - break; - - case '0.0.4': // SQL queries for v0.0.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler
Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227
behoben."); - break; - - case '0.0.5': // SQL queries for v0.0.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("&admin= in &amp;admin= umgewandelt."); - break; - - case '0.0.6': // SQL queries for v0.0.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert."); - break; - - case '0.0.7': // SQL queries for v0.0.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Erstellung der Extra-Übersichten verbessert."); - break; - - case '0.0.8': // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.0.9': // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler bei Abfrage der payout-Erweiterung beseitigt."); - break; - - case '0.1.0': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Task-Liste ausgelagert als Template"); - break; - - case '0.1.1': // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Design "Solid-Business" eingebaut."); - break; - - case '0.1.2': // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case '0.1.3': // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); - break; - - case '0.1.4': // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); - break; - - case '0.1.5': // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Links wegen what=admins_contct geändert."); - break; - - case '0.1.6': // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Weitere Direkt-Links eingebaut:
-
    -
  • Ländercodes
  • -
  • Wartende Verdopplungen
  • -
  • Geändert: Wartende Auszahlungen
  • -
  • Teilnehmer an der Aktiv-Rallye
  • -
  • Nett hinweisende Linktitel hinzugefügt. :-)
  • -
"); - break; - - case '0.1.7': // SQL queries for v0.1.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Direkt Links zum Sponsorenbereich vorbereitend eingebaut."); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Es werden alle installierten und aktivierten Themes angezeigt und verlinkt."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("CSS-Datei in general.css verschmolzen (Patch 435!)"); - break; - - case '0.2.0': // SQL queries for v0.2.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Alle Administratoren, Referral-Banner und aktivierte Referral-Banner werden nun eingeblendet."); - break; - - case '0.2.1': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit überlanger Textbreite beseitigt."); - break; - - case '0.2.2': // SQL queries for v0.2.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link zum Freischalten von Sponoren-Accounts korregiert."); - break; - - case '0.2.3': // SQL queries for v0.2.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sortierungsreihenfolge grundlegend geändert: Es wird jetzt nach Mitglieds-Id, Aufgabenbereich, Infos und nach dem Erstellunsdatum sortiert."); - break; - - case '0.2.4': // SQL queries for v0.2.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.2.5': // SQL queries for v0.2.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Nur mit bonus v0.6.9 oder höher: Zuschaltbare Bonis werden auch bei der Ermittlung Anzahl teilnehmender Mitglieder mit ber&uumk;cksichtigt."); - break; - - case '0.2.6': // SQL queries for v0.2.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Teilnehmer der Bettel-Rallye werden angezeigt."); - break; - - case '0.2.7': // SQL queries for v0.2.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link zum direkten Aufheben einer Urlaubsschaltung eines Mitgliedes korregiert."); - break; - - case '0.2.8': // SQL queries for v0.2.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); - break; - - case '0.2.9': // SQL queries for v0.2.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("if-Anweisungen auf Funktion empty() umgestellt. Update-Aufgaben werden nach "Bearbeitung" nicht mehr als Erledigt gesetzt. Dies hatte sonst den Anschein, die Update-Aufgaben müssten erledigt werden, um die Erweiterungs-Updates einzuspielen, was aber automatisch geschieht."); - break; - - case '0.3.0': // SQL queries for v0.3.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Export-Accounts werden in Task-Übersicht aufgelistet."); - break; - - case '0.3.1': // SQL queries for v0.3.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Diverse Fixes an den Templates (Notice-Hinweise vom PHP-Interpreter entfernt)."); - break; - - case '0.3.2': // SQL queries for v0.3.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Hängt nun von ext-user ab."); - break; - - case '0.3.3': // SQL queries for v0.3.3 - addExtensionChangeTableColumnSql('task_system', 'assigned_admin', 'assigned_admin', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL'); - addExtensionChangeTableColumnSql('task_system', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL'); - addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `assigned_admin`=NULL WHERE `assigned_admin`=0'); - addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `userid`=NULL WHERE `userid`=0'); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Zugewiesener Admin und User-Id dürfen nun NULL sein."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-timezone.php b/inc/extensions/ext-timezone.php index 61079e3476..0401251cd9 100644 --- a/inc/extensions/ext-timezone.php +++ b/inc/extensions/ext-timezone.php @@ -79,15 +79,11 @@ switch (getExtensionMode()) { case 'update': // Update an extension switch (getCurrentExtensionVersion()) { case '0.0.1': // SQL queries for v0.0.1 - addExtensionSql(""); + addExtensionSql(''); // Update notes (these will be set as task text!) setExtensionUpdateNotes("Beschreinungstext des Updates."); break; - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Filter zum Zurücksetzens des fehlgeschlagenen Mitgliederlogins hinzugefügt (internes TODO)."); - break; } // END - switch break; diff --git a/inc/extensions/ext-top10.php b/inc/extensions/ext-top10.php index d8555dbbd8..4ec6e30adf 100644 --- a/inc/extensions/ext-top10.php +++ b/inc/extensions/ext-top10.php @@ -46,6 +46,9 @@ setThisExtensionVersion('0.1.2'); // 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')); +// This extension is deprecated +// @TODO Only deprecated when 'ext-ranking' is ready: setExtensionDeprecated('Y'); + switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running // SQL commands to run diff --git a/inc/extensions/ext-transaction.php b/inc/extensions/ext-transaction.php new file mode 100644 index 0000000000..c420a20190 --- /dev/null +++ b/inc/extensions/ext-transaction.php @@ -0,0 +1,101 @@ + diff --git a/inc/extensions/ext-transfer.php b/inc/extensions/ext-transfer.php index 46537a742e..2dc04f171a 100644 --- a/inc/extensions/ext-transfer.php +++ b/inc/extensions/ext-transfer.php @@ -48,54 +48,6 @@ setExtensionVersionHistory(array('0.0.0', '0.0.1', '0.0.2', '0.0.3', '0.0.4', '0 switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running - // Transfer from a member - addDropTableSql('user_transfers_in'); - addCreateTableSql('user_transfers_in', " -`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`from_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`reason` VARCHAR(255) NOT NULL DEFAULT '', -`time_trans` VARCHAR(14) NOT NULL DEFAULT 0, -`trans_id` VARCHAR(12) NOT NULL DEFAULT '', -PRIMARY KEY (`id`), -INDEX (`userid`), -INDEX (`from_userid`)", - 'Ingoing points transfers'); - - // Transfers to a member - addDropTableSql('user_transfers_out'); - addCreateTableSql('user_transfers_out', " -`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, -`userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`to_userid` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`points` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, -`reason` VARCHAR(255) NOT NULL DEFAULT '', -`time_trans` VARCHAR(14) NOT NULL DEFAULT 0, -`trans_id` VARCHAR(12) NOT NULL DEFAULT '', -PRIMARY KEY (`id`), -INDEX (`userid`), -INDEX (`to_userid`)", - 'Outgoing points transfers'); - - // Admin menu - addAdminMenuSql('transfer', NULL, '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Transfer','Verwalten Sie hier die {OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Transaktionen zwischen Ihren Mitgliedern.', 7); - addAdminMenuSql('transfer','list_transfer','Auflisten','Hier bekommen Sie alle ein- und ausgehende Transaktionen aufgelistet.', 1); - addAdminMenuSql('transfer','config_transfer','Einstellungen','Stellen Sie ein, wie viele Transaktionen aufgelistet werden sollen und wie alt diese werden dürfen. Die evtl. installierte autopurge-Erweiterung kann dann automatisch die veralteten Transktionen löschen.', 2); - addAdminMenuSql('transfer','del_transfer','Manuell löschen','Hier können Sie - abgesehen von der automatischen Löschung - Transaktionen selber löschen. Bitte beachten Sie, dass immer aus- und eingehende Transaktionen gleichzeitig gelöscht werden.', 3); - - // Member menu - addMemberMenuSql('extras', 'transfer', '{OPEN_CONFIG}POINTS{CLOSE_CONFIG}-Transfer', 5); - - // Add config values - addConfigAddSql('transfer_max', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 50'); - addConfigAddSql('transfer_age', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT ' . (getOneDay() * 28)); - addConfigAddSql('transfer_timeout', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT {?ONE_DAY?}'); - addConfigAddSql('transfer_balance', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 100'); - addConfigAddSql('transfer_code', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 5'); - - // Add row(s) to user's data - addExtensionAddTableColumnSql('user_data', 'opt_in', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); break; case 'remove': // Do stuff when removing extension @@ -121,163 +73,6 @@ INDEX (`to_userid`)", break; case 'update': // Update an extension - switch (getCurrentExtensionVersion()) { - case '0.0.2': // SQL queries for v0.0.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler
Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227
behoben."); - break; - - case '0.0.3': // SQL queries for v0.0.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Überflüssige unset()-Anweisungen aus der what-config_transfer.php entfernt. Dies wird bereits von der eigenen Funktion adminSaveSettings() erledigt."); - break; - - case '0.0.3': // SQL queries for v0.0.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist."); - break; - - case '0.0.5': // SQL queries for v0.0.5 - addConfigAddSql('ap_transfer', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link Auflisten im Admin-Bereich hatte das eingeloggte Mitglied und nicht den eingeloggten Admin abgefragt. Automatisches Löschen von veraltete Einträgen kann unabhängig von der autopurge-Erweiterung de-/aktiviert werden. Bitte aktualisieren Sie auch die beiden Admin-Templates!"); - break; - - case '0.0.6': // SQL queries for v0.0.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert."); - break; - - case '0.0.7': // SQL queries for v0.0.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); - break; - - case '0.0.8': // SQL queries for v0.0.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit E in Transaktionsnummer beseitigt."); - break; - - case '0.0.9': // SQL queries for v0.0.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); - break; - - case '0.1.0': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); - break; - - case '0.1.1': // SQL queries for v0.1.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Design "Solid-Business" eingebaut."); - break; - - case '0.1.2': // SQL queries for v0.1.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); - break; - - case '0.1.3': // SQL queries for v0.1.3 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); - break; - - case '0.1.4': // SQL queries for v0.1.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); - break; - - case '0.1.5': // SQL queries for v0.1.5 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Template admin_config_transfer_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); - break; - - case '0.1.6': // SQL queries for v0.1.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); - break; - - case '0.1.7': // SQL queries for v0.1.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Wort Punkte dynamisiert."); - break; - - case '0.1.8': // SQL queries for v0.1.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); - break; - - case '0.1.9': // SQL queries for v0.1.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Parser-Error im Mitgliedsbereich beseitigt."); - break; - - case '0.2.0': // SQL queries for v0.2.0 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); - break; - - case '0.2.1': // SQL queries for v0.2.1 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Durchführung des Transfers korregiert."); - break; - - case '0.2.2': // SQL queries for v0.2.2 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); - break; - - case '0.2.3': // SQL queries for v0.2.3 - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'list_transfer')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'del_transfer')"); - addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('config', '', 'config_transfer')"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Erweiterung in's neue Menüsystem integriert."); - break; - - case '0.2.4': // SQL queries for v0.2.4 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Touring-Code wiederholen nach Touring-Code eingeben hin geändert."); - break; - - case '0.2.5': // SQL queries for v0.2.5 - addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=5 WHERE `what`='transfer' LIMIT 1"); - - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Eintrag im Mitgliedsmenü verschoben."); - break; - - case '0.2.6': // SQL queries for v0.2.6 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); - break; - - case '0.2.7': // SQL queries for v0.2.7 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Die {?POINTS?} können nun wieder wie gewohnt transferiert werden. Der Grund für {--MEMBER_TRANSFER_INVALID_PASSWORD--} war, dass der Cookie-Hash ein anderer ist, als der in der Datenbank... :-/"); - break; - - case '0.2.8': // SQL queries for v0.2.8 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlermeldung Notice: Undefined index: to_userid in {?PATH?}/inc/modules/member/what-transfer.php on line 301 gefixt. Danke an Piter01."); - break; - - case '0.2.9': // SQL queries for v0.2.9 - // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); - break; - - case '0.3.0': // SQL queries for v0.3.0 - // Register points data - registerExtensionPointsData('transfer', 'points', 'LOCKED', 'DIRECT'); - - // Update notes - setExtensionUpdateNotes("Ünerweisungen anderer Mitglieder werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); - break; - } // END - switch break; case 'modify': // When the extension got modified diff --git a/inc/extensions/ext-yoomedia.php b/inc/extensions/ext-yoomedia.php index 212d75856e..c2fb185024 100644 --- a/inc/extensions/ext-yoomedia.php +++ b/inc/extensions/ext-yoomedia.php @@ -50,8 +50,8 @@ setExtensionVersionHistory(array('0.0.0')); // Keep this extension always active! setExtensionAlwaysActive('Y'); -// This extension is deprecated! -// @TODO Only deprecated when 'ext-network' is ready! setExtensionDeprecated('Y'); +// This extension is deprecated +// @TODO Only deprecated when 'ext-network' is ready: setExtensionDeprecated('Y'); switch (getExtensionMode()) { case 'setup': // Do stuff when installation is running diff --git a/inc/extensions/forced/.htaccess b/inc/extensions/forced/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/forced/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/forced/mode-setup.php b/inc/extensions/forced/mode-setup.php new file mode 100644 index 0000000000..bde8a08b58 --- /dev/null +++ b/inc/extensions/forced/mode-setup.php @@ -0,0 +1,153 @@ + ext-network + addDropTableSql('forced_network'); + addCreateTableSql('forced_network', " +`forced_network_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`forced_ads_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`network_type_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +PRIMARY KEY (`forced_network_id`), +UNIQUE `ads_type` (`forced_ads_id`, `network_type_id`)", + 'Forced Campaign Data'); + + // - Campaigns + addDropTableSql('forced_campaigns'); + addCreateTableSql('forced_campaigns', " +`forced_campaign_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`forced_campaign_created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, +`forced_campaign_status` ENUM('ACTIVE','PENDING','EXPIRED','LOCKED') NOT NULL DEFAULT 'PENDING', +`forced_campaign_last_locked` TIMESTAMP NULL DEFAULT NULL, +`forced_campaign_lock_reason` VARCHAR(255) NULL DEFAULT NULL, +`forced_campaign_expired` TIMESTAMP NULL DEFAULT NULL, +`forced_campaign_ordered_clicks` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_campaign_payment_api` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, +`forced_campaign_reload_lock` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_campaign_minimum_stay` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_ads_id` BIGINT(20) UNSIGNED NOT NULL DEFAULT 0, +`forced_campaign_userid` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +`forced_costs_id` BIGINT(20) UNSIGNED NULL DEFAULT NULL, +PRIMARY KEY (`forced_campaign_id`), +INDEX (`forced_costs_id`)", + 'Forced Campaign Data'); + + // - Campaign costs + addDropTableSql('forced_costs'); + addCreateTableSql('forced_costs', " +`forced_costs_id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT, +`forced_costs_price_click` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, +`forced_costs_payment_click` FLOAT(20,5) UNSIGNED NULL DEFAULT NULL, +`forced_costs_visibility` ENUM('MEMBER','SPONSOR','ALL','NONE') NOT NULL DEFAULT 'NONE', +PRIMARY KEY (`forced_costs_id`)", + 'Forced Campaign Costs'); + + // - Campaign Statistics + addDropTableSql('forced_stats'); + addCreateTableSql('forced_stats', " +`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_remote_addr` VARCHAR(15) NOT NULL DEFAULT '0.0.0.0', +`forced_stats_ua` VARCHAR(255) NULL DEFAULT NULL, +`forced_stats_is_proxy` ENUM('Y','N') NOT NULL DEFAULT 'N', +`forced_stats_session_id` VARCHAR(100) NULL DEFAULT NULL, +PRIMARY KEY (`forced_stats_id`), +INDEX (`forced_stats_campaign_id`), +INDEX (`forced_stats_userid`)", + 'Forced Campaign Statistics'); + + // Menu system + // - Administrator + addAdminMenuSql('forced', NULL, 'Forced-Ads', 'Verwalten Sie hier bequem alle laufenden Forced-Banner, -Textlinks, -PopUps und deren Kampgnen. Sie können hier auch neue Werbmittel (Ads) hinzufügen oder laufende Forced-Kampagnen bei z.B. Regelverstössen sperren oder löschen. Auch das naträgliche Editieren von Ads und Kampagnen ist jederzeit mö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ügen und kö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ügt neue hinzu. Sie können hier diese nachträglich editieren falls Sie mal eine falsche URL eingegeben haben oder den Text ändern wollen. Löschen Sie hier auch Forced-Banner, die nicht mehr gültig sind (z.B. abgelaufen sind). Sollten doch mit dem Werbmittel verknüpfte Kampagnen vorhanden sein, erhalten Sie einen Warnhinweis. Neue Werbmittel können Sie hier ebenfalls hinzufü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önnen Sie Kampagnen stoppen, falls Sie dies wünschen oder ein Regelverstoss vorliegt. Haben Sie ein Werbemittel hinzugefügt, so fügen Sie bitte unbedingt eine Kampagne hinzu, da es sonst nicht angezeigt wird.', 3); + addAdminMenuSql('forced', 'list_forced_costs', 'Preise verwalten', 'Legen Sie die Preise pro Klick für Forced-Werbemittelbuchungen fest und wie viele {OPEN_CONFIG}POINTS{CLOSE_CONFIG} Ihre Mitglieder erhalten sollen. Generell sollten Sie bei Mitgliederbuchungen höhere Kosten pro Klick als was Ihre Mitglieder pro Klick erhalten einstellen, da so die {OPEN_CONFIG}POINTS{CLOSE_CONFIG} abgebaut werden (Sie kö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öscht werden (bitte auch nicht selber tun) da sie auch gleichzeitigt als Reload-Sperre dient.', 5); + + // - Members + addMemberMenuSql('earn', 'forced_banner', 'Forced-Banner', 3); + addMemberMenuSql('earn', 'forced_textlink', 'Forced-Textlinks', 4); + addMemberMenuSql('extras', 'book_forced', 'Forced-Kampagne buchen', 3); + + // Register Forced-PopUps with earning_data table + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_earning_data` (`earning_group`, `earning_provider`, `earning_sorting`) VALUES ('POPUP','FORCED_POPUP',1)"); + + // Register filters + 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()); + registerFilter(__FILE__, __LINE__, 'handle_click_php', 'HANDLE_FORCED_AD_CLICK', FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'handle_view_php', 'HANDLE_FORCED_AD_VIEW', FALSE, TRUE, isExtensionDryRun()); + +// [EOF] +?> diff --git a/inc/extensions/order/mode-update.php b/inc/extensions/order/mode-update.php index 8dd5abc245..dc5e9d810e 100644 --- a/inc/extensions/order/mode-update.php +++ b/inc/extensions/order/mode-update.php @@ -352,6 +352,18 @@ nicht die vom Mitglied eingegebene. Resultat: Das Script beschwerte sich, der Us // Update notes (these will be set as task text!) setExtensionUpdateNotes("Konfiguration wird nun in dieser Erweiterung hinzugefügt (vorher: allgemeine tables.sql)."); break; + + case '0.6.0': // SQL queries for v0.6.0 + // Register filters + registerFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_SUBJECT' , FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_TEXT' , FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_TYPE' , FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_URL' , FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'pre_mail_order', 'MAIL_ORDER_GENERIC_CHECK_RECEIVER', FALSE, TRUE, isExtensionDryRun()); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Filter für gesperrtes Werbeguthaben hinzugefügt."); + break; } // END - switch // [EOF] diff --git a/inc/extensions/other/.htaccess b/inc/extensions/other/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/other/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/other/mode-update.php b/inc/extensions/other/mode-update.php new file mode 100644 index 0000000000..b89a49ca93 --- /dev/null +++ b/inc/extensions/other/mode-update.php @@ -0,0 +1,237 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227 behoben."); + break; + + case '0.0.2': // SQL queries for v0.0.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Speichern der Einstellungen vereinfacht. Es wird dazu die Funktion adminSaveSettings() verwendet."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.0.4': // SQL queries for v0.0.4 + addConfigAddSql('max_comma', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 3'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Angezeigte Kommastellen können zwischen 0 und 5 eingestellt werden."); + break; + + case '0.0.5': // SQL queries for v0.0.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); + break; + + case '0.0.6': // SQL queries for v0.0.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen endlich beseitigt."); + break; + + case '0.0.7': // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ausgabemodus der CSS-Dateien hinzugefügt. Bitte auch das Admin-Template aktualisieren!"); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Erweiterung bleibt wegen integrierten Schalters immer aktiv."); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern der Einstellungen repariert."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Folgende Einstellungen können auf 0 gesetzt werden: +
    +
  1. Selbe beworbene URL nicht mehr bewerbar (0 = URL kann sofort wieder gebucht werden)
  2. +
  3. Gültigkeitsdauer der Bestätigungslinks (0 = Bestätigungslinks laufen nie ab)
  4. +
  5. Sperrzeit des Mitgliedprofiles nach Änderung (0 = Mitglied kann sein Account immer und sofort ändern)
  6. +
  7. Profilaktualisierungsinterval (0 = Es wird keine Mail zum Profilaktualisierunng durch das Mitglied ausgesendet(
  8. +
  9. Erneute Aussendung der Mail (0 = Siehe oben)
  10. +
"); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Gast- und Mitgliedsmenüs lassen sich voneinander getrentt ein- und auschalten."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wort "Baustelle" vom Auto-Versand entfernt, da dieser nun klappt."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.1.6': // SQL queries for v0.1.6 + addConfigAddSql('reject_url', "VARCHAR(255) NOT NULL DEFAULT '{?URL?}'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bei Ablehnung der URL wird jetzt endlich eine Standard-URL eingesetzt, die konfigurierbar ist. Fehler beim Laden der Konfiguration gefunden."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + addConfigAddSql('currency', "VARCHAR(255) NOT NULL DEFAULT '€'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Standard-Währung der Gebühren für alle Erweiterungen geltend hinzugefügt."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Die sonstigen Einstellungen lassen sich nun nur noch ändern, wenn die Erweiterung other auch installiert ist. Anderfalls gibt es einen SQL-Fehler beim Speichern und GROSS_GESCHRIEBENE Worte im Formular."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + 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ährend der Bestätigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + addConfigChangeSql('mailid_error_redirect', 'mailid_error_redirect', "ENUM('INDEX','REJECT') NOT NULL DEFAULT 'INDEX'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Bei fehlerhafter Mail während der Bestätigung kann wahlweise zur Hauptseite weitergeleitet oder auf die eingestellte Ablehnungsseite umgeleitet werden."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + addConfigAddSql('min_age', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 16'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Minimumalter ist nun konfigurierbar."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + addConfigAddSql('display_debug_sqls', "ENUM('N','Y') NOT NULL DEFAULT 'N'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("(Fast) alle SQL-Abfragen lassen sich nun zu Debugging-Zwecken (!) einschalten. Nur der Administrator sieht diese unten am Ende der Seite."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + addConfigAddSql('max_send', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 10'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlende Konfiguration hinzugefügt."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // Register filter + 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ührten SQL-Anweisungen hinzugefügt."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + addConfigAddSql('code_length', 'TINYINT(3) UNSIGNED NOT NULL DEFAULT 5'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Codelänge aus tables.sql rausgeholt."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + addConfigAddSql('internal_stats', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Interne Statistiken sind nun abschaltbar (kann Performance bringen)."); + break; + + case '0.2.7': // SQL queries for v0.2.7 + addConfigChangeSql('stats_enabled', 'internal_stats', "ENUM('Y','N') NOT NULL DEFAULT 'N'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Der Suffix _enabled in Konfigurationseinträgen ist deprecated und sollte nicht mehr verwendet werden. Da sonst Wrapper-Funktionsnamen wie z.B. isStatsEnabledEnabled() 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("mailid_error_redirect bzw. alle ENUMs haben gross geschriebene Werte."); + break; + + case '0.2.9': // SQL queries for v0.2.9 + addConfigAddSql('word_wrap', 'TINYINT(3) NOT NULL DEFAULT 15'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Anzahl Zeichen für wordwrap()-Aufruf hinzugefügt."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + addConfigAddSql('check_double_email', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('admin_notify', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + addConfigAddSql('activate_xchange', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 100'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Konfiguration aus allgemeiner tables.sql zu dieser Erweiterung verschoben."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/payout/.htaccess b/inc/extensions/payout/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/payout/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/payout/mode-update.php b/inc/extensions/payout/mode-update.php new file mode 100644 index 0000000000..dff898fab5 --- /dev/null +++ b/inc/extensions/payout/mode-update.php @@ -0,0 +1,201 @@ +member_payout.tpl."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("5 Nachkommastellen implementiert."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + addExtensionChangeTableColumnSql('user_payouts', 'payout_total', 'payout_total', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + addExtensionChangeTableColumnSql('payout_types', 'rate', 'rate', 'FLOAT(20,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Buttons aus Aufgabenauflisten ausgelagert"); + break; + + case '0.2.3': // SQL queries for v0.2.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ausgabe der Auszahlungsmöglichkeiten im Mitgliedsbereich repariert."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); + break; + + case '0.2.7': // SQL queries for v0.2.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); + break; + + case '0.2.8': // SQL queries for v0.2.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Work-Arount-Lösung zu temporären Problemen mit der Task-Id eingebaut."); + break; + + case '0.2.9': // SQL queries for v0.2.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Nachricht an Admin bei Auszahlungsanfrage wird endlich versendet."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); + break; + + case '0.3.1': // SQL queries for v0.3.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler in Auszahlungsfunktion beseitigt, wenn Umrechnungsrate ungleich 1 eingestellt ist."); + break; + + case '0.3.2': // SQL queries for v0.3.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.3.3': // SQL queries for v0.3.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); + break; + + case '0.3.4': // SQL queries for v0.3.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Anzahl zu überweisende {?POINTS?} müssen immer grösser 0 sein, ansonsten bricht das Script mit einer Fehlermeldung an das Mitglied ab."); + break; + + case '0.3.5': // SQL queries for v0.3.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.3.6': // SQL queries for v0.3.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); + break; + + case '0.3.7': // SQL queries for v0.3.7 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `title`='Auszahlungsmanagement' WHERE `action`='payouts' AND (`what`='' OR `what` IS NULL) LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Verwaltung nach Management umgestellt."); + break; + + case '0.3.8': // SQL queries for v0.3.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/rallye/.htaccess b/inc/extensions/rallye/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/rallye/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/rallye/mode-update.php b/inc/extensions/rallye/mode-update.php new file mode 100644 index 0000000000..5db9e4b548 --- /dev/null +++ b/inc/extensions/rallye/mode-update.php @@ -0,0 +1,255 @@ +Unknown column 'd.useid' in 'on clause' behoben."); + break; + + case '0.0.7': // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler Template nicht gefunden behoben und Admin-Formulare ausgelagert"); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist. Und der vorherige Fehler Template nicht gefunden ist endlich beseitigt."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + addExtensionChangeTableColumnSql('rallye_users', 'curr_points', 'curr_points', 'FLOAT(23,5) UNSIGNED NOT NULL DEFAULT 0.00000'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("5 Nachkommastellen implementiert."); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Anzeigefehler im Gast-/Mitgliedsbereich behoben."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Admin-Mails korregiert."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Aktivierte bzw. abgelaufene Rallyes werden nur ausserhalb des CSS-Modus geladen (wenn also nicht css.php aufgerufen wurde)"); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Weitere Templates vom Admin-Bereich ausgelagert und Referral-Anazahl in der Mail zur Rallye-Ankündigung repariert."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Funktion generateUserProfileLink() mit Verlinkung auf Referral-Liste implementiert."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + addExtensionAddTableColumnSql('rallye_data', 'min_users', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 0'); + addExtensionAddTableColumnSql('rallye_data', 'min_prices', 'BIGINT(20) UNSIGNED NOT NULL DEFAULT 3'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Ablaufen der Rallyes intergriert. Bauen Sie in Ihr Template templates/de/emails/member/member_rallye_notify.tpl folgende zwei Zeilen ein:
+
    +
  • $DATA[min_users]
  • +
  • $DATA[min_prices]
  • +
+Zudem sollten Sie mindestens folgende Templates (in templates/".getLanguage()."/html/guest/ !) aktualisieren:
+
    +
  • guest_rallye_footer.tpl
  • +
  • guest_rallye_header.tpl
  • +
"); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Links wegen what=admins_contct geändert."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Menüpunkt "Rallyes verwalten" repariert."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Automatisches Starten von Referral-Rallyes repariert."); + break; + + case '0.2.7': // SQL queries for v0.2.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fatalen Fehler beseitigt."); + break; + + case '0.2.8': // SQL queries for v0.2.8 + // Update notes (these will be set as task text!) + + setExtensionUpdateNotes("Vorbereitung auf die neue Mediendaten v0.0.4."); + break; + + case '0.2.9': // SQL queries for v0.2.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("if-Anweisungen auf Funktion empty() umgestellt."); + break; + + case '0.3.1': // SQL queries for v0.3.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Erweiterung für automatisch generierte Admin-Kontaktlinks geändert."); + break; + + case '0.3.2': // SQL queries for v0.3.2 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='rals',`title`='Referral-Rallye',`sort`=1 WHERE `what`='rallyes' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Mitgliedsmenü komplett umgebaut."); + break; + + case '0.3.3': // SQL queries for v0.3.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Rallyes werden nun nur dann automatisch beseitigt, wenn die Erweiterung autopurge installiert und aktiviert ist."); + break; + + case '0.3.4': // SQL queries for v0.3.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + + case '0.3.5': // SQL queries for 0.3.5 + // Register filter + registerFilter(__FILE__, __LINE__, 'extra_autopurge', 'RALLYE_EXTRA_AUTOPURGE', FALSE, TRUE, isExtensionDryRun()); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Filter hinzugefügt und ist von sql_patches abhängig."); + break; + + case '0.3.6': // SQL queries for v0.3.6 + // Register points data + registerExtensionPointsData('rallye_winner', 'points', 'LOCKED', 'DIRECT'); + + // Update notes + setExtensionUpdateNotes("Gewinn aus der Referral-Rallye wird nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); + break; + + case '0.3.7': // SQL queries for v0.3.7 + // Register filter + registerFilter(__FILE__, __LINE__, 'init', 'RALLYE_NOTIFY_USERS', FALSE, TRUE, isExtensionDryRun()); + registerFilter(__FILE__, __LINE__, 'add_rallye_notify_sqls', 'ADD_RALLYE_SQL_COLUMNS', FALSE, TRUE, isExtensionDryRun()); + + // Update notes + setExtensionUpdateNotes("Weitere Filter hinzugefügt."); + break; + + case '0.3.8': // SQL queries for v0.3.8 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_admin_menu` SET `what`='list_rallye_prices' WHERE `action`='rallye' AND `what`='config_rallye_prices' LIMIT 1"); + + // Update notes + setExtensionUpdateNotes("Menü umbenannt, da "config" nur für die Konfigurationstabelle {?_MYSQL_PREFIX?}_config ist."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/register/mode-update.php b/inc/extensions/register/mode-update.php index 19548bffe0..34f091dd63 100644 --- a/inc/extensions/register/mode-update.php +++ b/inc/extensions/register/mode-update.php @@ -317,7 +317,6 @@ PRIMARY KEY (`id`)", // 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."); diff --git a/inc/extensions/sql_patches/mode-remove.php b/inc/extensions/sql_patches/mode-remove.php index 350d82f4db..3b8f503991 100644 --- a/inc/extensions/sql_patches/mode-remove.php +++ b/inc/extensions/sql_patches/mode-remove.php @@ -84,9 +84,7 @@ addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='main' WHER 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 unregisterFilter(__FILE__, __LINE__, 'member_login_check', 'RESET_USER_LOGIN_FAILURE', TRUE, isExtensionDryRun()); diff --git a/inc/extensions/sql_patches/mode-update.php b/inc/extensions/sql_patches/mode-update.php index 94a80cacc7..e1bd59226b 100644 --- a/inc/extensions/sql_patches/mode-update.php +++ b/inc/extensions/sql_patches/mode-update.php @@ -838,9 +838,7 @@ INDEX (`history_last_used` DESC)", // 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äge in {?_MYSQL_PREFIX?}_points_data hinzugefügt."); @@ -927,6 +925,19 @@ PRIMARY KEY (`server_name_id`) // Update notes (these will be set as task text!) setExtensionUpdateNotes("Spalten umbenannt, damit die Namen (Verwendung) nun eindeutiger sind."); break; + + case '0.9.9': // SQL queries for v0.9.9 + addConfigAddSql('last_yearly', 'SMALLINT(4) UNSIGNED ZEROFILL NOT NULL DEFAULT ' . getYear()); + addConfigChangeSql('pass_len', 'min_password_length', 'TINYINT(2) UNSIGNED NOT NULL DEFAULT 5'); + addConfigAddSql('min_password_score', 'TINYINT(2) UNSIGNED NOT NULL DEFAULT 3'); + addModuleSql('api', '{OPEN_LANGUAGE}MODULE_GENERIC_API_TITLE{CLOSE_LANGUAGE}', 'Y', 'Y', 'N', 'N'); + + // Make this depending on ext-mods + addExtensionDependency('mods'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Jahres-Reset + generelles API-Modul hinzugefügt."); + break; } // END - switch // [EOF] diff --git a/inc/extensions/surfbar/.htaccess b/inc/extensions/surfbar/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/surfbar/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/surfbar/mode-setup.php b/inc/extensions/surfbar/mode-setup.php new file mode 100644 index 0000000000..25493cc081 --- /dev/null +++ b/inc/extensions/surfbar/mode-setup.php @@ -0,0 +1,213 @@ +Vorsicht! Ihnen muss es auch gestattet sein, URLs aus dem Werbenetzwerk im Besuchertausch einzufügen.', 1); + addAdminMenuSql('surfbar', 'list_surfbar_urls', 'URLs verwalten', 'Verwalten Sie hier alle im Besuchertausch befindlichen URLs mit nur wenigen Klicks.', 2); + addAdminMenuSql('surfbar', 'unlock_surfbar_urls', 'Wartende URLs freigeben', 'Geben Sie hier für den Besuchertausch gebuchte URLs frei.', 3); + addAdminMenuSql('surfbar', 'list_surfbar_packages', 'Buchungspakete verwalten', '"Buchungspakete" erlauben dem Mitglied nur von Ihnen definierte Reloadzeiten und Mindestauffenthalte.', 4); + addAdminMenuSql('surfbar', 'config_surfbar', 'Einstellungen', 'Einstellungen am Besuchertausch ändern, wie Festvergütung, prozentuale Ref-Vergütung und vieles mehr.', 5); + addAdminMenuSql('surfbar', 'surfbar_stats', 'Statistiken', 'Detailierte Statistiken zu einer ausgewählten URL anzeigen.', 6); + addAdminMenuSql('surfbar', 'list_surfbar_actions', 'Mitglieder-Aktionen', 'Listet alle Mitglieder-Aktionen auf.', 7); + + // Register module + addModuleSql('surfbar', '{OPEN_LANGUAGE}MODULE_SURFBAR_TITLE{CLOSE_LANGUAGE}', 'Y', 'Y', 'N', 'N'); + + // Insert data for points accounts + registerExtensionPointsData('monthly_surfbar', 'points', 'LOCKED', 'DIRECT'); + + // Register filters + 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()); + +// [EOF] +?> diff --git a/inc/extensions/task/.htaccess b/inc/extensions/task/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/task/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/task/mode-update.php b/inc/extensions/task/mode-update.php new file mode 100644 index 0000000000..2bfb09ba60 --- /dev/null +++ b/inc/extensions/task/mode-update.php @@ -0,0 +1,219 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227 behoben."); + break; + + case '0.0.5': // SQL queries for v0.0.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("&admin= in &amp;admin= umgewandelt."); + break; + + case '0.0.6': // SQL queries for v0.0.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert."); + break; + + case '0.0.7': // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Erstellung der Extra-Übersichten verbessert."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler bei Abfrage der payout-Erweiterung beseitigt."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Task-Liste ausgelagert als Template"); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Design "Solid-Business" eingebaut."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Links wegen what=admins_contct geändert."); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Weitere Direkt-Links eingebaut:
+
    +
  • Ländercodes
  • +
  • Wartende Verdopplungen
  • +
  • Geändert: Wartende Auszahlungen
  • +
  • Teilnehmer an der Aktiv-Rallye
  • +
  • Nett hinweisende Linktitel hinzugefügt. :-)
  • +
"); + break; + + case '0.1.7': // SQL queries for v0.1.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Direkt Links zum Sponsorenbereich vorbereitend eingebaut."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Es werden alle installierten und aktivierten Themes angezeigt und verlinkt."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("CSS-Datei in general.css verschmolzen (Patch 435!)"); + break; + + case '0.2.0': // SQL queries for v0.2.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Alle Administratoren, Referral-Banner und aktivierte Referral-Banner werden nun eingeblendet."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit überlanger Textbreite beseitigt."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum Freischalten von Sponoren-Accounts korregiert."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sortierungsreihenfolge grundlegend geändert: Es wird jetzt nach Mitglieds-Id, Aufgabenbereich, Infos und nach dem Erstellunsdatum sortiert."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Nur mit bonus v0.6.9 oder höher: Zuschaltbare Bonis werden auch bei der Ermittlung Anzahl teilnehmender Mitglieder mit ber&uumk;cksichtigt."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Teilnehmer der Bettel-Rallye werden angezeigt."); + break; + + case '0.2.7': // SQL queries for v0.2.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum direkten Aufheben einer Urlaubsschaltung eines Mitgliedes korregiert."); + break; + + case '0.2.8': // SQL queries for v0.2.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.2.9': // SQL queries for v0.2.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("if-Anweisungen auf Funktion empty() umgestellt. Update-Aufgaben werden nach "Bearbeitung" nicht mehr als Erledigt gesetzt. Dies hatte sonst den Anschein, die Update-Aufgaben müssten erledigt werden, um die Erweiterungs-Updates einzuspielen, was aber automatisch geschieht."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Export-Accounts werden in Task-Übersicht aufgelistet."); + break; + + case '0.3.1': // SQL queries for v0.3.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Diverse Fixes an den Templates (Notice-Hinweise vom PHP-Interpreter entfernt)."); + break; + + case '0.3.2': // SQL queries for v0.3.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Hängt nun von ext-user ab."); + break; + + case '0.3.3': // SQL queries for v0.3.3 + addExtensionChangeTableColumnSql('task_system', 'assigned_admin', 'assigned_admin', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL'); + addExtensionChangeTableColumnSql('task_system', 'userid', 'userid', 'BIGINT(20) UNSIGNED NULL DEFAULT NULL'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `assigned_admin`=NULL WHERE `assigned_admin`=0'); + addExtensionSql('UPDATE `{?_MYSQL_PREFIX?}_task_system` SET `userid`=NULL WHERE `userid`=0'); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Zugewiesener Admin und User-Id dürfen nun NULL sein."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/transaction/.htaccess b/inc/extensions/transaction/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/transaction/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/transaction/mode-setup.php b/inc/extensions/transaction/mode-setup.php new file mode 100644 index 0000000000..b6903891de --- /dev/null +++ b/inc/extensions/transaction/mode-setup.php @@ -0,0 +1,44 @@ + diff --git a/inc/extensions/transfer/.htaccess b/inc/extensions/transfer/.htaccess new file mode 100644 index 0000000000..3a42882788 --- /dev/null +++ b/inc/extensions/transfer/.htaccess @@ -0,0 +1 @@ +Deny from all diff --git a/inc/extensions/transfer/mode-setup.php b/inc/extensions/transfer/mode-setup.php new file mode 100644 index 0000000000..095feb718a --- /dev/null +++ b/inc/extensions/transfer/mode-setup.php @@ -0,0 +1,94 @@ + diff --git a/inc/extensions/transfer/mode-update.php b/inc/extensions/transfer/mode-update.php new file mode 100644 index 0000000000..3306a791c7 --- /dev/null +++ b/inc/extensions/transfer/mode-update.php @@ -0,0 +1,203 @@ +Warning: Missing argument 2 for create_timestamp_from_selections() in {?PATH?}inc/libs/pro_functions.php on line 227 behoben."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Überflüssige unset()-Anweisungen aus der what-config_transfer.php entfernt. Dies wird bereits von der eigenen Funktion adminSaveSettings() erledigt."); + break; + + case '0.0.3': // SQL queries for v0.0.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlende Abfrage im Mitlieder-Modul, on Erweiterung auch aktiviert ist."); + break; + + case '0.0.5': // SQL queries for v0.0.5 + addConfigAddSql('ap_transfer', "ENUM('Y','N') NOT NULL DEFAULT 'Y'"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link Auflisten im Admin-Bereich hatte das eingeloggte Mitglied und nicht den eingeloggten Admin abgefragt. Automatisches Löschen von veraltete Einträgen kann unabhängig von der autopurge-Erweiterung de-/aktiviert werden. Bitte aktualisieren Sie auch die beiden Admin-Templates!"); + break; + + case '0.0.6': // SQL queries for v0.0.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wegen des Theme-Supportes hat sich die URL zur CSS-Datei geändert."); + break; + + case '0.0.7': // SQL queries for v0.0.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehler beseitigt, wenn error_reporting=E_ALL gesetzt ist."); + break; + + case '0.0.8': // SQL queries for v0.0.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit E in Transaktionsnummer beseitigt."); + break; + + case '0.0.9': // SQL queries for v0.0.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Problem mit Speicherung der Einstellungen beseitigt."); + break; + + case '0.1.0': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Menüpunkte im Gast-/Mitgliedsbereich können nicht mehr aufgerufen werden, wenn die Erweiterung deaktiviert ist."); + break; + + case '0.1.1': // SQL queries for v0.1.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Design "Solid-Business" eingebaut."); + break; + + case '0.1.2': // SQL queries for v0.1.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Seit Patch 340 überflüssige HTML-Tags entfernt."); + break; + + case '0.1.3': // SQL queries for v0.1.3 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("IP-Nummer und Browserbezeichnung wird in Admin-Mails eingesetzt."); + break; + + case '0.1.4': // SQL queries for v0.1.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Link zum Mitgliedsprofil in Funktion generateUserProfileLink() ausgelagert."); + break; + + case '0.1.5': // SQL queries for v0.1.5 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Template admin_config_transfer_pro.tpl ist überflüssig geworden. Bitte löschen Sie dies!"); + break; + + case '0.1.6': // SQL queries for v0.1.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wörter {?mt_word?}, {?mt_word2?} und {?mt_word3?} sind austauschbar."); + break; + + case '0.1.7': // SQL queries for v0.1.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Wort Punkte dynamisiert."); + break; + + case '0.1.8': // SQL queries for v0.1.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("HTML-Code ausgelagert in Templates und SQL-Anweisungen abgesichert."); + break; + + case '0.1.9': // SQL queries for v0.1.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Parser-Error im Mitgliedsbereich beseitigt."); + break; + + case '0.2.0': // SQL queries for v0.2.0 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Abspeichern von Einstellungen repariert."); + break; + + case '0.2.1': // SQL queries for v0.2.1 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Durchführung des Transfers korregiert."); + break; + + case '0.2.2': // SQL queries for v0.2.2 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Sicherheitsupdate für die Include-Befehle."); + break; + + case '0.2.3': // SQL queries for v0.2.3 + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'list_transfer')"); + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('member', '', 'del_transfer')"); + addExtensionSql("INSERT INTO `{?_MYSQL_PREFIX?}_admin_menu_las` (`la_id`, `la_action`, `la_what`) VALUES ('config', '', 'config_transfer')"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Erweiterung in's neue Menüsystem integriert."); + break; + + case '0.2.4': // SQL queries for v0.2.4 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Touring-Code wiederholen nach Touring-Code eingeben hin geändert."); + break; + + case '0.2.5': // SQL queries for v0.2.5 + addExtensionSql("UPDATE `{?_MYSQL_PREFIX?}_member_menu` SET `action`='extras',`sort`=5 WHERE `what`='transfer' LIMIT 1"); + + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Eintrag im Mitgliedsmenü verschoben."); + break; + + case '0.2.6': // SQL queries for v0.2.6 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Hash-Erstellung von md5() auf bessere Funktion generateHash() umgestellt."); + break; + + case '0.2.7': // SQL queries for v0.2.7 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Die {?POINTS?} können nun wieder wie gewohnt transferiert werden. Der Grund für {--MEMBER_TRANSFER_INVALID_PASSWORD--} war, dass der Cookie-Hash ein anderer ist, als der in der Datenbank... :-/"); + break; + + case '0.2.8': // SQL queries for v0.2.8 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlermeldung Notice: Undefined index: to_userid in {?PATH?}/inc/modules/member/what-transfer.php on line 301 gefixt. Danke an Piter01."); + break; + + case '0.2.9': // SQL queries for v0.2.9 + // Update notes (these will be set as task text!) + setExtensionUpdateNotes("Fehlerhinweis bei deaktivierter Erweiterung verbessert."); + break; + + case '0.3.0': // SQL queries for v0.3.0 + // Register points data + registerExtensionPointsData('transfer', 'points', 'LOCKED', 'DIRECT'); + + // Update notes + setExtensionUpdateNotes("Ünerweisungen anderer Mitglieder werden nun über die Tabelle {OPEN_CONFIG}_MYSQL_PREFIX{CLOSE_CONFIG}_points_data verwaltet."); + break; + } // END - switch + +// [EOF] +?> diff --git a/inc/extensions/user/mode-setup.php b/inc/extensions/user/mode-setup.php index 5abfa6efb8..7b0f95bcd8 100644 --- a/inc/extensions/user/mode-setup.php +++ b/inc/extensions/user/mode-setup.php @@ -154,7 +154,7 @@ addAdminMenuSql('user', 'del_user', 'Mitglied löschen', 'Löschen Sie h addAdminMenuSql('user', 'lock_user', 'Mitglied sperren / entsperren', 'Sperren Sie Mitglied, die zu viele unbestätigte Mails haben oder gegen Ihre AGBs verstossen haben über diesen Menüpunkt.', 3); addAdminMenuSql('user', 'list_user', 'Mitglieder auflisten', 'Listen Sie alle Mitglied oder eingeschränkt nach Suchkritieren Ihre Userdatenbank auf. Sie kö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önnen dazu auch einen Kommentar mitsenden.', 5); -addAdminMenuSql('user', 'edit_user', 'Account editieren', 'Daten eines Mitglieder-Accountes ändern.', 6); +addAdminMenuSql('user', 'edit_user', 'Account editieren', 'Daten eines Mitgliedaccountes ändern.', 6); addAdminMenuSql('user', 'list_refs', 'Referrals anzeigen', 'Mit diesem Menüpunkt können Sie die generierten Referrals eines Mitgliedes auflisten.', 7); addAdminMenuSql('user', 'list_links', 'Unbestätigte Mails', 'Mit diesem Menüpunkt können Sie die vom Mitglied nicht bestätigten Mails anzeigen.', 8); addAdminMenuSql('user', 'list_user_cats', 'Kategorien anzeigen', 'Listet die ausgewählten Kategorien eines Mitgliedes auf.', 9); diff --git a/inc/extensions/user/mode-update.php b/inc/extensions/user/mode-update.php index 085d9ea909..a44e5dc29d 100644 --- a/inc/extensions/user/mode-update.php +++ b/inc/extensions/user/mode-update.php @@ -174,7 +174,7 @@ if (!defined('__SECURITY')) { case '0.3.3': // SQL queries for v0.3.3 // Update notes (these will be set as task text!) - setExtensionUpdateNotes("Mitglieder sind nun per Formular kontaktierbar (es wird eine EMail versendet), gesperrte und bestätigte Mitglieder-Accounts sind seperat oder gemeinsam auflistbar (seperat nur mit der Erweiterung task!)"); + setExtensionUpdateNotes("Mitglieder sind nun per Formular kontaktierbar (es wird eine EMail versendet), gesperrte und bestätigte Mitgliedaccounts sind seperat oder gemeinsam auflistbar (seperat nur mit der Erweiterung task!)"); break; case '0.3.4': // SQL queries for v0.3.4 @@ -520,7 +520,6 @@ INDEX (`subid`)", setExtensionUpdateNotes("Menüpunkt umbenannt um Platz für Konflikt mit what-config_cats.php zu schaffen."); break; } // END - switch - break; // [EOF] ?> diff --git a/inc/fatal_errors.php b/inc/fatal_errors.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/fatal_errors.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/filter-functions.php b/inc/filter-functions.php index 50a4a65045..e217428394 100644 --- a/inc/filter-functions.php +++ b/inc/filter-functions.php @@ -55,7 +55,7 @@ function initFilterSystem () { // Mark it as initialized $GLOBALS['filter_init'] = TRUE; - } elseif ((!isInstallationPhase()) && (isExtensionInstalledAndNewer('sql_patches', '0.5.9'))) { + } elseif ((!isInstaller()) && (isExtensionInstalledAndNewer('sql_patches', '0.5.9'))) { // Init add $add = ''; if (isExtensionINstalledAndNewer('sql_patches', '0.6.0')) { @@ -115,6 +115,7 @@ ORDER BY registerFilter(__FUNCTION__, __LINE__, 'init', 'RUN_DAILY_RESET'); registerFilter(__FUNCTION__, __LINE__, 'init', 'RUN_WEEKLY_RESET'); registerFilter(__FUNCTION__, __LINE__, 'init', 'RUN_MONTHLY_RESET'); + registerFilter(__FUNCTION__, __LINE__, 'init', 'RUN_YEARLY_RESET'); registerFilter(__FUNCTION__, __LINE__, 'init', 'TRIGGER_SENDING_POOL'); // @TODO Remove this forced removal after a year or so unregisterFilter(__FUNCTION__, __LINE__, 'init', 'DETERMINE_USERNAME', TRUE); @@ -186,6 +187,9 @@ ORDER BY // Do monthly stuff, keep this entry first in this chain: registerFilter(__FUNCTION__, __LINE__, 'monthly', 'RUN_MONTHLY_INCLUDES'); + // Do yearly stuff, keep this entry first in this chain: + registerFilter(__FUNCTION__, __LINE__, 'yearly', 'RUN_YEARLY_INCLUDES'); + // Remove extension registerFilter(__FUNCTION__, __LINE__, 'extension_remove', 'REMOVE_EXTENSION'); @@ -231,7 +235,7 @@ function registerFilter ($file, $line, $filterName, $filterFunction, $silentAbor // 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())) { + if (($silentAbort === FALSE) || (isInstaller())) { // Add fatal message reportBug(__FUNCTION__, __LINE__, sprintf("Filter chain %s has already filter function %s registered! file=%s,L=%s,force=%d", $filterName, $filterFunction, basename($file), $line, intval($force))); } // END - if @@ -310,6 +314,9 @@ function runFilterChain ($filterName, $filterData = NULL) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',count()=' . count($GLOBALS['cache_array']['filter']['chains'][$filterName])); $returnValue = $filterData; + // Remove any existing flag(s) + unset($GLOBALS['filter_chain_aborted']); + // Then run all filters foreach ($GLOBALS['cache_array']['filter']['chains'][$filterName] as $filterFunction => $active) { // Debug message @@ -320,7 +327,7 @@ function runFilterChain ($filterName, $filterData = NULL) { // Is this filter there? if (!function_exists($filterFunction)) { // Should be fixed - reportBug(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',filterFunction=' . $filterFunction . ' - AUTO-UNREGISTERED!'); + reportBug(__FUNCTION__, __LINE__, 'filterName=' . $filterName . ',filterFunction=' . $filterFunction . ',active=' . $active . ' - AUTO-UNREGISTERED!'); } // END - if // Call the filter chain @@ -333,6 +340,12 @@ function runFilterChain ($filterName, $filterData = NULL) { // Debug message logDebugMessage(__FUNCTION__, __LINE__, 'Skipped: name=' . $filterName . ',func=' . $filterFunction . ',active=' . $active); } + + // Abort loop? + if (isFilterChainAborted()) { + // Yes, then abort here + break; + } // END - if } // END - foreach // Return the filtered content @@ -399,7 +412,7 @@ function loadExtensionFilters ($ext_name) { $GLOBALS[__FUNCTION__][$ext_name] = FALSE; // Construct include file name - $incFileName = sprintf("inc/filter/%s_filter.php", $ext_name); + $incFileName = sprintf('inc/filter/%s_filter.php', $ext_name); // Is the include file readable? if (isIncludeReadable($incFileName)) { @@ -418,5 +431,11 @@ function loadExtensionFilters ($ext_name) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ext_name=' . $ext_name . ',result=' . intval($GLOBALS[__FUNCTION__][$ext_name]) . ' - EXIT!'); } +// Checks whether the filter chain has been aborted +function isFilterChainAborted () { + // Determine it + return ((isset($GLOBALS['filter_chain_aborted'])) && ($GLOBALS['filter_chain_aborted'] === TRUE)); +} + // [EOF] ?> diff --git a/inc/filter/blacklist_filter.php b/inc/filter/blacklist_filter.php index dd9cc43a6a..edba5885bf 100644 --- a/inc/filter/blacklist_filter.php +++ b/inc/filter/blacklist_filter.php @@ -74,6 +74,29 @@ function FILTER_CHECK_IP_BLACKLISTED ($filterData) { return $filterData; } +// Filter to check URL against blacklist +function FILTER_CHECK_URL_BLACKLISTED ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); + // And shall I check that his URL is not in the black list? + if ((isUrlBlacklistEnabled()) && (isUrlBlacklisted($filterData['url']))) { + // Create redirect-URL + $filterData['redirect'] = 'modules.php?module=login&what=order&code=' . getCode('BLIST_URL') . '&blist=' . $GLOBALS['blacklist_data'][$filterData['url']]['timestamp']; + $GLOBALS['filter_chain_aborted'] = TRUE; + + // Set data for next filter chain + $filterData['init_done'] = FALSE; + $filterData['blacklisted'] = 'url'; + $filterData['message'] = '{--URL_IS_BLACKLISTED--}'; + + // Run filter chain for successful detection (don't rely on other fields than 'IP') here + runFilterChain('post_url_blacklisted', $filterData); + } // END - if + + // Return the data for next filter + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; +} + // Filter for logging blacklisted email addresses, is being called from above filter function FILTER_LOG_EMAIL_BLACKLISTED ($filerData) { // Make sure, that required data is there @@ -96,5 +119,16 @@ function FILTER_LOG_IP_BLACKLISTED ($filerData) { return $filterData; } +// Filter for logging blacklisted URLs, is being called from above filter +function FILTER_LOG_URL_BLACKLISTED ($filerData) { + // Make sure, that required data is there + assert((isset($filterData['init_done'])) && ($filterData['blacklisted'] == 'url')); + + // @TODO Insert log entry + + // Return filtered data + return $filterData; +} + // [EOF] ?> diff --git a/inc/filter/forced_filter.php b/inc/filter/forced_filter.php index 9362149e37..b731596c3e 100644 --- a/inc/filter/forced_filter.php +++ b/inc/filter/forced_filter.php @@ -41,10 +41,11 @@ if (!defined('__SECURITY')) { } // END - if // Filter to add default forced-ad types -function FILTER_FORCED_AD_TYPE_DEFAULTS ($data) { +function FILTER_FORCED_AD_TYPE_DEFAULTS ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); // Forced-Banner array_push( - $data, + $filterData, array( // Forced-Banner 'type' => 'BANNER', @@ -58,7 +59,8 @@ function FILTER_FORCED_AD_TYPE_DEFAULTS ($data) { ); // Return data - return $data; + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; } // Filter for collecting data for the member table @@ -71,7 +73,7 @@ function FILTER_FORCED_POPUP_TABLE_DATA ($filterData) { // Get max/min/count of all popups // @TODO This part is unfinished - //die(__FUNCTION__.':OK!'); + die(__FUNCTION__ . ':filterData=
' . print_r($filterData, TRUE) . '
'); } // END - if // Return filter data array @@ -81,6 +83,7 @@ function FILTER_FORCED_POPUP_TABLE_DATA ($filterData) { // Filter for changing URL status function FILTER_FORCED_CHANGE_CAMPAIGN_STATUS ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); /* // Do some dirty fixing here: if (($filterData['data']['forced_campaign_status'] == 'STOPPED') && ($filterData['new_status'] == 'pending')) { @@ -102,16 +105,16 @@ function FILTER_FORCED_CHANGE_CAMPAIGN_STATUS ($filterData) { // Filter for validating status function FILTER_FORCED_CHANGE_CAMPAIGN_VALIDATE_DATA ($filterData) { - // Is the new status set? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); + // Is the new status set? 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; + $GLOBALS['filter_chain_aborted'] = 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; + $GLOBALS['filter_chain_aborted'] = FALSE; } // END - if // Return filter data @@ -121,9 +124,9 @@ function FILTER_FORCED_CHANGE_CAMPAIGN_VALIDATE_DATA ($filterData) { // Filter for handling click on forced ad function FILTER_HANDLE_FORCED_AD_CLICK ($filterData) { - // Are all required parameters set? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); - die(__FUNCTION__.': CALLED!'); + // Are all required parameters set? + die(__FUNCTION__ . ': filterData=
' . print_r($filterData, TRUE) . '
'); // Return filter data //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); @@ -132,9 +135,9 @@ function FILTER_HANDLE_FORCED_AD_CLICK ($filterData) { // Filter for handling viewing forced banner function FILTER_HANDLE_FORCED_AD_VIEW ($filterData) { - // Are all required parameters set? //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); - die(__FUNCTION__.': CALLED!'); + // Are all required parameters set? + die(__FUNCTION__ . ': filterData=
' . print_r($filterData, TRUE) . '
'); // Return filter data //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); diff --git a/inc/filter/html_mail_filter.php b/inc/filter/html_mail_filter.php new file mode 100644 index 0000000000..3ed2794483 --- /dev/null +++ b/inc/filter/html_mail_filter.php @@ -0,0 +1,68 @@ +'), array('{OPEN_HTML}', '{CLOSE_HTML}'), $filterData['text']); + } + + // Return the data for next filter + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; +} + +// [EOF] +?> diff --git a/inc/filter/order_filter.php b/inc/filter/order_filter.php index f8866822d6..a961dde09b 100644 --- a/inc/filter/order_filter.php +++ b/inc/filter/order_filter.php @@ -123,5 +123,103 @@ function FILTER_ORDER_POINTS_COLUMNS ($filterData) { return $filterData; } +// Filter for generic check of subject line +function FILTER_MAIL_ORDER_GENERIC_CHECK_SUBJECT ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); + + // Shall I test the subject line against URLs? + if (!isAllowUrlInSubjectEnabled()) { + // @TODO 200 is hard-coded here, swap it out to config + admin_config_order.tpl + $filterData['subject'] = str_replace(chr(92), '[nl]', substr($filterData['subject'], 0, 200)); + + // Check the subject line for unwanted things + if ((isInStringIgnoreCase('https://', $filterData['subject'])) || (isInStringIgnoreCase('http://', $filterData['subject'])) || (isInStringIgnoreCase('www', $filterData['subject']))) { + // URL in subject found + $filterData['redirect'] = 'modules.php?module=login&what=order&code=' . getCode('SUBJECT_URL'); + $GLOBALS['filter_chain_aborted'] = TRUE; + } // END - if + } // END - if + + // Return the data for next filter + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; +} + +// Filter for generic check of mail text +function FILTER_MAIL_ORDER_GENERIC_CHECK_TEXT ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); + + if (!isAllowUrlInTextEnabled()) { + // Test submitted text against some filters (length, URLs in text etc.) + if ((isInStringIgnoreCase('https://', $filterData['text'])) || (isInStringIgnoreCase('http://', $filterData['text'])) || (isInStringIgnoreCase('www', $filterData['text']))) { + // URL found + $filterData['redirect'] = 'modules.php?module=login&what=order&code=' . getCode('URL_FOUND'); + $GLOBALS['filter_chain_aborted'] = TRUE; + } // END - if + + // Remove new-line and carriage-return characters + $TEST = str_replace(array(PHP_EOL, chr(13)), array('', ''), $filterData['text']); + + // Text length within allowed length? + if (strlen($TEST) > getMaxTextLength()) { + // Text is too long! + $filterData['redirect'] = 'modules.php?module=login&what=order&code=' . getCode('OVERLENGTH'); + $GLOBALS['filter_chain_aborted'] = TRUE; + } // END - if + } // END - if + + // Return the data for next filter + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; +} + +// Filter for generic check of mail type +function FILTER_MAIL_ORDER_GENERIC_CHECK_TYPE ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); + + // Is mail type set? + if ((!isset($filterData['mail_type'])) || ($filterData['mail_type'] < 1)) { + // Not correctly set + $filterData['redirect'] = 'modules.php?module=login&what=order&code=' . getCode('NO_MAIL_TYPE'); + $GLOBALS['filter_chain_aborted'] = TRUE; + } // END - if + + // Return the data for next filter + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; +} + +// Filter for generic check of URL +function FILTER_MAIL_ORDER_GENERIC_CHECK_URL ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); + + // Validate URL + if (!isUrlValid($filterData['url'])) { + // URL is invalid! + $filterData['redirect'] = 'modules.php?module=login&what=order&code=' . getCode('INVALID_URL'); + $GLOBALS['filter_chain_aborted'] = TRUE; + } // END - if + + // Return the data for next filter + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; +} + +// Filter for generic check of receiver amount +function FILTER_MAIL_ORDER_GENERIC_CHECK_RECEIVER ($filterData) { + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Called!'); + + // Enougth receivers entered? + if (($filterData['receiver'] < getOrderMin()) && (!isAdmin())) { + // Less than allowed receivers entered! + $filterData['redirect'] = 'modules.php?module=login&what=order&code=' . getCode('MORE_RECEIVERS3'); + $GLOBALS['filter_chain_aborted'] = TRUE; + } // END - if + + // Return the data for next filter + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Done!'); + return $filterData; +} + // [EOF] ?> diff --git a/inc/filter/surfbar_filter.php b/inc/filter/surfbar_filter.php index b06fa20c25..517797ef8a 100644 --- a/inc/filter/surfbar_filter.php +++ b/inc/filter/surfbar_filter.php @@ -73,11 +73,11 @@ function FILTER_SURFBAR_CHANGE_URL_VALIDATE_DATA ($filterData) { if ((!is_string($filterData['new_status'])) || (empty($filterData['new_status']))) { // Abort here, but fine! //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'newStatus[' . gettype($filterData['new_status']) . ']=' . $filterData['new_status'] . ' - EXIT!'); - $filterData['abort'] = TRUE; + $GLOBALS['filter_chain_aborted'] = TRUE; } elseif ($filterData['data'][$filterData['url_id']]['url_status'] != $filterData['prev_status']) { // Status is not like prevStatus //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $filterData['data'][$filterData['url_id']]['url_status'] . '!=' . $filterData['prev_status'] . ' - EXIT!'); - $filterData['abort'] = FALSE; + $GLOBALS['filter_chain_aborted'] = FALSE; } // END - if // Return filter data diff --git a/inc/filter/transaction_filter.php b/inc/filter/transaction_filter.php new file mode 100644 index 0000000000..4cceebe8a1 --- /dev/null +++ b/inc/filter/transaction_filter.php @@ -0,0 +1,57 @@ + diff --git a/inc/filters.php b/inc/filters.php index bbac2082ad..e20d718216 100644 --- a/inc/filters.php +++ b/inc/filters.php @@ -46,17 +46,17 @@ function FILTER_FLUSH_FILTERS () { initSqls(); // Is a database link here and not in installation mode? - if ((!isSqlLinkUp()) && (!isInstallationPhase())) { + if ((!isSqlLinkUp()) && (!isInstaller())) { // Abort here reportBug(__FUNCTION__, __LINE__, 'No database link is up. Cannot flush filters.'); - } elseif ((isInstallationPhase()) && (!isSqlLinkUp())) { + } elseif ((isInstaller()) && (!isSqlLinkUp())) { // If the link is not up in installation phase, skip flushing filters //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot flush filters: No link is up.'); return; } // Is the extension ext-sql_patches updated? - if (((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9'))) && (!isInstallationPhase())) { + if (((!isExtensionInstalled('sql_patches')) || (isExtensionInstalledAndOlder('sql_patches', '0.5.9'))) && (!isInstaller())) { // Log only in debug mode if (isDebugModeEnabled()) { logDebugMessage(__FUNCTION__, __LINE__, 'Cannot flush filters, ext-sql_patches might be missing. isExtensionInstalled()=' . intval(isExtensionInstalled('sql_patches')) . ',isExtensionInstalledAndOlder()=' . intval(isExtensionInstalledAndOlder('sql_patches', '0.5.9'))); @@ -188,7 +188,7 @@ function FILTER_SOLVE_TASK ($filterData) { adminSolveTask($filterData['task_id']); } else { // Not detectable! - reportBug(__FUNCTION__, __LINE__, sprintf("Cannot resolve task. data[%s]=
%s
", gettype($filterData), print_r($filterData, TRUE))); + reportBug(__FUNCTION__, __LINE__, sprintf('Cannot resolve task. data[%s]=
%s
', gettype($filterData), print_r($filterData, TRUE))); } // Return the data @@ -218,7 +218,7 @@ function FILTER_LOAD_INCLUDES ($filterData) { // Is it an array? if ((!isset($data)) || (!is_array($data))) { // Then abort here - reportBug(__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']); @@ -435,7 +435,7 @@ function FILTER_COMPILE_CONFIG ($code, $compiled = FALSE) { preg_match_all('/\{\?(([a-zA-Z0-9-_]+)*)\?\}/', $code, $matches); // Some entries found? - if ((count($matches) > 0) && (count($matches[0]) > 0)) { + if ((isFilledArray($matches)) && (isFilledArray($matches[0]))) { // Replace all matches foreach ($matches[0] as $key => $match) { // Is there cache? @@ -489,7 +489,7 @@ function FILTER_COMPILE_EXPRESSION_CODE ($filterData) { $outputMode = getScriptOutputMode(); // Some entries found? - if ((count($matches) > 0) && (count($matches[3]) > 0)) { + if ((isFilledArray($matches)) && (isFilledArray($matches[3]))) { // Replace all matches foreach ($matches[2] as $key => $eti) { // Init replacer/call-back variable @@ -662,6 +662,27 @@ function FILTER_RUN_MONTHLY_INCLUDES () { } // END - if } +// Load more yearly scripts +function FILTER_RUN_YEARLY_INCLUDES () { + // Is the reset set or old sql_patches? + if (((!isYearlyResetEnabled()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) && (isHtmlOutputMode())) { + // Then abort here + reportBug(__FUNCTION__, __LINE__, 'Cannot run yearly reset! enabled='.intval(isYearlyResetEnabled()).',isExtensionInstalledAndNewer='.intval(isExtensionInstalledAndNewer('sql_patches', '0.9.8')).' Please report this bug. Thanks'); + } // END - if + + // Is ext-sql_patches at least 0.9.8? + if (isExtensionInstalledAndNewer('sql_patches', '0.9.8')) { + // Has it changed? + if ((getLastYearly() != getYear()) || (isDebugYearlyEnabled())) { + // Include yearly reset scripts + setIncludePool('yearly', getArrayFromDirectory('inc/yearly/', 'yearly_')); + + // Run the filter + runFilterChain('load_includes', 'yearly'); + } // END - if + } // END - if +} + // Filter for removing the given extension function FILTER_REMOVE_EXTENSION () { // Delete this extension (remember to remove it from your server *before* you click on welcome! @@ -712,7 +733,7 @@ function FILTER_HTML_INCLUDE_USERS ($mode) { // Filter for determining what/action/module function FILTER_DETERMINE_WHAT_ACTION () { // In installation phase we don't have what/action - if (isInstallationPhase()) { + if (isInstaller()) { // Set both to empty setAction(''); setWhat(''); @@ -824,13 +845,13 @@ function FILTER_CHECK_REPOSITORY_REVISION () { // Filter for running hourly reset function FILTER_RUN_HOURLY_RESET () { // Only execute this filter if installed - if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { + if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { return; } // END - if // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastHourly()=' . getLastHourly() . ',getHour()=' . getHour()); - if (((getLastHourly() != getHour()) || (isDebugHourlyEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { + if (((getLastHourly() != getHour()) || (isDebugHourlyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { // Tell every module we are in reset-mode! doHourly(); } // END - if @@ -839,13 +860,13 @@ function FILTER_RUN_HOURLY_RESET () { // Filter for running daily reset function FILTER_RUN_DAILY_RESET () { // Only execute this filter if installed - if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { + if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { return; } // END - if // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastDaily()=' . getLastDaily() . ',getDay()=' . getDay()); - if (((getLastDaily() != getDay()) || (isDebugDailyEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { + if (((getLastDaily() != getDay()) || (isDebugDailyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { // Tell every module we are in reset-mode! doDaily(); } // END - if @@ -854,13 +875,13 @@ function FILTER_RUN_DAILY_RESET () { // Filter for running weekly reset function FILTER_RUN_WEEKLY_RESET () { // Only execute this filter if installed - if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { + if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { return; } // END - if // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastWeekly()=' . getLastWeekly() . ',getWeek()=' . getWeek()); - if (((getLastWeekly() != getWeek()) || (isDebugWeeklyEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { + if (((getLastWeekly() != getWeek()) || (isDebugWeeklyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { // Tell every module we are in reset-mode! doWeekly(); } // END - if @@ -869,18 +890,33 @@ function FILTER_RUN_WEEKLY_RESET () { // Filter for running monthly reset function FILTER_RUN_MONTHLY_RESET () { // Only execute this filter if installed - if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { + if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { return; } // END - if // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastMonthly()=' . getLastMonthly() . ',getMonth()=' . getMonth()); - if (((getLastMonthly() != getMonth()) || (isDebugMonthlyEnabled())) && (!isInstallationPhase()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { + if (((getLastMonthly() != getMonth()) || (isDebugMonthlyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { // Tell every module we are in reset-mode! doMonthly(); } // END - if } +// Filter for running yearly reset +function FILTER_RUN_YEARLY_RESET () { + // Only execute this filter if installed + if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered()) || (!isExtensionInstalledAndNewer('sql_patches', '0.9.8'))) { + return; + } // END - if + + // Shall we run the reset scripts? If a day has changed, maybe also a week/month has changed... Simple! :D + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'getLastYearly()=' . getLastYearly() . ',getYear()=' . getYear()); + if (((getLastYearly() != getYear()) || (isDebugYearlyEnabled())) && (!isInstaller()) && (isAdminRegistered()) && (!isGetRequestElementSet('setup')) && (!isCssOutputMode())) { + // Tell every module we are in reset-mode! + doYearly(); + } // END - if +} + // Filter for loading more runtime includes (not for installation) function FILTER_LOAD_RUNTIME_INCLUDES () { // Load more includes @@ -936,7 +972,7 @@ function FILTER_INIT_RANDOM_NUMBER () { // Update module counter function FILTER_COUNT_MODULE () { // Is installation phase or no admin registered? - if ((isInstallationPhase()) || (!isInstalled()) || (!isAdminRegistered())) { + if ((isInstaller()) || (!isInstalled()) || (!isAdminRegistered())) { // Then don't count any modules return; } // END - if @@ -966,7 +1002,7 @@ function FILTER_HANDLE_FATAL_ERRORS () { $content = ''; // Installation phase or regular mode? - if ((isInstallationPhase())) { + if ((isInstaller())) { // While we are installing ouput other header than while it is installed... :-) $OUT = ''; foreach (getFatalArray() as $key => $value) { @@ -1049,7 +1085,7 @@ function FILTER_DISPLAY_COPYRIGHT () { function FILTER_DISPLAY_PARSING_TIME () { // Shall we display the parsing time and number of queries? // 1234 5 54 4 554 4 5543 3 4432 2 332 2 21 - if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (isShowTimingsEnabled()) && (isFullPage())) && (!isInstallationPhase())) && (isHtmlOutputMode()) && ($GLOBALS['__header_sent'] == 2)) { + if ((((isExtensionInstalledAndNewer('sql_patches', '0.4.1')) && (isShowTimingsEnabled()) && (isFullPage())) && (!isInstaller())) && (isHtmlOutputMode()) && ($GLOBALS['__header_sent'] == 2)) { // Then display it here displayParsingTime(); } // END - if @@ -1064,7 +1100,7 @@ function FILTER_FLUSH_TEMPLATE_CACHE () { } // END - if // Is there cached eval() data? - if ((isset($GLOBALS['template_eval'])) && (count($GLOBALS['template_eval']) > 0)) { + if ((isset($GLOBALS['template_eval'])) && (isFilledArray($GLOBALS['template_eval']))) { // Flush all foreach ($GLOBALS['template_eval'] as $prefix => $templateArray) { foreach ($templateArray as $template => $eval) { @@ -1213,7 +1249,7 @@ function FILTER_GENERATE_POOL_MAIL_LINKS ($filterData) { // Filter to activate exchange function FILTER_ACTIVATE_EXCHANGE () { // Are the extension ext-user/other there? - if ((!isExtensionActive('user')) || (!isExtensionActive('other')) || (getActivateXchange() == '0')) { + if ((!isExtensionActive('user')) || (!isExtensionInstalled('other')) || (isAjaxOutputMode()) || (getActivateXchange() == '0')) { // Silently abort here return FALSE; } // END - if @@ -1275,24 +1311,24 @@ function FILTER_GENERATE_FILE_SECRET_HASH ($filterData) { // Init key setConfigEntry('secret_key', ''); + // File hash fas generated so we can also file the secret file... hopefully. + $hashFile = sprintf('%s%s.%s.cache', getPath(), getCachePath(), getFileHash()); + // Read key from secret file - if ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == '')) { + if ((getFileHash() == '') || (getMasterSalt() == '') || (getPassScramble() == '') || (!isFileReadable($hashFile))) { // 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', ''); + updateConfiguration('file_hash', '', '', '0', TRUE); // Cannot read secret file! reportBug(__FILE__, __LINE__, 'Cannot read secret file! Please try to reload.'); @@ -1434,7 +1470,10 @@ WHERE function FILTER_DETERMINE_MENU_MODE_GENERIC ($filterData) { // "Detect" it switch (getModule()) { + case 'chk_login': // Is also faked case 'confirm': // Login script is 'member' + case 'loader': // Is faked to 'member' to avoid indexing by search engines + case 'mailid': // Mail confirmation is 'member' $filterData = 'member'; break; } // END - switch diff --git a/inc/fix_menu.php b/inc/fix_menu.php index 2aad72e31f..50be57d018 100644 --- a/inc/fix_menu.php +++ b/inc/fix_menu.php @@ -98,12 +98,12 @@ foreach (array('guest','member','admin') as $menu) { initSqls(); // Now insert our unqiue key for action-what combination - addSql(sprintf("ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` DROP INDEX `action_what`", $menu)); - addSql(sprintf("ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` ADD UNIQUE INDEX `action_what` (`action`, `what`)", $menu)); + addSql(sprintf('ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` DROP INDEX `action_what`', $menu)); + addSql(sprintf('ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` ADD UNIQUE INDEX `action_what` (`action`, `what`)', $menu)); // Now insert our unqiue key for what - addSql(sprintf("ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` DROP INDEX `what`", $menu)); - addSql(sprintf("ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` ADD UNIQUE INDEX `what` (`what`)", $menu)); + addSql(sprintf('ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` DROP INDEX `what`', $menu)); + addSql(sprintf('ALTER TABLE `{?_MYSQL_PREFIX?}_%s_menu` ADD UNIQUE INDEX `what` (`what`)', $menu)); // And run all runFilterChain('run_sqls'); diff --git a/inc/functions.php b/inc/functions.php index ba5c096e12..b9c3f1f699 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -88,7 +88,7 @@ function getTotalFatalErrors () { function generatePassword ($length = '0', $exclude = array()) { // Auto-fix invalid length of zero if ($length == '0') { - $length = getPassLen(); + $length = getMinPasswordLength(); } // END - if // Exclude some entries @@ -952,7 +952,7 @@ function encodeHashForCookie ($passHash) { // Fix "deleted" cookies function fixDeletedCookies ($cookies) { // Is this an array with entries? - if ((is_array($cookies)) && (count($cookies) > 0)) { + if (isFilledArray($cookies)) { // Then check all cookies if they are marked as deleted! foreach ($cookies as $cookieName) { // Is the cookie set to "deleted"? @@ -1682,6 +1682,21 @@ function doMonthly () { } // END - if } +// Enables the yearly reset mode and runs it +function doYearly () { + // Enable the reset mode + $GLOBALS['yearly_enabled'] = TRUE; + + // Run filters + runFilterChain('yearly'); + + // Do not update in yearly debug mode + if ((!isConfigEntrySet('DEBUG_YEARLY')) || (!isDebugYearlyEnabled())) { + // Update database + updateConfiguration('last_yearly', getYear()); + } // END - if +} + // Shuts down the mailer (e.g. closing database link, flushing output/filters, etc.) function doShutdown () { // Call the filter chain 'shutdown' @@ -1691,7 +1706,7 @@ function doShutdown () { if (isSqlLinkUp()) { // Close link sqlCloseLink(__FUNCTION__, __LINE__); - } elseif (!isInstallationPhase()) { + } elseif (!isInstaller()) { // No database link reportBug(__FUNCTION__, __LINE__, 'Database link is already down, while shutdown is running.'); } @@ -2144,7 +2159,7 @@ function handleFieldWithBraces ($field) { // Converts a zero or NULL to word 'NULL' function convertZeroToNull ($number) { // Is it a valid username? - if ((!is_null($number)) && (!empty($number)) && ($number > 0)) { + if (isValidNumber($number)) { // Always secure it $number = bigintval($number); } else { @@ -2159,7 +2174,7 @@ function convertZeroToNull ($number) { // Converts a NULL|empty string|< 1 to zero function convertNullToZero ($number) { // Is it a valid username? - if ((is_null($number)) || (empty($number)) || ($number < 1)) { + if (!isValidNumber($number)) { // Is not valid or zero $number = '0'; } // END - if @@ -2813,5 +2828,66 @@ if (!function_exists('html_entity_decode')) { } } // END - if +// "Calculates" password strength +function calculatePasswordStrength ($password, $configEntry = 'min_password_length') { + // Default score + $score = 1; + + if ((strlen($password) < 1) || (strlen($password) < getConfig($configEntry))) { + // Is to weak + return 0; + } // END - if + + // At least 8 chars long? + if (strlen($password) >= 8) { + // Add score + $score++; + } // END - if + + // At least 10 chars long? + if (strlen($password) >= 10) { + // Add score + $score++; + } // END - if + + // Lower and upper cases? + if ((preg_match('/[a-z]/', $password)) && (preg_match('/[A-Z]/', $password))) { + // Add score + $score++; + } // END - if + + // Also numbers? + if (preg_match('/[0-9]/', $password)) { + // Add score + $score++; + } // END - if + + // Special characters? + if (preg_match('/.[!,@,#,$,%,^,&,*,?,\/,_,~,+,-,(,)]/', $password)) { + // Add score + $score++; + } // END - if + + // Return password score + return $score; +} + +// "Translates" password strength/score +function translatePasswordStrength ($strength) { + // Return it translated + return '{--PASSWORD_SCORE_' . bigintval($strength) . '--}'; +} + +// Checks whether given password is strong enough +function isStrongPassword ($password) { + // Determine it + return (calculatePasswordStrength($password) >= getConfig('min_password_score')); +} + +// "Getter" for base path from theme +function getBasePathFromTheme ($theme) { + return sprintf('%stheme/%s/css/', getPath(), $theme); +} + // [EOF] ?> diff --git a/inc/gen_sql_patches.php b/inc/gen_sql_patches.php index 090d4341f4..3e780dcac3 100644 --- a/inc/gen_sql_patches.php +++ b/inc/gen_sql_patches.php @@ -65,10 +65,10 @@ if (getMasterSalt() == '') { unset($masterSalt); } // END - if -if (getFileHash() == '') { +if ((getFileHash() == '') || (!isFileReadable(getPath() . getCachePath() . '.' . getFileHash() . '.cache'))) { // Create filename from hashed random string $fileHash = sha1(generatePassword(mt_rand(128, 256))); - $FQFN = sprintf("%s%s.%s.cache", + $FQFN = sprintf('%s%s.%s.cache', getPath(), getCachePath(), $fileHash @@ -84,7 +84,9 @@ if (getFileHash() == '') { if (isFileReadable($FQFN)) { // Also update configuration setConfigEntry('secret_key', $secretKey); - updateConfiguration('file_hash', $fileHash); + + // Force update + updateConfiguration('file_hash', $fileHash, '', '0', TRUE); // Remove variables unset($secretKey); diff --git a/inc/hooks.php b/inc/hooks.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/hooks.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/hourly/hourly_transaction.php b/inc/hourly/hourly_transaction.php new file mode 100644 index 0000000000..cd5baace38 --- /dev/null +++ b/inc/hourly/hourly_transaction.php @@ -0,0 +1,114 @@ += {?transaction_confirmed_purge_interval?} + ) OR ( + `transaction_fee_collected`='Y' AND + (UNIX_TIMESTAMP() - UNIX_TIMESTAMP(`transaction_timestamp`)) >= {?transaction_confirmed_purge_interval?} + )", __FILE__, __LINE__ +); + +// Look for for "unhashed" transactions +$result = sqlQuery("SELECT + `transaction_id`, + `transaction_sender`, + `transaction_receiver`, + `transaction_fee_sender`, + `transaction_fee_receiver`, + `transaction_original`, + `transaction_subject`, + `transaction_timestamp` +FROM + `{?_MYSQL_PREFIX?}_transaction_log` +WHERE + `transaction_hash`='INVALID' AND + `transaction_level` IS NULL +ORDER BY + `transaction_id` ASC", __FILE__, __LINE__); + +// Are there some entries? +if (sqlNumRows($result) > 0) { + // Load all + while ($row = sqlFetchArray($result)) { + // Generate hash from transaction data + $hash = generateHashFromTransactionData($row); + + // Save hash in transaction + sqlQueryEscaped("UPDATE + `{?_MYSQL_PREFIX?}_transaction_log` +SET + `transaction_hash`='%s', + `transaction_captcha`=%s +WHERE + `transaction_id`=%s +LIMIT 1", + array( + $hash, + bigintval($row['transaction_captcha']), + bigintval($row['transaction_id']) + ), __FILE__, __LINE__ + ); + } // END - while +} // END - if + +// Free result +sqlFreeResult($result); + +// Debug line +//* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'hourly reset ended.'); + +// [EOF] +?> diff --git a/inc/http-functions.php b/inc/http-functions.php index 8932af6288..4fc66c95a5 100644 --- a/inc/http-functions.php +++ b/inc/http-functions.php @@ -445,7 +445,7 @@ function sendRawRequest ($host, $request, $allowOnlyHttpOkay = TRUE) { //* DEBUG: */ debugOutput('Response:
'.print_r($response, TRUE).'
'); // Proxy agent found or something went wrong? - if (count($response) == 0) { + if (!isFilledArray($response)) { // No response, maybe timeout $response = array('', '', ''); logDebugMessage(__FUNCTION__, __LINE__, 'Invalid empty response array, maybe timed out?'); @@ -580,7 +580,7 @@ function mergeHttpHeadersWithBody ($body) { $GLOBALS['http_headers'][] = getConfig('HTTP_EOL'); // Make sure at least one header is there (which is still not valid but okay here) - assert((is_array($GLOBALS['http_headers'])) && (count($GLOBALS['http_headers']) > 0)); + assert(isFilledArray($GLOBALS['http_headers'])); // Merge both together return merge_array($GLOBALS['http_headers'], array(count($GLOBALS['http_headers']) => $body)); diff --git a/inc/img/img_transaction_captcha.php b/inc/img/img_transaction_captcha.php new file mode 100644 index 0000000000..75e8eb0189 --- /dev/null +++ b/inc/img/img_transaction_captcha.php @@ -0,0 +1,61 @@ + getPath() . 'inc/captcha-base.png', + // Code to display + 'code' => getCaptchaCodeFromTransactionId(getRequestElement('id')), +))) { + // Not generated + redirectToUrl('img/captcha-error.png'); +} // END - if + +// [EOF] +?> diff --git a/inc/inc-functions.php b/inc/inc-functions.php index eac39ded7f..8dd5a2a060 100644 --- a/inc/inc-functions.php +++ b/inc/inc-functions.php @@ -122,7 +122,7 @@ function loadInclude ($inc) { // Is the include file there? if (!isIncludeReadable($inc)) { // Not there so log it - reportBug(__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 // Add the path. This is why we need a trailing slash in config.php diff --git a/inc/install-functions.php b/inc/install-functions.php index 4e3605f2b6..5942280ffa 100644 --- a/inc/install-functions.php +++ b/inc/install-functions.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if @@ -68,7 +68,17 @@ function initInstaller () { 'warn_no_pass' => 'other_config', 'write_footer' => 'other_config', 'enable_backlink' => 'other_config', + // first_admin + 'admin_login' => 'first_admin', + 'admin_email' => 'first_admin', + 'admin_password1' => 'first_admin', + 'admin_password2' => 'first_admin', ); + + // Set mininmum password length/score and other config entries + setConfigEntry('min_password_length', 5); + setConfigEntry('min_password_score' , 3); + setConfigEntry('verbose_sql' , 'N'); } // Write the local config-local.php file from "template" @@ -220,7 +230,7 @@ function isPlainInstaller () { // Handle all given failed fields function handleInstallerFailedFields ($failedFields) { // Don't do anything with no array or no entries - if ((!is_array($failedFields)) || (count($failedFields) == 0)) { + if (!isFilledArray($failedFields)) { // Abort here reportBug(__FUNCTION__, __LINE__, 'failedFields[]=' . gettype($failedFields) . ' verification failed'); } // END - if @@ -278,10 +288,10 @@ function doInstallerPostCheck ($currentTab, &$saveStatus) { // 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); + /* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Call-back function ' . $callbackName . ' not found. saveStatus[status]=' . $saveStatus['status'] . ', currentTab=' . $currentTab); // Abort here - return; + return FALSE; } // END - if // Init 'tab-specific error message' @@ -295,13 +305,13 @@ function doInstallerPostCheck ($currentTab, &$saveStatus) { $isValid = (bool) call_user_func($callbackName, $currentTab); // Is it not valid? - if (($isValid === FALSE) || (count($GLOBALS['installer_failed_fields'][$currentTab]) > 0)) { + if (($isValid === FALSE) || (isFilledArray($GLOBALS['installer_failed_fields'][$currentTab]))) { // Then change status and message $saveStatus['status'] = 'failed'; $saveStatus['message'] = '{%message,INSTALLER_POST_CHECK_' . strtoupper($currentTab) . '_FAILED=' . $GLOBALS['installer_post_error'][$currentTab] . '%}'; // Is there failed fields? - if (count($GLOBALS['installer_failed_fields'][$currentTab]) > 0) { + if (isFilledArray($GLOBALS['installer_failed_fields'][$currentTab])) { // Then merge both $saveStatus['failed_fields'] = merge_array($saveStatus['failed_fields'], $GLOBALS['installer_failed_fields'][$currentTab]); } // END - if @@ -356,7 +366,7 @@ function generateInstallerExtensionTable () { if ((loadExtension($ext_name, 'test', '0.0.0', TRUE)) && (isExtensionProductive($ext_name)) && (substr($ext_name, 0, 10) != 'admintheme')) { // Default is not disabled $disabled = ''; - if ($ext_name == 'sql_patches') { + if (in_array($ext_name, array('sql_patches', 'timezone'))) { // Always keep this enabled $disabled = ' disabled="disabled"'; } // END - if @@ -468,10 +478,12 @@ function isInstallerWebmasterValid ($value) { (isEmailValid($value)) || // Or is there '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'))) + (isDeveloperSystem()) ) && ( // Is not default "email address" $value != getMessage('DEFAULT_WEBMASTER') + ) && ( + strlen($value) >= 11 )); // Return it @@ -541,6 +553,32 @@ function isInstallerMysqlPrefixValid ($value) { // ----------------- Other configuration ----------------- +// ----------------- First administator ----------------- + +// Call-back function to check validity of 'admin_login' +function isInstallerAdminLoginValid ($value) { + // Length should not be shorter than 4 characters + return (strlen($value) >= 4); +} + +// Call-back function to check validity of 'admin_email' +function isInstallerAdminEmailValid ($value) { + // Just call webmaster-check function + return isInstallerWebmasterValid($value); +} + +// Call-back function to check validity of 'admin_password1' +function isInstallerAdminPassword1Valid ($value) { + // Check if it is strong + return isStrongPassword($value); +} + +// Call-back function to check validity of 'admin_password2' +function isInstallerAdminPassword2Valid ($value) { + // Check if it is strong + return isStrongPassword($value); +} + // ----------------- Extensions ----------------- // Call-back function to check 'sel' (array!) @@ -696,7 +734,7 @@ function isInstallerPostDatabaseConfigValid ($currentTab) { // Abort here return FALSE; - } elseif (count($engines) == 0) { + } elseif (!isFilledArray($engines)) { // No engine is active $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_DATABASE_NO_ENGINES_ACTIVE--}'; array_push($GLOBALS['installer_failed_fields'][$currentTab], 'mysql_engine'); @@ -800,6 +838,55 @@ function isInstallerPostDatabaseConfigValid ($currentTab) { return $isValid; } +// Call-back function to check if first admin data is valid +function isInstallerPostFirstAdminValid ($currentTab) { + // Is all data valid? + if (!isPostRequestElementSet('admin_login')) { + // Login not set + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_LOGIN_EMPTY--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_login'); + return FALSE; + } elseif (strlen(postRequestElement('admin_login')) < 4) { + // Login to short + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_LOGIN_SHORT--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_login'); + return FALSE; + } elseif (!isPostRequestElementSet('admin_email')) { + // Email address not set + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_EMAIL_EMPTY--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_email'); + return FALSE; + } elseif (!isInstallerAdminEmailValid(postRequestElement('admin_email'))) { + // Invalid email address + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_EMAIL_INVALID--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_email'); + return FALSE; + } elseif ((!isPostRequestElementSet('admin_password1')) && (isPostRequestElementSet('admin_password2'))) { + // Password 1 not set + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_PASSWORD1_EMPTY--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_password1'); + return FALSE; + } elseif ((isPostRequestElementSet('admin_password1')) && (!isPostRequestElementSet('admin_password2'))) { + // Password 2 not set + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_PASSWORD2_EMPTY--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_password2'); + return FALSE; + } elseif (postRequestElement('admin_password1') != postRequestElement('admin_password2')) { + // Passwords mismatch + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_PASSWORDS_MISMATCH--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_password1', 'admin_password2'); + return FALSE; + } elseif (!isStrongPassword(postRequestElement('admin_password1'))) { + // Weak passwords entered + $GLOBALS['installer_post_error'][$currentTab] = '{--INSTALLER_POST_FIRST_ADMIN_PASSWORDS_WEAK--}'; + array_push($GLOBALS['installer_failed_fields'][$currentTab], 'admin_password1', 'admin_password2'); + return FALSE; + } // END - if + + // All tests passed + return TRUE; +} + // Store given tab in session function installTabOkay ($currentTab) { // Is it set? @@ -859,5 +946,11 @@ function importInstallSqlDump ($dumpName) { importSqlDump('install', $dumpName, 'install'); } +// Wrapper to check if tables.sql and menu-foo.sql are readable +function isInstallerSqlsReadable ($path) { + // Determine it + return ((isFileReadable($path . 'install/tables.sql')) && (isFileReadable($path . 'install/menu-' . getLanguage() . '.sql'))); +} + // [EOF] ?> diff --git a/inc/install-inc.php b/inc/install-inc.php index 4a7443d451..abf378c987 100644 --- a/inc/install-inc.php +++ b/inc/install-inc.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if @@ -97,7 +97,7 @@ if ((!isInstalled()) || (!isAdminRegistered())) { loadIncludeOnce($inc); } else { // Not found, may be invalid page - logDebugMessage(__FILE__, __LINE__, sprintf("Wrong install_page=%s detected", getRequestElement('install_page'))); + logDebugMessage(__FILE__, __LINE__, sprintf('Wrong install_page=%s detected', getRequestElement('install_page'))); addTemplateToInstallContent('admin_settings_unsaved', '{%message,INSTALLER_WRONG_PAGE=' . getRequestElement('install_page') . '%}'); } } else { diff --git a/inc/install/install_page_ b/inc/install/install_page_ index 38166d6e74..3eb3046028 100644 --- a/inc/install/install_page_ +++ b/inc/install/install_page_ @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if diff --git a/inc/install/install_page_1.php b/inc/install/install_page_1.php index 13376a72cb..f25eedaef6 100644 --- a/inc/install/install_page_1.php +++ b/inc/install/install_page_1.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if diff --git a/inc/install/install_page_2.php b/inc/install/install_page_2.php index 91839eb809..cdf02e92d2 100644 --- a/inc/install/install_page_2.php +++ b/inc/install/install_page_2.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if diff --git a/inc/install/install_page_3.php b/inc/install/install_page_3.php index 60ef83c0cd..57256a328d 100644 --- a/inc/install/install_page_3.php +++ b/inc/install/install_page_3.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if diff --git a/inc/install/install_page_5.php b/inc/install/install_page_5.php index ba84c15b6c..9f8e363a1d 100644 --- a/inc/install/install_page_5.php +++ b/inc/install/install_page_5.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if diff --git a/inc/install/install_page_finalize.php b/inc/install/install_page_finalize.php index 14c2a0cc15..faf29112a7 100644 --- a/inc/install/install_page_finalize.php +++ b/inc/install/install_page_finalize.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if @@ -56,7 +56,7 @@ if ((isPostRequestElementSet('finalize')) && (!isInstalled())) { // Seems to work, also right database? if (sqlSelectDatabase($GLOBALS['install_mysql']['dbase'], __FILE__, __LINE__) === TRUE) { // Check for dumps - if ((!isFileReadable(postRequestElement('spath') . 'install/tables.sql')) || (!isFileReadable(postRequestElement('spath') . 'install/menu-'.getLanguage().'.sql'))) { + if (!isInstallerSqlsReadable(postRequestElement('spath'))) { // Installation area not found reportBug(__FILE__, __LINE__, 'SQL dumps not found. Please extract ALL files from the archive or checkout all files out from SVN.'); return; diff --git a/inc/install/install_page_finished.php b/inc/install/install_page_finished.php index e36a56a949..8decb7ad8f 100644 --- a/inc/install/install_page_finished.php +++ b/inc/install/install_page_finished.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if diff --git a/inc/install/install_page_welcome.php b/inc/install/install_page_welcome.php index b89f9a721d..70c5cbedb0 100644 --- a/inc/install/install_page_welcome.php +++ b/inc/install/install_page_welcome.php @@ -36,7 +36,7 @@ ************************************************************************/ // Some security stuff... -if ((!defined('__SECURITY')) || (!isInstallationPhase())) { +if ((!defined('__SECURITY')) || (!isInstaller())) { die(); } // END - if diff --git a/inc/js/js-install_ajax.php b/inc/js/js-install_ajax.php index a6f6f437c3..ba6e1fd90a 100644 --- a/inc/js/js-install_ajax.php +++ b/inc/js/js-install_ajax.php @@ -38,7 +38,7 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif ((!isInstallationPhase()) || (!isGetRequestElementSet('install_page'))) { +} elseif ((!isInstaller()) || (!isGetRequestElementSet('install_page'))) { return; } diff --git a/inc/language-functions.php b/inc/language-functions.php index 249812c710..9566d60516 100644 --- a/inc/language-functions.php +++ b/inc/language-functions.php @@ -51,7 +51,7 @@ function getMessage ($messageId) { $return = $GLOBALS['messages'][getCurrentLanguage()][$messageId]; } else { // Missing language constant - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Missing message string %s detected.", $messageId)); + logDebugMessage(__FUNCTION__, __LINE__, sprintf('Missing message string %s detected.', $messageId)); } // Return the string @@ -168,10 +168,10 @@ function isLanguageIncludeReadable ($ext_name = 'none') { // Generate filename if ($ext_name == 'none') { // Generic - $languageInclude = sprintf("inc/language/%s.php", getLanguage()); + $languageInclude = sprintf('inc/language/%s.php', getLanguage()); } else { // Extension's language file - $languageInclude = sprintf("inc/language/%s_%s.php", $ext_name, getLanguage()); + $languageInclude = sprintf('inc/language/%s_%s.php', $ext_name, getLanguage()); } // Look for file if no extension name is provided @@ -214,7 +214,7 @@ function loadLanguageFile ($ext_name = 'none') { loadLanguageInclude($ext_name); } elseif ((isDebugModeEnabled()) && (isHtmlOutputMode()) && ($ext_name != 'sql_patches') && (substr($ext_name, 0, 10) != 'admintheme')) { // No language file is not so good... - logDebugMessage(__FUNCTION__, __LINE__, sprintf("NOTICE: Extension %s has no language file or we cannot read from it. lang=%s, mode=%s", + logDebugMessage(__FUNCTION__, __LINE__, sprintf('NOTICE: Extension %s has no language file or we cannot read from it. lang=%s, mode=%s', $ext_name, getLanguage(), getExtensionMode() @@ -222,7 +222,7 @@ function loadLanguageFile ($ext_name = 'none') { } // Check for installation mode - if ((isInstallationPhase()) || (!isAdminRegistered())) { + if ((isInstaller()) || (!isAdminRegistered())) { // Load language file loadLanguageInclude('install'); } // END - if @@ -233,10 +233,10 @@ function loadLanguageInclude ($ext_name = 'none') { // Generate filename if ($ext_name == 'none') { // Generic - $languageInclude = sprintf("inc/language/%s.php", getLanguage()); + $languageInclude = sprintf('inc/language/%s.php', getLanguage()); } else { // Extension's language file - $languageInclude = sprintf("inc/language/%s_%s.php", $ext_name, getLanguage()); + $languageInclude = sprintf('inc/language/%s_%s.php', $ext_name, getLanguage()); } // Check it before loading @@ -245,7 +245,7 @@ function loadLanguageInclude ($ext_name = 'none') { loadIncludeOnce($languageInclude); } else { // Not readable! - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Language file %s not found or readable.", $languageInclude)); + logDebugMessage(__FUNCTION__, __LINE__, sprintf('Language file %s not found or readable.', $languageInclude)); } } diff --git a/inc/language.php b/inc/language.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/language.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/language/active_de.php b/inc/language/active_de.php index 0810d03720..5b38dc4aa6 100644 --- a/inc/language/active_de.php +++ b/inc/language/active_de.php @@ -46,8 +46,8 @@ addMessages(array( 'GUEST_ACTIVE_NO_MEMER_ONLINE_TODAY' => "Heute war noch kein einziges Mitglied online.", 'GUEST_ACTIVE_HEADER' => "Wir waren heute online.", 'GUEST_ACTIVE_FOOTER' => "Diese Mitglieder waren heute bei {?MAIN_TITLE?} eingeloggt.", - 'ADMIN_CONFIG_ACTIVE_TITLE' => "Einstellungen an Aktiv-Liste", - 'ADMIN_CONFIG_ACTIVE_LIMIT' => "Anzahl Einträge in Liste", + 'ADMIN_CONFIG_ACTIVE_TITLE' => "Einstellungen an Aktiv-Liste:", + 'ADMIN_CONFIG_ACTIVE_LIMIT' => "Anzahl Einträge in Liste:", )); // [EOF] diff --git a/inc/language/admins_de.php b/inc/language/admins_de.php index 3115062e1d..77d675b888 100644 --- a/inc/language/admins_de.php +++ b/inc/language/admins_de.php @@ -51,9 +51,9 @@ addMessages(array( 'ADMIN_ADMINS_ADD_DONE' => "Das Admin-Account wurde angelegt.", 'ADMIN_ADMINS_EDIT_ACCOUNTS_TITLE' => "Admin-Accounts bearbeiten", 'ADMIN_ADMINS_EDIT_DELETE_ACCOUNTS_TITLE' => "Admin-Accounts verwalten", - 'ADMIN_ADMINS_CONTACT' => "Admin-Login", - 'ADMIN_ADMINS_EMAIL' => "E-Mail Adresse", - 'ADMIN_ADMINS_PASSWORD' => "Passwort und Wiederholung", + 'ADMIN_ADMINS_CONTACT' => "Admin-Login:", + 'ADMIN_ADMINS_EMAIL' => "E-Mail Adresse:", + 'ADMIN_ADMINS_PASSWORD' => "Passwort und Wiederholung:", 'ADMIN_ADMINS_EDIT_NOTICE' => "Bitte beachten Sie, dass Sie nur dann das Passwort zweimal eingeben müssen, wenn Sie es ändern wollen. Wollen Sie nur die Daten ändern, brauchen Sie kein Passwort eingeben.", 'ADMIN_ADMINS_DELETE_ACCOUNTS_TITLE' => "Wollen Sie wirklich diese Accounts löschen?", 'ADMIN_ADMINS_CANNOT_DELETE_LAST' => "Das letzte Admin-Account kann nicht gelöscht werden.", @@ -75,14 +75,14 @@ addMessages(array( 'ADMIN_ADMINS_SELECT_MODE' => "Zugriffsmodus auswählen", 'ADMIN_ADMINS_ACCESS_MODE_ALLOW' => "Erlauben", 'ADMIN_ADMINS_ACCESS_MODE_DENY' => "Ablehnen", - 'ADMIN_ADMINS_ACCESS_MODE' => "Zugriffsmodus", + 'ADMIN_ADMINS_ACCESS_MODE' => "Zugriffsmodus:", 'ADMIN_ADMINS_ACL_NOTICE' => "Sperren Sie nicht sich selber aus, indem Sie den Zugriffsmodus Ihres eigenen Accountes auf {--ADMIN_ADMINS_ACCESS_MODE_DENY--} stellen! Dann können Sie zwar einloggen, aber nichts mehr machen.", 'ADMIN_ADMINS_SAME_MODE_SELECTED' => "Bitte wählen Sie den anderen Zugriffsmodus aus.", 'ADMIN_ADMINS_SELECT_ACTION_WHAT' => "Bitte wählen Sie ein Haupt- oder Untermenü aus.", 'ADMIN_ADMINS_ACL_ALREADY_ADDED' => "Zugriffskontrollzeile bereits hinzugefügt.", 'ADMIN_ADMINS_ACL_SAVED' => "Zugriffskontrollzeile gespeichert.", 'ADMIN_ADMINS_LIST_ACLS' => "Alle angelgten Zugriffkontrollzeilen auflisten", - 'ADMIN_ADMINS_LOGIN_ID' => "Admin-Login", + 'ADMIN_ADMINS_LOGIN_ID' => "Admin-Login:", 'ADMIN_ADMINS_EDIT_ACLS_TITLE' => "Zugriffkontrollzeilen ändern", 'ADMIN_ADMINS_DELETE_ACLS' => "Zugriffkontrollzeilen löschen", 'ADMIN_ADMINS_CHANGE_ACLS_SUBMIT' => "Einträge ändern", @@ -91,7 +91,7 @@ addMessages(array( 'ADMIN_ADMINS_ENTRIES_DELETED' => "Zugriffkontrollzeilen wurden gelöscht.", 'ADMIN_ADMINS_MAILS_NO_ENTRIES' => "Keine Einträge gefunden.", 'ADMIN_LIST_ADMINS_MAILS_TITLE' => "Admins-Mails verwalten", - 'ADMIN_ADMINS_TEMPLATE' => "Mail-Template", + 'ADMIN_ADMINS_TEMPLATE' => "Mail-Template:", 'ADMIN_TO_ALL_ADMINS' => "An alle Admins", 'ADMIN_ADMINS_TO_USER_EVENTS' => "Im Userlog vermerken", 'ADMIN_ADMINS_NO_MAIL_CHECKED' => "Keine Mails zum Editieren ausgewählt.", diff --git a/inc/language/autopurge_de.php b/inc/language/autopurge_de.php index c62ea23708..972c0495fe 100644 --- a/inc/language/autopurge_de.php +++ b/inc/language/autopurge_de.php @@ -43,7 +43,7 @@ if (!defined('__SECURITY')) { // Language definitions addMessages(array( // Admin lines - 'ADMIN_CONFIG_AUTOPURGE_TITLE' => "Konfiguration der automatischen Löschungen", + 'ADMIN_CONFIG_AUTOPURGE_TITLE' => "Konfiguration der automatischen Löschungen:", 'ADMIN_CONFIG_AUTOPURGE_INACTIVE' => "Sollten inaktive Accounts erkannt und gelöscht werden?", 'ADMIN_CONFIG_AUTOPURGE_INACTIVE_SINCE' => "Dauer bis bestätigtes Account als inaktiv markiert wird:", 'ADMIN_CONFIG_AUTOPURGE_INACTIVE_TIME' => "Dauer bis inaktives Account gelöscht wird:", @@ -88,6 +88,7 @@ addMessages(array( // Points accounts - subject 'POINTS_SUBJECT_AUTOPURGE_ADD' => "Mailrückvergütung durch Autolöschung", + 'POINTS_SUBJECT_AUTOPURGE_ADD_REF' => "Anteilige Mailrückvergütung durch Autolöschung", // Admin - for ext-task 'ADMIN_TASK_INACTIVE_AUTOPURGE' => "Inaktive Accounts", diff --git a/inc/language/bank_de.php b/inc/language/bank_de.php index 985f079e3a..9965d913c4 100644 --- a/inc/language/bank_de.php +++ b/inc/language/bank_de.php @@ -62,22 +62,24 @@ addMessages(array( 'ADMIN_ADD_BANK_PACKAGE' => "Angebotspaket einstellen", 'ADMIN_BANK_FOOTER_NOTICE' => "Bitte beachten Sie, dass keine Mail zu den Mitgliedern unterwegs ist. Seien Sie bei Titel, Beschreibung und Freitext kreativ und schreiben Sie aussagekräftige Texte.", 'ADMIN_BANK_NO_PACKAGES_FOUND' => "Keine Angebotspakete zum Auflisten gefunden.", - 'ADMIN_LIST_BANK_PACKAGES' => "Angebotspakete für Ihre Bank auflisten", - 'ADMIN_LIST_BANK_PACKAGES_TITLE' => "Pakettitel", - 'ADMIN_LIST_BANK_PACKAGES_DESCR' => "Paketbeschreibung", - 'ADMIN_LIST_BANK_PACKAGES_ACCOUNT_FEE' => "Grundgebühr", - 'ADMIN_LIST_BANK_PACKAGES_STATUS' => "Erwerbbar?", - 'ADMIN_LIST_BANK_PACKAGES_ACCOUNT_INTEREST_PLUS' => "Zinsen f. Haben", - 'ADMIN_LIST_BANK_PACKAGES_ACCOUNT_INTEREST_MINUS' => "Zinsen f. Soll", - 'ADMIN_DELETE_BANK_PACKAGES' => "Angebotspakete entgültig entfernen", + 'ADMIN_LIST_BANK_PACKAGES_TITLE' => "Angebotspakete für Ihre Bank auflisten", + 'ADMIN_DELETE_BANK_PACKAGES_TITLE' => "Angebotspakete entgültig entfernen:", 'ADMIN_DELETE_BANK_PACKAGES_NOTICE' => "Hinweis: Wenn Sie die aufgelisteten Angebotspakete entgültig löschen, kann eventuell Ihre Bank nicht korrekt funktionieren, da eventuell einige Mitglieder dieses Paket ausgewählt haben. Bitte schauen Sie unter Konten auflisten vorher nach.", 'ADMIN_EDIT_BANK_PACKAGES' => "Angebotspakete ändern", 'ADMIN_EDIT_BANK_PACKAGES_NOTICE' => "Hinweis: Derzeit keine Tipps für diese Aktion.", -// Output modes + // Output modes 'BANK_OUTPUT_MODE_LOGIN' => "Nur im Mitgliedsbereich", 'BANK_OUTPUT_MODE_EMAIL' => "Per EMail&Mitgliedsbereich", 'BANK_OUTPUT_MODE_DISABLED' => "Keinen Zugriff", + + // Generic messages + 'BANK_PACKAGES_TITLE' => "Pakettitel:", + 'BANK_PACKAGES_DESCR' => "Paketbeschreibung:", + 'BANK_PACKAGES_ACCOUNT_FEE' => "Grundgebühr:", + 'BANK_PACKAGES_STATUS' => "Erwerbbar?", + 'BANK_PACKAGES_ACCOUNT_INTEREST_PLUS' => "Zinsen f. Haben:", + 'BANK_PACKAGES_ACCOUNT_INTEREST_MINUS' => "Zinsen f. Soll:", )); // [EOF] diff --git a/inc/language/beg_de.php b/inc/language/beg_de.php index 9ff7d2ca7c..48ec2d3678 100644 --- a/inc/language/beg_de.php +++ b/inc/language/beg_de.php @@ -106,9 +106,9 @@ addMessages(array( 'ADMIN_BEG_ALREADY_WITHDRAW' => "Manuelle Vergütungvorbereitung bereits betätigt.", 'BEG_RALLYE_NOTICE' => "Hinweis: Unter {--BEG_POINTS--} finden Sie Ihre gesamt erbettelten {?POINTS?} wieder.", 'BEG_RALLYE_CONDITIONS' => "Wer alles an der Bettel-Rallye teilnehmen kann", - 'BEG_RALLYE_CONDITION_1' => "Es werden nur aktive und freigeschaltete Mitglieder berücksichtig.", + 'BEG_RALLYE_CONDITION_1' => "Es werden nur aktive und freigeschaltete Mitglieder berücksichtigt.", 'BEG_RALLYE_CONDITION_2' => "Es kann jeder dran teilnehmen, der Mitglied bei diesem {?mt_word?} ({?MAIN_TITLE?}) und freigegeben ist.", - 'BEG_RALLYE_CONDITION_3' => "Zur Erstellung des Rallye-Ergebnisses werden alle erbettelten {?POINTS?} berücksichtig.", + 'BEG_RALLYE_CONDITION_3' => "Zur Erstellung des Rallye-Ergebnisses werden alle erbettelten {?POINTS?} berücksichtigt.", 'BEG_RALLYE_CONDITION_4' => "Der Rechtsweg ist ausgeschlossen.", 'MEMBER_LIST_BEG_RALLYE_TITLE' => "Derzeitiger Stand der Bettel-Rallye", 'BEG_LINK_HERE' => "Betteln Sie am Besten gleich los! Hier ist der Link dazu.", diff --git a/inc/language/blacklist_de.php b/inc/language/blacklist_de.php index f948b36df0..8990e1b3a2 100644 --- a/inc/language/blacklist_de.php +++ b/inc/language/blacklist_de.php @@ -49,6 +49,8 @@ addMessages(array( 'ADMIN_CONFIG_IP_BLACKLIST_ENABLED' => "Sperrliste für IP-Adressen aktivieren?", 'ADMIN_CONFIG_URL_BLACKLIST_ENABLED' => "Sperrliste für gebuchte URLs aktivieren?", 'ADMIN_CONFIG_BLACKLIST_NOTICE' => "Hinweise: Die Sperrliste für Email-Adressen gilt sowohl für die Mitgliedsanmeldung als auch wenn das Mitglied seine Daten ändert. Ist die vom Mitglied eingegebene Email-Adresse gesperrt, wird diese nicht angenommen. Die URL-Sperrliste gilt für alle Erweiterungen (Besuchertausch, Mailbuchung, Forced-Buchungen usw.).", + 'ADMIN_BLACKLIST_NO_SELECTIONS' => "Es wurden keine Auswahlen getroffen. Bitte wählen Sie mindestens einen Sperreintrag aus.", + 'ADMIN_BLACKLIST_404' => "Es wurden keine Einträge in der Sperrliste gefunden.", )); // [EOF] diff --git a/inc/language/bonus_de.php b/inc/language/bonus_de.php index 1f848603d7..9596ca1e6c 100644 --- a/inc/language/bonus_de.php +++ b/inc/language/bonus_de.php @@ -44,7 +44,7 @@ if (!defined('__SECURITY')) { addMessages(array( 'MEMBER_BONUS_LOGIN_TOTAL' => "Login-Bonus", 'MEMBER_BONUS_TURBO_TOTAL' => "Aktiv-Bonus beim Best.", - 'ADMIN_CONFIG_BONUS_TITLE' => "Einstellungen an Vergütungen", + 'ADMIN_CONFIG_BONUS_TITLE' => "Einstellungen an Vergütungen:", 'ADMIN_CONFIG_BONUS_LOGIN' => "Bonus für Login", 'ADMIN_CONFIG_BONUS_TURBO' => "Rang-Bonus für Erst-Klicker", 'ADMIN_CONFIG_TURBO_RATES' => "Bonus für Klicker 2 bis x", @@ -60,7 +60,7 @@ addMessages(array( 'BONUS_SHOW_WRONG_TYPE' => "Falscher Typ an das Script übergeben! Bitte melden Sie sich beim Webmaster .", 'BONUS_SHOW_NO_DATA' => "Entweder haben Sie für diese Mail keine Aktiv-Vergütung erhalten oder der Link ist nicht mehr gültig.", 'MEMBER_BONUS_NO_RANKS' => "Es hat noch niemand {?POINTS?} zur Mail %s gewonnen! Sie könnten der erste sein! :-)", - 'MEMBER_BONUS_LOGIN_TURBO_NOTICE' => "Der Login-, Referral-, Klickrate-, Mailbuchungs- und Bestätigungsbonus wird Ihnen nicht sofort vergütet, sondern erst am Ende jeden Monats in Form einer Aktiv-Rallye. Den Mailbuchungsbonus erhalten Sie erst bei Freischaltung Ihrer Mail auf das Bonus-Konto gutgeschrieben.", + 'MEMBER_BONUS_LOGIN_TURBO_NOTICE' => "Der Login-, Referral-, Klickrate-, Mailbuchungs- und Bestätigungsbonus wird Ihnen nicht sofort vergütet, sondern erst am Ende jeden Monats in Form einer Aktiv-Rallye. Den Mailbuchungsbonus erhalten Sie erst bei Freischaltung Ihrer Mail auf das Bonus-Konto gutgeschrieben.", 'MEMBER_BONUS_POINTS_TITLE' => "Sonderbonus-{?POINTS?}", 'MEMBER_BONUS_RANK_YOU_ARE_404' => "Sie haben bis jetzt noch keine Aktiv-Vergütung erhalten.", 'BONUS_RANK' => "Platz", @@ -97,7 +97,7 @@ addMessages(array( 'ADMIN_CONFIG_BONUS_TURBO_TIMEOUT_TITLE' => "Zeitabstände und Aufbewahrungszeiten", 'ADMIN_CONFIG_BONUS_TURBO_MISC_TITLE' => "Sonstige Einstellungen zur Bonus-Erweiterung", 'MEMBER_BONUS_REFERRAL_TOTAL' => "Referral-Bonus", - 'MEMBER_BONUS_ORDER_TOTAL' => "Mailbestellungsbonus", + 'MEMBER_BONUS_ORDER_TOTAL' => "Mailbuchungsbonus", 'MEMBER_BONUS_STATS_TOTAL' => "100%-Klickratebonus", 'MEMBER_BONUS_RALLYE_DISABLED' => "Aktiv-Rallye derzeit nicht aktiv.", 'MEMBER_BONUS_STATS_SUBJECT' => "Ihr Aktiv-Bonus wegen 100% Klickrate", diff --git a/inc/language/booking_de.php b/inc/language/booking_de.php index bcc81fd45c..494b5bec29 100644 --- a/inc/language/booking_de.php +++ b/inc/language/booking_de.php @@ -42,6 +42,10 @@ if (!defined('__SECURITY')) { // Language strings addMessages(array( + // Admin config + 'ADMIN_CONFIG_BOOKING_PAGE_COUNT' => "Anzahl Einträge pro Seite:", + 'ADMIN_CONFIG_BOOKING_PURGE' => "Wie lange sollen Einträge für den Kontoauszug in der Datenbank verbleiben?", + // Admin member 'action' links 'ADMIN_USER_ACTION_LINK_LIST_BOOKING' => "Kontoauszug anzeigen", 'ADMIN_USER_ACTION_LINK_LIST_BOOKING_TITLE' => "Zeigt den Kontoauszug des Mitgliedes an.", @@ -50,8 +54,20 @@ addMessages(array( 'ADMIN_BOOKING_404' => "Das ausgewählte Mitgliedaccount weist zur Zeit keine Kontobewegungen auf.", // Admin titles + 'ADMIN_CONFIG_BOOKING_TITLE' => "Konfiguration zum Kontoauszug", 'ADMIN_LIST_BOOKING_RECORDS_TITLE' => "Alle Buchungen des Mitgliedes {%get,generateUserProfileLink=userid%} auflisten", + // Admin legend texts + 'ADMIN_CONFIG_BOOKING_LISTING_LEGEND' => "Auflisten von Auszugseinträgen:", + 'ADMIN_CONFIG_BOOKING_PURGING_LEGEND' => "Bereinigung der Tabelle:", + + // Admin notices + 'ADMIN_CONFIG_BOOKING_NOTICE' => "Wichtig: Diese Tabelle kann bei vielen Mitgliedern sehr schnell gross werden, was bei kleineren Datenbankservern schnell zur Überlastung führen kann. Daher empfiehlt es sich, die Einträge schneller zu bereinigen und auch den Tabellentyp auf InnoDB zu setzen.", + 'ADMIN_LIST_BOOKING_NOTICE' => "Vorsicht: Mit Klick auf {--ADMIN_ACTION_DELETE_BOOKING_SUBMIT--} werden die Logbucheinträge ohne Sicherheitsabfrage gelöscht. Die Buchungen selbst werden nicht rückgängig gemacht.", + + // Admin submit buttons + 'ADMIN_ACTION_DELETE_BOOKING_SUBMIT' => "Kontoauszug löschen", + // Member error messages 'MEMBER_BOOKING_404' => "Ihr Benutzerkonto weist noch keine Buchungen auf.", @@ -64,10 +80,6 @@ addMessages(array( // Generic messages 'BOOKING_RECORDED' => "Durchgeführt", 'BOOKING_COMMENTS' => "Kommentar", - - // Admin booking listing - 'ADMIN_ACTION_DELETE_BOOKING_SUBMIT' => "Kontoauszug löschen", - 'ADMIN_LIST_BOOKING_NOTICE' => "Vorsicht: Mit Klick auf {--ADMIN_ACTION_DELETE_BOOKING_SUBMIT--} werden die Logbucheinträge ohne Sicherheitsabfrage gelöscht. Die Buchungen selbst werden nicht rückgängig gemacht.", )); // [EOF] diff --git a/inc/language/coupon_de.php b/inc/language/coupon_de.php index 158041d111..c0c65eeb0d 100644 --- a/inc/language/coupon_de.php +++ b/inc/language/coupon_de.php @@ -101,7 +101,7 @@ addMessages(array( // Point account subjects 'POINTS_SUBJECT_COUPON_CASHED' => "Einlösung eines Gutscheins", - 'POINTS_SUBJECT_CASHED_COUPON' => "Mitglied hat Gutschein eingelöst", + 'POINTS_SUBJECT_COUPON_CASHED_REF' => "Anteil an Einlösung eines Gutscheins", )); // [EOF] diff --git a/inc/language/de.php b/inc/language/de.php index aa7c6d483c..d7e47537d5 100644 --- a/inc/language/de.php +++ b/inc/language/de.php @@ -44,6 +44,7 @@ if (!defined('__SECURITY')) { addMessages(array( // Language elements - unsorted // @TODO Please sort these language elements + 'MAILER_WARNING' => "Warnung:", 'MODULE_REGISTRY_404' => "Modul {%pipe,getModule%} existiert nicht.", 'MODULE_REGISTRY_LOCKED_404' => "Gsperrtes Modul {%pipe,getModule%} existiert nicht.", 'MODULE_REGISTRY_IS_LOCKED' => "Das Modul {%pipe,getModule%} wurde gesperrt.", @@ -73,15 +74,15 @@ 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_NO_PASS' => "Kein Passwort eingegeben.", + 'ADMIN_NO_PASSWORD' => "Kein Passwort eingegeben.", 'CLEAR_FORM' => "Nochmal eingeben", 'ADMIN_ACCOUNT_FIRST_CREATION_SUBMIT' => "Admin-Account erstellen", 'ADMIN_NO_LOGIN' => "Sie haben keinen Loginnamen eingegeben.", 'ADMIN_NO_PASSWORD1' => "Sie haben kein Passwort eingegeben.", 'ADMIN_NO_PASSWORD2' => "Sie haben keine Passwortwiederholung eingegeben.", - 'ADMIN_SHORT_PASSWORD1' => "Das Passwort ist zu kurz! Mindestens {?minium_admin_pass_length?} Zeichen.", - 'ADMIN_SHORT_PASSWORD2' => "Die Passwortwiederholung ist zu kurz! Mindestens {?minium_admin_pass_length?} Zeichen.", - 'ADMIN_SHORT_PASS' => "Ihr Administratorpasswort ist zu kurz! Mindestens {?minium_admin_pass_length?} Zeichen", + 'ADMIN_WEAK_PASSWORD1' => "Das Passwort ist zu schwach. Mindestens: {%config,translatePasswordStrength=min_password_score%}.", + 'ADMIN_WEAK_PASSWORD2' => "Die Passwortwiederholung ist zu schwach. Mindestens: {%config,translatePasswordStrength=min_password_score%}.", + 'ADMIN_WEAK_PASSWORD' => "Ihr Administratorpasswort ist zu schwach. Mindestens: {%config,translatePasswordStrength=min_password_score%}.", 'ADMIN_PASSWORD1_MISMATCH' => "Das Passwort stimmt nicht mit der Wiederholung überein.", 'ADMIN_PASSWORD2_MISMATCH' => "Die Passwortwiederholung stimmt nicht mit dem Passwort überein.", 'ADMIN_LOGIN_ALREADY_REG' => "Das von Ihnen eingegebene Admin-Login existiert bereits.", @@ -199,17 +200,17 @@ addMessages(array( 'ENTER_EMAIL' => "Bitte geben Sie Ihre Email-Adresse ein! Diese muss auch erreichbar sein.", 'ENTER_SURNAME' => "Bitte geben Sie Ihren Vornamen ein.", 'ENTER_FAMILY' => "Bitte geben Sie Ihren Nachnamen ein.", - 'ADMIN_CONFIG_MINIMUM_PASSWORD_LENGTH' => "Minimale Passwortlänge", 'SETTINGS_NOT_SAVED' => "Einstellungen NICHT gespeichert / geändert.", 'SETTINGS_SAVED' => "Einstellungen gespeichert.", 'FATAL_CANNOT_LOAD_CONFIG' => "Kann die Konfigurationsdaten nicht laden! Vermutlich richtet der Webmaster diesen {?mt_word?} gerade das Script erst ein! Bitte schauen Sie später noch einmal vorbei.", 'ADMIN_ACTION_INVALID' => "Die action/what-Kombination %s ist ungültig.", - 'GUEST_SHORT_PASS' => "Das eingegebene Passwort ist nach unseren Sicherheitseinstellungen zu kurz. Mindestlänge ist", + 'GUEST_WEAK_PASSWORD' => "Das eingegebene Passwort ist nach unseren Sicherheitseinstellungen zu schwch. Mindeststärke: {%config,translatePasswordStrength=min_password_score%}", 'GUEST_EMPTY_PASSWORD_HINT' => "Lassen Sie beide Passwörter leer, so wird Ihnen eines generiert.", 'ADMIN_ENTER_POINTS_REGISTER' => "Willkommensgutschrift", 'ADMIN_ENTER_POINTS_REFERRAL' => "Einmalige Referral-Gutschrift", 'CHOOSE_MORE_CATEGORIES' => "Bitte wählen Sie mehr Kategorien aus! Minimum ist: {?least_cats?}", 'ADMIN_EDIT_POINTS' => "Willkommensgutschrift und andere Festbeträge editieren", + 'MEMBER_LIST_UNCONFIRMED_MAILS_TITLE' => "Ihre unbestätigten Mails:", // Referral levels (admin/generic) 'ADMIN_ADD_NEW_REFERRAL_DEPTH_TITLE' => "Neue Referral-Ebene hinzufügen", @@ -278,6 +279,7 @@ addMessages(array( 'LIFE_MONTHS' => "Monat(e)", 'LIFE_YEARS' => "Jahr(e)", 'MODULE_MEMBER_ONLY' => "Auf das ausgewählte Modul %s dürfen nur eingeloggte Mitglieder zugreifen.", + 'MODULE_GENERIC_API_TITLE' => "Generelle API", 'MEMBER_404_ACTION' => "Das Mitgliedsaktionsmodul %s ist nicht auffindbar.", 'USERNAME_GUEST' => "Gast", 'USERNAME_INSTALLER' => "Installation", @@ -337,10 +339,10 @@ addMessages(array( 'REFERRAL_CLICKS_SHORT' => "Klicks", 'REFERRAL_VIEWS' => "Views", 'REFERRAL_IS_ACTIVE' => "Aktiv?", - 'POINTS_USED' => "Verbrauchte {?POINTS?}", - 'MEMBER_POINTS_LEFT' => "{?POINTS?}-Guthaben zum Mailversand übrig", + 'POINTS_USED' => "Verbrauchte {?POINTS?}:", + 'MEMBER_POINTS_LEFT' => "{?POINTS?}-Guthaben zum Mailversand übrig:", 'MEMBER_SELECT_MAIL_TYPE' => "Mailart auswählen:", - 'PLEASE_SELECT' => "Bitte auswählen", + 'PLEASE_SELECT' => "Bitte auswählen:", 'PER_MAIL' => "{?POINTS?} / Mail", 'PAYMENT' => "{?POINTS?} Vergütung", 'SELECT_CATEGORY' => "Zielkategorie auswählen:", @@ -544,7 +546,7 @@ addMessages(array( 'ADMIN_EDIT_PAYMENT_TITLE' => "Mailvergütungen editieren", 'ADMIN_CHANGE_PAYMENT' => "Mailvergütungen ändern", 'ADMIN_REMOVE_PAYMENT' => "Mailvergütungen löschen", - 'REFERRALS' => "Referrals", + 'REFERRAL_COUNT' => "Referrals:", 'MEMBER_PART_POINTS' => "Teilsummen", 'KBYTES' => "KBytes", 'MEBER_UPDATE_PWD_WRONG' => "Sie haben das falsche Passwort eingegeben! Bitte nochmal versuchen.", @@ -567,8 +569,8 @@ addMessages(array( 'ADMIN_ONLINE_DETAILS' => "Detailierte Statistik für alle Besucher", '_REFID' => "Ref-Id", '_MODULE' => "Modul", - 'ADMIN_MENU_ACTION' => "Hauptmenü", - 'ADMIN_MENU_WHAT' => "Untermenü", + 'ADMIN_MENU_ACTION' => "Hauptmenü:", + 'ADMIN_MENU_WHAT' => "Untermenü:", '_IS_ADMIN' => "Administrator", '_IS_GUEST' => "Gast", 'LAST_SEEN' => "Zuletzt gesehen", @@ -588,12 +590,11 @@ addMessages(array( 'ADMIN_ID_404' => "ID %s nicht gefunden.", // Columns for listing tasks - 'ADMIN_ASSIGNED_ADMIN' => "Zugewiesener Admin", - 'ADMIN_ASSIGNED_ADMIN_EMAIL' => "Admin", - 'ADMIN_MEMBER_USERID' => "ID des Mitgliedes", - 'ADMIN_MEMBER_USERID_EMAIL' => "Mitglied-Id", + 'ADMIN_TASK_ASSIGNED_ADMIN' => "Zugewiesener Admin", + 'ADMIN_TASK_ASSIGNED_ADMIN_EMAIL' => "Admin:", + 'ADMIN_ASSIGNED_USERID' => "ID des Mitgliedes", + 'ADMIN_ASSIGNED_USERID_EMAIL' => "Mitglied-Id:", 'ADMIN_TASK_TYPE' => "Aufgabenbereich", - 'ADMIN_TASK_TYPE_EMAIL' => "Aufgabenbereich", 'ADMIN_TASK_CREATED' => "Aufgabe erstellt", 'ADMIN_TASK_CREATED_EMAIL' => "Erstellt", @@ -625,10 +626,10 @@ addMessages(array( 'ADMIN_IS_SYSTEM_TASK' => "System-Task", 'ADMIN_TASK_SUBJECT' => "Aufgabenbetreff", 'ADMIN_TASK_TEXT' => "Aufgabentext", - 'ADMIN_REGISTER_EXTENSION' => "Installieren", - 'ADMIN_REGISTER_EXTENSION_TITLE' => "Erweiterung sofort installieren", + 'ADMIN_TASK_REGISTER_EXTENSION' => "Installieren", + 'ADMIN_TASK_REGISTER_EXTENSION_TITLE' => "Erweiterung sofort installieren", 'ADMIN_EXTENSION_IS_DEPRECATED_TITLE' => "Erweiterung wird nicht mehr verwendet (deprecated).", - 'ADMIN_SELECTED_TASKS_ASSIGN' => "Zum Bearbeiten ausgewählte Aufgaben", + 'ADMIN_SELECTED_TASKS_ASSIGN' => "Zum Bearbeiten ausgewählte Aufgaben:", 'ADMIN_EXTENSION_REGISTRATION_FAILED_INVALID' => "Registrierung fehlgeschlagen: Ungültige id übermittelt.", 'ADMIN_EXTENSION_REGISTRATION_FAILED_ID_404' => "Registrierung fehlgeschlagen: Erweiterung-Id nicht auffindbar.", 'ADMIN_EXTENSION_REGISTRATION_FAILED_404' => "Registrierung fehlgeschlagen: Erweiterung %s nicht auffindbar.", @@ -778,7 +779,7 @@ addMessages(array( '_ON' => "an", 'MEMBER_CLICK_STATISTICS' => "Mail-Statistik", 'ADMIN_CONFIG_SELECT_DEFAULT_REFID' => "Standard Referral-Id bei Anmeldung über keinen Ref-Link", - 'ADMIN_CONFIG_SELECT_REFID_TARGRT' => "Ziel-Seite des Referral-Linkes", + '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_INSTALLER_THEME' => "Theme importieren", @@ -877,10 +878,8 @@ addMessages(array( 'ADMIN_LOGOUT_QUESTION' => "Wollen Sie sich jetzt ausloggen?", 'ADMIN_LA_MODE' => "Menütyp", 'ADMIN_ACCOUNT_NOREFS_404' => "Es wurden keine Mitgliederaccounts ohne Werber gefunden, oder verändern Sie die Aussortierung.", - 'ADMIN_CONFIG_SALT_LENGTH' => "Länge des "Salz-Hhashes" für alle Passwörter", 'MEMBER_PASSWORD_ERROR' => "Fehler beim Abgleichen der Passwörter.", 'ADMIN_PASS_SALTED' => "Admin-Password wegen Update geändert", - 'ADMIN_CONFIG_SALT_LENGTH_NOTICE' => "Um für alle Accounts (Mitglieder/Admins derzeit) neue Passwörter zu generieren, lassen Sie das Eingabefeld {--ADMIN_CONFIG_SALT_LENGTH--} leer oder geben Sie eine 0 ein! Vorsicht! Sie müssen sich dann anschliessend erneut einloggen.", 'GUEST_LOGIN_FAILED_GENERAL' => "Genereller Loginfehler! Bitte kontaktieren Sie den Webmaster.", 'DEFAULT_MT_WORD' => "Mailtausch", 'DEFAULT_MT_WORD2' => "Mailtausches", @@ -926,12 +925,6 @@ addMessages(array( 'EXTENSION_PROBLEM_EXTENSION_OUTDATED' => "Kann nicht fortfahren! Fehler Eine Erweiterung ist veraltet. Bitte benachrichten Sie den Support.", 'EXTENSION_WARNING_EXTENSION_INACTIVE' => "Die Erweiterung %s ist nicht aktiv. Dies kann zu Störungen führen.
\nBitte aktivieren Sie diese unter Verschiedenes->Erweiterungen.", 'EXTENSION_WARNING_USER_LIMIT' => "Die Erweiterung ext-user ist nicht aktiv. Die Anzahl Mitglieder pro Seite wurde auf 100 gesetzt. Bitte aktivieren Sie diese unter Verschiedenes->Erweiterungen.", - 'ADMIN_PROXY_SETTINGS_INVALID' => "Ihre Proxy-Einstellungen scheinen ungültig zu sein.", - 'ADMIN_EDIT_PROXY_SETTINGS' => "Proxy-Einstellungen ändern", - 'ADMIN_CONFIG_PROXY_HOST' => "Hostname oder IP-Nummer:", - 'ADMIN_CONFIG_PROXY_PORT' => "Port-Nummer (z.B. 8085):", - 'ADMIN_CONFIG_PROXY_USERNAME' => "Benuztername (falls vorhanden):", - 'ADMIN_CONFIG_PROXY_PASSWORD' => "Passwort (falls vorhanden):", 'ADMIN_EDIT_ENTRIES' => "Einträge ändern", '_CATEGORY_NONE' => "Keine Kategorie", '_UNUSED' => "Ungenutzt", @@ -942,6 +935,14 @@ addMessages(array( 'ENTRY_ADDED' => "Eintrag hinzugefügt", 'UNLIMITED' => "Unbegrenzt", + // Admin config - proxy settings + 'ADMIN_CONFIG_PROXY_TITLE' => "Proxy-Einstellungen ändern", + 'ADMIN_CONFIG_PROXY_HOST' => "Hostname oder IP-Nummer:", + 'ADMIN_CONFIG_PROXY_PORT' => "Port-Nummer (z.B. 8085):", + 'ADMIN_CONFIG_PROXY_USERNAME' => "Benuztername (falls vorhanden):", + 'ADMIN_CONFIG_PROXY_PASSWORD' => "Passwort (falls vorhanden):", + 'ADMIN_PROXY_SETTINGS_INVALID' => "Ihre Proxy-Einstellungen scheinen ungültig zu sein.", + // Status 'ACTIVATED' => "Aktiviert", 'DEACTIVATED' => "Deaktiviert", @@ -1011,8 +1012,9 @@ addMessages(array( 'ADMIN_ENTRIES_404' => "Es wurden keine Einträge gefunden.", 'ADMIN_EXTENSION_ALWAYS_ACTIVE' => "Die Erweiterung {%%pipe,getExtensionName=%s%%} 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", - 'MEMBER_TOTAL_POINTS' => "Gesamtguthaben", + 'POINTS_OWN' => "Eigenguthaben:", + 'POINTS_ORDER' => "Werbeguthaben:", + 'MEMBER_TOTAL_POINTS' => "Gesamtguthaben:", 'ADMIN_UNSUPPORTED_MAIL_TYPE_DETECTED' => "Nicht unterstützer Mail-Typ %s erkannt. Bitte melden Sie dies im Support-Forum.", 'ADMIN_EDIT_EMAIL_FAILED' => "Änderungen an der Mail nicht gespeichert, bitte kontaktieren Sie den Support.", 'ADMIN_EMAIL_CHANGES_SAVED' => "Die Maildaten wurden aktualisiert.", @@ -1027,11 +1029,20 @@ addMessages(array( 'URL_IS_BLACKLISTED' => "URL ist gesperrt.", 'EMAIL_IS_BLACKLISTED' => "Ihre Email-Adresse darf bei uns nicht verwendet werden. Bitte setzen Sie sich mit uns in Verbindung.", 'IP_IS_BLACKLISTED' => "Die von Ihnen derzeit verwendete IP-Adresse ist bei uns gesperrt. Bitte setzen Sie sich mit uns in Verbindung.", + 'URL_IS_BLACKLISTED' => "Die von Ihnen eingegebene URL ist bei uns gesperrt. Bitte setzen Sie sich mit uns in Verbindung.", 'DATA_IS_HIDDEN' => "Daten sind verdeckt.", 'ADMIN_BOOKING_PACKAGE_ID' => "Buchungspaket", 'ADMIN_BOOKING_PACKAGE_LINK' => "Zum Paket ...", 'APPLICATION_DIED_TITLE' => "Bug im Script erkannt.", + // Admin config - security-related settings + 'ADMIN_CONFIG_SECURE_TITLE' => "Sicherheitseinstellungen:", + 'ADMIN_CONFIG_MINIMUM_PASSWORD_LENGTH_LEGEND' => "Minimale Passwort/Saltlängen:", + 'ADMIN_CONFIG_MINIMUM_PASSWORD_LENGTH' => "Minimale Passwortlänge:", + 'ADMIN_CONFIG_SALT_LENGTH' => "Länge des "Salz-Hhashes" für alle Passwörter:", + 'ADMIN_CONFIG_MINIMUM_PASSWORD_SCORE' => "Minimale Sicherheitsstufe aller Passwörter:", + 'ADMIN_CONFIG_SECURE_NOTICE' => "Um für alle Accounts (Mitglieder/Admins derzeit) neue Passwörter zu generieren, lassen Sie das Eingabefeld {--ADMIN_CONFIG_SALT_LENGTH--} leer oder geben Sie eine 0 ein! Vorsicht! Sie müssen sich dann anschliessend erneut einloggen. Sie sollten die minimale Passwortstärke nie unter {--PASSWORD_SCORE_3--} stellen, da diese dann zu schach und somit leicht "erratbar" sind (Brute-Force-Attacke).", + // Admin - subject lines 'ADMIN_NEW_ACCOUNT_SUBJECT' => "Neue Anmeldung zu Ihrem {?mt_word?}", 'ADMIN_SEND_DONE_SUBJECT' => "Vollständig: Aussendung einer Werbebbuchung.", @@ -1089,7 +1100,6 @@ addMessages(array( // Admin - configuration titles 'ADMIN_CONFIG_CATEGORIES_TITLE' => "Aufgelistete Kategorien bearbeiten / löschen", - 'ADMIN_CONFIG_SECURITY_TITLE' => "Sicherheitseinstellungen", 'ADMIN_CONFIG_POINTS_SETTINGS_TITLE' => "Ändern der Willkommensgutschrift und anderer {?POINTS?}", 'ADMIN_CONFIG_POINT_SETTINGS_TITLE' => "Einstellungen an {?POINTS?}vergütungen", 'ADMIN_CONFIG_HOME_TITLE' => "Legen Sie hier die neue Home-Seite fest", @@ -1186,12 +1196,12 @@ addMessages(array( // Special user lists (what=list_user) '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ätigten Mitglieder-Accounts auflisten", - 'ADMIN_LIST_STATUS_UNCONFIRMED_ACCOUNTS' => "Alle unbestätigten Mitglieder-Accounts auflisten", - 'ADMIN_LIST_DO_CONFIRMED_ACCOUNTS' => "Alle bestä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ür Zufallsreferral auflisten", + 'ADMIN_LIST_STATUS_LOCKED_ACCOUNTS' => "Alle gesperrten Mitgliedaccounts auflisten", + 'ADMIN_LIST_STATUS_CONFIRMED_ACCOUNTS' => "Alle bestätigten Mitgliedaccounts auflisten", + 'ADMIN_LIST_STATUS_UNCONFIRMED_ACCOUNTS' => "Alle unbestätigten Mitgliedaccounts auflisten", + 'ADMIN_LIST_DO_CONFIRMED_ACCOUNTS' => "Alle bestätigten Mitgliedaccounts auflisten", + 'ADMIN_LIST_DO_NOREFS_ACCOUNTS' => "Alle Mitgliedaccounts ohne Referrals auflisten", + 'ADMIN_LIST_DO_RANDOM_REFID_ACCOUNTS' => "Alle Mitgliedaccounts für Zufallsreferral auflisten", 'ADMIN_LIST_DO_TESTERS_ACCOUNTS' => "Alle Testbenutzer auflisten", // Admin task lines @@ -1306,9 +1316,9 @@ addMessages(array( '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ührt ist, sollte die eingegebene Tabellenspalte nicht existieren, wird sie automatisch angelegt. Sollte das Guthabenkonto wieder gelöscht werden, werden die dort angesammelten {?POINTS?} auf das eingestellbare Guthabenkonto (aktuell: {%config,translatePointsAccountType=points_remove_account%} umgebucht. Es können mit diesem Formular nur benutzerdefinierte Guthabenkonten angelegt oder gelö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 addPointsThroughReferralSystem(), subtractPoints() und somit auch addBookingRecord() übereinstimmen.", - 'ADMIN_ADD_POINTS_DATA_COLUMN_NAME_NOTICE' => "Die Tabellenspalte ist stets klein zu schreiben, ist diese in der Tabelle {?_MYSQL_PREFIX?}_user_points nicht vorhanden, wird diese plus der selbe Spaltenname mit dem Präfix locked_ automatisch dort erzeugt. Der Spaltenname sollte das Stichwort points enthalten und darf NIEMALS id, userid oder ref_depth heissen oder locked enthalten.", + 'ADMIN_ADD_POINTS_DATA_COLUMN_NAME_NOTICE' => "Die Tabellenspalte ist stets klein zu schreiben, ist diese in der Tabelle {?_MYSQL_PREFIX?}_user_points nicht vorhanden, wird diese plus der selbe Spaltenname mit dem Präfix locked_ automatisch dort erzeugt. Der Spaltenname sollte das Stichwort points enthalten und darf NIEMALS id, userid oder ref_depth heissen oder locked enthalten oder mit _ref enden.", 'ADMIN_ADD_POINTS_DATA_LOCKED_MODE_NOTICE' => "Bei der {?POINTS?}-Sperre werden dem Mitglied die {?POINTS?} auf sein so genanntes "gesperrtes Guthaben" gutgeschrieben. Auf dieses hat das Mitglied solange keinen Zugriff, bis es die Mindestanzahl zu bestätigender Mails erreicht hat. Die Einstellung {--POINTS_LOCKED_MODE_LOCKED--} bewirkt, dass das Mitglied ebenfalls auf dieses Guthaben hinarbeiten muss. {--POINTS_LOCKED_MODE_UNLOCKED--} bewirkt hingegen, dass das Mitglied die Gutschrift sofort erhält, ohne Mails bestätigen zu müssen.", - 'ADMIN_ADD_POINTS_DATA_PAYMENT_METHOD_NOTICE' => "Mit der Vergütungsmethode können Sie beeinflussen, ob Ihre Mitglieder Referral-Gutschriften erhalten oder nur das eigentliche Mitglied (also das, was die Gutschrift erhalten soll) diese "direkt" gutgeschrieben werden soll. Stellen Sie dies z.B. beim Verwendungszweck mailid_okay auf "{--POINTS_PAYMENT_METHOD_DIRECT--}" um, erhät das werbende Mitglied (das als Referral-Id eingetragen ist) keine Gutschriften bei der Mailbestätigung mehr. Seien Sie also auch mit dieser Einstellung nicht leichtsinnig.", + 'ADMIN_ADD_POINTS_DATA_PAYMENT_METHOD_NOTICE' => "Mit der Vergütungsmethode können Sie beeinflussen, ob Ihre Mitglieder Referral-Gutschriften erhalten oder nur das eigentliche Mitglied (also das, was die Gutschrift erhalten soll) diese "direkt" gutgeschrieben werden soll. Stellen Sie dies z.B. beim Verwendungszweck mailid_okay auf "{--POINTS_PAYMENT_METHOD_DIRECT--}" um, erhält das werbende Mitglied (das als Referral-Id eingetragen ist) keine Gutschriften bei der Mailbestä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", @@ -1324,7 +1334,7 @@ addMessages(array( // Admin points data config - title 'ADMIN_ADD_POINTS_DATA_TITLE' => "Benutzerdefiniertes Guthabenkonto erstellen", 'ADMIN_EDIT_POINTS_DATA_TITLE' => "Ändern von Guthabenkonten", - 'ADMIN_LIST_POINTS_ACCOUNTS_TITLE' => "Alle Guthabenkonten auflisten", + 'ADMIN_LIST_POINTS_ACCOUNTS_TITLE' => "Alle Verwendungszwecke und Guthabenkonten auflisten", // Admin points data config - submit buttons 'ADMIN_ADD_POINTS_DATA_SUBMIT' => "Guthabenkonto anlegen", @@ -1420,6 +1430,14 @@ addMessages(array( 'EMAIL_DISPLAY_TO_ADDRESS' => "An:", 'EMAIL_DISPLAY_SUBJECT_LINE' => "Betreffzeile:", 'EMAIL_DISPLAY_MESSAGE_LENGTH' => "Nachricht(Länge):", + + // Password scores + 'PASSWORD_SCORE_0' => "Zu schwach/leer", + 'PASSWORD_SCORE_1' => "Sehr schach", + 'PASSWORD_SCORE_2' => "Schwach", + 'PASSWORD_SCORE_3' => "Mittel", + 'PASSWORD_SCORE_4' => "Stark", + 'PASSWORD_SCORE_5' => "Sehr stark", )); // Description of all months diff --git a/inc/language/doubler_de.php b/inc/language/doubler_de.php index 454c54bfd3..a1d2ae1799 100644 --- a/inc/language/doubler_de.php +++ b/inc/language/doubler_de.php @@ -43,25 +43,25 @@ if (!defined('__SECURITY')) { // Language definitions addMessages(array( // Admin configuration - 'ADMIN_CONFIG_DOUBLER_TITLE' => "Einstellungen am {?POINTS?}-Verdoppler", - 'ADMIN_CONFIG_DOUBLER_CHARGE' => "Prozentuale Gebühr zum Verdoppeln", + 'ADMIN_CONFIG_DOUBLER_TITLE' => "Einstellungen am {?POINTS?}-Verdoppler:", + 'ADMIN_CONFIG_DOUBLER_CHARGE' => "Prozentuale Gebühr zum Verdoppeln:", 'ADMIN_CONFIG_DOUBLER_JACKPOT' => "Soll der Jackpot zum Verdoppeln verwendet werden?", - 'ADMIN_CONFIG_DOUBLER_SEND_MODE' => "Aussendemodus der Benachrichtigungsmails", + 'ADMIN_CONFIG_DOUBLER_SEND_MODE' => "Aussendemodus der Benachrichtigungsmails:", 'ADMIN_CONFIG_DOUBLER_SEND_DIRECT' => "Aussenden, sobald genügend {?POINTS?} zur Auszahlung der Verdoppelung bereit stehen.", 'ADMIN_CONFIG_DOUBLER_SEND_RESET' => "Erst beim täglichen Reset prüfen, ob Verdoppelungen ausgezahlt werden können.", - 'ADMIN_CONFIG_DOUBLER_TIMEOUT' => "Verweildauer ausgezahlter Verdoppelungen in der Datenbank", - 'ADMIN_CONFIG_DOUBLER_USERID' => "Mitglieder-Account zur Verdoppelung verwenden", - 'ADMIN_CONFIG_DOUBLER_DISPLAY_TITLE' => "Anzeige-Einstellungen für Anzahl Einträge", + 'ADMIN_CONFIG_DOUBLER_TIMEOUT' => "Verweildauer ausgezahlter Verdoppelungen in der Datenbank:", + 'ADMIN_CONFIG_DOUBLER_USERID' => "Mitgliedaccount zur Verdoppelung verwenden:", + 'ADMIN_CONFIG_DOUBLER_DISPLAY_TITLE' => "Anzeige-Einstellungen für Anzahl Einträge:", 'ADMIN_CONFIG_DOUBLER_DISPLAY_NEW' => "Anzahl ersten X neuen Einträge", 'ADMIN_CONFIG_DOUBLER_DISPLAY_PAY' => "Anzahl ersten X vor Auszahlung stehender Verdoppelungen", 'ADMIN_CONFIG_DOUBLER_DISPLAY_OLD' => "Anzahl ersten X bereits ausgezahlter Verdoppelungen", - 'ADMIN_CONFIG_DOUBLER_REFERRAL' => "Prozentuale Referral-Vergütung", + 'ADMIN_CONFIG_DOUBLER_REFERRAL' => "Prozentuale Referral-Vergütung:", 'ADMIN_CONFIG_DOUBLER_MINIMUM' => "Minimum {?POINTS?} die verdoppelt werden sollen", 'ADMIN_CONFIG_DOUBLER_MAXIMUM' => "Maximum {?POINTS?} die verdoppelt werden sollen", - 'ADMIN_CONFIG_DOUBLER_LEFT' => "Auf dem Mitgliedsaccount nach Verdoppelung Minimum-{?POINTS?}-Guthaben", - 'ADMIN_CONFIG_DOUBLER_OWN' => "{?POINTS?}-Guthaben des Verdopplers zur Auszahlung verwenden", - 'ADMIN_CONFIG_DOUBLER_GROUP_SENT' => "Auf Anzahl durchführbare Auszahlungen warten, damit an diese ausgezahlt werden kann. (Gruppenauszahlung!)", - 'ADMIN_CONFIG_DOUBLER_MAX_SENT' => "Pro Klick/Reset auf Auszahlungsfähigkeit hin zu testende Verdopplungen", + 'ADMIN_CONFIG_DOUBLER_LEFT' => "Auf dem Mitgliedsaccount nach Verdoppelung Restguthaben ({?POINTS?}):", + 'ADMIN_CONFIG_DOUBLER_OWN' => "{?POINTS?}-Guthaben des Verdopplers zur Auszahlung verwenden?", + 'ADMIN_CONFIG_DOUBLER_GROUP_SENT' => "Auf Anzahl durchführbare Auszahlungen warten, damit an diese ausgezahlt werden kann. (Gruppenauszahlung)", + 'ADMIN_CONFIG_DOUBLER_MAX_SENT' => "Pro Klick/Reset auf Auszahlungsfähigkeit hin zu testende Verdopplungen:", 'ADMIN_CONFIG_DOUBLER_SENT_ALL' => "Soll anstelle der Gruppenauszahlung alle möglichen Auszahlungen durchgeführt werden?", // Admin generic messages @@ -92,14 +92,10 @@ addMessages(array( 'DOUBLER_MINIMUM_IS' => "Mindestens", 'DOUBLER_MAXIMUM_IS' => "verdoppeln, maximal", 'DOUBLER_HAVE_FUN' => "Viel Spaß.", - 'DOUBLER_POINTS_1' => "Wenn Sie {?POINTS?} verdoppeln, kommen Sie diese nach Abzug von", - 'DOUBLER_POINTS_2' => "Betreibergebühr in einen Topf; bei Erreichen einer Verdopplung wird diese der Einzahlungsreihe nach, automatisch ausgeführt.", - 'DOUBLER_EXAMPLE_1' => "Beispiel: Einzahlung", - 'DOUBLER_EXAMPLE_2' => "Auszahlung:", - 'DOUBLER_EXAMPLE_3' => ", sobald Sie an der Reihe sind, ohne(*) ein Risiko einzugehen.", + 'DOUBLER_POINTS' => "Wenn Sie {?POINTS?} verdoppeln, kommen Sie diese nach Abzug von {%config,translateComma=doubler_charge%}% Betreibergebühr in einen Topf; bei Erreichen einer Verdopplung wird diese der Einzahlungsreihe nach, automatisch ausgeführt.", + 'DOUBLER_EXAMPLE' => "Beispiel: Einzahlung 500 {?POINTS?} »» Auszahlung: 1000 {?POINTS?}, sobald Sie an der Reihe sind, ohne(*) ein Risiko einzugehen.", 'DOUBLER_FULL_PAYOUT' => "100% Auszahlung", - 'DOUBLER_REFERRAL_1' => "Refverdienst: Es gibt {%config,translateComma=doubler_ref%}% Refverdienst. Wenn Sie {?POINTS?} auf dem Refkonto durch Werbung erwirtschaftet haben, (Wichtig! Maximal Verdoppelung darf nicht überschritten werden) werden diese bei Ihrer nächsten Verdoppelung aufgeschlagen.", - 'DOUBLER_REFERRAL_2' => "Beispiel: Sie haben 100 {?POINTS?} Refverdienst und verdoppeln 100 {?POINTS?}, Sie bekommen - sobald Sie an der Reihe sind - 300 {?POINTS?} zurück.", + 'DOUBLER_REFERRAL' => "Refverdienst: Es gibt {%config,translateComma=doubler_ref%}% Refverdienst. Wenn Sie {?POINTS?} auf dem Refkonto durch Werbung erwirtschaftet haben, (Wichtig! Maximal Verdoppelung darf nicht überschritten werden) werden diese bei Ihrer nächsten Verdoppelung aufgeschlagen. Beispiel: Sie haben 100 {?POINTS?} Refverdienst und verdoppeln 100 {?POINTS?}, Sie bekommen - sobald Sie an der Reihe sind - 300 {?POINTS?} zurück.", 'DOUBLER_TIMEOUT' => "Es werden Einträge nicht älter als {%config,createFancyTime=doubler_timeout%} angezeigt.", 'DOUBLER_REFERRAL_LINK' => "Den Reflink erfahren Sie nach jeder Verdoppelung.", 'DOUBLER_NOT_YET_REGISTERED' => "Noch nicht angemeldet?", diff --git a/inc/language/holiday_de.php b/inc/language/holiday_de.php index a0985552ae..ecfced1c67 100644 --- a/inc/language/holiday_de.php +++ b/inc/language/holiday_de.php @@ -53,11 +53,11 @@ addMessages(array( 'ADMIN_HOLIDAY_DELETE_LINK' => "Urlaub beenden", 'ADMIN_HOLIDAY_SINGLE_DELETED' => "Urlaub eines Mitgliedes beendet.", 'ADMIN_HOLIDAY_MULTI_DELETE' => "Urlaub von %s Mitglied(-ern) beendet.", - 'ADMIN_CONFIG_HOLIDAY_TITLE' => "Einstellungen an der Urlaubsschaltung", - 'ADMIN_CONFIG_HOLIDAY_MAX_TIME' => "Maximale beantragbare Urlaubszeit", + 'ADMIN_CONFIG_HOLIDAY_TITLE' => "Einstellungen an der Urlaubsschaltung:", + 'ADMIN_CONFIG_HOLIDAY_MAX_TIME' => "Maximale beantragbare Urlaubszeit:", 'ADMIN_HOLIDAY_SINGLE_404' => "Urlaubsschaltung nicht mehr vorhanden, oder veralteter Link.", - 'ADMIN_CONFIG_HOLIDAY_LOCKED' => "Dauer bis Urlaubsschaltung aufgehoben werden kann", - 'ADMIN_CONFIG_HOLIDAY_MODE' => "Zeitpunkt der Abarbeitung der Urlaubsschaltungen", + 'ADMIN_CONFIG_HOLIDAY_LOCKED' => "Dauer bis Urlaubsschaltung aufgehoben werden kann:", + 'ADMIN_CONFIG_HOLIDAY_MODE' => "Zeitpunkt der Abarbeitung der Urlaubsschaltungen:", 'ADMIN_CONFIG_HOLIDAY_MODE_RESET' => "Am täglichen Reset um 00:00 Uhr", 'ADMIN_CONFIG_HOLIDAY_MODE_DIRECT' => "Sofort nach Beantragung prüfen", // Member strings diff --git a/inc/language/install_de.php b/inc/language/install_de.php index 1a42d5fe1d..8e2812fb53 100644 --- a/inc/language/install_de.php +++ b/inc/language/install_de.php @@ -81,20 +81,23 @@ addMessages(array( 'INSTALLER_FATAL_NO_MPASSWORD2' => "Bitte geben Sie noch die Passwortbestätigung ein.", // 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_PAGE_BASE_DATA_TITLE' => "Server-Pfad, Basis-URL und Webseitentitel", + 'INSTALLER_PAGE_INIT_TITLE' => "Installationsroute initialisiert gerade", + 'INSTALLER_PAGE_WELCOME_TITLE' => "Willkommen zur Installation von {?TITLE?}, dem freien {?mt_word?}-Script", + 'INSTALLER_PAGE_BASE_DATA_TITLE' => "Server-Pfad, Basis-URL und Webseitentitel", 'INSTALLER_PAGE_DATABASE_CONFIG_TITLE' => "Zugangsdaten zur Datenbank", - 'INSTALLER_PAGE_SMTP_CONFIG_TITLE' => "SMTP-Server Einstellungen", - 'INSTALLER_PAGE_OTHER_CONFIG_TITLE' => "Verschiedene Einstellungen", - 'INSTALLER_PAGE_EXTENSIONS_TITLE' => "Erweiterungen installieren", - 'INSTALLER_PAGE_OVERVIEW_TITLE' => "Die Installation kann beginnen", + 'INSTALLER_PAGE_SMTP_CONFIG_TITLE' => "SMTP-Server Einstellungen", + 'INSTALLER_PAGE_OTHER_CONFIG_TITLE' => "Verschiedene Einstellungen", + 'INSTALLER_PAGE_EXTENSIONS_TITLE' => "Erweiterungen installieren", + 'INSTALLER_PAGE_FIRST_ADMIN_TITLE' => "Ersten Administratoraccount anlegen", + 'INSTALLER_PAGE_OVERVIEW_TITLE' => "Die Installation kann starten", // Installation pages descriptions - 'INSTALLER_BASE_DATA_DESCRIPTION' => "Geben Sie hier den absoluten Server-Pfad (/ihr/server/pfad/) mit abschliessendem Slash (/), die Basis-URL (vorgegebene Werte stimmen meistens) und den Titel Ihres {?mt_word2?} ein.", + 'INSTALLER_BASE_DATA_DESCRIPTION' => "Geben Sie hier den absoluten Server-Pfad (/ihr/server/pfad/) mit 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 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ür Standard-Einstellungen.", - 'INSTALLER_OTHER_CONFIG_DESCRIPTION' => "Hier können Sie weitere Einstellungen vornehmen, wie zum Beispiel den Ausgabe-Modus festlegen, in der der HTML-Code ausgegeben werden soll, usw.", + 'INSTALLER_SMTP_CONFIG_DESCRIPTION' => "Geben Sie hier 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ür Standard-Einstellungen.", + 'INSTALLER_OTHER_CONFIG_DESCRIPTION' => "Hier können Sie weitere Einstellungen vornehmen, wie zum Beispiel den Ausgabe-Modus festlegen, in der der HTML-Code ausgegeben werden soll, usw.", + 'INSTALLER_EXTENSION_DESCRIPTION' => "Wählen Sie Erweiterungen aus, die bei der Installation sofort mitinstalliert werden sollen. Möchten Sie eventuell später weitere installieren, so ist dies kein Problem.", + 'INSTALLER_FIRST_ADMIN_DESCRIPTION' => "Richten Sie hier gleich mit den ersten Administratoraccount ein. Den vorgegebenen Loginnamen können Sie selbstverständlich anpassen (und sollten es auch), um die Sicherheit Ihrer Installation zu verbessern.", // Installation page - Base data 'INSTALLER_LABEL_BASE_PATH' => "Absoluter Server-Pfad:", @@ -115,23 +118,31 @@ addMessages(array( 'INSTALLER_MYSQL_PASSWORD1' => "Ihr Passwort:", 'INSTALLER_MYSQL_PASSWORD2' => "Passwortwiederholung:", - // Installation page - Other settings + // Installation page - other settings 'INSTALLER_OUTPUT_MODE' => "Ausgabemodus des HTML-Codes", 'INSTALLER_MODE_RENDER' => "In $GLOBALS "rendern"", 'INSTALLER_MODE_DIRECT' => "Im Ausgabebuffer cachen", 'INSTALLER_ENABLE_BACKLINK' => "Backlink zu {?SERVER_URL?} setzen?", 'INSTALLER_ENABLE_BACKLINK_NOTICE' => "Hinweis: Derzeit ist rel="external" für den Backlink gesetzt. Bitte nicht den Backlink eingebaut lassen und rel="nofollow" verwenden. Das schadet allen.", + // Installation page - first admin + 'INSTALLER_FIRST_ADMIN_LOGIN' => "Geben Sie einen Loginnamen ein:", + 'INSTALLER_FIRST_ADMIN_EMAIL' => "Ihre EMail-Adresse:", + 'INSTALLER_FIRST_ADMIN_PASSWORD1' => "Geben Sie ein Passwort ein:", + 'INSTALLER_FIRST_ADMIN_PASSWORD2' => "Wiederholen Sie das Passwort:", + 'INSTALLER_ADMIN_PASSWORD_NOTICE' => "Das Passwort muss der Mindeststärke {%config,translatePasswordStrength=min_password_score%} entsprechen.", + // Installation notes 'INSTALLER_BASE_PATH_NOTICE' => "Mit abschließendem /.", 'INSTALLER_BASE_URL_NOTICE' => "Ohne abschließendem /.", 'INSTALLER_SMTP_HOST_NOTICE' => "Zum Beispiel mail.ihre-domain.example", // AJAX title - 'INSTALLER_AJAX_ERROR_TITLE' => "AJAX-Abfrage im Installer fehlgeschlagen", - 'INSTALLER_AJAX_WARNING_TITLE' => "Warnung: Es sind ungespeicherte Änderungen vorhanden", - 'INSTALLER_AJAX_TEST_TITLE' => "AJAX-Testergebnis positiv", - 'INSTALLER_AJAX_FINISH_TITLE' => "Installation läuft . . .", + 'INSTALLER_AJAX_ERROR_TITLE' => "AJAX-Abfrage im Installer fehlgeschlagen", + 'INSTALLER_AJAX_WARNING_TITLE' => "Warnung: Es sind ungespeicherte Änderungen vorhanden", + 'INSTALLER_AJAX_TEST_TITLE' => "AJAX-Testergebnis positiv", + 'INSTALLER_AJAX_PROGRESS_TITLE' => "Installation läuft . . .", + 'INSTALLER_AJAX_SUCCESS_TITLE' => "Installation abgeschlossen!", // Installer switches 'INSTALLER_SWITCH_PLAIN' => "Kompatiblitätsmodus", @@ -158,10 +169,12 @@ addMessages(array( '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_TITLE' => "Seite 4: Sonstige Grundeinstellungen", 'INSTALLER_TAB_NAVIGATION_OTHER_CONFIG_LINK' => "Sonstiges", - 'INSTALLER_TAB_NAVIGATION_EXTENSIONS_TITLE' => "Erweiterungen installieren", + 'INSTALLER_TAB_NAVIGATION_EXTENSIONS_TITLE' => "Seite 5: Erweiterungen installieren", 'INSTALLER_TAB_NAVIGATION_EXTENSIONS_LINK' => "Erweiterungen", + 'INSTALLER_TAB_NAVIGATION_FIRST_ADMIN_TITLE' => "Seite 6: Ersten Administratoraccount anlegen", + 'INSTALLER_TAB_NAVIGATION_FIRST_ADMIN_LINK' => "Administratoraccount", 'INSTALLER_TAB_NAVIGATION_OVERVIEW_TITLE' => "Installationszusammenfassung", 'INSTALLER_TAB_NAVIGATION_OVERVIEW_LINK' => "Zusammenfassung", @@ -196,29 +209,36 @@ addMessages(array( // Changed elements - extensions 'INSTALLER_CHANGED_ELEMENT_EXTENSION' => "Die Erweiterung %s wurde aus- oder abgewählt.", + // Changed elements - first admin + 'INSTALLER_CHANGED_ELEMENT_ADMIN_LOGIN' => "Sie haben das Administratorlogin geändert.", + 'INSTALLER_CHANGED_ELEMENT_ADMIN_EMAIL' => "Sie haben die EMail-Adresse des Administratorlogins geändert.", + 'INSTALLER_CHANGED_ELEMENT_ADMIN_PASSWORD1' => "Sie haben das Kennwort des Administratorlogins geändert.", + 'INSTALLER_CHANGED_ELEMENT_ADMIN_PASSWORD2' => "Sie haben die Wiederholung des Kennwortes des Administratorlogins geä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_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ä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:", + 'INSTALLER_DATABASE_LEGEND_LOGIN_PASSWORD' => "Datenbanklogin und -passwort:", + 'INSTALLER_SMTP_LEGEND_OPTIONAL_CONFIG' => "Optionale SMTP-Daten:", + 'INSTALLER_OTHER_CONFIG_LEGEND_ET_CETERA' => "Sonstige Einstellungen:", + 'INSTALLER_FIRST_ADMIN_LEGEND' => "Daten des ersten Administratoraccunts:", // Save changes 'INSTALLER_SAVE_CHANGES_FAILED' => "Die Änderungen konnten leider nicht gespeichert werden, da einige fehlerhaft sind. Bitte korregieren Sie die rot hervorgehobenen Einträge und probieren Sie es erneut.", 'INSTALLER_SAVE_CHANGES_DONE' => "Änderungen gespeichert.", - // Post-Check - General failure messages + // Post-check - general failure messages 'INSTALLER_POST_CHECK_DATABASE_CONFIG_FAILED' => "Beim testweisen Aufbauen einer Datenbankverbindung ist ein Fehler entstanden: %s", - // Post-Check - Base configuration + // Post-check - base configuration 'INSTALLER_POST_BASE_PATH_INVALID' => "Der Basis-Pfad für Include-Dateien ist ungültig.", 'INSTALLER_POST_BASE_URL_INVALID' => "Die Basis-URL ist ungültig.", 'INSTALLER_POST_MAIN_TITLE_INVALID' => "Der {?mt_word?}-Titel ist zu kurz.", 'INSTALLER_POST_SLOGAN_INVALID' => "Der Werbespruch ist zu kurz.", 'INSTALLER_POST_EMAIL_INVALID' => "Die eMail-Adresse ist ungültig.", - // Post-Check - Database connection + // 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örter stimmen nicht überein.", @@ -229,10 +249,19 @@ addMessages(array( 'INSTALLER_POST_DATABASE_ENGINE_UNSUPPORTED' => "Die von Ihnen ausgewählte Storage-Engine wird nicht unterstützt. Meistens gilt dies für InnoDB, dann müssen Sie einfach MyISAM nehmen.", 'INSTALLER_POST_DATABASE_IN_USE' => "Die von Ihnen ausgewählte Datenbank weist Tabellen auf, die von einer älteren Installation stammen. Damit keine Datenverluste entstehen, wurde die Installation abgebrochen. Bitte verwenden Sie eine neue Datenbank oder leeren Sie die alte. Alternativ können Sie auch einen anderen Tabellenpräfix eingeben.", + // Post-check - first admin + 'INSTALLER_POST_FIRST_ADMIN_LOGIN_EMPTY' => "Das Administratorlogin ist leer.", + 'INSTALLER_POST_FIRST_ADMIN_LOGIN_SHORT' => "Das Administratorlogin ist zu kurz. Es müssen mindestens 4 Zeichen eingegeben werden.", + 'INSTALLER_POST_FIRST_ADMIN_EMAIL_INVALID' => "Die EMail-Adresse des ersten Administratoraccounts ist ungültig.", + 'INSTALLER_POST_FIRST_ADMIN_PASSWORD1_EMPTY ' => "Das Passwort des ersten Administratoraccounts ist leer.", + 'INSTALLER_POST_FIRST_ADMIN_PASSWORD2_EMPTY ' => "Die Wiederholung des Passwortes des ersten Administratoraccounts ist leer.", + 'INSTALLER_POST_FIRST_ADMIN_PASSWORDS_MISMATCH' => "Das Passwort und die Wiederholung stimmen nicht überein.", + 'INSTALLER_POST_FIRST_ADMIN_PASSWORDS_WEAK' => "Die eingegebenen Passwörter sind zu schwach. Bitte mindestens Passwortstärke {%config,translatePasswordStrength=min_password_score%} erreichen.", + // Final check on 'overview' page 'INSTALLER_OVERVIEW_FINAL_CHECK_FAILED' => "Leider kann die Installation nicht abgeschlossen werden, da nicht alle Angaben vollständig und korrekt sind.", 'INSTALLER_OVERVIEW_FINAL_CHECK_DONE' => "Die Installation kann nun abgeschlossen werden.", - 'INSTALLER_READY_TO_FINISH' => "Es wurden alle nötigen Daten zur Installation gesammelt. Sie können nun die Installation beginnen, indem Sie auf {--PAGE_FINISH_SUBMIT--} klicken. Es wird Ihnen dann der Verlauf der Installation angezeigt. Danach sollten Sie als erstes den ersten Administrator-Account anlegen, damit niemand Ihren {?mt_word?} übernehmen kann.", + 'INSTALLER_READY_TO_FINISH' => "Die Installation kann starten. Klicken Sie dazu auf {--PAGE_FINISH_SUBMIT--}. Dabei wird Ihnen der Verlauf der Installation angezeigt. Danach sollten Sie als erstes sich in den Administratorbereich einloggen, um weitere Feineinstellungen vorzunehmen.", // "Failed overview" 'INSTALLER_OVERVIEW_FAILED_TITLE' => "Es sind nicht alle benötigten Daten zur Installation vorhanden", @@ -246,7 +275,7 @@ addMessages(array( 'INSTALLER_FIELD_FAILED_WEBMASTER' => "Die EMail-Adresse der Webmaster-Adresse stimmt nicht.", 'INSTALLER_FIELD_FAILED_MYSQL_HOST' => "Der Hostname für die Datenbankanbindung stimmt nicht.", 'INSTALLER_FIELD_FAILED_MYSQL_DBASE' => "Der Datenbankname stimmt nicht.", - 'INSTALLER_FIELD_FAILED_MYSQL_PREFIX' => "Der Präfix ist leer.", + 'INSTALLER_FIELD_FAILED_MYSQL_PREFIX' => "Der Tabellenpräfix ist leer.", 'INSTALLER_FIELD_FAILED_MYSQL_ENGINE' => "Die Ausgewählte Engine wurde nicht erkannt.", 'INSTALLER_FIELD_FAILED_MYSQL_LOGIN' => "Das Datenbanklogin stimmt nicht (leer).", 'INSTALLER_FIELD_FAILED_MYSQL_PASSWORD1' => "Das erste Datenbankpasswort stimmt nicht.", @@ -259,6 +288,10 @@ addMessages(array( 'INSTALLER_FIELD_FAILED_WARN_NO_PASS' => "Es wurde weder Y noch N für 'WARN_NO_PASS' übergeben.", 'INSTALLER_FIELD_FAILED_WRITE_FOOTER' => "Es wurde weder Y noch N für 'WRITE_FOOTER' übergeben.", 'INSTALLER_FIELD_FAILED_ENABLE_BACKLINK' => "Es wurde weder Y noch N für 'ENABLE_BACKLINK' übergeben.", + 'INSTALLER_FIELD_FAILED_ADMIN_LOGIN' => "Es wurde kein gültiges Administratorlogin eingegeben. Dies muss mindestens 4 Zeichen lang sein.", + 'INSTALLER_FIELD_FAILED_ADMIN_EMAIL' => "Es wurde keine gültige EMail-Adresse für den ersten Administratoraccount eingegeben.", + 'INSTALLER_FIELD_FAILED_ADMIN_PASSWORD1' => "Das Passwort für den ersten Administratoraccount ist zu schwach. Mindestens: {%config,translatePasswordStrength=min_password_score%}", + 'INSTALLER_FIELD_FAILED_ADMIN_PASSWORD2' => "Die Wiederholung des Passwortes für den ersten Administratoraccount ist zu schwach. Mindestens: {%config,translatePasswordStrength=min_password_score%}", // Other notices 'INSTALLER_EXTENSIONS_NOTICE' => "Sie wollten mindestens ext-sql_patches und zur besseren Übersicht im Adminbereich ext-task installieren. Sie können nach der Installation jederzeit weitere Erweiterungen hinzuinstallieren und brauchen dazu nicht das gesamte Script neu aufsetzen.", diff --git a/inc/language/mailid_de.php b/inc/language/mailid_de.php index fcad540dcb..924a4d61bf 100644 --- a/inc/language/mailid_de.php +++ b/inc/language/mailid_de.php @@ -56,9 +56,10 @@ addMessages(array( 'MEMBER_MAILID_CLICK_BUTTON' => "Einmal den Button anklicken", // Points accounts - subject - 'POINTS_SUBJECT_MAILID_OKAY' => "Vergütung einer Mailbestätigung", - 'POINTS_SUBJECT_MAILID_OKAY_REF' => "Referralvergütung einer Mailbestätigung", - 'POINTS_SUBJECT_MAILID_PAYBACK' => "Bestätungscode falsch", + 'POINTS_SUBJECT_MAILID_OKAY' => "Vergütung einer Mailbestätigung", + 'POINTS_SUBJECT_MAILID_OKAY_REF' => "Referralvergütung einer Mailbestätigung", + 'POINTS_SUBJECT_MAILID_PAYBACK' => "Bestätungscode falsch", + 'POINTS_SUBJECT_MAILID_PAYBACK_REF' => "Anteil an Bestätungscode falsch", // Admin - subject lines 'ADMIN_DIRECT_MAILID_OKAY_SUBJECT' => "Direktgutschrift von korrekte Mailbestätigung aufgebucht", diff --git a/inc/language/nickname_de.php b/inc/language/nickname_de.php index 82099c2133..3198f03c33 100644 --- a/inc/language/nickname_de.php +++ b/inc/language/nickname_de.php @@ -49,7 +49,7 @@ addMessages(array( 'ADMIN_CONFIG_NICKNAME_CHARACTERS' => "Zeichenfolge für Sprachdatei", // Admin - nickname history - 'ADMIN_LIST_NICKNAME_HISTORY_404' => "Das ausgewählte Mitglied {%get,generateUserProfileLink=userid%} hat noch keinen Nicknamen angelegt. Daher konnten auch keine Historie-Einträge gefunden werden.", + 'ADMIN_LIST_NICKNAME_HISTORY_404' => "Das ausgewählte Mitglied {%get,generateUserProfileLink=userid%} hat noch keinen Nicknamen angelegt.", 'ADMIN_LIST_NICKNAME_HISTORY_TITLE' => "Alle verwendeten Nicknames des Mitgliedes {%get,generateUserProfileLink=userid%}", // Member diff --git a/inc/language/optimize_de.php b/inc/language/optimize_de.php index 71ed4d4e11..0a42a8e0a3 100644 --- a/inc/language/optimize_de.php +++ b/inc/language/optimize_de.php @@ -42,11 +42,12 @@ if (!defined('__SECURITY')) { // Language definitions addMessages(array( - 'ADMIN_OPTIMIZE_DBNAME' => "Tabelle", - 'ADMIN_OPTIMIZE_REPAIRED' => "Repariert", - 'ADMIN_OPTIMIZE_OPTIMIZED' => "Optimiert", - 'ADMIN_OPTIMIZE_TOTAL_SIZE' => "Gesamtgrösse", - 'ADMIN_OPTIMIZE_GAIN_SIZE' => "Eingespart", + 'ADMIN_OPTIMIZE_DATABASE_TITLE' => "Optimierung der {?mt_title?}-Datenbank {?__DB_NAME?}:", + 'ADMIN_OPTIMIZE_DBNAME' => "Tabelle:", + 'ADMIN_OPTIMIZE_REPAIRED' => "Repariert:", + 'ADMIN_OPTIMIZE_OPTIMIZED' => "Optimiert:", + 'ADMIN_OPTIMIZE_TOTAL_SIZE' => "Gesamtgrösse:", + 'ADMIN_OPTIMIZE_GAIN_SIZE' => "Eingespart:", 'ADMIN_OPTIMIZE_STATUS_OK' => "Nein", 'ADMIN_OPTIMIZE_STATUS_TABLE_DOES_NOT_SUPPORT_OPTIMIZE_DOING_RECREATE_ANALYZE_INSTEAD' => "Keine Unterstützung (1)", 'ADMIN_OPTIMIZE_STATUS_THE_STORAGE_ENGINE_FOR_THE_TABLE_DOESNT_SUPPORT_OPTIMIZE' => "Keine Unterstützung (2)", diff --git a/inc/language/other_de.php b/inc/language/other_de.php index f6cb6a4b2d..0a57f72a47 100644 --- a/inc/language/other_de.php +++ b/inc/language/other_de.php @@ -43,38 +43,38 @@ if (!defined('__SECURITY')) { // Language constans addMessages(array( // Admin - configuration - 'ADMIN_CONFIG_OTHER_TITLE' => "Sonstige Einstellungen", - 'ADMIN_CONFIG_URL_TIME_LOCK' => "Selbe beworbene URL nicht mehr bewerbar (0 = URL sofort erneut buchbar)", - 'ADMIN_CONFIG_POOL_MAX_SEND' => "Anzahl zu sendender Mails aus dem Pool", + 'ADMIN_CONFIG_OTHER_TITLE' => "Sonstige Einstellungen:", + 'ADMIN_CONFIG_URL_TIME_LOCK' => "Selbe beworbene URL nicht mehr bewerbar (0 = URL sofort erneut buchbar):", + 'ADMIN_CONFIG_POOL_MAX_SEND' => "Anzahl zu sendender Mails aus dem Pool:", 'ADMIN_CONFIG_NOTIFY_ADMIN' => "Benachrichtigung bei Profiländerung?", - 'ADMIN_CONFIG_MAX_ONLINETIME' => "Timeout für Who-is-Online", - 'ADMIN_CONFIG_SENDING_TITLE' => "Versand-Optionen", - 'ADMIN_CONFIG_NOTIFY_TITLE' => "Benachrichtigungsoptionen", - 'ADMIN_CONFIG_TIMEOUT_TITLE' => "Time-out Optionen", - 'ADMIN_CONFIG_CODE_LENGTH' => "Länge des grafischen Codes im Best.-Frame (0 = Nur Button anklicken)", + 'ADMIN_CONFIG_MAX_ONLINETIME' => "Timeout für Who-is-Online:", + 'ADMIN_CONFIG_SENDING_TITLE' => "Versand-Optionen:", + 'ADMIN_CONFIG_NOTIFY_TITLE' => "Benachrichtigungsoptionen:", + 'ADMIN_CONFIG_TIMEOUT_TITLE' => "Time-out Optionen:", + 'ADMIN_CONFIG_CODE_LENGTH' => "Länge des grafischen Codes im Best.-Frame (0 = Nur Button anklicken):", 'ADMIN_CODE_LENGTH_NOTICE' => "(Zeichenanzahl)", - 'ADMIN_CONFIG_ACTIVATE_EXCHANGE' => "Automatisches Freischalten des {?mt_word2?}, wenn x Mitglieder empfangsbereit sind. 0 = Funktion abschalten", - 'ADMIN_CONFIG_POINTS_WORD' => "Währung Ihres Tausches (Klammlose, Wernis, Primera, FuCo, etc.)", - 'ADMIN_CONFIG_MAX_COMMA' => "Angezeigte Stellen hinter dem Komma", + 'ADMIN_CONFIG_ACTIVATE_EXCHANGE' => "Automatisches Freischalten des {?mt_word2?}, wenn x Mitglieder empfangsbereit sind. 0 = Funktion abschalten:", + 'ADMIN_CONFIG_POINTS_WORD' => "Währung Ihres {?mt_word2?} (Klammlose, Wernis, Primera, FuCo, etc.):", + 'ADMIN_CONFIG_MAX_COMMA' => "Angezeigte Stellen hinter dem Komma:", 'ADMIN_CONFIG_CSS_PHP' => "Sollen die CSS-Dateien direkt ausgegeben werden oder von css.php angezeigt werden?", - 'ADMIN_CONFIG_SELECT_CSS_OUTPUT_MODE_DIRECT' => "Per <link>-Tag ausgeben (Debug!)", - 'ADMIN_CONFIG_SELECT_CSS_OUTPUT_MODE_FILE' => "Per css.php ausgeben", - 'ADMIN_CONFIG_SELECT_CSS_OUTPUT_MODE_INLINE' => "In <style>-Tag ausgeben", + 'ADMIN_CONFIG_SELECT_CSS_OUTPUT_MODE_DIRECT' => "Per <link>-Tag ausgeben.", + 'ADMIN_CONFIG_SELECT_CSS_OUTPUT_MODE_FILE' => "Per css.php ausgeben.", + 'ADMIN_CONFIG_SELECT_CSS_OUTPUT_MODE_INLINE' => "In <style>-Tag ausgeben.", 'ADMIN_CONFIG_GUEST_MENU' => "Gastmenü einblenden?", 'ADMIN_CONFIG_MEMBER_MENU' => "Mitgliedsmenü einblenden?", 'ADMIN_CONFIG_YOURE_HERE' => "Navigation "Sie sind hier" einblenden?", - 'ADMIN_CONFIG_MT_WORD' => "Art Ihres Tausches (1. Fall, Singular)", - 'ADMIN_CONFIG_MT_WORD2' => "Art Ihres Tausches (2. Fall, Singular)", - 'ADMIN_CONFIG_MT_WORD3' => "Art Ihres Tausches (1. Fall, Plural)", - 'ADMIN_CONFIG_REJECT_URL' => "Standard-URL bei Ablehnung der Mailbuchung", - 'ADMIN_CONFIG_SHOW_TIMINGS' => "Skript-Statistiken im Seitenfuss einblenden (nützlich zum Debuggen)", + 'ADMIN_CONFIG_MT_WORD' => "Art Ihres Tausches (1. Fall, Singular):", + 'ADMIN_CONFIG_MT_WORD2' => "Art Ihres Tausches (2. Fall, Singular):", + 'ADMIN_CONFIG_MT_WORD3' => "Art Ihres Tausches (1. Fall, Plural):", + 'ADMIN_CONFIG_REJECT_URL' => "Standard-URL bei Ablehnung der Mailbuchung:", + 'ADMIN_CONFIG_SHOW_TIMINGS' => "Skript-Statistiken im Seitenfuss einblenden (nützlich zum Debuggen):", 'ADMIN_CONFIG_SHOW_POINTS_UNCONFIRMED' => "{?POINTS?} in unbestätige Mails im Mitgliedsbereich anzeigen?", 'ADMIN_CONFIG_MINIMUM_AGE' => "Ab welchem Mindestalter dürfen sich Ihre Mitglieder anmelden?", - 'ADMIN_CONFIG_SQL_TITLE' => "SQL-Einstellungen", + 'ADMIN_CONFIG_SQL_TITLE' => "SQL-Einstellungen:", 'ADMIN_CONFIG_DISPLAY_DEBUG_SQLS' => "Sollen die SQL-Abfragen fü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ür Performancemessungen vorraussetzend.", - 'ADMIN_CONFIG_WORD_WRAP' => "Allgemeiner Zeilenumbruch", + 'ADMIN_CONFIG_WORD_WRAP' => "Allgemeiner Zeilenumbruch:", 'ADMIN_CONFIG_OTHER_NOTICE' => "Hinweise: Der allgemeine Zeilenumbruch (in Zeichen angegeben) gilt als Fallback-Einstellung falls der für die Erweiterung spezielle Konfigurationseintrag fehlen sollte. Falls Sie Details wissen wollen, so schauen Sie bitte in der Funktion getWordWrap() im Script inc/wrapper-functions.php nach.", 'ADMIN_CONFIG_REJECT_DOUBLE_EMAIL' => "Doppelt angemeldete Email-Adressen ablehnen?", )); diff --git a/inc/language/pro_de.php b/inc/language/pro_de.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/language/pro_de.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/language/rallye_de.php b/inc/language/rallye_de.php index a9e39ddc05..d3dec1ebb1 100644 --- a/inc/language/rallye_de.php +++ b/inc/language/rallye_de.php @@ -159,6 +159,7 @@ addMessages(array( // Points accounts - subject 'POINTS_SUBJECT_RALLYE_WINNER' => "Gewinnausschüttung der Referral-Rallye", + 'POINTS_SUBJECT_RALLYE_WINNER_REF' => "Anteil an Gewinnausschüttung der Referral-Rallye", )); // [EOF] diff --git a/inc/language/refback_de.php b/inc/language/refback_de.php index 5c9efd0508..36552b7739 100644 --- a/inc/language/refback_de.php +++ b/inc/language/refback_de.php @@ -42,7 +42,7 @@ if (!defined('__SECURITY')) { // Admin language strings addMessages(array( - 'ADMIN_CONFIG_REFBACK_TITLE' => "Refback-Einstellungen", + 'ADMIN_CONFIG_REFBACK_TITLE' => "Refback-Einstellungen:", 'ADMIN_CONFIG_REFBACK_ENABLED' => "Refback eingeschaltet? (Wenn nein, ist nur die Referral-Übersicht funktionell.)", 'ADMIN_CONFIG_REFBACK_MIN_PERCENTS' => "Minimum erlaubte Refback-Prozente:
(0% ist immer erlaubt!)", 'ADMIN_CONFIG_REFBACK_MAX_PERCENTS' => "Maximum erlaubte Refback-Prozente:", diff --git a/inc/language/sponsor_de.php b/inc/language/sponsor_de.php index 1f30d1bf8a..836a01115d 100644 --- a/inc/language/sponsor_de.php +++ b/inc/language/sponsor_de.php @@ -301,7 +301,7 @@ addMessages(array( 'SPONSOR_BOTH_NEW_PASSWORDS_DIDNOT_MATCH' => "Die von Ihnen eingegebenen neuen Passwörter stimmen nicht überein.", 'SPONSOR_PASSWORD_ONE_EMPTY' => "Erstes einzugebenes Passwort ist leer.", 'SPONSOR_PASSWORD_TWO_EMPTY' => "Zweites einzugebenes Passwort ist leer.", - 'SPONSOR_PASSWORD_TOO_SHORT' => "Eingegebenes Passwort entspricht nicht der Mindestlänge von {?pass_len?} Zeichen.", + 'SPONSOR_PASSWORD_TOO_SHORT' => "Eingegebenes Passwort entspricht nicht der Mindestlänge von {?min_password_length?} Zeichen.", 'SPONSOR_ACCOUNT_DATA_NOT_SAVED' => "Ihre Daten wurden nicht gespeichert.", // Module titles diff --git a/inc/language/task_de.php b/inc/language/task_de.php index 82c7d00890..e7f0915e84 100644 --- a/inc/language/task_de.php +++ b/inc/language/task_de.php @@ -65,12 +65,12 @@ addMessages(array( 'ADMIN_TASK_MAIL_BONUS_AP' => "Bereinigte Bonus-Mails", 'ADMIN_TASK_MAIL_BONUS_SEND' => "Versendete Bonus-Mails", 'ADMIN_TASK_UNKNOWN_MODE' => "Unbekannter Modus %s erkannt.", - 'ADMIN_OVERVIEW_TASK_YOUR_TYPE' => "Ihre zugewiesen Aufgaben (ohne Updates)", - 'ADMIN_OVERVIEW_TASK_UPDATES_TYPE' => "Automatisch durchgeführte Updates", - 'ADMIN_OVERVIEW_TASK_SOLVED_TYPE' => "Ihre erledigten Aufgaben", - 'ADMIN_OVERVIEW_TASK_UNASSIGNED_TYPE' => "Nicht zugewiesene und nicht gelöschte Aufgaben", - 'ADMIN_OVERVIEW_TASK_DELETED_TYPE' => "Als zu löschende markierte Aufgaben", - 'ADMIN_OVERVIEW_TASK_CLOSED_TYPE' => "Ihre geschlossenen Aufgaben", + 'ADMIN_OVERVIEW_TASK_YOUR_TYPE_TITLE' => "Ihre zugewiesen Aufgaben (ohne Updates):", + 'ADMIN_OVERVIEW_TASK_UPDATES_TYPE_TITLE' => "Automatisch durchgeführte Updates:", + 'ADMIN_OVERVIEW_TASK_SOLVED_TYPE_TITLE' => "Ihre erledigten Aufgaben:", + 'ADMIN_OVERVIEW_TASK_UNASSIGNED_TYPE_TITLE' => "Nicht zugewiesene und nicht gelöschte Aufgaben:", + 'ADMIN_OVERVIEW_TASK_DELETED_TYPE_TITLE' => "Als zu löschende markierte Aufgaben:", + 'ADMIN_OVERVIEW_TASK_CLOSED_TYPE_TITLE' => "Ihre geschlossenen Aufgaben:", 'ADMIN_TASK_DELETE_ENTRIES' => "Sofort löschen", 'ADMIN_TASK_DELETE_MODE_NOTICE' => "Diese Aufgaben sind zum automatischen Löschen freigegeben. Die automatische Löschung erfolgt durch die autopurge-Erweiterung. Sie können die Aufgaben aber auch jetzt endgültig löschen.", 'ADMIN_TASK_UNKNOWN_LIST_TITLE' => "Linktitel nicht gesetzt.", diff --git a/inc/language/theme_de.php b/inc/language/theme_de.php index b38cdded33..92c4498ed6 100644 --- a/inc/language/theme_de.php +++ b/inc/language/theme_de.php @@ -51,6 +51,7 @@ addMessages(array( 'ADMIN_SET_AS_DEFAULT_THEME' => "Dieses Theme als Standard-Theme setzen", 'ADMIN_EDIT_THEME_TITLE' => "Designs ändern, Standarddesign setzen", 'ADMIN_EDIT_THEME_NOTICE' => "Durch Anklicken des Uni*-Names wird das jeweilige Theme als Standard-Theme gesetzt, welches Ihre Besucher sofort sehen werden.", + 'ADMIN_IMPORT_THEMES_TITLE' => "Hochgeladene Designs importieren", // Admin - for ext-task 'ADMIN_TASK_LIST_THEME_ALL' => "Alle inst. Themes", diff --git a/inc/language/transfer_de.php b/inc/language/transfer_de.php index e8f0afeb32..a293456fd8 100644 --- a/inc/language/transfer_de.php +++ b/inc/language/transfer_de.php @@ -43,7 +43,7 @@ if (!defined('__SECURITY')) { // Language definitions addMessages(array( // Admin messages - 'ADMIN_CONFIG_TRANSFER_TITLE' => "Einstellungen zu {?POINTS?}-Überweisungen", + 'ADMIN_CONFIG_TRANSFER_TITLE' => "Einstellungen zu {?POINTS?}-Überweisungen:", 'ADMIN_CONFIG_TRANSFER_MAX' => "Maximal angezeigte Einträge", 'ADMIN_CONFIG_TRANSFER_AGE' => "Maximales Alter von Einträgen", 'ADMIN_CONFIG_TRANSFER_TIMEOUT' => "Sperrung der Einstellungen nach {?POINTS?}-Überweisung", @@ -104,6 +104,7 @@ addMessages(array( // Points accounts - subject 'POINTS_SUBJECT_TRANSFER' => "Überweisung durch Mitglied", + 'POINTS_SUBJECT_TRANSFER_REF' => "Anteil an Überweisung durch Mitglied", )); // [EOF] diff --git a/inc/language/user_de.php b/inc/language/user_de.php index 62505b51d4..a456c25d64 100644 --- a/inc/language/user_de.php +++ b/inc/language/user_de.php @@ -122,14 +122,14 @@ addMessages(array( 'MEMBER_USER_SUBID_NOT_ASSIGNED_404' => "Die angegebene Sub-Id-Kennung ist Ihrem Mitgliedsaccount nicht zugewiesen oder existiert nicht.", 'MEMBER_USER_SUBID_STATS_404' => "Für diese Sub-Id ist noch keine Statistik abfragbar, da sie noch nicht aufgerufen wurde.", 'MEMBER_ENTER_SUBID' => "Geben Sie eine Sub-Id ein:", - 'MEMBER_ADD_SUBID_LEGEND' => "Daten zur Sub-Id", + 'MEMBER_ADD_SUBID_LEGEND' => "Daten zur Sub-Id:", 'MEMBER_SUBID_NO_SELECTIONS' => "Sie haben keine Auswahl getroffen! Bitte navigieren Sie zurück, wählen Sie mindestens eine Sub-Id aus und versuchen Sie es dann erneut.", 'MEMBER_USER_SUBID_STATS_LINK' => "Aufrufstatistiken", 'MEMBER_USER_SUBID_ADDED' => "Sub-Id hinzugefügt", 'MEMBER_CHANGE_USER_SUBID' => "Geben Sie eine neue ein:", 'MEMBER_INVALID_DO_USER_SUBID' => "Ungültiges Sub-Modul aufgerufen! Sollten Sie der Meinung sein, dies ist ein Fehler, so teilen Sie bitte dem Support mit, wie es zu dieser Meldung gekommen ist.", 'MEMBER_BACK_SUBIDS_OVERVIEW_LINK' => "Zurück zur Sub-Id-Übersicht ...", - 'MEMBER_REFLINK_USER_SUBIDS_HEADER' => "Hier sehen Sie alle Ihre Sub-Ids, die Sie eingegeben haben. Sie können anstelle der User-Id auch Ihren Nicknamen verwenden.", + 'MEMBER_REFLINK_USER_SUBIDS_HEADER' => "Hier sehen Sie alle Ihre Sub-Ids, die Sie eingegeben haben. Sie können anstelle der User-Id auch Ihren Nicknamen verwenden.", 'MEMBER_REFLINK_USER_SUBIDS_NOTICE' => "Hinweis: Tipp! Legen Sie sich z.B. pro Besuchertausch und Mailtausch je eine Sub-Ids zum genaueren Tracking an. Somit können Sie genauer feststellen, worüber das geworbene Mitglied sich angemeldet hat.", // Member - sub ids - submit buttons @@ -145,7 +145,7 @@ addMessages(array( 'ADMIN_REMOVE_USER_SUBID_SUBMIT' => "Sub-Ids löschen", // Member/admin - sub ids - notices - 'MEMBER_ADD_USER_SUBIDS_NOTICE' => "Hinweise: Mit Sub-Ids haben Sie die Möglichkeit, die Aufrufe Ihres Referral-Linkes noch genauer zu verfolgen. Zum Beispiel können Sie jedem Besuchertausch oder fremden Paidmailer eine eigene Sub-Id vergeben, indem Sie diese hier zuerst eingeben und dann am Ende des Referral-Linkes mit &subid=Ihre Sub-Id anhängen. Bewerben Sie nun diesen erweiterten Link. Sobald Aufrufe auf diesen erfolgen, können Sie bei der jeweiligen Sub-Id auf "Aufruf-Statistik" klicken, um eine detailierte Statistik zu erhalten. Leerzeichen oder Bindestrichen werden automatisch in Unterstriche umgewandelt, es wurden nur Zeichen von A-Z (klein- und grossgeschrieben) und alle Zahlenzeichen sowie Unterstriche angenommen.", + 'MEMBER_ADD_USER_SUBIDS_NOTICE' => "Hinweise: Mit Sub-Ids haben Sie die Möglichkeit, die Aufrufe Ihres Referral-Linkes noch genauer zu verfolgen. Zum Beispiel können Sie jedem Besuchertausch oder fremden Paidmailer eine eigene Sub-Id vergeben, indem Sie diese hier zuerst eingeben und dann am Ende des Referral-Linkes mit &subid=Ihre Sub-Id anhängen. Bewerben Sie nun diesen erweiterten Link. Sobald Aufrufe auf diesen erfolgen, können Sie bei der jeweiligen Sub-Id auf "Aufrufstatistiken" klicken, um eine detailierte Statistik zu erhalten. Leerzeichen oder Bindestrichen werden automatisch in Unterstriche umgewandelt, es werden nur Zeichen von A-Z (klein- und grossgeschrieben) und alle Zahlenzeichen sowie Unterstriche angenommen.", 'MEMBER_EDIT_USER_SUBIDS_NOTICE' => "Wenn Sie doch nichts ändern wollen, klicken Sie einfach auf {--MEMBER_USER_SUBIDS_CHANGE_SUBMIT--} oder in der Navigation {--YOU_ARE_HERE--} auf Sub-Id Tracking.", 'MEMBER_DELETE_USER_SUBIDS_NOTICE' => "Wollen Sie die oben aufgeführte(n) Sub-Id(s) wirklich löschen? Dieses ist nicht umkehrbar! Die Statistik dazu bleibt noch eine Weile gespeichert, ist aber nicht mehr aus der Auswahl aufrufbar (Sie können sich ja den Link notieren?).", 'MEMBER_USER_SUBID_STATS_NOTICE' => "Wichtiger Hinweis: Tauschen Sie diesen Text im Template (nicht hier in der Sprachdatei) aus und fügen Sie Ihren eigenen bitte ein. Das Template finden Sie unter templates/de/html/member/member_list_subid_stats.tpl. Es wird hier auf nicht von Ihnen kontrollierbaren externen Webseiten verlinkt (der so genannte HTTP-Referrer wird hier verlinkt). Leider sieht das mit Velinken von externen Webseiten in Deutschland ziemlich trübe aus, alles verbürokratisiert ... :-(", diff --git a/inc/language/validator_de.php b/inc/language/validator_de.php index ad87427cca..82c3802ae6 100644 --- a/inc/language/validator_de.php +++ b/inc/language/validator_de.php @@ -42,7 +42,7 @@ if (!defined('__SECURITY')) { // Language definitions addMessages(array( - 'ADMIN_CONFIG_VALIDATOR_TITLE' => "Validierer-Einstellungen", + 'ADMIN_CONFIG_VALIDATOR_TITLE' => "Validierer-Einstellungen:", 'ADMIN_CONFIG_VALIDATOR_ENABLED' => "Sind unten im Footer die Validierer-Buttons zum direkten Validieren der Seiten eingeblendet?" )); diff --git a/inc/libs/bonus_functions.php b/inc/libs/bonus_functions.php index b053c1d193..f18d919011 100644 --- a/inc/libs/bonus_functions.php +++ b/inc/libs/bonus_functions.php @@ -200,7 +200,7 @@ LIMIT 1", // No entries found // @TODO Move this HTML to a template $OUT = ' - +
{%message,MEMBER_BONUS_NO_RANKS=' . $data . '%}
'; diff --git a/inc/libs/earning_functions.php b/inc/libs/earning_functions.php index cac106ac28..fb2e847bdd 100644 --- a/inc/libs/earning_functions.php +++ b/inc/libs/earning_functions.php @@ -129,7 +129,7 @@ function insertMemberEarning ($earningId, $dailyAmount, $isActive = 'Y') { sendAdminNotification('{--ADMIN_EARNING_INSERTED_SUBJECT--}', 'admin_earning_added', $content, getMemberId()); // Return status - return ($content['insert_id'] > 0); + return isValidId($content['insert_id']); } // Update a given earning amount diff --git a/inc/libs/forced_functions.php b/inc/libs/forced_functions.php index 1705959c93..761e5bd73c 100644 --- a/inc/libs/forced_functions.php +++ b/inc/libs/forced_functions.php @@ -358,7 +358,6 @@ function changeForcedCampaignStatus ($campaignId, $prevStatus, $newStatus, $data 'prev_status' => $prevStatus, 'new_status' => $newStatus, 'data' => $data, - 'abort' => NULL ); // Run pre filter chain @@ -401,12 +400,16 @@ function changeForcedCampaignStatus ($campaignId, $prevStatus, $newStatus, $data // Notify admin(s) with a selected message and content function doForcedNotifyAdmin ($messageType, $content) { // Prepare template name - $templateName = sprintf("admin_forced_%s", $messageType); + $templateName = sprintf('admin_forced_%s', $messageType); + + // Is the user id valid? + if (!isValidId($content['forced_campaign_userid'])) { + // No, then use admin-only template + $templateName = sprintf('admin_only_forced_%s', $messageType); + } // END - if // Prepare subject - $subject = sprintf("{--ADMIN_FORCED_NOTIFY_%s_SUBJECT--}", - strtoupper($messageType) - ); + $subject = sprintf('{--ADMIN_FORCED_NOTIFY_%s_SUBJECT--}', strtoupper($messageType)); // Is the subject line there? if ((substr($subject, 0, 1) == '!') && (substr($subject, -1, 1) == '!')) { @@ -430,12 +433,10 @@ function doForcedNotifyMember ($messageType, $content) { } // END - if // Prepare template name - $templateName = sprintf("member_forced_%s", $messageType); + $templateName = sprintf('member_forced_%s', $messageType); // Prepare subject - $subject = sprintf("{--MEMBER_FORCED_NOTIFY_%s_SUBJECT--}", - strtoupper($messageType) - ); + $subject = sprintf('{--MEMBER_FORCED_NOTIFY_%s_SUBJECT--}', strtoupper($messageType)); // Is the subject line there? if ((substr($subject, 0, 1) == '!') && (substr($subject, -1, 1) == '!')) { @@ -502,7 +503,7 @@ function doTemplateForcedAdSelectionBox ($templateName, $clear, $default = NULL) $forcedAds = getArrayFromForcedAdsByType(); // Handle it over to generateSelectionBoxFromArray() - $content = generateSelectionBoxFromArray($forcedAds, 'forced_ads_id', 'forced_ads_id', '', '', '', $default, 'forced_ads_type', FALSE, TRUE); + $content = generateSelectionBoxFromArray($forcedAds, 'forced_ads_id', 'forced_ads_id', '', '', '', $default, 'forced_ads_type'); // Return prepared content return $content; @@ -514,7 +515,7 @@ function doTemplateForcedCostsSelectionBox ($templateName, $clear, $default = NU $forcedCosts = getArrayFromForcedCostsByVisibility(); // Handle it over to generateSelectionBoxFromArray() - $content = generateSelectionBoxFromArray($forcedCosts, 'forced_costs_id', 'forced_costs_id', '', '', '', $default, '', TRUE, TRUE); + $content = generateSelectionBoxFromArray($forcedCosts, 'forced_costs_id', 'forced_costs_id', '', '', '', $default, '', TRUE); // Return prepared content return $content; @@ -523,7 +524,7 @@ function doTemplateForcedCostsSelectionBox ($templateName, $clear, $default = NU // 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[]'); + $content = addMemberSelectionBox($default, FALSE, TRUE, TRUE, 'forced_campaign_userid'); // Return prepared content return $content; diff --git a/inc/libs/mailid_functions.php b/inc/libs/mailid_functions.php index 7d1aeb7f14..ad166a5a44 100644 --- a/inc/libs/mailid_functions.php +++ b/inc/libs/mailid_functions.php @@ -218,7 +218,6 @@ function doMailIdConfirm ($data) { $templ = 'mailid_enter_code'; } else { // Disabled code - $data['real_code'] = $realCode; $templ = 'mailid_confirm_buttom'; } diff --git a/inc/libs/mediadata_functions.php b/inc/libs/mediadata_functions.php index d72a0297b1..b169e35efd 100644 --- a/inc/libs/mediadata_functions.php +++ b/inc/libs/mediadata_functions.php @@ -47,7 +47,7 @@ function updateMediadataEntry ($keys_array, $mode, $value) { $added = FALSE; // Are there entries? - if (is_array($keys_array) && ($value > 0)) { + if (isFilledArray($keys_array) && ($value > 0)) { // Is an array so we can run it through foreach ($keys_array as $key) { // First check if it does exist diff --git a/inc/libs/network_functions.php b/inc/libs/network_functions.php index e811faed5a..deabc18733 100644 --- a/inc/libs/network_functions.php +++ b/inc/libs/network_functions.php @@ -102,7 +102,7 @@ function detectNetworkProcessForm () { // Handle a (maybe) sent form here function doNetworkHandleForm () { // Is there a form sent? - if (countRequestPost() > 0) { + if ((!isPostRequestElementSet('save_expert')) && (countRequestPost() > 0)) { // Detect sent POST form detectNetworkProcessForm(); } elseif (!isGetRequestElementSet('do')) { @@ -120,7 +120,7 @@ function doNetworkHandleForm () { // Processes an admin form function doAdminNetworkProcessForm () { // Create function name - $functionName = sprintf("doAdminNetworkProcess%s", capitalizeUnderscoreString(getRequestElement('do'))); + $functionName = sprintf('doAdminNetworkProcess%s', capitalizeUnderscoreString(getRequestElement('do'))); // Is the function valid? if (!function_exists($functionName)) { @@ -686,7 +686,7 @@ ORDER BY } // END - while // Nothing found? - if (count($rows) == 0) { + if (!isFilledArray($rows)) { // Then return nothing ... ;-) return ''; } // END - if @@ -1852,7 +1852,7 @@ function doAdminNetworkProcessHandleNetworks () { $networkData = getNetworkDataFromId($networkId); // Is there found the network? - if (count($networkData) > 0) { + if (isFilledArray($networkData)) { // Add row template with given form name $OUT .= loadTemplate('admin_' . getNetworkFormName() . '_networks_row', TRUE, $networkData); } // END - if @@ -1894,7 +1894,7 @@ function doAdminNetworkProcessHandleNetworkTypes () { $networkTypeData = getNetworkTypeDataByTypeId($networkId); // Is there found the network? - if (count($networkTypeData) > 0) { + if (isFilledArray($networkTypeData)) { if (getNetworkFormName() == 'edit') { // Add row template for deleting $OUT .= loadTemplate('admin_edit_network_types_row', TRUE, $networkTypeData); @@ -1955,7 +1955,7 @@ function doAdminNetworkProcessHandleRequestParams () { $networkRequestData = getNetworkRequestParamsDataFromId($networkId); // Is there found the network? - if (count($networkRequestData) > 0) { + if (isFilledArray($networkRequestData)) { if (getNetworkFormName() == 'edit') { // Add row template for deleting $OUT .= loadTemplate('admin_edit_network_request_params_row', TRUE, $networkRequestData); @@ -2442,7 +2442,7 @@ function doAdminNetworkProcessHandleArrayTranslations () { $networkTranslationsData = getNetworkArrayTranslationsDataFromId($networkId); // Is there found the network? - if (count($networkTranslationsData) > 0) { + if (isFilledArray($networkTranslationsData)) { if (getNetworkFormName() == 'edit') { // Add row template for deleting $OUT .= loadTemplate('admin_edit_network_array_translation_row', TRUE, $networkTranslationsData); @@ -3064,7 +3064,7 @@ function doAjaxAdminNetworkQuerySingleApi () { $requestParams = getNetworkRequestParametersByTypeId(postRequestElement('network_type_id')); // Is there at least one entry? - if (count($requestParams) == 0) { + if (!isFilledArray($requestParams)) { // No entry found, please setup some first reportBug(__FUNCTION__, __LINE__, 'Network ' . $networkData['network_title'] . ' with id ' . $networkData['network_id'] . ' has no request parameters.'); } // END - if diff --git a/inc/libs/output_functions.php b/inc/libs/output_functions.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/libs/output_functions.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/libs/rallye_functions.php b/inc/libs/rallye_functions.php index 849874be8d..5aa2cdb91f 100644 --- a/inc/libs/rallye_functions.php +++ b/inc/libs/rallye_functions.php @@ -889,7 +889,7 @@ function addReferralRallyeTemplateSelection ($name = 'template', $default = '') $ral = array(); // Check templates directory - $basePath = sprintf("templates/%s/html/rallye/", getLanguage()); + $basePath = sprintf('templates/%s/html/rallye/', getLanguage()); // Read the directory $templates = getArrayFromDirectory($basePath, 'rallye_', FALSE, TRUE, array(), '.tpl'); @@ -905,7 +905,7 @@ function addReferralRallyeTemplateSelection ($name = 'template', $default = '') $ral[$read] = $read; } else { // Log invalid - logDebugMessage(__FUNCTION__, __LINE__, sprintf("WARNING: Template %s not used.", $read)); + logDebugMessage(__FUNCTION__, __LINE__, sprintf('WARNING: Template %s not used.', $read)); } } // END - foreach diff --git a/inc/libs/refback_functions.php b/inc/libs/refback_functions.php index 05819eb73a..6a882d10ac 100644 --- a/inc/libs/refback_functions.php +++ b/inc/libs/refback_functions.php @@ -242,14 +242,8 @@ ORDER BY if (!ifSqlHasZeroNums($result)) { // Fetch all entries while ($row = sqlFetchArray($result)) { - // Init click rate - $row['click_rate'] = '0'; - - // Does he have received some mails? - if ($row['emails_received'] > 0) { - // Calculate click rate - $row['click_rate'] = ($row['mails_confirmed'] / $row['emails_received'] * 100); - } // END - if + // Calculate click rate + $row['click_rate'] = calculatePercentageRate($row['mails_confirmed'], $row['emails_received']); // Add row $refs[$row['id']] = $row; @@ -316,7 +310,7 @@ function updateMemberRefbackPercents ($id, $percents, $note) { $content = getArrayFromUserRefbackData($id); // Is this valid? - if (count($content) == 0) { + if (!isFilledArray($content)) { // id does not belong to user! $status['message'] = 'MEMBER_REFBACK_ERROR_ID_MISMATCH'; return $status; diff --git a/inc/libs/register_functions.php b/inc/libs/register_functions.php index 94826655e7..9fdf938c69 100644 --- a/inc/libs/register_functions.php +++ b/inc/libs/register_functions.php @@ -141,12 +141,13 @@ function registerOutputFailedMessage ($messageId, $extra='') { // Checks whether the registration data is complete function isRegistrationDataComplete () { // Init elements - $GLOBALS['registration_ip_timeout'] = FALSE; - $GLOBALS['registration_short_password'] = FALSE; - $GLOBALS['registration_selected_cats'] = '0'; + $GLOBALS['registration_ip_timeout'] = FALSE; + $GLOBALS['registration_weak_password'] = FALSE; + $GLOBALS['registration_selected_cats'] = '0'; // Default is okay $isOkay = TRUE; + $isRandom = FALSE; // First we only check the submitted data then we continue... :) // @@ -192,6 +193,7 @@ function isRegistrationDataComplete () { if ((isExtensionInstalledAndNewer('register', '0.5.5')) && (isRegisterGeneratePasswordEmptyEnabled())) { // Generate a random password $randomPassword = generatePassword(); + $isRandom = TRUE; // Set it in both entries setPostRequestElement('password1', $randomPassword); @@ -235,9 +237,9 @@ function isRegistrationDataComplete () { $isOkay = FALSE; } // END - if - // Is the password long enouth? - if ((strlen(postRequestElement('password1')) < getPassLen()) && ($isOkay === TRUE)) { - $GLOBALS['registration_short_password'] = TRUE; + // Is the password strong enough? + if (($isRandom === FALSE) && (!isStrongPassword(postRequestElement('password1')))) { + $GLOBALS['registration_weak_password'] = TRUE; //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'User did enter a short password.'); $isOkay = FALSE; } // END - if diff --git a/inc/libs/sponsor_functions.php b/inc/libs/sponsor_functions.php index fc12052eea..d7daeab73c 100644 --- a/inc/libs/sponsor_functions.php +++ b/inc/libs/sponsor_functions.php @@ -739,7 +739,7 @@ function fetchSponsorData ($sponsor_id, $column = 'id') { // Wrapper for fetchSponsorData() and getSponsorData() calls function getFetchedSponsorData ($keyColumn, $sponsor_id, $valueColumn) { // Zero ids are not valid - if ($sponsor_id == 0) { + if (!isValidId($sponsor_id)) { // Abort here reportBug(__FUNCTION__, __LINE__, 'Zero sponsor_id provided'); } // END - if diff --git a/inc/libs/surfbar_functions.php b/inc/libs/surfbar_functions.php index acb07cf9e1..0f6bf029a8 100644 --- a/inc/libs/surfbar_functions.php +++ b/inc/libs/surfbar_functions.php @@ -117,7 +117,7 @@ function doSurfbarAdminUnlockUrlIds ($IDs) { // No array //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array'); return FALSE; - } elseif (count($IDs) == 0) { + } elseif (!isFilledArray($IDs)) { // Empty array //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty'); return FALSE; @@ -147,7 +147,7 @@ function doSurfbarAdminRejectUrlIds ($IDs) { // No array //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs type ' . gettype($IDs) . '!=array'); return FALSE; - } elseif (count($IDs) == 0) { + } elseif (!isFilledArray($IDs)) { // Empty array //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Cannot add URL: IDs is empty'); return FALSE; @@ -529,7 +529,7 @@ function doHandleSurfbarDepletedViews () { $urlArray = getSurfbarUrlData('0', 'url_views_max', 'url_id', 'ASC', 'url_id', " AND `url_views_allowed` > 0 AND `url_status`='ACTIVE'"); // Are there some entries? - if (count($urlArray) > 0) { + if (isFilledArray($urlArray)) { // Then handle all! foreach ($urlArray as $id => $urlData) { // Backup data @@ -584,7 +584,7 @@ function ifSurfbarHasUrlUserId ($url, $userid) { $urlArray = getSurfbarUrlData($url, 'url', 'url_id', 'ASC', 'url_id', sprintf(" AND `url_userid`=%s", bigintval($userid))); // Was it found? - return (count($urlArray) > 0); + return isFilledArray($urlArray); } // Load URL data by given search term and column @@ -1000,7 +1000,7 @@ function getSurfbarTotalUrls ($status = 'ACTIVE', $excludeUserId = NULL) { $userids = determineSurfbarDepletedUserids(); // If we dont get any user ids back, there are no URLs - if (count($userids['url_userid']) == 0) { + if (!isFilledArray($userids['url_userid'])) { // No user ids found, no URLs! return 0; } // END - if @@ -1418,7 +1418,7 @@ function changeSurfbarUrlStatus ($urlId, $prevStatus, $newStatus, $data = array( $newStatus = strtolower($newStatus); // Get URL data for status comparison if missing - if ((!is_array($data)) || (count($data) == 0)) { + if (!isFilledArray($data)) { // Fetch missing URL data $data = getSurfbarUrlData($urlId); } // END - if @@ -1429,16 +1429,15 @@ function changeSurfbarUrlStatus ($urlId, $prevStatus, $newStatus, $data = array( 'prev_status' => $prevStatus, 'new_status' => $newStatus, 'data' => $data, - 'abort' => NULL ); // Run pre filter chain $filterData = runFilterChain('pre_change_surfbar_url_status', $filterData); // Abort here? - if (!is_null($filterData['abort'])) { + if (isFilterChainAborted()) { // Abort here - return $filterData['abort']; + return FALSE; } // END - if // Update the status now @@ -1736,7 +1735,7 @@ function determineSurfbarNextId ($urlId = NULL) { // Shall we add some URL ids to ignore? $add = ''; - if (count($USE) > 0) { + if (isFilledArray($USE)) { // Ignore some! $add = " AND `sbu`.`url_id` NOT IN ("; foreach ($USE as $url_id => $lid) { diff --git a/inc/libs/task_functions.php b/inc/libs/task_functions.php index d01582467b..d2ff048c90 100644 --- a/inc/libs/task_functions.php +++ b/inc/libs/task_functions.php @@ -88,25 +88,28 @@ function outputAdvancedOverview (&$result_main) { $content['update_tasks'] = '' . $value . ''; } // END - if - // - // First check for all account status seperately - // - // Confirmed accounts - $value = getTotalConfirmedUser(); - if ($value > 0) { - $content['confirmed_members'] = '' . $value . ''; - } // END - if + // Do this only if ext-user is installed + if (isExtensionInstalled('user')) { + // + // First check for all account status seperately + // + // Confirmed accounts + $value = getTotalConfirmedUser(); + if ($value > 0) { + $content['confirmed_members'] = '' . $value . ''; + } // END - if - // Unconfirmed accounts - $value = getTotalUnconfirmedUser(); - if ($value > 0) { - $content['unconfirmed_members'] = '' . $value . ''; - } // END - if + // Unconfirmed accounts + $value = getTotalUnconfirmedUser(); + if ($value > 0) { + $content['unconfirmed_members'] = '' . $value . ''; + } // END - if - // Locked accounts - $value = getTotalLockedUser(); - if ($value > 0) { - $content['locked_members'] = '' . $value . ''; + // Locked accounts + $value = getTotalLockedUser(); + if ($value > 0) { + $content['locked_members'] = '' . $value . ''; + } // END - if } // END - if if (isExtensionInstalledAndNewer('user', '0.3.4')) { diff --git a/inc/libs/theme_functions.php b/inc/libs/theme_functions.php index 09dee2dd5d..8539bff033 100644 --- a/inc/libs/theme_functions.php +++ b/inc/libs/theme_functions.php @@ -154,7 +154,7 @@ function getThemeVersion ($name) { // Checks whether a theme is found in db function ifThemeExists ($name) { // Get theme and is it not nul? - return (((isExtensionActive('theme')) || (getModule() == 'admin')) && (getThemeId($name) > 0)); + return (((isExtensionActive('theme')) || (getModule() == 'admin')) && (isValidId(getThemeId($name)))); } // Checks if a theme is active diff --git a/inc/libs/transaction_functions.php b/inc/libs/transaction_functions.php new file mode 100644 index 0000000000..6e47230b46 --- /dev/null +++ b/inc/libs/transaction_functions.php @@ -0,0 +1,376 @@ + 0) && ($originalAmount > 0)); + + // Record the transaction for later fee collection + sqlQueryEscaped("INSERT INTO + `{?_MYSQL_PREFIX?}_transaction_log` +( + `transaction_sender`, + `transaction_receiver`, + `transaction_level`, + `transaction_value`, + `transaction_original`, + `transaction_fee_sender`, + `transaction_fee_sender_percents`, + `transaction_fee_receiver`, + `transaction_fee_receiver_percents`, + `transaction_subject` +) VALUES ( + %s, + %s, + %s, + %01.5f, + %01.5f, + %01.5f, + %01.5f, + %01.5f, + %01.5f, + '%s' +)", + array( + convertNull($sender), + bigintval($receiver), + convertNull($level), + $valueAmount, + $originalAmount, + calculateSenderTransactionFee($originalAmount), + getConfig('transaction_fee_sender'), + calculateReceiverTransactionFee($valueAmount), + getConfig('transaction_fee_receiver'), + $transactionSubject + ), __FUNCTION__, __LINE__ + ); + + // Should work + assert(isValidId(getSqlInsertId())); +} + +// Calculates transaction fee for sender amount +function calculateSenderTransactionFee ($amount) { + // Calculate it + $fee = $amount * getConfig('transaction_fee_sender') / 100; + + // Return fee + return $fee; +} + +// Calculates transaction fee for receiver amount +function calculateReceiverTransactionFee ($amount) { + // Calculate it + $fee = $amount * getConfig('transaction_fee_receiver') / 100; + + // Return fee + return $fee; +} + +// Hashes given transaction data +function generateHashFromTransactionData (array &$data, $oldHash = '') { + // Add CAPTCHA code, if missing + if (!isset($data['transaction_captcha'])) { + // Add it + $data['transaction_captcha'] = generateId( + 5, + implode( + ':', + $data + ) + ); + } // END - if + + // Convert some possible NULL values + $data['transaction_sender'] = convertNull($data['transaction_sender']); + + // Generate string to hash + $string = implode(':', $data); + + // Hash it then + $hash = hashString($string, $oldHash); + + // Return it + return $hash; +} + +// "Getter" for CAPTCHA code from given transaction id +function getCaptchaCodeFromTransactionId ($transactionId) { + // Must be valid + assert(isValidId($transactionId)); + + // Default is NULL + $code = NULL; + + // Search for it + $result = sqlQueryEscaped("SELECT + `transaction_captcha` +FROM + `{?_MYSQL_PREFIX?}_transaction_log` +WHERE + `transaction_id`=%s AND + `transaction_level` IS NULL AND + `transaction_captcha` IS NOT NULL +LIMIT 1", + array( + bigintval($transactionId) + ), __FUNCTION__, __LINE__ + ); + + // Is it there? + if (sqlNumRows($result) == 1) { + // Load it + list($code) = sqlFetchRoww($result); + } // END - if + + // Free result + sqlFreeResult($result); + + // Return it + return $code; +} + +// Tries to confirm given transactions +function doTryConfirmTransactions (array $post) { + // Make sure only members can do this + assert((isMember()) && (isset($post['ok'])) && (ifPostHasSelection('transaction_id', $post))); + + // Remove submit button + unset($post['ok']); + + // Default is not working ;-) + $confirmed = FALSE; + + // Init arrays/variables + $confirmedIds = array(); + $failedIds = array(); + $points = 0; + + // "Walk" through all transaction ids + foreach ($post['transaction_id'] as $transactionId => $code) { + // Process only valid ids/CAPTCHA codes + if ((isValidId($transactionId)) && (empty($code))) { + // Empty code found, no CAPTCHA entered + continue; + } elseif ((!isValidId($transactionId)) || (!isValidNumber($code))) { + // Better set it as "invalid" explicitly and abort here + $confirmed = FALSE; + break; + } + + // Init data array + $data = array(); + + // Try to load more transaction data + $result = sqlQueryEscaped("SELECT + `transaction_id`, + `transaction_hash`, + `transaction_sender`, + `transaction_receiver`, + `transaction_fee_sender`, + `transaction_fee_receiver`, + `transaction_original`, + `transaction_subject`, + `transaction_timestamp` +FROM + `{?_MYSQL_PREFIX?}_transaction_log` +WHERE + `transaction_id`=%s AND + `transaction_hash` != 'INVALID' AND + `transaction_sender` != %s AND + `transaction_sender` IS NOT NULL AND + `transaction_receiver` != %s AND + `transaction_receiver` IS NOT NULL AND + `transaction_confirmed`='N' AND + `transaction_level` IS NULL AND + `transaction_captcha` IS NOT NULL +LIMIT 1", + array( + bigintval($transactionId), + getCurrentUserId(), + getCurrentUserId() + ), __FUNCTION__, __LINE__ + ); + + // Is there one entry? + if (sqlNumRows($result) == 1) { + // Then load it + $data = sqlFetchArray($result); + + /* + * Save hash for later usage and remove it, so that the hasher + * function will calculate the same hash if same CAPTCHA code + * has been entered. + */ + $oldHash = $data['transaction_hash']; + unset($data['transaction_hash']); + + // Set captcha code from POST data + $data['transaction_captcha'] = bigintval($code); + + // Generate hash again + $hash = generateHashFromTransactionData($data, $oldHash); + + // Is it the same? + $confirmed = ($hash == $oldHash); + if ($confirmed === TRUE) { + // Then mark it as confirmed and count all points + array_push($confirmedIds, $transactionId); + $points += $data['transaction_fee_sender'] + $data['transaction_fee_receiver']; + } else { + // Failed confirmation + array_push($failedIds, $transactionId); + } + } // END - if + + // Free result + sqlFreeResult($result); + + // If it is not found, abort here + if (!isFilledArray($data)) { + // Is not valid, better explicitly set it here and abort + $confirmed = FALSE; + break; + } // END - if + } // END - foreach + + // Were all transaction ids valid? + if ($confirmed === TRUE) { + // Update all confirmed transactions + sqlQueryEscaped("UPDATE + `{?_MYSQL_PREFIX?}_transaction_log` +SET + `transaction_confirmed`='Y' +WHERE + `transaction_id` IN (" . implode(',', $confirmedIds) . ") AND + `transaction_hash` != 'INVALID' AND + `transaction_sender` != %s AND + `transaction_sender` IS NOT NULL AND + `transaction_receiver` != %s AND + `transaction_receiver` IS NOT NULL AND + `transaction_confirmed`='N' +LIMIT %s", + array( + getCurrentUserId(), + getCurrentUserId(), + count($confirmedIds) + ), __FUNCTION__, __LINE__ + ); + + // Check if all has been updated + $confirmed = (sqlAffectedRows() == count($confirmedIds)); + + // Has all confirmed? + if ($confirmed === TRUE) { + // Allowed fields + $allowed = array( + 'transaction_fees', + 'transaction_confirmed', + 'transaction_confirmed_yearly', + 'transaction_count' + ); + + // Add them user's "pot" + $updated = doUpdateMemberProfileData(array( + 'transaction_fees' => getUserData('transaction_fees') + $points, + 'transaction_confirmed' => getUserData('transaction_confirmed') + count($confirmedIds), + 'transaction_confirmed_yearly' => getUserData('transaction_confirmed_yearly') + count($confirmedIds), + 'transaction_count' => getUserData('transaction_count') + (count($confirmedIds) * getConfig('transaction_count_captcha_confirm')) + ), $allowed, '', FALSE); + + // Should always work + assert($updated === TRUE); + } // END - if + } // END - if + + // Are there some failed transactions? + if (count($failedIds) > 0) { + // Then update all + sqlQueryEscaped("UPDATE + `{?_MYSQL_PREFIX?}_transaction_log` +SET + `transaction_captcha_failed`='Y' +WHERE + `transaction_id` IN (" . implode(',', $failedIds) . ") AND + `transaction_hash` != 'INVALID' AND + `transaction_sender` != %s AND + `transaction_sender` IS NOT NULL AND + `transaction_receiver` != %s AND + `transaction_receiver` IS NOT NULL AND + `transaction_confirmed`='N' +LIMIT %s", + array( + getCurrentUserId(), + getCurrentUserId(), + count($failedIds) + ), __FUNCTION__, __LINE__ + ); + + // Should always work + assert(sqlAffectedRows() == count($failedIds)); + } // END - if + + // Return status + return $confirmed; +} + +// Checks whether the given user has a fee exempt +function ifUserHasTransactionFeeExempt ($username) { + // Accept only valid ids + assert(isValidId($username)); + + // Is there "cache"? + if (!isset($GLOBALS[__FUNCTION__][$username])) { + // Default is the user has no excempt + $GLOBALS[__FUNCTION__][$username] = FALSE; + + // "Determine" it + $GLOBALS[__FUNCTION__][$username] = (getTotalAmountByUserid($username) < getConfig('transaction_fee_exempt_amount')); + } // END - if + + // Return cache + return $GLOBALS[__FUNCTION__][$username]; +} + +// [EOF] +?> diff --git a/inc/libs/yoomedia_functions.php b/inc/libs/yoomedia_functions.php index 7007190e74..3c7ce1d13b 100644 --- a/inc/libs/yoomedia_functions.php +++ b/inc/libs/yoomedia_functions.php @@ -111,14 +111,14 @@ function YOOMEDIA_TEST_CONFIG ($data) { $errorCode = YOOMEDIA_GET_ERRORCODE_FROM_RESULT($response); // Log the response if failed - if ((count($response) == 0) && ($errorCode > 0)) { + if ((!isFilledArray($response)) && (isValidNumber($errorCode))) { // Queries depleted (as we count here!) logDebugMessage(__FUNCTION__, __LINE__, 'Requested depleted. Maxmimum was: ' . getConfig('yoomedia_requests_total') . ',errorCode=' . $errorCode); $errorCode = -1; - } elseif ((($errorCode <= 4) && ($errorCode > 0)) || ($errorCode >= 8)) { + } elseif ((($errorCode <= 4) && (isValidNumber($errorCode))) || ($errorCode >= 8)) { // An error has returned from the account logDebugMessage(__FUNCTION__, __LINE__, 'Unexpected error code ' . $errorCode . ' received.'); - } elseif ((count($response) > 0) && ($errorCode != 0)) { + } elseif ((isFilledArray($response)) && (isValidNumber($errorCode))) { // Log serialized raw response logDebugMessage(__FUNCTION__, __LINE__, 'errorCode=' . $errorCode . ',response=' . base64_encode(serialize($response))); $errorCode = -1; @@ -141,7 +141,7 @@ function YOOMEDIA_GET_PARSED_RESULT_TEXTMAILS () { $result = array(); // Parse the response - if (count($response) > 0) { + if (isFilledArray($response)) { $result = YOOMEDIA_PARSE_RESPONSE($response, 'textmail'); } // END - if @@ -158,7 +158,7 @@ function YOOMEDIA_PARSE_RESPONSE ($response, $type) { $dummy = removeHttpHeaderFromResponse($response); // If there is no result, abort here - if (count($dummy) == 0) { + if (!isFilledArray($dummy)) { // Empty response from API reportBug(__FUNCTION__, __LINE__, 'Empty result from API received. response()=' . count($response) . ',type=' . $type); return array(); @@ -426,7 +426,7 @@ function YOOMEDIA_GET_ERRORCODE_FROM_RESULT ($response) { $code = -999; } // END - if } - } elseif (count($response) == 0) { + } elseif (!isFilledArray($response)) { // All fine, but empty result $code = '0'; } else { diff --git a/inc/load_config.php b/inc/load_config.php index b7e53a6d86..ee94c6f582 100644 --- a/inc/load_config.php +++ b/inc/load_config.php @@ -82,9 +82,9 @@ if ((isIncludeReadable(getCachePath() . 'config-local.php')) && (isIncludeReadab } // Check if the user setups his database login stuff... -if ((empty($GLOBALS['mysql']['login'])) && (!isInstalling()) && (!isInstallationPhase()) && (!isGetRequestElementSet('installing')) && (isInstalled())) { +if ((empty($GLOBALS['mysql']['login'])) && (!isInstalling()) && (!isInstaller()) && (!isGetRequestElementSet('installing')) && (isInstalled())) { // No login entered and outside installation mode - outputHtml('{--MAILER_WARNING--}:'); + outputHtml('{--MAILER_WARNING--}'); if (isInstalled()) { // You have changed my configuration file! reportBug(__FILE__, __LINE__, '{--DIE_CONFIG_CHANGED_YOU--}'); @@ -92,9 +92,9 @@ if ((empty($GLOBALS['mysql']['login'])) && (!isInstalling()) && (!isInstallation // Please run the installation script (maybe again) reportBug(__FILE__, __LINE__, '{--DIE_RUN_INSTALLER_MYSQL--}'); } -} elseif ((!isInstalling()) && (!isInstallationPhase()) && (empty($GLOBALS['mysql']['password'])) && (getConfig('WARN_NO_PASS') == 'Y')) { +} elseif ((!isInstalling()) && (!isInstaller()) && (empty($GLOBALS['mysql']['password'])) && (getConfig('WARN_NO_PASS') == 'Y')) { // No database password entered - displayMessage('
{--MAILER_WARNING--}:
{--WARN_NULL_PASSWORD--}'); + displayMessage('
{--MAILER_WARNING--}
{--WARN_NULL_PASSWORD--}'); } // [EOF] diff --git a/inc/load_extensions.php b/inc/load_extensions.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/load_extensions.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/loader/load- b/inc/loader/load- index aba412eedd..d912ecea2b 100644 --- a/inc/loader/load- +++ b/inc/loader/load- @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Use this code if you don't want to run this cache loader on installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -47,15 +48,15 @@ if (!defined('__SECURITY')) { if (($GLOBALS['cache_instance']->loadCacheFile('foo')) && ($GLOBALS['cache_instance']->extensionVersionMatches('foo'))) { // Load cache $GLOBALS['cache_array']['foo'] = $GLOBALS['cache_instance']->getArrayFromCache(); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file $GLOBALS['cache_instance']->init(); // Query the database about this $result = sqlQuery('SELECT * FROM `{?_MYSQL_PREFIX?}_foos` ORDER BY `some_bar` ASC', __FILE__, __LINE__); - while ($dummy = sqlFetchArray($result)) { + while ($data = sqlFetchArray($result)) { // Save row - $GLOBALS['cache_instance']->addRow($dummy); + $GLOBALS['cache_instance']->addRow($data); } // END - while // Free memory diff --git a/inc/loader/load-admins.php b/inc/loader/load-admins.php index 96edeb3163..18c65bd2ec 100644 --- a/inc/loader/load-admins.php +++ b/inc/loader/load-admins.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -81,7 +82,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('admin')) && ($GLOBALS['cache_ins $GLOBALS['cache_instance']->removeCacheFile(); unset($GLOBALS['cache_array']['admin']); } -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file $GLOBALS['cache_instance']->init(); @@ -152,7 +153,7 @@ if (isExtensionInstalledAndNewer('admins', '0.3')) { // This may drive a lot messages to the logfile //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'No entry found in admin_acls to rewrite.'); } - } elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { + } elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-config.php b/inc/loader/load-config.php index b840901364..f5be7054ba 100644 --- a/inc/loader/load-config.php +++ b/inc/loader/load-config.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -58,7 +59,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('config')) && ($GLOBALS['cache_in // Remove dummy array unset($config); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-earning.php b/inc/loader/load-earning.php index d6a8e67d41..ab31866453 100644 --- a/inc/loader/load-earning.php +++ b/inc/loader/load-earning.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } elseif (!isExtensionInstalled('earning')) { // Do not cache if not installed! @@ -50,15 +51,15 @@ if (!defined('__SECURITY')) { if (($GLOBALS['cache_instance']->loadCacheFile('earning')) && ($GLOBALS['cache_instance']->extensionVersionMatches('earning'))) { // Load cache $GLOBALS['cache_array']['earning'] = $GLOBALS['cache_instance']->getArrayFromCache(); -} elseif ((isHtmlOutputMode()) && (isExtensionInstalled('earning'))) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file $GLOBALS['cache_instance']->init(); // Query the database about this $result = sqlQuery('SELECT * FROM `{?_MYSQL_PREFIX?}_earning_data` ORDER BY `earning_id` ASC', __FILE__, __LINE__); - while ($dummy = sqlFetchArray($result)) { + while ($data = sqlFetchArray($result)) { // Save row - $GLOBALS['cache_instance']->addRow($dummy); + $GLOBALS['cache_instance']->addRow($data); } // END - while // Free memory diff --git a/inc/loader/load-extension.php b/inc/loader/load-extension.php index 0d35dd4501..acaeb85145 100644 --- a/inc/loader/load-extension.php +++ b/inc/loader/load-extension.php @@ -40,8 +40,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -60,7 +61,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache // Loop through all foreach ($EXT_DUMMY['ext_name'] as $k => $ext_name) { - // Load CSS file + // Load CSS file? if ($EXT_DUMMY['ext_css'][$k] == 'Y') { addExtensionCssFile($ext_name . '.css'); } // END - if @@ -132,7 +133,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('extension')) && ($GLOBALS['cache // Remove array and mark cache as loaded unset($EXT_POOL); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-filter.php b/inc/loader/load-filter.php index 48debd41b3..f460b455a7 100644 --- a/inc/loader/load-filter.php +++ b/inc/loader/load-filter.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -50,7 +51,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('filter')) && ($GLOBALS['cache_in // Prepare the array here prepareFilterArray(); -} elseif (((isHtmlOutputMode()) || (isRawOutputMode())) && (isExtensionInstalledAndNewer('sql_patches', '0.5.9'))) { +} elseif (((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) && (isExtensionInstalledAndNewer('sql_patches', '0.5.9'))) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-imprint.php b/inc/loader/load-imprint.php index dd1a514249..e8303d3438 100644 --- a/inc/loader/load-imprint.php +++ b/inc/loader/load-imprint.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } elseif (!isExtensionInstalled('imprint')) { // Do not cache if not installed! @@ -50,7 +51,7 @@ if (!defined('__SECURITY')) { if (($GLOBALS['cache_instance']->loadCacheFile('imprint')) && ($GLOBALS['cache_instance']->extensionVersionMatches('imprint'))) { // Load cache $GLOBALS['cache_array']['imprint'] = $GLOBALS['cache_instance']->getArrayFromCache(); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-modules.php b/inc/loader/load-modules.php index f52226607f..44178611f4 100644 --- a/inc/loader/load-modules.php +++ b/inc/loader/load-modules.php @@ -38,8 +38,12 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); + return FALSE; +} elseif (!isExtensionInstalled('mods')) { + // Do not run if ext-mods is missing return FALSE; } @@ -87,7 +91,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('modules')) && ($GLOBALS['cache_i } // END - foreach } // END - foreach unset($modArray); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-payments.php b/inc/loader/load-payments.php index de1647c137..3d72aec7f2 100644 --- a/inc/loader/load-payments.php +++ b/inc/loader/load-payments.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -66,15 +67,15 @@ if (($GLOBALS['cache_instance']->loadCacheFile('payments')) && ($GLOBALS['cache_ // Set the array back and remove temporary $GLOBALS['cache_array']['payments'] = $paymentsData; unset($paymentsData); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file $GLOBALS['cache_instance']->init(); // Query the database about this $result = sqlQuery('SELECT * FROM `{?_MYSQL_PREFIX?}_payments` ORDER BY `id` ASC', __FILE__, __LINE__); - while ($dummy = sqlFetchArray($result)) { + while ($data = sqlFetchArray($result)) { // Save row - $GLOBALS['cache_instance']->addRow($dummy); + $GLOBALS['cache_instance']->addRow($data); } // END - while // Free memory diff --git a/inc/loader/load-points_data.php b/inc/loader/load-points_data.php index 91da8e922b..886795351f 100644 --- a/inc/loader/load-points_data.php +++ b/inc/loader/load-points_data.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } elseif (!isExtensionInstalledAndNewer('sql_patches', '0.8.0')) { // Is not installed or recent enough @@ -78,15 +79,15 @@ if (($GLOBALS['cache_instance']->loadCacheFile('points_data')) && ($GLOBALS['cac // Set the array back and remove temporary $GLOBALS['cache_array']['points_data'] = $pointsData; unset($pointsData); -} elseif ((isHtmlOutputMode()) && (isExtensionInstalledAndNewer('sql_patches', '0.8.6'))) { +} elseif (((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) && (isExtensionInstalledAndNewer('sql_patches', '0.8.6'))) { // Create cache file $GLOBALS['cache_instance']->init(); // Query the database about this $result = sqlQuery('SELECT * FROM `{?_MYSQL_PREFIX?}_points_data` ORDER BY `id` ASC', __FILE__, __LINE__); - while ($dummy = sqlFetchArray($result)) { + while ($data = sqlFetchArray($result)) { // Save row - $GLOBALS['cache_instance']->addRow($dummy); + $GLOBALS['cache_instance']->addRow($data); } // END - while // Free memory diff --git a/inc/loader/load-refdepths.php b/inc/loader/load-refdepths.php index 446896fc79..ea9d178a83 100644 --- a/inc/loader/load-refdepths.php +++ b/inc/loader/load-refdepths.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -47,7 +48,7 @@ if (!defined('__SECURITY')) { if (($GLOBALS['cache_instance']->loadCacheFile('refdepths')) && ($GLOBALS['cache_instance']->extensionVersionMatches('sql_patches'))) { // Load referral system from cache $GLOBALS['cache_array']['refdepths'] = $GLOBALS['cache_instance']->getArrayFromCache(); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-refsystem.php b/inc/loader/load-refsystem.php index 9fcc557dfb..245bfdf3ed 100644 --- a/inc/loader/load-refsystem.php +++ b/inc/loader/load-refsystem.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } @@ -47,7 +48,7 @@ if (!defined('__SECURITY')) { if (($GLOBALS['cache_instance']->loadCacheFile('refsystem')) && ($GLOBALS['cache_instance']->extensionVersionMatches('sql_patches'))) { // Load referral system from cache $GLOBALS['cache_array']['refsystem'] = $GLOBALS['cache_instance']->getArrayFromCache(); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/loader/load-revision.php b/inc/loader/load-revision.php index ac634f319a..9292bb922f 100644 --- a/inc/loader/load-revision.php +++ b/inc/loader/load-revision.php @@ -44,7 +44,7 @@ if (!defined('__SECURITY')) { if ($GLOBALS['cache_instance']->loadCacheFile('revision')) { // Load revision from cache $GLOBALS['cache_array']['revision'] = $GLOBALS['cache_instance']->getArrayFromCache(); -} elseif ((isHtmlOutputMode())) { +} elseif (((isHtmlOutputMode())) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); @@ -55,7 +55,7 @@ if ($GLOBALS['cache_instance']->loadCacheFile('revision')) { $GLOBALS['cache_instance']->finalize(); // Generate FQFN for old revision file - $FQFN = sprintf("%s/.revision", getCachePath()); + $FQFN = sprintf('%s/.revision', getCachePath()); // Is it there? if (isFileReadable($FQFN)) { diff --git a/inc/loader/load-themes.php b/inc/loader/load-themes.php index a349240e19..916312f638 100644 --- a/inc/loader/load-themes.php +++ b/inc/loader/load-themes.php @@ -38,8 +38,9 @@ // Some security stuff... if (!defined('__SECURITY')) { die(); -} elseif (isInstallationPhase()) { +} elseif (isInstaller()) { // Do not run in installation phase + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'Run from installation phase.'); return FALSE; } elseif (!isExtensionActive('theme')) { // Skip this loader @@ -70,7 +71,7 @@ if (($GLOBALS['cache_instance']->loadCacheFile('themes')) && ($GLOBALS['cache_in // Remove dummy array unset($cache); -} elseif ((isHtmlOutputMode()) || (isRawOutputMode())) { +} elseif ((isHtmlOutputMode()) || (isAjaxOutputMode()) || (isRawOutputMode())) { // Create cache file here $GLOBALS['cache_instance']->init(); diff --git a/inc/mails/birthday_mails.php b/inc/mails/birthday_mails.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/mails/birthday_mails.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/mails/doubler_mails.php b/inc/mails/doubler_mails.php index 92606bfba8..1783c69cb1 100644 --- a/inc/mails/doubler_mails.php +++ b/inc/mails/doubler_mails.php @@ -167,7 +167,7 @@ if ((($totalCount > 0) && (getConfig('doubler_sent_all') == 'Y')) || ((sqlNumRow if ($content['userid'] != getDoublerUserid()) { // Add points initReferralSystem(); - addPointsThroughReferralSystem(sprintf("doubler_%s", strtolower(getDoublerSendMode())), $content['userid'], $content['points']); + addPointsThroughReferralSystem(sprintf('doubler_%s', strtolower(getDoublerSendMode())), $content['userid'], $content['points']); } // END - if // Set entry as "payed" @@ -184,7 +184,7 @@ if ((($totalCount > 0) && (getConfig('doubler_sent_all') == 'Y')) || ((sqlNumRow } // END - if // Exclude also webmaster's id in taking points from webmaster's account - if (($userPoints > 0) && ($userPoints >= $content['points']) && ($okay === FALSE) && (getDoublerUserid() > 0) && ($content['userid'] != getDoublerUserid())) { + if (($userPoints > 0) && ($userPoints >= $content['points']) && ($okay === FALSE) && (isValidId(getDoublerUserid())) && ($content['userid'] != getDoublerUserid())) { // Subtract points $okay = subtractPoints('doubler_payout', getDoublerUserid(), $content['points']); } // END - if diff --git a/inc/module-functions.php b/inc/module-functions.php index ba6ba895cf..f7779d051a 100644 --- a/inc/module-functions.php +++ b/inc/module-functions.php @@ -241,7 +241,7 @@ function checkModulePermissions ($module = '') { setModuleStatus($module_chk, 'major'); // Check if script is installed if not return a 'done' to prevent some errors - if ((isInstallationPhase()) || (!isAdminRegistered())) { + if ((isInstaller()) || (!isAdminRegistered())) { // Not installed or no admin registered or in installation phase setModuleStatus($module_chk, 'done'); @@ -271,7 +271,7 @@ function checkModulePermissions ($module = '') { setModuleStatus($module_chk, 'admin_only'); } else { // @TODO Nothing helped??? - logDebugMessage(__FUNCTION__, __LINE__, sprintf("ret=%s,locked=%d,hidden=%d,mem=%d,admin=%d", + logDebugMessage(__FUNCTION__, __LINE__, sprintf('ret=%s,locked=%d,hidden=%d,mem=%d,admin=%d', getModuleStatus($module_chk), intval(isModuleLocked($module_chk)), intval(isModuleHidden($module_chk)), @@ -284,7 +284,7 @@ function checkModulePermissions ($module = '') { // Still no luck or not found? if (($found === FALSE) && (!isExtensionActive('cache')) && (getModuleStatus($module_chk) != 'done')) { // ----- Default module ----- ---- Module in base folder ---- --- Module with extension's name --- - if ((isIncludeReadable(sprintf("inc/modules/%s.php", $module))) || (isIncludeReadable(sprintf("%s.php", $module))) || (isIncludeReadable(sprintf("%s/%s.php", $extension, $module)))) { + if ((isIncludeReadable(sprintf('inc/modules/%s.php', $module))) || (isIncludeReadable($module . '.php')) || (isIncludeReadable(sprintf('%s/%s.php', $extension, $module)))) { // Data is missing so we add it if (isExtensionInstalledAndNewer('sql_patches', '0.3.6')) { /* @@ -328,7 +328,7 @@ VALUES rebuildCache('modules', 'modules'); } elseif ($found === FALSE) { // Problem with module detected - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Problem in module %s detected. getModuleStatus()=%s,locked=%d,hidden=%d,mem=%d,admin=%d,output_mode=%s", + logDebugMessage(__FUNCTION__, __LINE__, sprintf('Problem in module %s detected. getModuleStatus()=%s,locked=%d,hidden=%d,mem=%d,admin=%d,output_mode=%s', $module_chk, getModuleStatus($module_chk), intval(isModuleLocked($module_chk)), @@ -340,7 +340,7 @@ VALUES } // Debug log - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("module=%s, status=%s", $module_chk, getModuleStatus($module_chk))); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf('module=%s, status=%s', $module_chk, getModuleStatus($module_chk))); // Return the value return getModuleStatus($module_chk); @@ -388,7 +388,7 @@ function ifModuleHasMenu ($module, $forceDb = FALSE) { } elseif (!isExtensionInstalled('sql_patches')) { // No ext-sql_patches installed, so maybe in admin/guest/member/sponsor area or no admin registered? $ret = in_array($module, array('admin', 'index', 'login', 'sponsor')); // Then there is a menu! - } elseif (!isInstallationPhase()) { + } elseif (!isInstaller()) { // Unsupported state, but ignored in installation phase logDebugMessage(__FUNCTION__, __LINE__, 'This should never be reached, module[' . gettype($module) . ']=' . $module . ',forceDb=' . intval($forceDb)); } @@ -405,7 +405,7 @@ function addModuleSql ($module, $title, $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", + logDebugMessage(__FUNCTION__, __LINE__, sprintf('Already registered: module=%s,locked=%s,hidden=%s,admin=%s,mem=%s', $module, $locked, $hidden, @@ -421,7 +421,7 @@ function loadModule () { $isModuleValid = FALSE; // Construct module name - $GLOBALS['module_inc'] = sprintf("inc/modules/%s.php", getModule()); + $GLOBALS['module_inc'] = sprintf('inc/modules/%s.php', getModule()); // Check module permission (again) $moduleState = checkModulePermissions(); @@ -474,7 +474,7 @@ function loadModule () { default: // Unknown module status - logDebugMessage(__FUNCTION__, __LINE__, sprintf("Unknown status %s return from module check. Module=%s", $moduleState, getModule())); + logDebugMessage(__FUNCTION__, __LINE__, sprintf('Unknown status %s return from module check. Module=%s', $moduleState, getModule())); addFatalMessage(__FUNCTION__, __LINE__, '{%message,UNKNOWN_MODULE_STATUS=' . $moduleState . '%}'); break; } // END - switch @@ -542,7 +542,7 @@ function getMenuModeFromModule () { } elseif (getModule() == 'admin') { // Is admin area $GLOBALS[__FUNCTION__] = 'admin'; - } elseif (isInstallationPhase()) { + } elseif (isInstaller()) { // Is installation phase $GLOBALS[__FUNCTION__] = 'install'; } else { diff --git a/inc/modules/admin.php b/inc/modules/admin.php index ef900aec04..bab3484705 100644 --- a/inc/modules/admin.php +++ b/inc/modules/admin.php @@ -169,10 +169,7 @@ if (!isAdminRegistered()) { // Check for password if (!isPostRequestElementSet('admin_password')) { // No password entered? - $passwdMessage = '{--ADMIN_NO_PASS--}'; - } elseif (strlen(postRequestElement('admin_password')) < getConfig('minium_admin_pass_length')) { - // Or password too short? - $passwdMessage = '{--ADMIN_SHORT_PASS--}'; + $passwdMessage = '{--ADMIN_NO_PASSWORD--}'; } elseif ((!empty($ret)) && (postRequestElement('login') == 'password')) { // An error comes back from login? $passwdMessage = $ret; @@ -208,7 +205,7 @@ if (!isAdminRegistered()) { $remove = getRequestElement('remove'); // Special logout redirect for removal of given extension - loadTemplate(sprintf("admin_logout_%s_remove", $remove)); + loadTemplate(sprintf('admin_logout_%s_remove', $remove)); } else { // Logged out normally loadTemplate('admin_logout'); @@ -265,7 +262,7 @@ if (!isAdminRegistered()) { break; default: // Others will be logged - logDebugMessage(__FILE__, __LINE__, sprintf("Unknown return code %s from ifAdminCookiesAreValid()", $ret)); + logDebugMessage(__FILE__, __LINE__, sprintf('Unknown return code %s from ifAdminCookiesAreValid()', $ret)); break; } // END - switch } diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php index b4f8ff20fa..9360b73c8a 100644 --- a/inc/modules/admin/admin-inc.php +++ b/inc/modules/admin/admin-inc.php @@ -42,6 +42,9 @@ if (!defined('__SECURITY')) { // Register an administrator account function addAdminAccount ($adminLogin, $passHash, $adminEmail, $accessLevel = 'deny') { + // Only let valid data pass + assert(in_array($accessLevel, array('allow', 'deny'))); + // Login does already exist $ret = 'already'; @@ -507,10 +510,10 @@ ORDER BY while ($content = sqlFetchArray($result)) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . intval($userid) . '/' . $content['userid']); $OUT .= ''; } // END - while // Free memory @@ -1703,15 +1706,15 @@ function registerFirstAdmin () { // No password 1 entered or to short? if (!isPostRequestElementSet('admin_password1')) { $password1Message = '{--ADMIN_NO_PASSWORD1--}'; - } elseif (strlen(postRequestElement('admin_password1')) < getConfig('minium_admin_pass_length')) { - $password1Message = '{--ADMIN_SHORT_PASSWORD1--}'; + } elseif (!isStrongPassword(postRequestElement('admin_password1'))) { + $password1Message = '{--ADMIN_WEAK_PASSWORD1--}'; } // No password 2 entered or to short? if (!isPostRequestElementSet('admin_password2')) { $password2Message = '{--ADMIN_NO_PASSWORD2--}'; - } elseif (strlen(postRequestElement('admin_password2')) < getConfig('minium_admin_pass_length')) { - $password2Message = '{--ADMIN_SHORT_PASSWORD2--}'; + } elseif (!isStrongPassword(postRequestElement('admin_password2'))) { + $password2Message = '{--ADMIN_WEAK_PASSWORD2--}'; } // Both didn't match? diff --git a/inc/modules/admin/overview-inc.php b/inc/modules/admin/overview-inc.php index e8fd2aac20..026068e6fb 100644 --- a/inc/modules/admin/overview-inc.php +++ b/inc/modules/admin/overview-inc.php @@ -188,7 +188,7 @@ LIMIT 1", $content = getUserDataArray(); // Generate HTML list entry - $add = '
  • {--ADMIN_MEMBER_USERID--}: ' . generateUserProfileLink($taskData['userid'], 'user_data') . ' ({%pipe,translateGender=' . $content['gender'] . '%} ' . $content['surname'] . ' ' . $content['family'] . ')
  • '; + $add = '
  • {--ADMIN_ASSIGNED_USERID--}: ' . generateUserProfileLink($taskData['userid'], 'user_data') . ' ({%pipe,translateGender=' . $content['gender'] . '%} ' . $content['surname'] . ' ' . $content['family'] . ')
  • '; } else { // Invalid userid, so log and zero it logDebugMessage(__FUNCTION__, __LINE__, 'fetchUserData() failed: userid=' . $taskData['userid'] . ' not found.'); diff --git a/inc/modules/admin/what-add_tester_user.php b/inc/modules/admin/what-add_tester_user.php index 35e974f87e..a78dd46647 100644 --- a/inc/modules/admin/what-add_tester_user.php +++ b/inc/modules/admin/what-add_tester_user.php @@ -62,7 +62,7 @@ if (!isNewUserTesterAllowed()) { } // END - if // Display form -loadTemplate('admin_add_tester_user', FALSE, $content); +loadTemplate('admin_add_tester_user'); // [EOF] ?> diff --git a/inc/modules/admin/what-admins_contact.php b/inc/modules/admin/what-admins_contact.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-admins_contact.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-autopurge.php b/inc/modules/admin/what-autopurge.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-autopurge.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-config_booking.php b/inc/modules/admin/what-config_booking.php new file mode 100644 index 0000000000..7905761ce5 --- /dev/null +++ b/inc/modules/admin/what-config_booking.php @@ -0,0 +1,58 @@ + diff --git a/inc/modules/admin/what-config_cache.php b/inc/modules/admin/what-config_cache.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-config_cache.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-config_cats.php b/inc/modules/admin/what-config_cats.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-config_cats.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-config_mods.php b/inc/modules/admin/what-config_mods.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-config_mods.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-config_rallye_prices.php b/inc/modules/admin/what-config_rallye_prices.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-config_rallye_prices.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-config_reg.php b/inc/modules/admin/what-config_reg.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-config_reg.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-config_rewrite.php b/inc/modules/admin/what-config_rewrite.php index 9fe424cb50..b10890133e 100644 --- a/inc/modules/admin/what-config_rewrite.php +++ b/inc/modules/admin/what-config_rewrite.php @@ -61,12 +61,15 @@ if (isFormSent('save_config')) { // Save settings adminSaveSettingsFromPostData(); } else { + // Explode all modules + $MODs = explode(':', getConfig('rewrite_skip')); + // Load existing modules and generate TR rows for the template - $result = sqlQuery("SELECT `module`, `title` FROM `{?_MYSQL_PREFIX?}_mod_reg` ORDER BY module", __FILE__, __LINE__); + $result = sqlQuery("SELECT `module`, `title` FROM `{?_MYSQL_PREFIX?}_mod_reg` ORDER BY `module` ASC", __FILE__, __LINE__); $OUT = ''; while ($content = sqlFetchArray($result)) { // Already registered module? - if (isInString($content['module'], getConfig('rewrite_skip'))) { + if (in_array($content['module'], $MODs)) { // Found $y = ' checked="checked"'; $n = ''; diff --git a/inc/modules/admin/what-config_secure.php b/inc/modules/admin/what-config_secure.php index de299e1ace..dd009a0eee 100644 --- a/inc/modules/admin/what-config_secure.php +++ b/inc/modules/admin/what-config_secure.php @@ -59,8 +59,20 @@ if (isFormSent('save_config')) { // Save settings adminSaveSettingsFromPostData(); } else { + // Prepare content + $content = array(); + + // Loop all scores + for ($idx = 0; $idx <= 5; $idx++) { + // Init value + $content['min_password_score_' . $idx] = ''; + } // END - for + + // Set default + $content['min_password_score_' . strtolower(getMinPasswordScore())] = ' selected="selected"'; + // Load template - loadTemplate('admin_config_secure'); + loadTemplate('admin_config_secure', FALSE, $content); } // [EOF] diff --git a/inc/modules/admin/what-del_task.php b/inc/modules/admin/what-del_task.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-del_task.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-edit_sponsor.php b/inc/modules/admin/what-edit_sponsor.php index 14bfd64d9b..1fe5197c2e 100644 --- a/inc/modules/admin/what-edit_sponsor.php +++ b/inc/modules/admin/what-edit_sponsor.php @@ -154,7 +154,7 @@ LIMIT 1", // Output message displayMessage($message); } // END - if - } elseif (isFileReadable(sprintf("%stemplates/%s/html/admin/%s.tpl", getPath(), getLanguage(), $TPL))) { + } elseif (isFileReadable(sprintf('%s/admin/%s.tpl', getTemplateBasePath('html'), $TPL))) { // Create mailto link $content['contact'] = '' . $content['surname'] . ' ' . $content['family'] . ''; diff --git a/inc/modules/admin/what-list_ b/inc/modules/admin/what-list_ index f3c04ad1c2..58204dfd93 100644 --- a/inc/modules/admin/what-list_ +++ b/inc/modules/admin/what-list_ @@ -4,7 +4,7 @@ * =================== Last change: 10/04/2012 * * * * -------------------------------------------------------------------- * - * File : what-list_!!!s.php * + * File : what-list_!!!.php * * -------------------------------------------------------------------- * * Short description : List all URLs in !!! * * -------------------------------------------------------------------- * @@ -58,40 +58,40 @@ if ((countRequestPost() > 0) && (!ifPostContainsSelections('???_id'))) { // Edit or delete button hit? if (isFormSent('edit')) { // Show entries for editing - doGenericXmlTemplateCallback('admin_edit_show_!!!s'); + doGenericXmlTemplateCallback('admin_edit_show_!!!'); // Do not show the list of URLs after this template $show = FALSE; } elseif (isFormSent('do_edit')) { // Change data of entries - doGenericXmlTemplateCallback('admin_edit_do_!!!s'); + doGenericXmlTemplateCallback('admin_edit_do_!!!'); } elseif (isFormSent('delete')) { // Show entries for deletion - doGenericXmlTemplateCallback('admin_delete_show_!!!s'); + doGenericXmlTemplateCallback('admin_delete_show_!!!'); // Do not show the list of URLs after this template $show = FALSE; } elseif (isFormSent('do_delete')) { // Remove entries from database - doGenericXmlTemplateCallback('admin_delete_do_!!!s'); + doGenericXmlTemplateCallback('admin_delete_do_!!!'); } elseif (isFormSent('lock')) { // Un-/lock selected URLs. This does not work for pending URLs - doGenericXmlTemplateCallback('admin_lock_show_!!!s'); + doGenericXmlTemplateCallback('admin_lock_show_!!!'); // Do not show the list of URLs after this template $show = FALSE; } elseif (isFormSent('do_lock')) { // Un-/lock selected URLs. This does not work for pending URLs - doGenericXmlTemplateCallback('admin_lock_do_!!!s'); + doGenericXmlTemplateCallback('admin_lock_do_!!!'); } elseif (isFormSent('undelete')) { // Undelete selected URLs. This does only work for deleted URLs... ;-) - doGenericXmlTemplateCallback('admin_undelete_show_!!!s'); + doGenericXmlTemplateCallback('admin_undelete_show_!!!'); // Do not show the list of URLs after this template $show = FALSE; } elseif (isFormSent('do_undelete')) { // Undelete selected URLs. This does only work for deleted URLs... ;-) - doGenericXmlTemplateCallback('admin_undelete_do_!!!s'); + doGenericXmlTemplateCallback('admin_undelete_do_!!!'); } // Show entries? @@ -101,7 +101,7 @@ if ($show === FALSE) { } // END - if // List all !!! -doGenericXmlTemplateCallback('admin_list_!!!s'); +doGenericXmlTemplateCallback('admin_list_!!!'); // [EOF] ?> diff --git a/inc/modules/admin/what-list_autopurge.php b/inc/modules/admin/what-list_autopurge.php index defadc828e..d35b1b4d9f 100644 --- a/inc/modules/admin/what-list_autopurge.php +++ b/inc/modules/admin/what-list_autopurge.php @@ -46,7 +46,7 @@ addYouAreHereLink('admin', __FILE__); // Exclude default referral id if set $userExclusionSql = ' '; $excludedUserids = runFilterChain('config_userid_exclusion_sql', array()); -if (count($excludedUserids) > 0) { +if (isFilledArray($excludedUserids)) { // Exclude all $userExcludeSql = ' AND `d`.`userid` NOT IN (' . implode(', ', $excludedUserids) . ')'; } // END - if diff --git a/inc/modules/admin/what-list_blacklist.php b/inc/modules/admin/what-list_blacklist.php new file mode 100644 index 0000000000..c8f4fc4efa --- /dev/null +++ b/inc/modules/admin/what-list_blacklist.php @@ -0,0 +1,89 @@ + 0) && (!ifPostContainsSelections('id'))) { + // Not found so output message + displayMessage('{--ADMIN_BLACKLIST_NO_SELECTIONS--}'); + + // Abort here + return; +} // END - if + +// Edit or delete button hit? +if (isFormSent('edit')) { + // Show entries for editing + doGenericXmlTemplateCallback('admin_edit_show_blacklist'); + + // Do not show the list of URLs after this template + $show = FALSE; +} elseif (isFormSent('do_edit')) { + // Change data of entries + doGenericXmlTemplateCallback('admin_edit_do_blacklist'); +} elseif (isFormSent('delete')) { + // Show entries for deletion + doGenericXmlTemplateCallback('admin_delete_show_blacklist'); + + // Do not show the list of URLs after this template + $show = FALSE; +} elseif (isFormSent('do_delete')) { + // Remove entries from database + doGenericXmlTemplateCallback('admin_delete_do_blacklist'); +} + +// Show entries? +if ($show === FALSE) { + // No, a form has already been show + return FALSE; +} // END - if + +// List all blacklist entries +doGenericXmlTemplateCallback('admin_list_blacklist'); + +// [EOF] +?> diff --git a/inc/modules/admin/what-list_network_vcheck_params.php b/inc/modules/admin/what-list_network_vcheck_params.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-list_network_vcheck_params.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-list_newsletter.php b/inc/modules/admin/what-list_newsletter.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-list_newsletter.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-list_norefs.php b/inc/modules/admin/what-list_norefs.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-list_norefs.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-list_task.php b/inc/modules/admin/what-list_task.php index 8625db8607..ff171fded3 100644 --- a/inc/modules/admin/what-list_task.php +++ b/inc/modules/admin/what-list_task.php @@ -179,7 +179,7 @@ ORDER BY // Prepare content $content = array( - 'message' => '{--ADMIN_OVERVIEW_TASK_' . strtoupper(getRequestElement('type')) . '_TYPE--}', + 'message' => '{--ADMIN_OVERVIEW_TASK_' . strtoupper(getRequestElement('type')) . '_TYPE_TITLE--}', 'type' => getRequestElement('type'), 'rows' => $OUT ); diff --git a/inc/modules/admin/what-list_user.php b/inc/modules/admin/what-list_user.php index 3884447e0d..c10c443ab3 100644 --- a/inc/modules/admin/what-list_user.php +++ b/inc/modules/admin/what-list_user.php @@ -157,10 +157,7 @@ LIMIT 1', } // END - if // Clickrate - $content['click_rate'] = '0'; - if ($content['emails_received'] > 0) { - $content['click_rate'] = ($content['mails_confirmed'] / $content['emails_received'] * 100); - } // END - if + $content['click_rate'] = calculatePercentageRate($content['mails_confirmed'], $content['emails_received']); // Is the extension 'country' installed? if (isExtensionActive('country')) { @@ -313,10 +310,7 @@ ORDER BY } // END - if // Click rate - $content['click_rate'] = '0'; - if ($content['emails_received'] > 0) { - $content['click_rate'] = $content['mails_confirmed'] / $content['emails_received'] * 100; - } // END - if + $content['click_rate'] = calculatePercentageRate($content['mails_confirmed'], $content['emails_received']); // Transfer data to array $content['email'] = '[' . $content['email'] . ']'; diff --git a/inc/modules/admin/what-list_user_amounts.php b/inc/modules/admin/what-list_user_amounts.php index 88f25ca9ab..76491a7c9e 100644 --- a/inc/modules/admin/what-list_user_amounts.php +++ b/inc/modules/admin/what-list_user_amounts.php @@ -93,7 +93,7 @@ if (!ifSqlHasZeroNums($result)) { // ... and display all foreach ($amounts as $userid => $row) { // Calculate and add percentage to data array - $row['percents'] = $row['points'] / $totalPoints * 100; + $row['percents'] = calculatePercentageRate($row['points'], $totalPoints); // Load row template $out['rows'] .= loadTemplate('admin_list_user_amounts_row', TRUE, $row); diff --git a/inc/modules/admin/what-list_yoomedia_tm.php b/inc/modules/admin/what-list_yoomedia_tm.php index e72482611b..e7b42518b7 100644 --- a/inc/modules/admin/what-list_yoomedia_tm.php +++ b/inc/modules/admin/what-list_yoomedia_tm.php @@ -76,7 +76,7 @@ if (getConfig('yoomedia_requests_remain') == '0') { $result = YOOMEDIA_GET_PARSED_RESULT_TEXTMAILS(); // Sanity-check on result array -if ((!is_array($result)) || (count($result) == 0) || (!isset($result[0]['id']))) { +if ((!isFilledArray($result)) || (!isset($result[0]['id']))) { // Invalid result displayMessage('{--ADMIN_YOOMEDIA_INVALID_RESULT--}'); return FALSE; diff --git a/inc/modules/admin/what-newsletter.php b/inc/modules/admin/what-newsletter.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-newsletter.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-optimize.php b/inc/modules/admin/what-optimize.php index 44a739c7b2..eb6c919711 100644 --- a/inc/modules/admin/what-optimize.php +++ b/inc/modules/admin/what-optimize.php @@ -63,7 +63,7 @@ foreach ($content['tables'] as $row_array) { $optimizeStatus = '{--ADMIN_OPTIMIZE_STATUS_OPTIMIZED--}'; $B1 = ''; $B2 = ''; $gain_tabs++; - } elseif (count(explode(' ', $row_array[2])) == 0) { + } elseif (!isFilledArray(explode(' ', $row_array[2]))) { $optimizeStatus = '{--ADMIN_OPTIMIZE_STATUS_' . strtoupper($row_array[2]) . '--}'; } diff --git a/inc/modules/admin/what-payments.php b/inc/modules/admin/what-payments.php index 6b266f45fc..027a00e234 100644 --- a/inc/modules/admin/what-payments.php +++ b/inc/modules/admin/what-payments.php @@ -48,7 +48,7 @@ if (((!isPostRequestElementSet('t_wait')) || (!isPostRequestElementSet('payment' } // END - if // Init SQL array -nitSqls(); +initSqls(); if (isFormSent()) { switch (getRequestElement('do')) { diff --git a/inc/modules/admin/what-repair_amenu.php b/inc/modules/admin/what-repair_amenu.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-repair_amenu.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-repair_gmenu.php b/inc/modules/admin/what-repair_gmenu.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-repair_gmenu.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-repair_mmenu.php b/inc/modules/admin/what-repair_mmenu.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-repair_mmenu.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-send_coupon.php b/inc/modules/admin/what-send_coupon.php index cbb5d8a1ca..6dcccbd68d 100644 --- a/inc/modules/admin/what-send_coupon.php +++ b/inc/modules/admin/what-send_coupon.php @@ -72,7 +72,7 @@ ORDER BY $expirationTime = time() + createEpocheTimeFromSelections('coupon_default_time', postRequestArray()); // Insert coupon data - sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_coupon_data` (`coupon_expired`, `total_created`, `points`, `coupon_description`) VALUES ('{%%pipe,SQL_EPOCHE_TO_TIMESTAMP=%s%%}', %s,%s,'%s')", + sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_coupon_data` (`coupon_expired`, `total_created`, `points`, `coupon_description`) VALUES ('{%%pipe,getSqlTimestampFromUnix=%s%%}', %s,%s,'%s')", array( $expirationTime, sqlNumRows($result), diff --git a/inc/modules/admin/what-stats.php b/inc/modules/admin/what-stats.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-stats.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-unlock_emails.php b/inc/modules/admin/what-unlock_emails.php index 4fbd9eeebe..96def4c7b9 100644 --- a/inc/modules/admin/what-unlock_emails.php +++ b/inc/modules/admin/what-unlock_emails.php @@ -73,7 +73,7 @@ if ((!ifSqlHasZeroNums($result_main)) || (isFormSent('lock'))) { $content = getPoolDataFromId($id); // Found some data? - if (count($content) > 0) { + if (isFilledArray($content)) { // Is the surfbar installed? // @TODO Rewrite these if-blocks to a filter if ((isExtensionActive('surfbar')) && (getConfig('surfbar_migrate_order') == 'Y')) { diff --git a/inc/modules/admin/what-user_online.php b/inc/modules/admin/what-user_online.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/admin/what-user_online.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/admin/what-welcome.php b/inc/modules/admin/what-welcome.php index 123fd67f63..2a8dc6acc5 100644 --- a/inc/modules/admin/what-welcome.php +++ b/inc/modules/admin/what-welcome.php @@ -73,7 +73,7 @@ if (!ifAdminMenuHasEntries(getAction())) { displayMessage('{--ADMIN_MENU_EMPTY--}'); } elseif ($jobsDone === TRUE) { // Generate overview of all main menus - if ((is_array($GLOBALS['menu']['description'])) && (count($GLOBALS['menu']['description']) > 0)) { + if (isFilledArray($GLOBALS['menu']['description'])) { $OUT = ''; foreach ($GLOBALS['menu']['description'] as $key => $value) { // Prepare content diff --git a/inc/modules/frameset.php b/inc/modules/frameset.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/frameset.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/modules/frametester.php b/inc/modules/frametester.php index 8e250ba0cf..b404c68e7c 100644 --- a/inc/modules/frametester.php +++ b/inc/modules/frametester.php @@ -49,7 +49,7 @@ if (isGetRequestElementSet('order')) { $content = getPoolDataFromId(getRequestElement('order')); // Finally is the entry valid? - if ((count($content) > 0) && ($content['data_type'] == 'TEMP')) { + if ((isFilledArray($content)) && ($content['data_type'] == 'TEMP')) { // Load subject and URL (but forwhat do we need the subject line here??? list($url) = sqlFetchRow($result); diff --git a/inc/modules/guest/what-mediadata.php b/inc/modules/guest/what-mediadata.php index 7bb56305bc..c3ecf925be 100644 --- a/inc/modules/guest/what-mediadata.php +++ b/inc/modules/guest/what-mediadata.php @@ -126,17 +126,12 @@ $content['sent'] = $sent; $content['user_links'] = abs($sent - $clicks); // Click rate -$content['click_rate'] = '0'; -if ($sent > 0) { - $content['click_rate'] = $clicks / $sent * 100; -} // END - if +$content['click_rate'] = calculatePercentageRate($clicks, $sent); // Load jackpot -$jackpot = '0'; -if (isExtensionActive('jackpot')) $jackpot = getJackpotPoints(); - -if (empty($jackpot)) $jackpot = '0'; -$content['jackpot'] = $jackpot; +$content['jackpot'] = '0'; +if (isExtensionActive('jackpot')) $content['jackpot'] = getJackpotPoints(); +if (empty($content['jackpot'])) $content['jackpot'] = '0'; // Total referral link clicks, total logins $result = sqlQuery('SELECT @@ -190,7 +185,7 @@ if (isExtensionActive('beg')) { // Clicks on beg links $data = array( 'lang' => '{--MEDIA_BEG_CLICKS--}', - 'value' => countSumTotalData('0', 'user_data', 'beg_clicks', 'userid', FALSE, ' AND `beg_clicks` > 0') + 'value' => countSumTotalData('0', 'user_data', 'beg_clicks', 'userid', FALSE, ' WHERE `beg_clicks` > 0') ); $OUT_EXTRA .= loadTemplate('mediadata_extra_row', TRUE, $data); } // END - if diff --git a/inc/modules/guest/what-register.php b/inc/modules/guest/what-register.php index 8b424a837e..d30a787e3f 100644 --- a/inc/modules/guest/what-register.php +++ b/inc/modules/guest/what-register.php @@ -92,8 +92,8 @@ if ((isFormSent()) && (isRegistrationDataComplete())) { registerOutputFailedMessage('ENTER_PASSWORD2'); } - if ((isset($GLOBALS['registration_short_password'])) && ($GLOBALS['registration_short_password'] === TRUE)) { - registerOutputFailedMessage('GUEST_SHORT_PASS', ': ' . getPassLen()); + if ((isset($GLOBALS['registration_weak_password'])) && ($GLOBALS['registration_weak_password'] === TRUE)) { + registerOutputFailedMessage('GUEST_WEAK_PASSWORD'); } // END - if if ((isset($GLOBALS['registration_ip_timeout'])) && ($GLOBALS['registration_ip_timeout'] === TRUE)) { @@ -127,7 +127,7 @@ if ((isFormSent()) && (isRegistrationDataComplete())) { // ZIP codes are numerical values $content['zip'] = ''; - if ((isPostRequestElementSet('zip')) && (postRequestElement('zip') > 0)) { + if ((isPostRequestElementSet('zip')) && (isValidNumber(postRequestElement('zip')))) { $content['zip'] = bigintval(postRequestElement('zip')); } // END - if diff --git a/inc/modules/guest/what-sponsor_reg.php b/inc/modules/guest/what-sponsor_reg.php index 5a7f76999b..0750e18755 100644 --- a/inc/modules/guest/what-sponsor_reg.php +++ b/inc/modules/guest/what-sponsor_reg.php @@ -182,7 +182,7 @@ if (isFormSent()) { array_push($formErrors, '{--SPONSOR_PASSWORD2_EMPTY--}'); } } - } elseif (strlen(postRequestElement('password1')) < getPassLen()) { + } elseif (strlen(postRequestElement('password1')) < getMinPasswordLength()) { // Password is to short! array_push($formErrors, '{--SPONSOR_PASSWORD_TOO_SHORT--}'); } @@ -194,10 +194,10 @@ if (isFormSent()) { } // END - if // If there is something wrong/missing stop registration - if (count($formErrors) > 0) unsetPostRequestElement('ok'); + if (isFilledArray($formErrors)) unsetPostRequestElement('ok'); } // END - if -if ((isFormSent()) && (count($formErrors) == 0)) { +if ((isFormSent()) && (!isFilledArray($formErrors))) { // Generate message array $messageArray = array( 'failed' => '{--SPONSOR_REGISTRATION_FAILED--}', @@ -263,7 +263,7 @@ ORDER BY } // END - foreach // Check for invalid entries - if (count($formErrors) > 0) { + if (isFilledArray($formErrors)) { // Some found... :-( foreach (array('company','position','tax_ident','surname','family','street_nr1','street_nr2','country','zip','city','phone','fax','cell','email','url') as $entry) { $content[$entry] = postRequestElement($entry); @@ -278,7 +278,7 @@ ORDER BY $OUT = ''; // Errors found? - if (count($formErrors) > 0) { + if (isFilledArray($formErrors)) { $OUT = displayMessage('{--SPONSOR_REGISTER_SOMETHING_MISSING--}', TRUE); $OUT .= '
      '; foreach ($formErrors as $error) { diff --git a/inc/modules/member/what-order.php b/inc/modules/member/what-order.php index 0b187f963e..48049c7846 100644 --- a/inc/modules/member/what-order.php +++ b/inc/modules/member/what-order.php @@ -94,79 +94,31 @@ LIMIT 1", sqlFreeResult($result); if ($data['data_type'] == 'TEMP') { - /* - * No entry found, so we need to check out the stats table as well... - * :) We have to add that suff here, now we continue WITHOUT checking - * and check the text and subject against some filters - */ - $data['url'] = ''; - if (!isAllowUrlInTextEnabled()) { - // Test submitted text against some filters (length, URLs in text etc.) - if ((isInStringIgnoreCase('https://', postRequestElement('text'))) || (isInStringIgnoreCase('http://', postRequestElement('text'))) || (isInStringIgnoreCase('www', postRequestElement('text')))) { - // URL found - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('URL_FOUND'); - } // END - if - - // Remove new-line and carriage-return characters - $TEST = str_replace(array(PHP_EOL, chr(13)), array('', ''), postRequestElement('text')); - - // Text length within allowed length? - if (strlen($TEST) > getMaxTextLength()) { - // Text is too long! - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('OVERLENGTH'); - } // END - if - } // END - if - - // Shall I test the subject line against URLs? - if (!isAllowUrlInSubjectEnabled()) { - // Check the subject line for issues - 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 - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('SUBJECT_URL'); - } // END - if - } // END - if - - // And shall I check that his URL is not in the black list? - if ((isExtensionActive('blacklist')) && (isUrlBlacklisted(postRequestElement('url')))) { - // Create redirect-URL - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('BLIST_URL') . '&blist=' . $GLOBALS['blacklist_data'][postRequestElement('url')]['timestamp']; - } // END - if - - // Enougth receivers entered? - if ((postRequestElement('receiver') < getOrderMin()) && (!isAdmin())) { - // Less than allowed receivers entered! - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('MORE_RECEIVERS3'); - } // END - if - - // Validate URL - if (!isUrlValid(postRequestElement('url'))) { - // URL is invalid! - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('INVALID_URL'); - } // END - if - - // Probe for HTML extension - if (isExtensionActive('html_mail')) { - // HTML or regular text mail? - if (postRequestElement('html') == 'Y') { - // Chek for valid HTML tags - $checked = checkHtmlTags(postRequestElement('text'))); - - // Maybe invalid tags found? - if (empty($checked)) { - // Invalid HTML tags found - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('INVALID_TAGS') . '&id=' . $data['id']; - } // END - if - } else { - // Remove any HTML code - setPostRequestElement('text', str_replace(array('<', '>'), array('{OPEN_HTML}', '{CLOSE_HTML}'), postRequestElement('text'))); - } - } // END - if - - // Is mail type set? - if ((!isPostRequestElementSet('mail_type')) || (postRequestElement('mail_type') < 1)) { - // Not correctly set - $data['url'] = 'modules.php?module=login&what=order&code=' . getCode('NO_MAIL_TYPE'); + // Prepare data for filter chain + $filterData = array( + 'url' => postRequestElement('url'), + 'text' => postRequestElement('text'), + 'subject' => postRequestElement('subject'), + 'receiver' => bigintval(postRequestElement('receiver')), + 'mail_type' => bigintval(postRequestElement('mail_type')), + 'html' => postRequestElement('html'), + 'id' => bigintval($data['id']), + 'redirect' => '', + ); + + // Run the filter chain + $filterData = runFilterChain('pre_mail_order', $filterData); + + // Copy field redirect->url + $data['url'] = $filterData['redirect']; + + // Is there an error? + if (empty($data['url'])) { + // Copy all filter data -> POST + foreach ($filterData as $key => $value) { + // Set it + setPostRequestElement($key, $value); + } // END - foreach } // END - if } elseif (!isAdmin()) { // He has already sent a mail within a specific time @@ -234,7 +186,7 @@ LIMIT 1", sqlFreeResult($result); // Implode array into string for the sending pool - $receiver = implode($TEST, ';'); + $receivers = implode($TEST, ';'); // Count array for maximum sent $content['target_send'] = count($TEST); @@ -242,7 +194,7 @@ LIMIT 1", // Update receiver list sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `receive_mails`=`receive_mails`-1 WHERE `userid` IN (%s) LIMIT %s", array( - convertReceivers($receiver), + convertReceivers($receivers), bigintval($content['target_send']) ), __FILE__, __LINE__); @@ -268,7 +220,7 @@ LIMIT 1", 'sender' => getMemberId(), 'subject' => postRequestElement('subject'), 'text' => postRequestElement('text'), - 'receivers' => $receiver + 'receivers' => $receivers, 'payment_id' => bigintval(postRequestElement('mail_type')), 'data_type' => 'TEMP', 'timestamp' => 'UNIX_TIMESTAMP()', @@ -291,7 +243,7 @@ LIMIT 1", $data = array( 'subject' => postRequestElement('subject'), 'text' => postRequestElement('text'), - 'receivers' => $receiver + 'receivers' => $receivers, 'payment_id' => bigintval(postRequestElement('mail_type')), 'timestamp' => 'UNIX_TIMESTAMP()', 'url' => postRequestElement('url'), @@ -604,7 +556,7 @@ LIMIT 1", } } else { // No points left - displayMessage('{--MEMBER_ORDER_NO_POINTS--}'); + displayMessage('{--MEMBER_ORDER_NO_POINTS--}'); } } else { // No cateogries are defined yet diff --git a/inc/modules/member/what-refback.php b/inc/modules/member/what-refback.php index f9884a0c99..ff2333a229 100644 --- a/inc/modules/member/what-refback.php +++ b/inc/modules/member/what-refback.php @@ -124,8 +124,7 @@ if (!ifSqlHasZeroNums($result)) { } // END - if // Add/"translate" more content - $refRow['click_rate'] = translateComma($refRow['click_rate'], TRUE, 1); - $refRow['joined'] = generateDateTime($refRow['joined'], '3'); + $refRow['joined'] = generateDateTime($refRow['joined'], '3'); // Load row template if ($deleted === TRUE) { diff --git a/inc/modules/member/what-reflist.php b/inc/modules/member/what-reflist.php index 456c45fb0b..7be8a951d3 100644 --- a/inc/modules/member/what-reflist.php +++ b/inc/modules/member/what-reflist.php @@ -68,9 +68,6 @@ if (!ifSqlHasZeroNums($result)) { // Check for users ref in this level foreach (getUserReferralPoints(getMemberId(), $content['level']) as $refRow) { - // Add/"translate" more content - $refRow['click_rate'] = translateComma($refRow['click_rate'], TRUE, 1); - // Load row template $rows .= loadTemplate('member_list_referral_row', TRUE, $refRow); diff --git a/inc/modules/member/what-stats.php b/inc/modules/member/what-stats.php index 0d7043d169..12390580ee 100644 --- a/inc/modules/member/what-stats.php +++ b/inc/modules/member/what-stats.php @@ -118,12 +118,7 @@ if (!ifSqlHasZeroNums($result)) { $content['timestamp_sent'] = generateDateTime($content['timestamp_send'], '2'); // Click rate - $content['click_rate'] = '0'; - - // Better protection against 'divison-by-zero' - if ($content['max_rec'] > 0) { - $content['click_rate'] = ($content['clicks'] / $content['max_rec'] * 100); - } // END - if + $content['click_rate'] = calculatePercentageRate($content['clicks'], $content['max_rec']); // Load row template and switch colors $OUT .= loadTemplate('member_stats_row', TRUE, $content); diff --git a/inc/modules/member/what-transaction_fees.php b/inc/modules/member/what-transaction_fees.php new file mode 100644 index 0000000000..aa410fcdc6 --- /dev/null +++ b/inc/modules/member/what-transaction_fees.php @@ -0,0 +1,235 @@ + generateDateTime(time(), '3'), + 'next_year' => generateDateTime(mktime(0, 0, 0, 1, 1, (getCurrentYear() + 1)), '3'), + 'transaction_holding_fee' => '0.00000' +); + +// Get user's open transaction fees +$result = sqlQueryEscaped("SELECT + COUNT(`transaction_fee_receiver`) AS `transaction_receiver_count`, + SUM(`transaction_fee_receiver`) AS `transaction_receiver_fee` +FROM + `" . $GLOBALS['db_table']['translog'] . "` +WHERE + `transaction_receiver`=%s AND + `transaction_fee_collected`='N' AND + `transaction_confirmed`='N' AND + `transaction_captcha_failed`='N' +LIMIT 1", + array( + getCurrentUserId() + ), __FILE__, __LINE__ +); + +// Load entry +$data = array_merge($data, sqlFetchArray($result)); + +// Free result +sqlFreeResult($result); + +// Get user's open transaction fees +$result = sqlQueryEscaped("SELECT + COUNT(`transaction_fee_sender`) AS `transaction_sender_count`, + SUM(`transaction_fee_sender`) AS `transaction_sender_fee` +FROM + `" . $GLOBALS['db_table']['translog'] . "` +WHERE + `transaction_sender`=%s AND + `transaction_fee_collected`='N' AND + `transaction_confirmed`='N' AND + `transaction_captcha_failed`='N' +LIMIT 1", + array( + getCurrentUserId() + ), __FILE__, __LINE__ +); + +// Load entry +$data = array_merge($data, sqlFetchArray($result)); + +// Free result +sqlFreeResult($result); + +// Get user's saved transaction fees +$result = sqlQueryEscaped("SELECT + COUNT(`transaction_fee_receiver`) AS `transaction_receiver_saved_count`, + SUM(`transaction_fee_receiver`) AS `transaction_receiver_saved_fee` +FROM + `" . $GLOBALS['db_table']['translog'] . "` +WHERE + `transaction_receiver`=%s AND + `transaction_fee_collected`='N' AND + ( + `transaction_confirmed`='Y' OR + `transaction_captcha_failed`='Y' + ) +LIMIT 1", + array( + getCurrentUserId() + ), __FILE__, __LINE__ +); + +// Load entry +$data = array_merge($data, sqlFetchArray($result)); + +// Free result +sqlFreeResult($result); + +// Get user's saved transaction fees +$result = sqlQueryEscaped("SELECT + COUNT(`transaction_fee_sender`) AS `transaction_sender_saved_count`, + SUM(`transaction_fee_sender`) AS `transaction_sender_saved_fee` +FROM + `" . $GLOBALS['db_table']['translog'] . "` +WHERE + `transaction_sender`=%s AND + `transaction_fee_collected`='N' AND + ( + `transaction_confirmed`='Y' OR + `transaction_captcha_failed`='Y' + ) +LIMIT 1", + array( + getCurrentUserId() + ), __FILE__, __LINE__ +); + +// Load entry +$data = array_merge($data, sqlFetchArray($result)); + +// Free result +sqlFreeResult($result); + +// Get total collected fees +$result = sqlQuery("SELECT + SUM(`transaction_fee_receiver` + `transaction_fee_sender`) AS `total_fee` +FROM + `" . $GLOBALS['db_table']['translog'] . "` +WHERE + `transaction_confirmed`='N' AND + `transaction_captcha_failed`='N' +LIMIT 1", __FILE__, __LINE__); + +// Load total sum +list($data['total_fee']) = sqlFetchRow($result); + +// Free result +sqlFreeResult($result); + +// Get total confirmed +$result = sqlQuery("SELECT + SUM(`transaction_count`) AS `total_transaction_count` +FROM + `" . $GLOBALS['db_table']['user'] . "` +WHERE + `locked`='N' +LIMIT 1", __FILE__, __LINE__); + +// Load total amount +list($data['total_transaction_sum']) = sqlFetchRow($result); + +// Free result +sqlFreeResult($result); + +// Add user's count +$data['transaction_count_sum'] = getMemberData('transaction_count'); + +// Is the user's own count > 0? (This fixes a division by zero) +if ($data['total_transaction_sum'] > 0) { + // Calulcate how much the user would get if today is 01-01 (new year) + $data['transaction_holding_fee'] = $data['total_fee'] / $data['total_transaction_sum'] * $data['transaction_count_sum']; +} // END - if + +// "Translate" all fields +foreach ($data as $key => $value) { + // What suffix has $key? + if (substr($key, -6, 6) == '_count') { + // Count + $data[$key] = translateComma($value, TRUE); + } elseif ((substr($key, -4, 4) == '_fee') || (substr($key, -4, 4) == '_sum')) { + // Fees/sums + $data[$key] = translateComma($value); + } +} // END - foreach + +// Get all related config entries +// @TODO Make this working +$result = sqlGetResultFromLikeColumnsType('config', 'transaction_count_%%', 'decimal(3,1)'); + +// Load all fields +$data['config_rows'] = ''; $SW = 1; +while ($row = sqlFetchArray($result)) { + // Prepare content + $content = array( + 'field' => translateField('data', $row['Field']), + 'value' => translateComma(getConfig($row['Field'])), + 'sw' => $SW, + ); + + // Load row template + switch color + $data['config_rows'] .= loadTemplate('member_transaction_fees_config_row', TRUE, $content); + $SW = 3 - $SW; +} // END - while + +// Free result +sqlFreeResult($result); + +// Load template +loadTemplate('member_transaction_fees', FALSE, $data); + +// [EOF] +?> diff --git a/inc/modules/member/what-transactions.php b/inc/modules/member/what-transactions.php new file mode 100644 index 0000000000..64e0cdb377 --- /dev/null +++ b/inc/modules/member/what-transactions.php @@ -0,0 +1,176 @@ + 0) { + // Then load all + $row = ''; + while (list($id) = sqlFetchRow($result)) { + // Load "row" template + $row .= loadTemplate('member_transactions_row', TRUE, $id); + } // END - while + + // Load form template + $OUT .= loadTemplate('member_transactions_form', TRUE, $row); +} else { + // Display message + $OUT .= returnMessage('Es sind noch keine Transaktionen zum Bestätigen vorhanden. Neu zu bestätigende Transaktionen gibt es durch den "Stundenreset", der ungefähr zur vollen Stunde läuft.'); +} + +// Free result +sqlFreeResult($result); + +// Get summarizations +$result = sqlQuery("SELECT + SUM(`transaction_fee_sender`) AS `total_sender`, + SUM(`transaction_fee_receiver`) AS `total_receiver` +FROM + `{?_MYSQL_PREFIX?}_transaction_log` +WHERE + `transaction_fee_collected`='N' AND + `transaction_confirmed`='N' AND + `transaction_captcha_failed`='N' +LIMIT 1", __FILE__, __LINE__); + +// Get values +list($totalSenderN, $totalReceiverN) = sqlFetchRow($result); + +// Free result +sqlFreeResult($result); + +// Get summarizations +$result = sqlQuery("SELECT + SUM(`transaction_fee_sender`) AS `total_sender`, + SUM(`transaction_fee_receiver`) AS `total_receiver` +FROM + `{?_MYSQL_PREFIX?}_transaction_log` +WHERE + `transaction_fee_collected`='Y' +LIMIT 1", __FILE__, __LINE__); + +// Get values +list($totalSenderY, $totalReceiverY) = sqlFetchRow($result); + +// Free result +sqlFreeResult($result); + +// Get summarizations +$result = sqlQuery("SELECT + COUNT(`transaction_id`) AS `cnt`, + (SUM(`transaction_fee_sender`) + SUM(`transaction_fee_receiver`)) AS `total_confirmed` +FROM + `{?_MYSQL_PREFIX?}_transaction_log` +WHERE + `transaction_confirmed`='Y' +LIMIT 1", __FILE__, __LINE__); + +// Get values +list($confirmedCount, $totalConfirmed) = sqlFetchRow($result); + +// Free result +sqlFreeResult($result); + +// Prepare content +$content = array( + 'captcha_content' => $OUT, + 'transaction_confirmed' => translateComma(getUserData('transaction_confirmed'), TRUE), + 'total_sender_uncollected' => $totalSenderN, + 'total_receiver_uncollected' => $totalReceiverN, + 'total_sender_collected' => $totalSenderY, + 'total_receiver_collected' => $totalReceiverY, + 'total_confirmed_count' => translateComma($confirmedCount, TRUE), + 'total_confirmed' => $totalConfirmed, +); + +// Load main template +loadTemplate('member_transactions', FALSE, $content); + +// [EOF] +?> diff --git a/inc/modules/sponsor/account.php b/inc/modules/sponsor/account.php index 4edb063590..7fa142b3f1 100644 --- a/inc/modules/sponsor/account.php +++ b/inc/modules/sponsor/account.php @@ -87,7 +87,7 @@ if (sqlNumRows($result) == 1) { } elseif ((isPostRequestElementSet('password1')) && (!isPostRequestElementSet('password2'))) { // No password two entered $message = '{--SPONSOR_PASSWORD_TWO_EMPTY--}'; - } elseif ((isPostRequestElementSet('password1')) && (strlen(postRequestElement('password1')) < getPassLen())) { + } elseif ((isPostRequestElementSet('password1')) && (strlen(postRequestElement('password1')) < getMinPasswordLength())) { // Too short password $message = '{--SPONSOR_PASSWORD_TOO_SHORT--}'; } else { diff --git a/inc/modules/welcome.php b/inc/modules/welcome.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/modules/welcome.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/mysql-connect.php b/inc/mysql-connect.php index b79794bea0..5cd6a3cf45 100644 --- a/inc/mysql-connect.php +++ b/inc/mysql-connect.php @@ -104,7 +104,7 @@ initRepositoryData(); enableTemplateHtml(); // Are we in installation phase? -if ((!isInstalling()) && (!isInstallationPhase())) { +if ((!isInstaller()) && (isInstalled())) { // Load configuration file(s) here loadIncludeOnce('inc/load_config.php'); @@ -143,7 +143,7 @@ if ((!isInstalling()) && (!isInstallationPhase())) { // Include more foreach (array('databases', 'session', 'versions', 'install-functions', 'load_config', 'load_cache') as $inc) { - // Load the include + // Load include file loadIncludeOnce('inc/' . $inc . '.php'); } // END - foreach diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index bacb22cb67..f6f55610d4 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -580,7 +580,7 @@ function isAdmin () { } // END - if // No admin in installation phase! - if ((isInstallationPhase()) || (!isAdminRegistered())) { + if ((isInstaller()) || (!isAdminRegistered())) { $GLOBALS[__FUNCTION__] = FALSE; return FALSE; } // END - if @@ -1837,7 +1837,12 @@ LIMIT %s", function reduceRecipientReceivedMails ($column, $id, $count) { // Search for mail in database $result = sqlQueryEscaped("SELECT * FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `%s`=%s ORDER BY `userid` ASC LIMIT %s", - array($column, bigintval($id), $count), __FUNCTION__, __LINE__); + array( + $column, + bigintval($id), + $count + ), __FUNCTION__, __LINE__ + ); // Are there entries? if (!ifSqlHasZeroNums($result)) { @@ -1849,10 +1854,10 @@ function reduceRecipientReceivedMails ($column, $id, $count) { // We must now look if he has already confirmed this mail, so might sound double, but it may resolve problems // @TODO Rewrite this to a filter - if ((isset($data['stats_id'])) && ($data['stats_id'] > 0)) { + if ((isset($data['stats_id'])) && (isValidId($data['stats_id']))) { // User email $num = countSumTotalData($data['userid'], 'user_stats_data', 'id', 'userid', TRUE, sprintf(" AND `stats_type`='mailid' AND `stats_data`=%s", bigintval($data['stats_id']))); - } elseif ((isset($data['bonus_id'])) && ($data['bonus_id'] > 0)) { + } elseif ((isset($data['bonus_id'])) && (isValidId($data['bonus_id']))) { // Bonus mail $num = countSumTotalData($data['userid'], 'user_stats_data', 'id', 'userid', TRUE, sprintf(" AND `stats_type`='bonusid' AND `stats_data`=%s", bigintval($data['bonus_id']))); } @@ -1863,7 +1868,7 @@ function reduceRecipientReceivedMails ($column, $id, $count) { } // END - if } // END - while - if (count($userids) > 0) { + if (isFilledArray($userids)) { // Now update all user accounts sqlQueryEscaped("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `emails_received`=`emails_received`-1 WHERE `userid` IN (%s) LIMIT %s", array( @@ -1936,7 +1941,7 @@ function doGenericJoinedListEntries ($tableTemplate, $rowTemplate, $noEntryMessa if ((!is_array($tableName)) || (count($tableName) != 1)) { // No tableName specified reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate); - } elseif (count($columns) == 0) { + } elseif (!isFilledArray($columns)) { // No columns specified reportBug(__FUNCTION__, __LINE__, 'columns is not given. Please fix your XML,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate . ',tableName[0]=' . $tableName[0]); } @@ -1969,7 +1974,7 @@ function doGenericListEntries ($tableTemplate, $rowTemplate, $noEntryMessageId, if ((!is_array($tableName)) || (count($tableName) != 1)) { // No tableName specified reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate); - } elseif (count($columns) == 0) { + } elseif (!isFilledArray($columns)) { // No columns specified reportBug(__FUNCTION__, __LINE__, 'columns is not given. Please fix your XML,tableTemplate=' . $tableTemplate . ',rowTemplate=' . $rowTemplate . ',tableName[0]=' . $tableName[0]); } @@ -2025,7 +2030,7 @@ function doListEntries ($sql, $tableTemplate, $noEntryMessageId, $rowTemplate, $ } // END - while // Is at least one entry set in content? - if ((is_array($content)) && (count($content) > 0)) { + if (isFilledArray($content)) { // Then add generic 'rows' element $content['rows'] = $OUT; } else { @@ -2051,7 +2056,7 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions = if ((!is_array($tableName)) || (count($tableName) != 1)) { // No tableName specified reportBug(__FUNCTION__, __LINE__, 'tableName is not given. Please fix your XML,tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn); - } elseif (count($columns) == 0) { + } elseif (!isFilledArray($columns)) { // No columns specified reportBug(__FUNCTION__, __LINE__, 'columns is not given. Please fix your XML.'); } @@ -2064,7 +2069,7 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions = $GLOBALS['__XML_PARSE_RESULT'] = TRUE; // Is there "time columns"? - if (count($timeColumns) > 0) { + if (isFilledArray($timeColumns)) { // Then "walk" through all entries foreach ($timeColumns as $column) { // Convert all (possible) selections @@ -2088,9 +2093,18 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions = // 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']))); + // Get value back (no array supported) + $value = postRequestElement($columnName); + + // Is this an array and element 0 is set? + if ((is_array($value)) && (isset($value[0]))) { + // Then only take this + $value = $value[0]; + } // END - if + // Copy entry securely to the final arrays $sqlColumns[$key] = sqlEscapeString($columnName); - $sqlValues[$key] = sqlEscapeString(postRequestElement($columnName)); + $sqlValues[$key] = sqlEscapeString($value); // Search for it $search = key(search_array($columns, 'column', $columnName)); @@ -2154,7 +2168,7 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions = // Edit rows by given id numbers function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $timeColumns = array(), $editNow = array(FALSE), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array(), $subject = '') { // Is there "time columns"? - if (count($timeColumns) > 0) { + if (isFilledArray($timeColumns)) { // Then "walk" through all entries foreach ($timeColumns as $column) { // Convert all (possible) selections @@ -2274,7 +2288,7 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun } // END - foreach // Delete cache? - if ((count($cacheFiles) > 0) && (!empty($cacheFiles[0]))) { + if ((isFilledArray($cacheFiles)) && (!empty($cacheFiles[0]))) { // Delete cache file(s) foreach ($cacheFiles as $cache) { // Skip any empty entries @@ -2436,7 +2450,7 @@ function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filter } // END - foreach // Then list it - $OUT .= loadTemplate(sprintf("%s_%s_%s_row", + $OUT .= loadTemplate(sprintf('%s_%s_%s_row', $prefix, $listType, $tableName[0] @@ -2449,7 +2463,7 @@ function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filter } // END - foreach // Is there an entry in $content? - if ((is_array($content)) && (count($content) > 0)) { + if (isFilledArray($content)) { // Use generic 'rows' $content['rows'] = $OUT; } else { @@ -2459,7 +2473,7 @@ function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filter // Load master template loadTemplate( - sprintf("%s_%s_%s", + sprintf('%s_%s_%s', $prefix, $listType, $tableName[0] @@ -2480,7 +2494,7 @@ function addKeyValueSql ($key, $value) { ); } elseif ((is_double($value)) || (is_float($value)) || (is_int($value))) { // Is a number, so addd it directly - $sql .= sprintf(" `%s`=%s,", + $sql .= sprintf(' `%s`=%s,', sqlEscapeString($key), $value ); diff --git a/inc/patch-system.php b/inc/patch-system.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/patch-system.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/pool-update.php b/inc/pool-update.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/pool-update.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/pool/pool-user.php b/inc/pool/pool-user.php index f65a12cee4..25dbf25c55 100644 --- a/inc/pool/pool-user.php +++ b/inc/pool/pool-user.php @@ -306,7 +306,7 @@ if (!ifSqlHasZeroNums($result_main)) { } // END - while // Is there points to "pay back"? - if ((count($pointsBack) > 0) && (!empty($pointsBack[0]))) { + if ((isFilledArray($pointsBack)) && (!empty($pointsBack[0]))) { // Walk through all points foreach ($pointsBack as $userid => $PB) { // Add points only when we have points left to add and a valid user id diff --git a/inc/profile-updte.php b/inc/profile-updte.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/profile-updte.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/purge/purge-inact.php b/inc/purge/purge-inact.php index 45b4da7dc6..ad663cc4f0 100644 --- a/inc/purge/purge-inact.php +++ b/inc/purge/purge-inact.php @@ -54,7 +54,7 @@ if (isAutopurgeInactiveEnabled()) { // Init userid exclusion $excludeSql = ''; $excludedUserids = runFilterChain('config_userid_exclusion_sql', array()); - if (count($excludedUserids) > 0) { + if (isFilledArray($excludedUserids)) { // Exclude all $excludeSql = ' AND `userid` NOT IN (' . implode(', ', $excludedUserids) . ')'; } // END - if diff --git a/inc/referral-functions.php b/inc/referral-functions.php index 72e53b622a..59a1c66a62 100644 --- a/inc/referral-functions.php +++ b/inc/referral-functions.php @@ -200,7 +200,7 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU //* 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)) { + if ((isValidId($refid)) && ($refid != $userid) && ($sendNotify === TRUE)) { // Calculate the referral's points and percents $percentsReferral = getReferralLevelPercents($GLOBALS['ref_level'] + 1); @@ -279,14 +279,14 @@ function addPointsThroughReferralSystem ($subject, $userid, $points, $refid = NU //* 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 (($paymentMethod == 'REFERRAL') && (isValidId(getUserData('refid'))) && ($points > 0) && (getUserData('refid') != $userid)) { // Is _ref there? - if (substr($subject, -4, 4) == '_ref') { + if (ifSubjectHasReferralSuffix($subject)) { // Then remove it, no double _ref suffix! $subject = substr($subject, 0, -4); } // END - if // Then let's credit him here... //* 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'))); + $added = ($added && addPointsThroughReferralSystem(sprintf('%s_ref:%s', $subject, $GLOBALS['ref_level']), getUserData('refid'), $points, getFetchedUserData('userid', getUserData('refid'), 'refid'))); } // END - if } // END - if } // END - if @@ -423,13 +423,7 @@ ORDER BY // Fetch all entries while ($row = sqlFetchArray($result)) { // Init click rate with zero - $row['click_rate'] = '0'; - - // Is at least one mail received? - if ($row['emails_received'] > 0) { - // Calculate click rate - $row['click_rate'] = ($row['mails_confirmed'] / $row['emails_received'] * 100); - } // END - if + $row['click_rate'] = calculatePercentageRate($row['mails_confirmed'], $row['emails_received']); // Activity is 'active' by default because if ext-autopurge is not installed $row['activity'] = '{--MEMBER_ACTIVITY_ACTIVE--}'; @@ -482,8 +476,22 @@ function getPointsDataArrayFromSubject ($subject) { } // END - if // Now checkout the entry in database table - $result = sqlQueryEscaped("SELECT `id`, `subject`, `column_name`, `locked_mode`, `payment_method`, `notify_recipient` FROM `{?_MYSQL_PREFIX?}_points_data` WHERE `subject`='%s' LIMIT 1", - array($subject), __FUNCTION__, __LINE__); + $result = sqlQueryEscaped("SELECT + `id`, + `subject`, + `column_name`, + `locked_mode`, + `payment_method`, + `notify_recipient` +FROM + `{?_MYSQL_PREFIX?}_points_data` +WHERE + `subject`='%s' +LIMIT 1", + array( + $subject + ), __FUNCTION__, __LINE__ + ); // Is there an entry? if (sqlNumRows($result) == 1) { @@ -682,7 +690,7 @@ function flushReferralTableToDatabase ($userid) { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ',count()=' . count($GLOBALS['referral_refid'][$userid])); // If no entries are there, skip this whole step - if (count($GLOBALS['referral_refid'][$userid]) == 0) { + if (!isFilledArray($GLOBALS['referral_refid'][$userid])) { // No entries found //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'userid=' . $userid . ' - ABORTING...'); return; @@ -800,7 +808,7 @@ function setReferralId ($refid) { // Checks if 'refid' is valid function isReferralIdValid () { - return ((isset($GLOBALS['__refid'])) && (getReferralId() !== NULL) && (getReferralId() > 0)); + return ((isset($GLOBALS['__refid'])) && (isValidId(getReferralId()))); } // Getter for referral id diff --git a/inc/request-functions.php b/inc/request-functions.php index 14c5e43e9c..2903a4418c 100644 --- a/inc/request-functions.php +++ b/inc/request-functions.php @@ -137,7 +137,7 @@ function postRequestElement ($element, $subElement = NULL) { // Then use this $value = sqlEscapeString($value[$subElement]); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ',subElement=' . $subElement . ' - SUB!'); - } elseif (!is_array($value)) { + } elseif ((!is_array($value)) && (function_exists('sqlEscapeString'))) { // Escape it here $value = sqlEscapeString($value); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'element=' . $element . ' - REGULAR!'); diff --git a/inc/revision-functions.php b/inc/revision-functions.php index acfccbecc9..6e8da9535b 100644 --- a/inc/revision-functions.php +++ b/inc/revision-functions.php @@ -85,7 +85,7 @@ function getRepositoryData ($type = 'Revision') { //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'ret[' . $type . ']=' . $ret); } else { // FQFN of revision file - $FQFN = sprintf("%s/.revision", getCachePath()); + $FQFN = sprintf('%s/.revision', getCachePath()); // Check if 'check_revision_data' is setted (switch for manually rewrite the .revision-File) if ((isGetRequestElementSet('check_revision_data')) && (getRequestElement('check_revision_data') == 'yes')) { diff --git a/inc/security.php b/inc/security.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/security.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/sql-functions.php b/inc/sql-functions.php index eab241370e..362e5d53cd 100644 --- a/inc/sql-functions.php +++ b/inc/sql-functions.php @@ -69,7 +69,7 @@ function getSqls () { // Add an SQL to the list function addSql ($sql) { - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("sql=%s, count=%d", $sql, countSqls())); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf('sql=%s, count=%d', $sql, countSqls())); array_push($GLOBALS['sqls']['generic'], $sql); } @@ -106,7 +106,7 @@ function countSqls () { if (isSqlsInitialized()) { // Then count it $count = count($GLOBALS['sqls']); - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("count=%d", $count)); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf('count=%d', $count)); } // END - if // Return it @@ -233,9 +233,6 @@ function initSqlLink () { // "Unset" the link unsetSqlLinkUp(__FUNCTION__, __LINE__); - // Do this only if link is down - assert(!isSqlLinkUp()); - // Is the configuration data set? if ((!empty($GLOBALS['mysql']['host'])) && (!empty($GLOBALS['mysql']['login'])) && (!empty($GLOBALS['mysql']['dbase']))) { // Remove cache @@ -281,7 +278,7 @@ function importSqlDump ($path, $dumpName, $sqlPool) { // Is the file readable? if (!isFileReadable($FQFN)) { // Not found, which is bad - reportBug(__FUNCTION__, __LINE__, sprintf("SQL dump %s/%s.sql is not readable.", $path, $dumpName)); + reportBug(__FUNCTION__, __LINE__, sprintf('SQL dump %s/%s.sql is not readable.', $path, $dumpName)); } // END - if // Then read it @@ -327,7 +324,7 @@ function getSqlResultFromArray ($table, $columns, $idRow, $id, $file, $line) { // Is columns an array? if (!is_array($columns)) { // No array - reportBug(__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($file), $line @@ -430,7 +427,7 @@ function sqlQueryAlterTable ($sql, $file, $line, $enableCodes = TRUE) { } // END - foreach } elseif ((getTableType() == 'InnoDB') && (isInString('FULLTEXT', $sql))) { // Skip this query silently because InnoDB does not understand fulltext indexes - //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Skipped FULLTEXT: sql=%s,tableName=%s,hasZeroNums=%d,file=%s,line=%s", $sql, $tableName, intval((is_bool($result)) ? 0 : ifSqlTableColumnExists($columnName)), $file, $line)); + //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf('Skipped FULLTEXT: sql=%s,tableName=%s,hasZeroNums=%d,file=%s,line=%s', $sql, $tableName, intval((is_bool($result)) ? 0 : ifSqlTableColumnExists($columnName)), $file, $line)); } elseif ($isAlterIndex === TRUE) { // And column name as well without backticks $keyName = str_replace('`', '', $tableArray[5]); @@ -498,16 +495,15 @@ function getSqlLink () { } // Setter for link +// Do *not* add debug lines here. This will cause and endless loop function setSqlLink ($file, $line, $link) { - //* DEBUG: */ logDebugMessage($file . ':' . __FUNCTION__, $line . ':' . __LINE__, 'link[]=' . gettype($link) . ' - ENTERED!'); // Is this a resource or null? - if ((ifFatalErrorsDetected()) && (isInstallationPhase())) { + if ((ifFatalErrorsDetected()) && (isInstaller())) { // This may happen in installation phase - //* DEBUG: */ logDebugMessage($file . ':' . __FUNCTION__, $line . ':' . __LINE__, 'Some fatal errors detected in installation phase.'); return; } elseif ((!is_resource($link)) && (!is_null($link))) { // This should never happen! - reportBug($file . ':' . __FUNCTION__, $line . ':' . __LINE__, sprintf("Type of link is not resource or null, type=%s", gettype($link))); + reportBug($file . ':' . __FUNCTION__, $line . ':' . __LINE__, sprintf('Type of link is not resource or null, type=%s', gettype($link))); } // END - if // Set it @@ -515,7 +511,6 @@ function setSqlLink ($file, $line, $link) { // Re-init cache $GLOBALS['__is_sql_link_up'] = is_resource($link); - //* DEBUG: */ logDebugMessage($file . ':' . __FUNCTION__, $line . ':' . __LINE__, '__is_sql_link_up=' . intval($GLOBALS['__is_sql_link_up']) . ' - EXIT!'); } // Checks if the link is up @@ -523,7 +518,7 @@ function isSqlLinkUp () { // Is there cached this? if (!isset($GLOBALS['__is_sql_link_up'])) { // Something bad went wrong - reportBug(__FUNCTION__, __LINE__, 'Called before SQL_SET_LINK() was called!'); + reportBug(__FUNCTION__, __LINE__, 'Called before setSqlLink() was called!'); } // END - if // Return the result @@ -592,7 +587,7 @@ function ifSqlTableExists ($tableName) { // Is a link there? if (!is_resource($result)) { // Is installation phase? - if (isInstallationPhase()) { + if (isInstaller()) { // Then silently abort here //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'result[]=' . gettype($result) . ',isLinkUp=' . intval(isSqlLinkUp()) . ',tableName=' . $tableName . ' - Returning FALSE ...'); return FALSE; @@ -624,7 +619,7 @@ function ifSqlTableColumnExists ($tableName, $columnName, $forceFound = FALSE) { if (!ifSqlTableExists($tableName)) { // Then abort here //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Table ' . $tableName . ' does not exist, columnName=' . $columnName . ',forceFound=' . intval($forceFound)); - return (($forceFound === FALSE) && (isInstallationPhase())); + return (($forceFound === FALSE) && (isInstaller())); } // END - if // Get column information @@ -637,7 +632,7 @@ function ifSqlTableColumnExists ($tableName, $columnName, $forceFound = FALSE) { // Is a link there? if (!is_resource($result)) { // Is installation phase? - if (isInstallationPhase()) { + if (isInstaller()) { // Then silently abort here //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'result[]=' . gettype($result) . ',isLinkUp=' . intval(isSqlLinkUp()) . ',tableName=' . $tableName . ',columnName=' . $columnName . ' - Returning FALSE ...'); return $forceFound; @@ -670,7 +665,7 @@ function ifSqlTableIndexExist ($tableName, $keyName, $forceFound = FALSE) { if (!ifSqlTableExists($tableName)) { // Then abort here //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Table ' . $tableName . ' does not exist, keyName=' . $keyName . ',forceFound=' . intval($forceFound)); - return (($forceFound === FALSE) && (isInstallationPhase())); + return (($forceFound === FALSE) && (isInstaller())); } // END - if // Show indexes @@ -679,7 +674,7 @@ function ifSqlTableIndexExist ($tableName, $keyName, $forceFound = FALSE) { // Is a link there? if (!is_resource($result)) { // Is installation phase? - if (isInstallationPhase()) { + if (isInstaller()) { // Then silently abort here //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'result[]=' . gettype($result) . ',isLinkUp=' . intval(isSqlLinkUp()) . ',tableName=' . $tableName . ',keyName=' . $keyName . ' - Returning FALSE ...'); return $forceFound; @@ -757,5 +752,30 @@ function getArrayFromSupportedSqlEngines ($requestedEngine = 'ALL') { return $engines; } +// "Getter" for result from given table and field/type LIKEs +function sqlGetResultFromLikeColumnsType ($tableName, $field, $type) { + // The table should be there + assert(ifSqlTableExists($tableName)); + + // Default no field set + $fieldSql = ''; + if (!empty($field)) { + // Then use it + $fieldSql = "`Field` LIKE '" . $field . "' AND"; + } // END - if + + // Show them + return sqlQueryEscaped("SHOW COLUMNS FROM + `{?_MYSQL_PREFIX?}_%s` +WHERE + " . $fieldSql . " + `Type` LIKE '%s%%'", + array( + $tableName, + $type + ), __FUNCTION__, __LINE__ + ); +} + // [EOF] ?> diff --git a/inc/sql_error.php b/inc/sql_error.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/sql_error.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/stats-functions.php b/inc/stats-functions.php index db168776c5..a5ab7b12a1 100644 --- a/inc/stats-functions.php +++ b/inc/stats-functions.php @@ -158,11 +158,11 @@ function writeStatsTable () { if (!isSqlLinkUp()) return FALSE; // Empty the table first - sqlQueryEscaped("TRUNCATE `{?_MYSQL_PREFIX?}_stats_%s`", + sqlQueryEscaped('TRUNCATE `{?_MYSQL_PREFIX?}_stats_%s`', array(generateDateTime(time(), '6')), __FUNCTION__, __LINE__); // Begin the SQL command - $sql = sprintf("REPLACE INTO `{?_MYSQL_PREFIX?}_stats_%s` (`stats_entry`, `stats_value`) VALUES ", + $sql = sprintf('REPLACE INTO `{?_MYSQL_PREFIX?}_stats_%s` (`stats_entry`, `stats_value`) VALUES ', generateDateTime(time(), '6')); // Add all entries to the final query @@ -177,7 +177,7 @@ function writeStatsTable () { // Filter for flushing statistics function FILTER_FLUSH_STATS () { // Now do we have stats? - if ((isset($GLOBALS['stats'])) && (!isInstallationPhase()) && (ifInternalStatsEnabled())) { + if ((isset($GLOBALS['stats'])) && (!isInstaller()) && (ifInternalStatsEnabled())) { // Write statistics to temporary table writeStatsTable(); diff --git a/inc/stats_bonus.php b/inc/stats_bonus.php deleted file mode 100644 index f551ef47b7..0000000000 --- a/inc/stats_bonus.php +++ /dev/null @@ -1,3 +0,0 @@ - diff --git a/inc/stylesheet.php b/inc/stylesheet.php index 8aa0924e7d..baaee6da2c 100644 --- a/inc/stylesheet.php +++ b/inc/stylesheet.php @@ -47,7 +47,7 @@ $stylesList = array( ); // Add stylesheet for installation -if ((isInstallationPhase())) { +if ((isInstaller())) { array_push($stylesList, 'install.css'); } // END - if @@ -71,12 +71,12 @@ if ((isCssOutputMode()) || (getCssPhp() == 'DIRECT')) { $stylesList = merge_array($stylesList, getExtensionCssFiles()); // Generate base path - $basePath = sprintf("%stheme/%s/css/", getPath(), $currentTheme); + $basePath = getBasePathFromTheme($currentTheme); // Output inclusion lines foreach ($stylesList as $value) { // Only include found CSS files (to reduce 404 requests) - $FQFN = $basePath . $value; + $FQFN = $basePath . '/' . $value; // Do include only existing files and whose are not empty if ((isFileReadable($FQFN)) && (filesize($FQFN) > 0)) { @@ -90,7 +90,7 @@ if ((isCssOutputMode()) || (getCssPhp() == 'DIRECT')) { break; default: // Invalid mode! - reportBug(__FILE__, __LINE__, sprintf("Invalid css_php value %s detected.", getCssPhp())); + reportBug(__FILE__, __LINE__, sprintf('Invalid css_php value %s detected.', getCssPhp())); break; } // END - switch } // END - if @@ -100,13 +100,13 @@ if ((isCssOutputMode()) || (getCssPhp() == 'DIRECT')) { $stylesList = merge_array($stylesList, getExtensionCssFiles()); // Generate base path - $basePath = sprintf("%stheme/%s/css/", getPath(), getCurrentTheme()); + $basePath = getBasePathFromTheme(getCurrentTheme()); // Output inclusion lines $OUT = ''; foreach ($stylesList as $value) { // Only include found CSS files (to reduce 404 requests) - $FQFN = $basePath . $value; + $FQFN = $basePath . '/' . $value; // Do include only existing files and whose are not empty if ((isFileReadable($FQFN)) && (filesize($FQFN) > 0)) { @@ -120,7 +120,7 @@ if ((isCssOutputMode()) || (getCssPhp() == 'DIRECT')) { } else { // Now we load all CSS files from css.php! $OUT = ''.htmlentities($GLOBALS['template_eval']['email'][$template]).''); + //* DEBUG: */ die('
      '.print_r($content, TRUE).'
      '.htmlentities($GLOBALS['template_eval']['email'][$template]).'
      '); eval($GLOBALS['template_eval']['email'][$template]); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'template=' . $template . ' - AFTER EVAL'); } // END - if @@ -677,17 +678,20 @@ function compileRawCode ($code, $full = TRUE, $compileCode = TRUE) { //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Second regex gave ' . count($matches[0]) . ' matches.'); // Are some matches found? - if ((count($matches) > 0) && (count($matches[0]) > 0)) { + if ((isFilledArray($matches)) && (isFilledArray($matches[0]))) { // Replace all matches $matchesFound = array(); foreach ($matches[0] as $key => $match) { // Fuzzy look has failed by default $fuzzyFound = FALSE; + // "Cache" match length + $matchLength = strlen($match); + // Fuzzy look on match if already found foreach ($matchesFound as $found => $set) { // Get test part - $test = substr($found, 0, strlen($match)); + $test = substr($found, 0, $matchLength); // Does this entry exist? //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'found=' . $found . ',match=' . $match . ',set=' . $set); @@ -734,7 +738,7 @@ function compileRawCode ($code, $full = TRUE, $compileCode = TRUE) { preg_match_all('/\$([a-z_A-Z\[\]]){0,}/', $code, $matches); // Are some matches found? - if ((count($matches) > 0) && (count($matches[0]) > 0)) { + if ((isFilledArray($matches)) && (isFilledArray($matches[0]))) { // Scan all matches for not $content foreach ($matches[0] as $match) { // Trim match @@ -855,20 +859,20 @@ function addSelectionBox ($type, $default, $prefix = '', $id = NULL, $class = 'f case 'ho': // Hours for ($idx = 0; $idx <= 23; $idx++) { - if (strlen($idx) == 1) $idx = 0 . $idx; - $OUT .= '