X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/dfa0ec8e77c09871f817793f40148da19672f786..34eac98afbb1e170e5fff9646bb22cf39fc3f72d:/misc/channel-lookup-misc.php?ds=sidebyside diff --git a/misc/channel-lookup-misc.php b/misc/channel-lookup-misc.php index 81d435c..101f9ec 100644 --- a/misc/channel-lookup-misc.php +++ b/misc/channel-lookup-misc.php @@ -1,10 +1,9 @@ channel()->get($channel->name); - ?>

+ ?>

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

+ ?>

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

+ ?>

- +

@@ -135,12 +134,14 @@ function generate_chan_occupants_table($channel) - + members); + + $i = 0; foreach ($m as $member) { $lvlstring = ""; @@ -174,14 +175,15 @@ function generate_chan_occupants_table($channel) } } } + echo ""; ?>"; - echo ""; - echo ""; + echo ""; echo ""; + echo ""; echo ""; } @@ -195,9 +197,8 @@ function generate_chan_occupants_table($channel) function generate_html_chansettings($channel) { - global $rpc; ?> - +
NameHost StatusHost
id\">".htmlspecialchars($member->name)."".(property_exists($member, 'hostname') ? htmlspecialchars($member->hostname) : "")."id\">".htmlspecialchars($member->name)."$lvlstring".((property_exists($member, 'hostname')) ? htmlspecialchars($member->hostname) : "")."
server()->get(); - if (!$uplink) // whaaaa?!¿ - die("Could not find our uplink. Weird and should not have happened"); - - $groups = $uplink->server->features->chanmodes; - + $paramed_modes = sort_paramed_modes($modes, $params); + for ($i=0; ($mode = (isset($modes[$i])) ? $modes[$i] : NULL); $i++) { - $modeinfo = IRCList::$cmodes[$mode]; + $modeinfo = IRCList::lookup($mode); + if (!$modeinfo) + continue; ?> + @@ -237,6 +237,116 @@ 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); + + $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"; + } + ?> + $grp) + if (strstr($grp,$mode)) + return $i + 1; + + return 0; // invalid +} + /** * Force loading of a particular modal by name */ @@ -251,6 +361,24 @@ function chlkup_autoload_modal($name) 150) + { + // send what we've got already and prepare for the next lot + if (!$rpc->channel()->set_mode($chan->name, htmlspecialchars("-$n"), htmlspecialchars($str))) + $errors[] = $rpc->error . " ($rpc->errno)"; + + // prepare for the next set + $n = ""; + $str = ""; + } $n .= $char; $str .= " ".$l; } + // if multiple, this will be the last one so we return here if ($rpc->channel()->set_mode($chan->name, htmlspecialchars("-$n"), htmlspecialchars($str))) { + if (!empty($errors)) + Message::Fail("One or more errors occurred:", $errors); Message::Success("Deleted successfully"); return true; } $errors[] = $rpc->error . " ($rpc->errno)"; - Message::Fail("An error occurred: $rpc->error"); + Message::Fail("An error occurred:", $errors); return false; }