diff --git a/Languages/en_US/ManageSettings.php b/Languages/en_US/ManageSettings.php index 09f82068695..c293d0232e5 100644 --- a/Languages/en_US/ManageSettings.php +++ b/Languages/en_US/ManageSettings.php @@ -287,6 +287,7 @@ $txt['custom_edit_registration_require'] = 'Yes, and require entry'; $txt['custom_edit_display'] = 'Show on Topic View'; $txt['custom_edit_mlist'] = 'Show on memberlist'; +$txt['custom_edit_blist'] = 'Show on buddylist'; $txt['custom_edit_picktype'] = 'Field Type'; $txt['custom_edit_max_length'] = 'Maximum Length'; diff --git a/Sources/Actions/Admin/Features.php b/Sources/Actions/Admin/Features.php index e3ba292b314..8c046e13e16 100644 --- a/Sources/Actions/Admin/Features.php +++ b/Sources/Actions/Admin/Features.php @@ -944,7 +944,7 @@ public function profileEdit(): void $request = Db::$db->query( 'SELECT id_field, col_name, field_name, field_desc, field_type, field_order, field_length, field_options, - show_reg, show_display, show_mlist, show_profile, private, active, default_value, can_search, + show_reg, show_display, show_mlist, show_blist, show_profile, private, active, default_value, can_search, bbc, mask, enclose, placement FROM {db_prefix}custom_fields WHERE id_field = {int:current_field}', @@ -969,6 +969,7 @@ public function profileEdit(): void 'reg' => $row['show_reg'], 'display' => $row['show_display'], 'mlist' => $row['show_mlist'], + 'blist' => $row['show_blist'], 'type' => $row['field_type'], 'order' => $row['field_order'], 'max_length' => $row['field_length'], @@ -1000,6 +1001,7 @@ public function profileEdit(): void 'reg' => false, 'display' => false, 'mlist' => false, + 'blist' => false, 'type' => 'text', 'order' => 0, 'max_length' => 255, @@ -1093,6 +1095,7 @@ public function profileEdit(): void $show_reg = isset($_POST['reg']) ? (int) $_POST['reg'] : 0; $show_display = isset($_POST['display']) ? 1 : 0; $show_mlist = isset($_POST['mlist']) ? 1 : 0; + $show_blist = isset($_POST['blist']) ? 1 : 0; $bbc = isset($_POST['bbc']) ? 1 : 0; $show_profile = $_POST['profile_area']; $active = isset($_POST['active']) ? 1 : 0; @@ -1267,7 +1270,8 @@ public function profileEdit(): void field_name = {string:field_name}, field_desc = {string:field_desc}, field_type = {string:field_type}, field_length = {int:field_length}, field_options = {string:field_options}, show_reg = {int:show_reg}, - show_display = {int:show_display}, show_mlist = {int:show_mlist}, show_profile = {string:show_profile}, + show_display = {int:show_display}, show_mlist = {int:show_mlist}, + show_blist = {int:show_blist}, show_profile = {string:show_profile}, private = {int:private}, active = {int:active}, default_value = {string:default_value}, can_search = {int:can_search}, bbc = {int:bbc}, mask = {string:mask}, enclose = {string:enclose}, placement = {int:placement} @@ -1277,6 +1281,7 @@ public function profileEdit(): void 'show_reg' => $show_reg, 'show_display' => $show_display, 'show_mlist' => $show_mlist, + 'show_blist' => $show_blist, 'private' => $private, 'active' => $active, 'can_search' => $can_search, @@ -1326,6 +1331,7 @@ public function profileEdit(): void 'show_reg' => 'int', 'show_display' => 'int', 'show_mlist' => 'int', + 'show_blist' => 'int', 'show_profile' => 'string', 'private' => 'int', 'active' => 'int', @@ -1348,6 +1354,7 @@ public function profileEdit(): void $show_reg, $show_display, $show_mlist, + $show_blist, $show_profile, $private, $active, @@ -1405,7 +1412,7 @@ public function profileEdit(): void $fields = []; $request = Db::$db->query( - 'SELECT col_name, field_name, field_type, field_order, bbc, enclose, placement, show_mlist, field_options + 'SELECT col_name, field_name, field_type, field_order, bbc, enclose, placement, show_mlist, show_blist, field_options FROM {db_prefix}custom_fields WHERE show_display = {int:is_displayed} AND active = {int:active} @@ -1430,6 +1437,7 @@ public function profileEdit(): void 'placement' => !empty($row['placement']) ? $row['placement'] : '0', 'enclose' => !empty($row['enclose']) ? $row['enclose'] : '', 'mlist' => $row['show_mlist'], + 'blist' => $row['show_blist'], 'options' => (!empty($row['field_options']) ? explode(',', $row['field_options']) : []), ]; } diff --git a/Sources/Actions/Profile/BuddyIgnoreLists.php b/Sources/Actions/Profile/BuddyIgnoreLists.php index d3b2d4406b3..2039e7fbd43 100644 --- a/Sources/Actions/Profile/BuddyIgnoreLists.php +++ b/Sources/Actions/Profile/BuddyIgnoreLists.php @@ -216,18 +216,20 @@ public function buddies(): void $disabled_fields = isset(Config::$modSettings['disabled_profile_fields']) ? array_flip(explode(',', Config::$modSettings['disabled_profile_fields'])) : []; $request = Db::$db->query( - 'SELECT col_name, field_name, field_desc, field_type, field_options, show_mlist, bbc, enclose + 'SELECT col_name, field_name, field_desc, field_type, field_options, bbc, enclose FROM {db_prefix}custom_fields WHERE active = {int:active} - AND private < {int:private_level}', + AND private < {int:private_level} + AND show_blist = {int:show_blist}', [ 'active' => 1, 'private_level' => 2, + 'show_blist' => 1, ], ); while ($row = Db::$db->fetch_assoc($request)) { - if (!isset($disabled_fields[$row['col_name']]) && !empty($row['show_mlist'])) { + if (!isset($disabled_fields[$row['col_name']])) { Utils::$context['custom_pf'][$row['col_name']] = [ 'label' => Lang::tokenTxtReplace($row['field_name']), 'type' => $row['field_type'], diff --git a/Sources/Db/Schema/v3_0/CustomFields.php b/Sources/Db/Schema/v3_0/CustomFields.php index 148f608fe38..7a7fb6b22f7 100644 --- a/Sources/Db/Schema/v3_0/CustomFields.php +++ b/Sources/Db/Schema/v3_0/CustomFields.php @@ -46,6 +46,7 @@ class CustomFields extends Table 'show_reg' => 0, 'show_display' => 1, 'show_mlist' => 0, + 'show_blist' => 0, 'show_profile' => 'forumprofile', 'private' => 0, 'active' => 1, @@ -67,6 +68,7 @@ class CustomFields extends Table 'show_reg' => 0, 'show_display' => 1, 'show_mlist' => 0, + 'show_blist' => 1, 'show_profile' => 'forumprofile', 'private' => 0, 'active' => 1, @@ -88,6 +90,7 @@ class CustomFields extends Table 'show_reg' => 0, 'show_display' => 1, 'show_mlist' => 0, + 'show_blist' => 1, 'show_profile' => 'forumprofile', 'private' => 0, 'active' => 1, @@ -109,6 +112,7 @@ class CustomFields extends Table 'show_reg' => 1, 'show_display' => 1, 'show_mlist' => 0, + 'show_blist' => 1, 'show_profile' => 'forumprofile', 'private' => 0, 'active' => 1, @@ -208,6 +212,12 @@ public function __construct() not_null: true, default: 0, ), + 'show_blist' => new Column( + name: 'show_blist', + type: 'smallint', + not_null: true, + default: 0, + ), 'show_profile' => new Column( name: 'show_profile', type: 'varchar', diff --git a/Themes/default/Admin.template.php b/Themes/default/Admin.template.php index dd999d74c4c..ba53376db7f 100644 --- a/Themes/default/Admin.template.php +++ b/Themes/default/Admin.template.php @@ -1217,6 +1217,12 @@ function template_edit_profile_field()