From e937b6540b932d537f72e827de76dd5be4aefe48 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Mon, 8 Oct 2012 16:54:26 +0000 Subject: [PATCH] Extension ext-user for sub id tracking continued: - Generic support for sending mails on 'add' "build list" target added - Generic "delete build list" support - Support for editing and deleting sub ids basicly finished - Other small rewrites - TODOs.txt updated --- .gitattributes | 10 ++ DOCS/TODOs.txt | 29 ++--- inc/email-functions.php | 45 ++++++++ inc/filter-functions.php | 3 +- inc/filters.php | 24 +--- inc/functions.php | 45 ++++++++ inc/language/de.php | 4 + inc/language/user_de.php | 24 +++- inc/libs/user_functions.php | 2 +- inc/modules/admin/admin-inc.php | 82 +------------- inc/mysql-manager.php | 90 +++++++++++++-- inc/request-functions.php | 2 +- .../de/emails/admin/admin_add_user_subids.tpl | 20 ++++ .../emails/admin/admin_delete_user_subids.tpl | 21 ++++ .../emails/admin/admin_edit_user_subids.tpl | 21 ++++ .../emails/member/member_add_user_subids.tpl | 15 +++ .../member/member_delete_user_subids.tpl | 17 +++ .../emails/member/member_edit_user_subids.tpl | 17 +++ .../html/member/member_delete_user_subids.tpl | 22 ++++ .../member/member_delete_user_subids_row.tpl | 11 ++ .../html/member/member_edit_user_subids.tpl | 22 ++++ .../member/member_edit_user_subids_row.tpl | 11 ++ .../html/member/member_list_user_subids.tpl | 4 +- templates/xml/member/member_add_do_subid.xml | 69 +----------- .../xml/member/member_add_do_user_subid.xml | 68 +++++++++++ .../member/member_delete_do_user_subid.xml | 82 ++++++++++++++ .../member/member_delete_show_user_subid.xml | 106 ++++++++++++++++++ .../xml/member/member_edit_do_user_subid.xml | 87 ++++++++++++++ 28 files changed, 759 insertions(+), 194 deletions(-) create mode 100644 templates/de/emails/admin/admin_add_user_subids.tpl create mode 100644 templates/de/emails/admin/admin_delete_user_subids.tpl create mode 100644 templates/de/emails/admin/admin_edit_user_subids.tpl create mode 100644 templates/de/emails/member/member_add_user_subids.tpl create mode 100644 templates/de/emails/member/member_delete_user_subids.tpl create mode 100644 templates/de/emails/member/member_edit_user_subids.tpl create mode 100644 templates/de/html/member/member_delete_user_subids.tpl create mode 100644 templates/de/html/member/member_delete_user_subids_row.tpl create mode 100644 templates/de/html/member/member_edit_user_subids.tpl create mode 100644 templates/de/html/member/member_edit_user_subids_row.tpl create mode 100644 templates/xml/member/member_add_do_user_subid.xml create mode 100644 templates/xml/member/member_delete_do_user_subid.xml create mode 100644 templates/xml/member/member_delete_show_user_subid.xml create mode 100644 templates/xml/member/member_edit_do_user_subid.xml diff --git a/.gitattributes b/.gitattributes index 2d0949cf35..483585893d 100644 --- a/.gitattributes +++ b/.gitattributes @@ -874,6 +874,7 @@ templates/de/emails/.htaccess svneol=native#text/plain templates/de/emails/add-points.tpl svneol=native#text/plain templates/de/emails/admin-del_links.tpl svneol=native#text/plain templates/de/emails/admin/.htaccess svneol=native#text/plain +templates/de/emails/admin/admin_add_user_subids.tpl svneol=native#text/plain templates/de/emails/admin/admin_admin_add_all_direct.tpl svneol=native#text/plain templates/de/emails/admin/admin_admin_add_all_ref_referral.tpl svneol=native#text/plain templates/de/emails/admin/admin_admin_add_all_referral.tpl svneol=native#text/plain @@ -896,12 +897,14 @@ templates/de/emails/admin/admin_coupon_purge.tpl svneol=native#text/plain templates/de/emails/admin/admin_coupon_purge_row.tpl svneol=native#text/plain templates/de/emails/admin/admin_del_surfbar_urls.tpl svneol=native#text/plain templates/de/emails/admin/admin_delete_surfbar_urls.tpl svneol=native#text/plain +templates/de/emails/admin/admin_delete_user_subids.tpl svneol=native#text/plain templates/de/emails/admin/admin_earning_added.tpl svneol=native#text/plain templates/de/emails/admin/admin_earning_updated.tpl svneol=native#text/plain templates/de/emails/admin/admin_edit_forced_ads.tpl svneol=native#text/plain templates/de/emails/admin/admin_edit_forced_costs.tpl svneol=native#text/plain templates/de/emails/admin/admin_edit_points_data.tpl svneol=native#text/plain templates/de/emails/admin/admin_edit_surfbar_urls.tpl svneol=native#text/plain +templates/de/emails/admin/admin_edit_user_subids.tpl svneol=native#text/plain templates/de/emails/admin/admin_extension_deactivated.tpl svneol=native#text/plain templates/de/emails/admin/admin_forced_campaign_pending_active.tpl svneol=native#text/plain templates/de/emails/admin/admin_holiday_deactivated.tpl svneol=native#text/plain @@ -1009,6 +1012,7 @@ templates/de/emails/lock-user.tpl svneol=native#text/plain templates/de/emails/lock_sponsor.tpl svneol=native#text/plain templates/de/emails/member/.htaccess svneol=native#text/plain templates/de/emails/member/member_add_points.tpl svneol=native#text/plain +templates/de/emails/member/member_add_user_subids.tpl svneol=native#text/plain templates/de/emails/member/member_admin_add_all_direct.tpl svneol=native#text/plain templates/de/emails/member/member_admin_add_all_ref_referral.tpl svneol=native#text/plain templates/de/emails/member/member_admin_add_all_referral.tpl svneol=native#text/plain @@ -1032,10 +1036,12 @@ templates/de/emails/member/member_coupon_code.tpl svneol=native#text/plain templates/de/emails/member/member_del_surfbar_urls.tpl svneol=native#text/plain templates/de/emails/member/member_delete_links.tpl svneol=native#text/plain templates/de/emails/member/member_delete_surfbar_urls.tpl svneol=native#text/plain +templates/de/emails/member/member_delete_user_subids.tpl svneol=native#text/plain templates/de/emails/member/member_doubler.tpl svneol=native#text/plain templates/de/emails/member/member_earning_added.tpl svneol=native#text/plain templates/de/emails/member/member_earning_updated.tpl svneol=native#text/plain templates/de/emails/member/member_edit_surfbar_urls.tpl svneol=native#text/plain +templates/de/emails/member/member_edit_user_subids.tpl svneol=native#text/plain templates/de/emails/member/member_forced_campaign_pending_active.tpl svneol=native#text/plain templates/de/emails/member/member_holiday_activated.tpl svneol=native#text/plain templates/de/emails/member/member_holiday_removed.tpl svneol=native#text/plain @@ -1922,6 +1928,8 @@ templates/de/html/member/member_cats_footer.tpl svneol=native#text/plain templates/de/html/member/member_cats_header.tpl svneol=native#text/plain templates/de/html/member/member_cats_row.tpl svneol=native#text/plain templates/de/html/member/member_content_right.tpl svneol=native#text/plain +templates/de/html/member/member_delete_user_subids.tpl svneol=native#text/plain +templates/de/html/member/member_delete_user_subids_row.tpl svneol=native#text/plain templates/de/html/member/member_doubler.tpl svneol=native#text/plain templates/de/html/member/member_doubler_list.tpl svneol=native#text/plain templates/de/html/member/member_doubler_list_rows.tpl svneol=native#text/plain @@ -1931,6 +1939,8 @@ templates/de/html/member/member_earning_data_popup.tpl svneol=native#text/plain templates/de/html/member/member_earning_popup_form_row.tpl svneol=native#text/plain templates/de/html/member/member_earning_popup_row.tpl svneol=native#text/plain templates/de/html/member/member_edit_refback.tpl svneol=native#text/plain +templates/de/html/member/member_edit_user_subids.tpl svneol=native#text/plain +templates/de/html/member/member_edit_user_subids_row.tpl svneol=native#text/plain templates/de/html/member/member_footer.tpl svneol=native#text/plain templates/de/html/member/member_goto_top.tpl svneol=native#text/plain templates/de/html/member/member_header.tpl svneol=native#text/plain diff --git a/DOCS/TODOs.txt b/DOCS/TODOs.txt index ed9e13227c..c48e27b405 100644 --- a/DOCS/TODOs.txt +++ b/DOCS/TODOs.txt @@ -9,6 +9,7 @@ ./inc/daily/daily_beg.php:52:// @TODO This should be converted in a daily beg rallye ./inc/daily/daily_birthday.php:99: // @TODO 4 is hard-coded here, should we move it out in config? ./inc/email-functions.php:109: * @TODO Rewrite this to an extension 'smtp' +./inc/email-functions.php:227:// @TODO $rawUserId is currently unused ./inc/expression-functions.php:170:// @TODO FILTER_COMPILE_CONFIG does not handle call-back functions so we handle it here again ./inc/expression-functions.php:46: // @TODO is escapeQuotes() enougth for strings with single/double quotes? ./inc/extensions/ext-html_mail.php:136: // @TODO Move these arrays into config @@ -43,24 +44,24 @@ ./inc/extensions/ext-rallye.php:94: // @TODO Fix config_rallye_prices to list_rallye_prices ./inc/extensions/ext-yoomedia.php:121: // @TODO Can this be moved into a database table? ./inc/extensions/ext-yoomedia.php:54:// @TODO Only deprecated when 'ext-network' is ready! setExtensionDeprecated('Y'); -./inc/extensions-functions.php:2040:// @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable' +./inc/extensions-functions.php:2096:// @TODO This should be rewrittten to allow, more development states, e.g. 'planing','alpha','beta','beta2','stable' ./inc/extensions-functions.php:424: // @TODO This redirect is still needed to register sql_patches! Please try to avoid it ./inc/extensions-functions.php:440:// @TODO Change from ext_id to ext_name (not just even the variable! ;-) ) ./inc/extensions-functions.php:580: // @TODO Extension is loaded, what next? ./inc/filter/bonus_filter.php:56: // @TODO This query isn't right, it will only update if the user was for a longer time away! ./inc/filter/cache_filter.php:94: // @TODO This should be rewritten not to load the cache file for just checking if it is there for save removal. ./inc/filter/forced_filter.php:73: // @TODO This part is unfinished -./inc/functions.php:1082: // @TODO Move this SQL code into a function, let's say 'getTimestampFromPoolId($id) ? -./inc/functions.php:1168: // @TODO Are these convertions still required? -./inc/functions.php:1189:// @TODO Rewrite this function to use readFromFile() and writeToFile() -./inc/functions.php:1712: // @TODO Find a way to cache this -./inc/functions.php:1817: // @TODO This is still very static, rewrite it somehow -./inc/functions.php:2021: // @TODO Rename column data_type to e.g. mail_status +./inc/functions.php:1090: // @TODO Move this SQL code into a function, let's say 'getTimestampFromPoolId($id) ? +./inc/functions.php:1176: // @TODO Are these convertions still required? +./inc/functions.php:1197:// @TODO Rewrite this function to use readFromFile() and writeToFile() +./inc/functions.php:1732: // @TODO Find a way to cache this +./inc/functions.php:1837: // @TODO This is still very static, rewrite it somehow +./inc/functions.php:2041: // @TODO Rename column data_type to e.g. mail_status ./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:91: // @TODO DEACTIVATED: changeDataInLocalConfigurationFile('OUTPUT-MODE', "setConfigEntry('OUTPUT_MODE', '", "');", postRequestElement('omode'), 0); -./inc/language/de.php:1103: // @TODO Rewrite these two constants -./inc/language/de.php:1119: // @TODO Rewrite these three constants +./inc/language/de.php:1112: // @TODO Rewrite these two constants +./inc/language/de.php:1128: // @TODO Rewrite these three constants ./inc/language/de.php:749:// @TODO Are these constants longer used? ./inc/language-functions.php:255: // @TODO These are all valid languages, again hard-coded ./inc/language-functions.php:44:// @TODO Rewrite all language constants to this function. @@ -96,7 +97,6 @@ ./inc/mails/doubler_mails.php:53:// @TODO Can this be rewritten to a filter? ./inc/module-functions.php:273: // @TODO Nothing helped??? ./inc/module-functions.php:314: // @TODO Rewrite this to a filter -./inc/modules/admin/admin-inc.php:1521: // @TODO If we can rewrite the EL sub-system to support more than one parameter, this call_user_func_array() can be avoided ./inc/modules/admin/admin-inc.php:160: // @TODO This and the next getCurrentAdminId() call might be moved into the templates? ./inc/modules/admin/admin-inc.php:233: // @TODO This can be rewritten into a filter ./inc/modules/admin/admin-inc.php:509:// @TODO Try to rewrite this to adminAddMenuSelectionBox() @@ -156,7 +156,7 @@ ./inc/modules/member/what-beg.php:54:// @TODO Can't this be moved into EL? ./inc/modules/member/what-beg.php:63:// @TODO No more needed? define('__BEG_USERID_TIMEOUT', createFancyTime(getBegUseridTimeout())); ./inc/modules/member/what-logout.php:17: * @TODO Rewrite the code to a filter * -./inc/modules/member/what-order.php:482: // @TODO Rewrite this to a filter +./inc/modules/member/what-order.php:471: // @TODO Rewrite this to a filter ./inc/modules/member/what-order.php:84: // @TODO Rewrite this to SQL_FETCHARRAY() ./inc/modules/member/what-payout.php:194: // @TODO Rewrite this to a filter ./inc/modules/member/what-points.php:61:// @TODO Should we rewrite this to a filter? @@ -169,6 +169,8 @@ ./inc/mysql-manager.php:1437: // @TODO Rewrite these lines to a filter ./inc/mysql-manager.php:1461: // @TODO Rewrite this to a filter ./inc/mysql-manager.php:1717: // @TODO Rewrite this to a filter +./inc/mysql-manager.php:1916: // @TODO If we can rewrite the EL sub-system to support more than one parameter, this call_user_func_array() can be avoided +./inc/mysql-manager.php:2029: // @TODO Used generic 'userid' here ./inc/mysql-manager.php:398: // @TODO Try to rewrite this to one or more functions ./inc/mysql-manager.php:44:// @TODO Can we cache this? ./inc/purge/purge-inact.php:55: // @TODO Rewrite these if() blocks to a filter @@ -183,9 +185,9 @@ ./inc/template-functions.php:285: // @TODO Remove these sanity checks if all is fine ./inc/template-functions.php:599:// @TODO $simple/$constants are deprecated ./inc/template-functions.php:697: // @TODO $userid is deprecated and should be removed from loadEmailTemplate() and replaced with $content[userid] in all templates -./inc/wrapper-functions.php:3004: // @TODO Find a way to not use direct module comparison +./inc/wrapper-functions.php:3010: // @TODO Find a way to not use direct module comparison ./inc/wrapper-functions.php:494:// @TODO Do some more sanity check here -./inc/xml-functions.php:208: // @TODO Handle characters +./inc/xml-functions.php:209: // @TODO Handle characters ./mailid.php:102: // @TODO Rewrite this to a filter ./mailid.php:145: // @TODO Rewrite this to a filter ./mailid_top.php:112: // @TODO Rewrite this to a filter/function @@ -509,6 +511,7 @@ ./templates/de/html/why_reg.tpl:1: ./templates/xml/admin/admin_del_do_surfbar_urls.xml:1: ./templates/xml/admin/admin_del_show_surfbar_urls.xml:1: +./templates/xml/member/member_add_do_subid.xml:1: ### ### 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/inc/email-functions.php b/inc/email-functions.php index ced06aa037..bb4f0e55eb 100644 --- a/inc/email-functions.php +++ b/inc/email-functions.php @@ -223,5 +223,50 @@ function doTemplateAddExtraHtmlMailHeaders ($templateName, $clear, $extraHeaders return $extraHeaders; } +// Send mails for del/edit/lock build modes +// @TODO $rawUserId is currently unused +function sendGenericBuildMails ($mode, $tableName, $content, $id, $subjectPart = '', $userIdColumn = array('userid'), $rawUserId = array('userid')) { + // $tableName must be an array + if ((!is_array($tableName)) || (count($tableName) != 1)) { + // $tableName is no array + reportBug(__FUNCTION__, __LINE__, 'tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn); + } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) { + // $tableName is no array + reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn); + } // END - if + + // Default subject is the subject part + $subject = $subjectPart; + + // Is the subject part not set? + if (empty($subjectPart)) { + // Then use it from the mode + $subject = strtoupper($mode); + } // END - if + + // Is the raw userid set? + if (postRequestElement($userIdColumn[0], $id) > 0) { + // Load email template + if (!empty($subjectPart)) { + $mail = loadEmailTemplate('member_' . $mode . '_' . strtolower($subjectPart) . '_' . $tableName[0], $content); + } else { + $mail = loadEmailTemplate('member_' . $mode . '_' . $tableName[0], $content); + } + + // Send email out + sendEmail(postRequestElement($userIdColumn[0], $id), strtoupper('{--MEMBER_' . $subject . '_' . $tableName[0] . '_SUBJECT--}'), $mail); + } // END - if + + // Generate subject + $subject = strtoupper('{--ADMIN_' . $subject . '_' . $tableName[0] . '_SUBJECT--}'); + + // Send admin notification out + if (!empty($subjectPart)) { + sendAdminNotification($subject, 'admin_' . $mode . '_' . strtolower($subjectPart) . '_' . $tableName[0], $content, postRequestElement($userIdColumn[0], $id)); + } else { + sendAdminNotification($subject, 'admin_' . $mode . '_' . $tableName[0], $content, postRequestElement($userIdColumn[0], $id)); + } +} + // [EOF] ?> diff --git a/inc/filter-functions.php b/inc/filter-functions.php index e72170c6e0..2048ba28ae 100644 --- a/inc/filter-functions.php +++ b/inc/filter-functions.php @@ -197,8 +197,7 @@ ORDER BY registerFilter(__FUNCTION__, __LINE__, 'generate_admin_mail_links', 'GENERATE_POOL_MAIL_LINKS'); // Build mails - registerFilter(__FUNCTION__, __LINE__, 'send_build_mail', 'SEND_ADMIN_BUILD_MAIL'); - registerFilter(__FUNCTION__, __LINE__, 'send_build_mail', 'SEND_MEMBER_BUILD_MAIL'); + registerFilter(__FUNCTION__, __LINE__, 'send_build_mail', 'SEND_BUILD_MAIL'); } // "Registers" a new filter function diff --git a/inc/filters.php b/inc/filters.php index f5b846c5b9..fca3cf439a 100644 --- a/inc/filters.php +++ b/inc/filters.php @@ -1234,24 +1234,12 @@ function FILTER_INIT_SESSION ($filterData) { } // Filter for sending "build mail" to admin -function FILTER_SEND_ADMIN_BUILD_MAIL ($filterData) { - // Is the module 'admin'? - if (getModule() == 'admin') { - // Okay, then call the proper function - call_user_func_array('sendAdminBuildMails', $filterData); - } // END - if - - // Return data - return $filterData; -} - -// Filter for sending "build mail" to member -function FILTER_SEND_MEMBER_BUILD_MAIL ($filterData) { - // Is the module 'login'? - if (getModule() == 'login') { - // Okay, then call the proper function - call_user_func_array('sendMemberBuildMails', $filterData); - } // END - if +function FILTER_SEND_BUILD_MAIL ($filterData) { + // Was one line updated? + //if ($filterData['affected'] == 1) { + // Then call the proper function + call_user_func_array('sendGenericBuildMails', $filterData); + //} // END - if // Return data return $filterData; diff --git a/inc/functions.php b/inc/functions.php index 47e600cbe8..806bf7da52 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -2325,6 +2325,9 @@ function memberEditEntriesConfirm ($tableName, $columns = array(), $filterFuncti // Shall we change here or list for editing? if ($editNow[0] === true) { + // Add generic userid field + setPostRequestElement('userid', getMemberId()); + // Call generic change method $affected = doGenericEditEntriesConfirm($tableName, $columns, $filterFunctions, $extraValues, $timeColumns, $editNow, $idColumn, $userIdColumn, $rawUserId, $cacheFiles); @@ -2342,6 +2345,48 @@ function memberEditEntriesConfirm ($tableName, $columns = array(), $filterFuncti } } +// Delete rows by given id numbers +function memberDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) { + // Do this only for members + assert(isMember()); + + // $tableName must be an array + 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 (!is_array($idColumn)) { + // $idColumn is no array + reportBug(__FUNCTION__, __LINE__, 'idColumn[]=' . gettype($idColumn) . '!=array: userIdColumn=' . $userIdColumn); + } elseif (!is_array($userIdColumn)) { + // $userIdColumn is no array + reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn); + } elseif (!is_array($deleteNow)) { + // $deleteNow is no array + reportBug(__FUNCTION__, __LINE__, 'deleteNow[]=' . gettype($deleteNow) . '!=array: userIdColumn=' . $userIdColumn); + } // END - if + + // Shall we delete here or list for deletion? + if ($deleteNow[0] === true) { + // Add generic userid field + setPostRequestElement('userid', getMemberId()); + + // Call generic function + $affected = doGenericDeleteEntriesConfirm($tableName, $columns, $filterFunctions, $extraValues, $deleteNow, $idColumn, $userIdColumn, $rawUserId, $cacheFiles); + + // Was this fine? + if ($affected == countPostSelection($idColumn[0])) { + // All deleted + displayMessage('{--MEMBER_ALL_ENTRIES_REMOVED--}'); + } else { + // Some are still there :( + displayMessage(sprintf(getMessage('MEMBER_SOME_ENTRIES_NOT_DELETED'), SQL_AFFECTEDROWS(), countPostSelection($idColumn[0]))); + } + } else { + // List for deletion confirmation + memberListBuilder('delete', $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn); + } +} + // Build a special template list function memberListBuilder ($listType, $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $rawUserId = array('userid')) { // Do this only for logged in member diff --git a/inc/language/de.php b/inc/language/de.php index 928266ce50..904dff77d4 100644 --- a/inc/language/de.php +++ b/inc/language/de.php @@ -988,12 +988,16 @@ addMessages(array( 'ADMIN_SUPPORT_CIAVC_LINK' => "Direktlink zu CIA.vc (neues Fenster)", 'ADMIN_SUPPORT_STATS_LINK' => "Direktlink zur Commit-Statistik (neues Fenster)", 'ADMIN_REFERRAL_LEVEL_ZERO_NOTICE' => "Die Referral-Ebene 0 ist das Mitglied selber und sollte daher auf 100% stehen. Sie sollte auch nicht geändert oder gelöscht werden! Dann erhalten Ihre Mitglieder keine {?POINTS?} gutgeschrieben.", + 'ADMIN_ALL_ENTRIES_REMOVED' => "Alle ausgewählten Einträge sind gelöscht.", 'ADMIN_SOME_ENTRIES_NOT_DELETED' => "Es wurden %s von %s ausgewählten Einträge gelöscht.", 'ADMIN_ALL_ENTRIES_EDITED' => "Alle ausgewählten Einträge sind geändert.", 'ADMIN_SOME_ENTRIES_NOT_EDITED' => "Es wurden %s von %s ausgewählten Einträge geändert.", 'MEMBER_ALL_ENTRIES_EDITED' => "Alle Ihre Änderungen wurden gespeichert.", 'MEMBER_SOME_ENTRIES_NOT_EDITED' => "Es wurden %s von %s ausgewählten Einträge geändert. Wenn Sie keine neuen Werte eingegeben haben, ist diese Meldung normal.", + 'MEMBER_ALL_ENTRIES_REMOVED' => "Alle Ihre ausgewählten Einträge wurden gelöscht.", + 'MEMBER_SOME_ENTRIES_NOT_DELETED' => "Es wurden %s von %s ausgewählten Einträge gelöscht.", + 'USER_NOT_REGISTERED' => "Anmeldung hat nicht geklappt! :-( Ist unten eine Fehlermeldung eingeblendet? Bitte beim Support melden.", 'ADMIN_SELECTION_BOX_TITLE' => "Mitglied für Aktion auswählen", 'ADMIN_DO_ACTION' => "Aktion ausführen", diff --git a/inc/language/user_de.php b/inc/language/user_de.php index 4863c6ba14..2a4e3943ad 100644 --- a/inc/language/user_de.php +++ b/inc/language/user_de.php @@ -118,18 +118,36 @@ addMessages(array( // Member - sub ids 'MEMBER_USER_SUBIDS_404' => "Sie haben noch keine Sub-Ids angelegt.", - 'MEMBER_ADD_SUBID_TITLE' => "Neue Sub-Id anlegen", 'MEMBER_ADD_SUBID_SUBMIT' => "Sub-Id hinzufügen", 'MEMBER_ENTER_SUBID' => "Geben Sie eine Sub-Id ein:", 'MEMBER_ADD_SUBID_LEGEND' => "Daten zur Sub-Id", 'MEMBER_ADD_SUBID_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_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_USER_SUBIDS_CHANGE_SUBMIT' => "Sub-Ids ändern", + 'MEMBER_USER_SUBIDS_REMOVE_SUBMIT' => "Sub-Ids löschen", + '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 - sub ids - title 'MEMBER_USER_SUBID_EDIT_DELETE_TITLE' => "Editieren und Löschen von Sub-Ids", + 'MEMBER_ADD_SUBID_TITLE' => "Neue Sub-Id anlegen", + 'MEMBER_EDIT_USER_SUBIDS_TITLE' => "Ausgewählte Sub-Ids editieren", + 'MEMBER_DELETE_USER_SUBIDS_TITLE' => "Ausgewählte Sub-Ids löschen", + + // Member - sub ids - subject lines + 'ADMIN_ADD_USER_SUBIDS_SUBJECT' => "Sub-Id wurde hinzugefügt", + 'ADMIN_EDIT_USER_SUBIDS_SUBJECT' => "Mitglied hat eine Sub-Id geändert", + 'ADMIN_DELETE_USER_SUBIDS_SUBJECT' => "Mitglied hat eine Sub-Id gelöscht", + 'MEMBER_ADD_USER_SUBIDS_SUBJECT' => "Neue Sub-Id hinzugefügt", + 'MEMBER_EDIT_USER_SUBIDS_SUBJECT' => "Änderung Ihrer Sub-Id", + 'MEMBER_DELETE_USER_SUBIDS_SUBJECT' => "Ihre Sub-Id ist gelöscht", // Generic - subids - 'SUBID_VALUE' => "Sub-Id", - 'SUBID_ADDED' => "Hinzugefügt", + 'SUBID_VALUE' => "Sub-Id:", + 'SUBID_ADDED' => "Hinzugefügt:", )); // [EOF] diff --git a/inc/libs/user_functions.php b/inc/libs/user_functions.php index 1168748f6c..06d621c0a8 100644 --- a/inc/libs/user_functions.php +++ b/inc/libs/user_functions.php @@ -915,7 +915,7 @@ function doTemplateDisplayUsername ($template, $clear = false, $userid = NULL) { // ---------------------------------------------------------------------------- // For 'doing' add subid, the column-index is required -function addXmlSpecialMemberAddDoSubid () { +function addXmlSpecialMemberAddDoUserSubid () { // So set it all here $GLOBALS['__COLUMN_INDEX']['doXmlCallbackFunction'] = 'column'; $GLOBALS['__XML_ARGUMENTS']['doXmlCallbackFunction']['column_index'] = 'column'; diff --git a/inc/modules/admin/admin-inc.php b/inc/modules/admin/admin-inc.php index b580547dd3..827a66f46e 100644 --- a/inc/modules/admin/admin-inc.php +++ b/inc/modules/admin/admin-inc.php @@ -830,50 +830,6 @@ function adminChangeActivationStatus ($IDs, $table, $row, $idRow = 'id') { } } -// Send mails for del/edit/lock build modes -function sendAdminBuildMails ($mode, $tableName, $content, $id, $subjectPart = '', $userIdColumn = array('userid')) { - // $tableName must be an array - if ((!is_array($tableName)) || (count($tableName) != 1)) { - // $tableName is no array - reportBug(__FUNCTION__, __LINE__, 'tableName[]=' . gettype($tableName) . '!=array: userIdColumn=' . $userIdColumn); - } elseif ((!is_array($userIdColumn)) || (count($userIdColumn) != 1)) { - // $tableName is no array - reportBug(__FUNCTION__, __LINE__, 'userIdColumn[]=' . gettype($userIdColumn) . '!=array: userIdColumn=' . $userIdColumn); - } // END - if - - // Default subject is the subject part - $subject = $subjectPart; - - // Is the subject part not set? - if (empty($subjectPart)) { - // Then use it from the mode - $subject = strtoupper($mode); - } // END - if - - // Is the raw userid set? - if (postRequestElement($userIdColumn[0], $id) > 0) { - // Load email template - if (!empty($subjectPart)) { - $mail = loadEmailTemplate('member_' . $mode . '_' . strtolower($subjectPart) . '_' . $tableName[0], $content); - } else { - $mail = loadEmailTemplate('member_' . $mode . '_' . $tableName[0], $content); - } - - // Send email out - sendEmail(postRequestElement($userIdColumn[0], $id), strtoupper('{--MEMBER_' . $subject . '_' . $tableName[0] . '_SUBJECT--}'), $mail); - } // END - if - - // Generate subject - $subject = strtoupper('{--ADMIN_' . $subject . '_' . $tableName[0] . '_SUBJECT--}'); - - // Send admin notification out - if (!empty($subjectPart)) { - sendAdminNotification($subject, 'admin_' . $mode . '_' . strtolower($subjectPart) . '_' . $tableName[0], $content, postRequestElement($userIdColumn[0], $id)); - } else { - sendAdminNotification($subject, 'admin_' . $mode . '_' . $tableName[0], $content, postRequestElement($userIdColumn[0], $id)); - } -} - // Build a special template list function adminListBuilder ($listType, $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $rawUserId = array('userid')) { // Call inner (general) function @@ -972,7 +928,7 @@ function adminBuilderStatusHandler ($mode, $tableName, $columns, $filterFunction SQL_QUERY($sql, __FUNCTION__, __LINE__); // Send "build mails" out - sendAdminBuildMails($mode, $tableName, $content, $id, $statusInfo[$content[$column]], $userIdColumn); + sendGenericBuildMails($mode, $tableName, $content, $id, $statusInfo[$content[$column]], $userIdColumn); } // END - foreach } @@ -995,41 +951,11 @@ function adminDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunct // Shall we delete here or list for deletion? if ($deleteNow[0] === true) { - // The base SQL command: - $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s` IN (%s)"; - - // Delete them all - $idList = ''; - foreach (postRequestElement($idColumn[0]) as $id => $sel) { - // Is there a userid? - if (isPostRequestElementSet($rawUserId[0], $id)) { - // Load all data from that id - $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1", - array( - $tableName[0], - $idColumn[0], - $id - ), __FUNCTION__, __LINE__); - - // Fetch the data - $content = SQL_FETCHARRAY($result); - - // Free the result - SQL_FREERESULT($result); - - // Send "build mails" out - sendAdminBuildMails('delete', $tableName, $content, $id, '', $userIdColumn); - } // END - if - - // Add id number - $idList .= $id . ','; - } // END - foreach - - // Run the query - SQL_QUERY_ESC($sql, array($tableName[0], $idColumn[0], substr($idList, 0, -1)), __FUNCTION__, __LINE__); + // Call generic function + $affected = doGenericDeleteEntriesConfirm($tableName, $columns, $filterFunctions, $extraValues, $timeColumns, $editNow, $idColumn, $userIdColumn, $rawUserId, $cacheFiles); // Was this fine? - if (SQL_AFFECTEDROWS() == countPostSelection($idColumn[0])) { + if ($affected == countPostSelection($idColumn[0])) { // All deleted displayMessage('{--ADMIN_ALL_ENTRIES_REMOVED--}'); } else { diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php index 4b02a5fa0d..bc4a920140 100644 --- a/inc/mysql-manager.php +++ b/inc/mysql-manager.php @@ -2011,10 +2011,30 @@ function doGenericAddEntries ($tableName, $columns = array(), $filterFunctions = // If all values are okay, continue if ($sqlValues[$key] !== false) { // Build the SQL query - $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES (" . implode(',', $sqlValues) . ')'; + $sql = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName[0] . '` (`' . implode('`,`', $sqlColumns) . "`) VALUES (" . implode(',', $sqlValues) . ')'; // Run the SQL query - SQL_QUERY($SQL, __FUNCTION__, __LINE__); + SQL_QUERY($sql, __FUNCTION__, __LINE__); + + // Add id + setPostRequestElement('id', SQL_INSERTID()); + + // Prepare filter data array + $filterData = array( + 'mode' => 'add', + 'table_name' => $tableName, + 'content' => postRequestArray(), + 'id' => SQL_INSERTID(), + 'subject' => '', + // @TODO Used generic 'userid' here + 'userid_column' => array('userid'), + 'raw_userid' => array('userid'), + 'affected' => SQL_AFFECTEDROWS(), + 'sql' => $sql, + ); + + // Send "build mail" out + runFilterChain('send_build_mail', $filterData); } // END - if } @@ -2077,13 +2097,19 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun } // END - foreach // Finish SQL command - $sql = substr($sql, 0, -1) . " WHERE `" . SQL_ESCAPE($idColumn[0]) . "`=" . bigintval($id) . " LIMIT 1"; + $sql = substr($sql, 0, -1) . " WHERE `" . SQL_ESCAPE($idColumn[0]) . "`=" . bigintval($id); + if ((isset($rawUserId[0])) && (isPostRequestElementSet($rawUserId[0])) && (isset($userIdColumn[0]))) { + // Add user id as well + $sql .= ' AND `' . $userIdColumn[0] . '`=' . bigintval(postRequestElement($rawUserId[0])); + } // END - if + $sql .= " LIMIT 1"; // Run this query SQL_QUERY($sql, __FUNCTION__, __LINE__); // Add affected rows - $affected += SQL_AFFECTEDROWS(); + $edited = SQL_AFFECTEDROWS(); + $affected += $edited; // Load all data from that id $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1", @@ -2096,9 +2122,6 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun // Fetch the data and merge it into $content $content = merge_array($content, SQL_FETCHARRAY($result)); - // Free the result - SQL_FREERESULT($result); - // Prepare filter data array $filterData = array( 'mode' => 'edit', @@ -2106,11 +2129,17 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun 'content' => $content, 'id' => $id, 'subject' => '', - 'userid_column' => $userIdColumn + 'userid_column' => $userIdColumn, + 'raw_userid' => $rawUserId, + 'affected' => $edited, + 'sql' => $sql, ); // Send "build mail" out runFilterChain('send_build_mail', $filterData); + + // Free the result + SQL_FREERESULT($result); } // END - foreach // Delete cache? @@ -2135,6 +2164,51 @@ function doGenericEditEntriesConfirm ($tableName, $columns = array(), $filterFun return $affected; } +// Delete rows by given id numbers +function doGenericDeleteEntriesConfirm ($tableName, $columns = array(), $filterFunctions = array(), $extraValues = array(), $deleteNow = array(false), $idColumn = array('id'), $userIdColumn = array('userid'), $rawUserId = array('userid'), $cacheFiles = array()) { + // The base SQL command: + $sql = "DELETE LOW_PRIORITY FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s` IN (%s)"; + + // Is a user id provided? + if ((isset($rawUserId[0])) && (isPostRequestElementSet($rawUserId[0])) && (isset($userIdColumn[0]))) { + // Add user id as well + $sql .= ' AND `' . $userIdColumn[0] . '`=' . bigintval(postRequestElement($rawUserId[0])); + } // END - if + + // Delete them all + $idList = ''; + foreach (postRequestElement($idColumn[0]) as $id => $sel) { + // Is there a userid? + if (isPostRequestElementSet($userIdColumn[0])) { + // Load all data from that id + $result = SQL_QUERY_ESC("SELECT * FROM `{?_MYSQL_PREFIX?}_%s` WHERE `%s`=%s LIMIT 1", + array( + $tableName[0], + $idColumn[0], + $id + ), __FUNCTION__, __LINE__); + + // Fetch the data + $content = SQL_FETCHARRAY($result); + + // Free the result + SQL_FREERESULT($result); + + // Send "build mails" out + sendGenericBuildMails('delete', $tableName, $content, $id, '', $userIdColumn); + } // END - if + + // Add id number + $idList .= $id . ','; + } // END - foreach + + // Run the query + SQL_QUERY_ESC($sql, array($tableName[0], $idColumn[0], substr($idList, 0, -1)), __FUNCTION__, __LINE__); + + // Return affected rows + return SQL_AFFECTEDROWS(); +} + // Build a special template list function doGenericListBuilder ($prefix, $listType, $tableName, $columns, $filterFunctions, $extraValues, $idColumn, $userIdColumn, $rawUserId = array('userid')) { // $tableName and $idColumn must bove be arrays! diff --git a/inc/request-functions.php b/inc/request-functions.php index 62cdacc8c3..e0051a169e 100644 --- a/inc/request-functions.php +++ b/inc/request-functions.php @@ -160,7 +160,7 @@ function isPostRequestElementSet ($element, $subElement = NULL) { * a string as numerical indexes are not wanted in POST data (in this * project). */ - assert(is_string($element) && ((is_null($subElement)) || (is_string($subElement)))); + assert(is_string($element) && ((is_null($subElement)) || (is_string($subElement)) || (is_int($subElement)))); // Is a sub element set? if (is_null($subElement)) { diff --git a/templates/de/emails/admin/admin_add_user_subids.tpl b/templates/de/emails/admin/admin_add_user_subids.tpl new file mode 100644 index 0000000000..6110817a01 --- /dev/null +++ b/templates/de/emails/admin/admin_add_user_subids.tpl @@ -0,0 +1,20 @@ +Hallo Administrator, + +das Mitglied $content[userid] hat soeben eine Sub-Id angelegt. + +Hier sind alle Daten dazu: +------------------------------------------ +Sub-Id Kennung: $content[id] +------------------------------------------ +Sub-Id: $content[subid] +------------------------------------------ +Anrede: {%user,gender,translateGender=$content[userid]%} +Vorname: {%user,surname=$content[userid]%} +Nachname: {%user,family=$content[userid]%} +Email-Adresse: {%user,email=$content[userid]%} +------------------------------------------ + +Mit freundlichen Grüßen, + Ihr {?MAIN_TITLE?} Script + +{?URL?}/admin.php diff --git a/templates/de/emails/admin/admin_delete_user_subids.tpl b/templates/de/emails/admin/admin_delete_user_subids.tpl new file mode 100644 index 0000000000..59fcea36ad --- /dev/null +++ b/templates/de/emails/admin/admin_delete_user_subids.tpl @@ -0,0 +1,21 @@ +Hallo Administrator, + +Das Mitglied $content[userid] hat soeben eine Sub-Id gelöscht. + +Hier sind alle Daten dazu: +------------------------------------------ +Sub-Id Kennung: $content[id] +------------------------------------------ +Sub-Id: $content[subid] +------------------------------------------ +Hinzugefügt: $content[subid_added] +------------------------------------------ +Vorname: {%user,surname=$content[userid]%} +Nachname: {%user,family=$content[userid]%} +Email-Adresse: {%user,email=$content[userid]%} +------------------------------------------ + +Mit freundlichen Grüßen, + Ihr {?MAIN_TITLE?} Script + +{?URL?}/admin.php diff --git a/templates/de/emails/admin/admin_edit_user_subids.tpl b/templates/de/emails/admin/admin_edit_user_subids.tpl new file mode 100644 index 0000000000..d04ba87702 --- /dev/null +++ b/templates/de/emails/admin/admin_edit_user_subids.tpl @@ -0,0 +1,21 @@ +Hallo Administrator, + +Das Mitglied $content[userid] hat soeben eine Sub-Id geändert. + +Hier sind alle Daten dazu: +------------------------------------------ +Sub-Id Kennung: $content[id] +------------------------------------------ +Sub-Id: $content[subid] +------------------------------------------ +Hinzugefügt: $content[subid_added] +------------------------------------------ +Vorname: {%user,surname=$content[userid]%} +Nachname: {%user,family=$content[userid]%} +Email-Adresse: {%user,email=$content[userid]%} +------------------------------------------ + +Mit freundlichen Grüßen, + Ihr {?MAIN_TITLE?} Script + +{?URL?}/admin.php diff --git a/templates/de/emails/member/member_add_user_subids.tpl b/templates/de/emails/member/member_add_user_subids.tpl new file mode 100644 index 0000000000..9ed385c51e --- /dev/null +++ b/templates/de/emails/member/member_add_user_subids.tpl @@ -0,0 +1,15 @@ +Hallo {%user,gender,translateGender=$content[userid]%} {%user,surname=$content[userid]%} {%user,family=$content[userid]%}, + +Sie haben soeben eine Sub-Id angelegt. + +Hier sind alle Daten dazu: +------------------------------------------ +Sub-Id Kennung: $content[id] +------------------------------------------ +Sub-Id: $content[subid] +------------------------------------------ + +Mit freundlichen Grüßen, + Ihr {?MAIN_TITLE?} Team + +{?URL?}/login.php ({?WEBMASTER?}) diff --git a/templates/de/emails/member/member_delete_user_subids.tpl b/templates/de/emails/member/member_delete_user_subids.tpl new file mode 100644 index 0000000000..9ce7ab432c --- /dev/null +++ b/templates/de/emails/member/member_delete_user_subids.tpl @@ -0,0 +1,17 @@ +Hallo {%user,gender,translateGender=$content[userid]%} {%user,surname=$content[userid]%} {%user,family=$content[userid]%}, + +Sie haben soeben eine Ihrer Sub-Id gelöscht. + +Hier sind alle Daten dazu: +------------------------------------------ +Sub-Id Kennung: $content[id] +------------------------------------------ +Sub-Id: $content[subid] +------------------------------------------ +Hinzugefügt: $content[subid_added] +------------------------------------------ + +Mit freundlichen Grüßen, + Ihr {?MAIN_TITLE?} Team + +{?URL?}/login.php ({?WEBMASTER?}) diff --git a/templates/de/emails/member/member_edit_user_subids.tpl b/templates/de/emails/member/member_edit_user_subids.tpl new file mode 100644 index 0000000000..68cd83bbf3 --- /dev/null +++ b/templates/de/emails/member/member_edit_user_subids.tpl @@ -0,0 +1,17 @@ +Hallo {%user,gender,translateGender=$content[userid]%} {%user,surname=$content[userid]%} {%user,family=$content[userid]%}, + +Sie haben soeben eine Ihrer Sub-Id geändert. + +Hier sind alle Daten dazu: +------------------------------------------ +Sub-Id Kennung: $content[id] +------------------------------------------ +Sub-Id: $content[subid] +------------------------------------------ +Hinzugefügt: $content[subid_added] +------------------------------------------ + +Mit freundlichen Grüßen, + Ihr {?MAIN_TITLE?} Team + +{?URL?}/login.php ({?WEBMASTER?}) diff --git a/templates/de/html/member/member_delete_user_subids.tpl b/templates/de/html/member/member_delete_user_subids.tpl new file mode 100644 index 0000000000..a9680b7311 --- /dev/null +++ b/templates/de/html/member/member_delete_user_subids.tpl @@ -0,0 +1,22 @@ +
+
+ + + + + $content + + + +
+ {--MEMBER_DELETE_USER_SUBIDS_TITLE--} +
+
+
+ +
+ {--MEMBER_DELETE_USER_SUBIDS_NOTICE--} +
diff --git a/templates/de/html/member/member_delete_user_subids_row.tpl b/templates/de/html/member/member_delete_user_subids_row.tpl new file mode 100644 index 0000000000..30a9cee971 --- /dev/null +++ b/templates/de/html/member/member_delete_user_subids_row.tpl @@ -0,0 +1,11 @@ + + + {--MEMBER_USER_SUBID_ADDED--}:
+ + $content[subid_added] + + + {--SUBID_VALUE--}
+ $content[subid] + + diff --git a/templates/de/html/member/member_edit_user_subids.tpl b/templates/de/html/member/member_edit_user_subids.tpl new file mode 100644 index 0000000000..c9c0fd75fb --- /dev/null +++ b/templates/de/html/member/member_edit_user_subids.tpl @@ -0,0 +1,22 @@ +
+
+ + + + + $content + + + +
+ {--MEMBER_EDIT_USER_SUBIDS_TITLE--} +
+
+
+ +
+ {--MEMBER_EDIT_USER_SUBIDS_NOTICE--} +
diff --git a/templates/de/html/member/member_edit_user_subids_row.tpl b/templates/de/html/member/member_edit_user_subids_row.tpl new file mode 100644 index 0000000000..3caac1dec4 --- /dev/null +++ b/templates/de/html/member/member_edit_user_subids_row.tpl @@ -0,0 +1,11 @@ + + + {--MEMBER_USER_SUBID_ADDED--}:
+ + $content[subid_added] + + + {--MEMBER_CHANGE_USER_SUBID--}
+ + + diff --git a/templates/de/html/member/member_list_user_subids.tpl b/templates/de/html/member/member_list_user_subids.tpl index 81e0b79398..e22ed9390a 100644 --- a/templates/de/html/member/member_list_user_subids.tpl +++ b/templates/de/html/member/member_list_user_subids.tpl @@ -8,8 +8,8 @@ {--ID_SELECT--} - {--SUBID_VALUE--}: - {--SUBID_ADDED--}: + {--SUBID_VALUE--} + {--SUBID_ADDED--} $content diff --git a/templates/xml/member/member_add_do_subid.xml b/templates/xml/member/member_add_do_subid.xml index 5cbce310c7..11f5d85d80 100644 --- a/templates/xml/member/member_add_do_subid.xml +++ b/templates/xml/member/member_add_do_subid.xml @@ -1,68 +1 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/templates/xml/member/member_add_do_user_subid.xml b/templates/xml/member/member_add_do_user_subid.xml new file mode 100644 index 0000000000..5cbce310c7 --- /dev/null +++ b/templates/xml/member/member_add_do_user_subid.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/xml/member/member_delete_do_user_subid.xml b/templates/xml/member/member_delete_do_user_subid.xml new file mode 100644 index 0000000000..6911636638 --- /dev/null +++ b/templates/xml/member/member_delete_do_user_subid.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/xml/member/member_delete_show_user_subid.xml b/templates/xml/member/member_delete_show_user_subid.xml new file mode 100644 index 0000000000..74d6f0c002 --- /dev/null +++ b/templates/xml/member/member_delete_show_user_subid.xml @@ -0,0 +1,106 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/templates/xml/member/member_edit_do_user_subid.xml b/templates/xml/member/member_edit_do_user_subid.xml new file mode 100644 index 0000000000..35d27982a6 --- /dev/null +++ b/templates/xml/member/member_edit_do_user_subid.xml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.39.2