X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/43a6787a1955308ab82d57bcab5535b36d3ef6e1..c9e895e3b74e7b2eef6554a20a25f0ff9b9783e1:/misc/channel-lookup-misc.php diff --git a/misc/channel-lookup-misc.php b/misc/channel-lookup-misc.php index 8c101b8..0ec1872 100644 --- a/misc/channel-lookup-misc.php +++ b/misc/channel-lookup-misc.php @@ -3,7 +3,7 @@ function generate_chanbans_table($channel) { global $rpc; $channel = $rpc->channel()->get($channel->name); - ?>

+ ?>

@@ -40,7 +40,7 @@ function generate_chaninvites_table($channel) { global $rpc; $channel = $rpc->channel()->get($channel->name); - ?>

+ ?>

@@ -78,11 +78,11 @@ function generate_chaninvites_table($channel) function generate_chanexcepts_table($channel) { global $rpc; - echo ""; + $channel = $rpc->channel()->get($channel->name); - ?>

+ ?>

- +

@@ -181,7 +181,7 @@ function generate_chan_occupants_table($channel) $disabled = (current_user_can(PERMISSION_EDIT_CHANNEL_USER)) ? "" : "disabled"; $disabledcolor = ($disabled) ? "btn-secondary" : "btn-primary"; echo ""; - echo ""; + echo ""; echo ""; echo ""; echo ""; @@ -199,9 +199,6 @@ function generate_html_chansettings($channel) { ?> -

id\">".htmlspecialchars($member->name)."id\">".htmlspecialchars($member->name)."$lvlstring".((property_exists($member, 'hostname')) ? htmlspecialchars($member->hostname) : "")."
+ @@ -238,59 +237,104 @@ function generate_html_chansettings($channel) "kliRzOL", ... + * The group "Other" has a number of preset ones PLUS + * will be automatically filled with any remaining modes + * that are detected and that we forgot to put in Other. + */ +function group_modes() +{ + $modes = ''; + foreach(IRCList::$uplink as $mode_groups) + $modes .= $mode_groups; + + $grouping = IRCList::$grouping; + + foreach (str_split($modes) as $letter) + { + $found = false; + foreach($grouping as $groupname=>$value) + { + if (str_contains($value, $letter)) + { + $found = true; + break; + } + } + if (!$found) + $grouping["Other"] .= $letter; + + } + return $grouping; +} + function generate_edit_chmodes($chan) { ?> - -
- modes)) - { - echo "No modes set"; - return; - } - $fmodes = $chan->modes; - $tok = split($fmodes); - $modes = $tok[0]; - $params = rparv($fmodes); - $paramed_modes = sort_paramed_modes($modes, $params); - foreach (IRCList::$uplink as $m) - for ($i=0; ($mode = (isset($m[$i])) ? $m[$i] : NULL); $i++) - { - $group = get_chmode_group($mode); - if (!$group || $group == 1) - continue; - $modeinfo = (isset(IRCList::$cmodes[$mode])) ? IRCList::$cmodes[$mode] : ['name' => "Unknown mode", 'description' => "Unknown mode +$mode"]; - $checked = (strstr($modes,$mode)) ? "checked" : ""; - $disabled = ""; - switch($mode) - { - case "Z": - case "d": - $disabled = "disabled"; - } - ?> - - - - - modes)) + { + echo "No modes set"; + return; + } + $fmodes = $chan->modes; + $tok = split($fmodes); + $modes = $tok[0]; + $params = rparv($fmodes); + $paramed_modes = sort_paramed_modes($modes, $params); - ?> - -
type="checkbox" value='$mode' name="newmodes[]">+$mode)"; ?> - "> -
+ $all_modes = IRCList::$uplink; + $groups = group_modes(); + foreach ($groups as $group_name=>$m) + { + echo "

\n"; + echo "$group_name\n"; + for ($i=0; ($mode = (isset($m[$i])) ? $m[$i] : NULL); $i++) + { + $group = get_chmode_group($mode); + if (!$group || $group == 1) + continue; + $modeinfo = IRCList::lookup($mode); + $checked = (strstr($modes,$mode)) ? "checked " : " "; + + $disabled = ""; + if (isset($modeinfo) && $modeinfo['requires'] == "Server") + $disabled = "disabled"; + + ?> +
+
+ type="checkbox" value='' name="newmodes[]"> + +$mode)"; ?> +
+
+ "> +
+
+ \n"; + } + ?>