X-Git-Url: https://jfr.im/git/irc/unrealircd/unrealircd-webpanel.git/blobdiff_plain/062258ffca3e14131ac530492d36ea0b0430602f..ea90b321a4b3768028d841b307c362af97a5e6e1:/misc/channel-lookup-misc.php diff --git a/misc/channel-lookup-misc.php b/misc/channel-lookup-misc.php index ecca808..0ec1872 100644 --- a/misc/channel-lookup-misc.php +++ b/misc/channel-lookup-misc.php @@ -1,141 +1,509 @@ -

- -

- - - - - - - - - - bans as $ban) { - echo ""; - echo ""; - echo ""; - $set_by = htmlspecialchars($ban->set_by); - echo ""; - $set_at = $ban->set_at; - echo ""; - echo ""; - echo ""; - } - - ?> - -
NameSet bySet at
".htmlspecialchars($ban->name)."$set_by$set_at
-
- channel()->get($channel->name); + ?>

+ + + +

+ + + + + + + + + + bans as $ban) { + echo ""; + echo ""; + echo ""; + $set_by = htmlspecialchars($ban->set_by); + echo ""; + $set_at = $ban->set_at; + echo ""; + echo ""; + echo ""; + } + + ?> + +
NameSet bySet at
".htmlspecialchars($ban->name)."$set_by$set_at
+ + -

- -

- - - - - - - - - - invite_exceptions as $inv) { - echo ""; - echo ""; - echo ""; - $set_by = htmlspecialchars($inv->set_by); - echo ""; - $set_at = $inv->set_at; - echo ""; - echo ""; - echo ""; - } - - ?> - -
NameSet bySet at
".htmlspecialchars($inv->name)."$set_by$set_at
-
- channel()->get($channel->name); + ?>

+ + + +

+ + + + + + + + + + invite_exceptions as $inv) { + echo ""; + echo ""; + echo ""; + $set_by = htmlspecialchars($inv->set_by); + echo ""; + $set_at = $inv->set_at; + echo ""; + echo ""; + echo ""; + } + + ?> + +
NameSet bySet at
".htmlspecialchars($inv->name)."$set_by$set_at
+ + -

- -

- - - - - - - - - - ban_exemptions as $ex) { - echo ""; - echo ""; - echo ""; - $set_by = htmlspecialchars($ex->set_by); - echo ""; - $set_at = $ex->set_at; - echo ""; - echo ""; - echo ""; - } - - ?> - + global $rpc; + + $channel = $rpc->channel()->get($channel->name); + ?>

NameSet bySet at
".htmlspecialchars($ex->name)."$set_by$set_at
+ + + +

+ + + + + + + + + + ban_exemptions as $ex) { + echo ""; + echo ""; + echo ""; + $set_by = htmlspecialchars($ex->set_by); + echo ""; + $set_at = $ex->set_at; + echo ""; + echo ""; + echo ""; + } + + ?> + +
NameSet bySet at
".htmlspecialchars($ex->name)."$set_by$set_at
+
+ +

+ +

+ + + + + + + + + members); + + $i = 0; + foreach ($m as $member) + { + $lvlstring = ""; + + if (isset($member->level)) + { + for ($i = 0; isset($member->level[$i]) && $m = $member->level[$i]; $i++) + { + switch ($m) + { + case "v": + $lvlstring .= "
Voice
"; + break; + case "h": + $lvlstring .= "
Half-Op
"; + break; + case "o": + $lvlstring .= "
Op
"; + break; + case "a": + $lvlstring .= "
Admin
"; + break; + case "q": + $lvlstring .= "
Owner
"; + break; + + // providing support third/ojoin + case "Y": + $lvlstring .= "
OJOIN
"; + break; + } + } + } + + echo ""; + ?>"; + echo ""; + echo ""; + echo ""; + echo ""; + } + + ?> + +
NameStatusHost
id\">".htmlspecialchars($member->name)."$lvlstring".((property_exists($member, 'hostname')) ? htmlspecialchars($member->hostname) : "")."
+
+ + + + + + modes)) + { + echo "No modes set"; + return; + } + $fmodes = $channel->modes; + $tok = split($fmodes); + $modes = $tok[0]; + $params = rparv($fmodes); + $paramed_modes = sort_paramed_modes($modes, $params); + + for ($i=0; ($mode = (isset($modes[$i])) ? $modes[$i] : NULL); $i++) + { + $modeinfo = IRCList::lookup($mode); + if (!$modeinfo) + continue; + ?> + + + + + + +
+ +
- + "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; -function generate_chan_occupants_table($channel) + 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) { - ?> -

- -

- - - - - - - - - - members as $member) { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - } - - ?> - -
NameStatusActions
id\">".htmlspecialchars($member->name)."StatusOpDeop
-
+ ?> + 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 + */ +function chlkup_autoload_modal($name) +{ + ?> + + channel()->set_mode($chan->name, htmlspecialchars("-$n"), htmlspecialchars($str))) + { + Message::Success("Deleted successfully"); + return true; + } + $errors[] = $rpc->error . " ($rpc->errno)"; + Message::Fail("An error occurred: $rpc->error"); + return false; +} + +function do_delete_invite($chan, $list) +{ + $errs = []; + _do_chan_item_delete($chan, "invite", $list, $errs); +} + +function do_delete_chanban($chan, $list) +{ + $errs = []; + _do_chan_item_delete($chan, "ban", $list, $errs); +} + +function do_delete_chanex($chan, $list) +{ + $errs = []; + _do_chan_item_delete($chan, "except", $list, $errs); +} + + + +/** + * Sort the channels user list: + */ +function sort_user_list($list) : array +{ + if (empty($list)) + return $list; + + $new = []; + foreach($list as $k => $user) + { + if (!property_exists($user,"level")) + { + $new["rest"][] = $user; + $list[$k] = NULL; + } + else if (strstr($user->level,"Y")) + { + $new["Y"][] = $user; + $list[$k] = NULL; + } + else if (strstr($user->level,"q")) + { + $new["q"][] = $user; + $list[$k] = NULL; + } + else if (strstr($user->level,"a")) + { + $new["a"][] = $user; + $list[$k] = NULL; + } + else if (strstr($user->level,"o")) + { + $new["o"][] = $user; + $list[$k] = NULL; + } + else if (strstr($user->level,"h")) + { + $new["h"][] = $user; + $list[$k] = NULL; + } + else if (strstr($user->level,"v")) + { + $new["v"][] = $user; + $list[$k] = NULL; + } + + } + + unset($list); + $list = []; + if (isset($new["q"])) + foreach($new["q"] as $u) + $list[] = $u; + + if (isset($new["a"])) + foreach($new["a"] as $u) + $list[] = $u; + + if (isset($new["o"])) + foreach($new["o"] as $u) + $list[] = $u; + + if (isset($new["h"])) + foreach($new["h"] as $u) + $list[] = $u; + + if (isset($new["v"])) + foreach($new["v"] as $u) + $list[] = $u; + + if (isset($new["rest"])) + foreach($new["rest"] as $u) + $list[] = $u; + + return $list; } \ No newline at end of file