====== IRC and Discord ======
The PHP community has footholds on IRC and Discord. The IRC presence is on [[https://libera.chat|Libera Chat]] and Discord is run by the [[https://phpc.chat|PHP Community]].
===== Discord =====
This is managed by the PHP Community, contact Ben Ramsey for help creating and bridging channels.
===== Libera IRC Channel Setup ======
* [[https://libera.chat/guides/channelmodes|Libera.Chat channel modes]]
* [[https://libera.chat/guides/quickops|Libera.Chat quick ops guide]]
Channels on IRC that start with ''#php'' can be claimed by the members of the ''php'' group, and the list of those people can be discovered by viewing the ChanServ info for one of the already-claimed channels:
/msg ChanServ info #php-internals
==== Creating a new channel ====
Execute the following commands to set up a brand new channel, replacing ''#channel'' with the name of your channel.
/join #channel
/msg ChanServ REGISTER #channel
/msg ChanServ SET #channel GUARD ON
/msg ChanServ SET #channel KEEPTOPIC ON
/msg ChanServ SET #channel PUBACL OFF
/msg ChanServ SET #channel SECURE ON
/msg ChanServ SET #channel TOPICLOCK ON
/msg ChanServ SET #channel VERBOSE OPS
/msg ChanServ SET #channel RESTRICTED OFF
/msg ChanServ SET #channel MLOCK +n-tlk
/msg ChanServ SET #channel EMAIL hello@example.com
/msg ChanServ SET #channel URL https://example.com
/msg ChanServ SET #channel ENTRYMSG Welcome! Be nice!
/msg ChanServ TOPIC #channel Welcome to our channel!
/msg Chanserv TEMPLATE #channel BOP +AVotv
/msg ChanServ TEMPLATE #channel SUCCESSOR +ARSefiorstv
/msg ChanServ FLAGS #channel elephpant BOP
''MLOCK'' does ''-t'' to remove the “ops-topic” requirement. Since we have ''TOPICLOCK'' set, ChanServ will handle reverting the topic for any users who do not have the ''+t'' mode set. There’s no need to require them to be an op to set the topic.
==== To create private channel ====
/msg ChanServ SET #channel RESTRICTED ON
/msg ChanServ SET #channel PRIVATE ON
/msg ChanServ SET #channel MLOCK +npsrQS-tlk
/msg ChanServ TEMPLATE #channel MEMBER +AVtv
To allow someone access to join the channel, set them as a ''MEMBER'', which lets them view the access list, set the topic, and use the voice/devoice commands. It also auto-voices them.
/msg ChanServ FLAGS #channel nickname MEMBER
==== Forwarding a channel ====
/msg ChanServ TOPIC #oldchannel We have moved to #newchannel. Please type /join #newchannel to get to us.
/msg ChanServ SET #oldchannel MLOCK +tnsmif #newchannel
/msg ChanServ SET #oldchannel PRIVATE ON
==== Channel user flag templates ====
Set a user’s permissions by template:
/msg ChanServ FLAGS #channel nickname HOP
* **AOP**: (Auto) Operator, standard moderator, *(“auto” is an historical term; not really auto-opped with these flags)*, Flags: ''+Aeotv''
Can view access lists; exempt from ''+b'' and can ''unban'' themselves; allowed to use''op''/''deop'' commands; allowed to use ''topic'' and ''topicappend''; allowed to ''voice''/''devoice''.
* **FOUNDER**: “God” Operator, channel owner, Flags: ''+AFRefiorstv''
Can view access lists; has full founder access; can use ''recover'', ''sync'', and ''clear'' commands; exempt from ''+b'' and can ''unban'' themselves; allowed to modify channel access lists; can use the ''invite'' and ''getkey'' commands; allowed to use ''op''/''deop'' commands; can use the ''unban'' command; can use the ''set'' command; allowed to use ''topic'' and ''topicappend''; allowed to ''voice''/''devoice''.
* **HOP**: Half Operator, a user who can update the topic, talk, and allow others to talk on ''+m'' and ''+t'' channels, Flags: ''+Atv''
Can view access lists; allowed to use ''topic'' and ''topicappend''; allowed to ''voice''/''devoice''.
* **SOP**: Super Operator, an operator able to set channel options and invite or unban users, Flags: ''+Aeiorstv''
Can view access lists; exempt from ''+b'' and can ''unban'' themselves; can use the ''invite'' and ''getkey'' commands; allowed to use ''op''/''deop'' commands; can use the ''unban'' command; can use the ''set'' command; allowed to use ''topic'' and ''topicappend''; allowed to ''voice''/''devoice''.
* **VOP**: Voice Operator, a user who can talk and allow others to talk on ''+m'' channels, ''+Av''
Can view access lists; allowed to ''voice''/''devoice''.
* **BOP**: Bot Operator, Flags: ''+AVotv''
Can view access lists; auto-voiced by ChanServ; allowed to use ''op''/''deop'' commands; allowed to use ''topic'' and ''topicappend''; allowed to ''voice''/''devoice''.
* **SUCCESSOR**: “God” Operator, channel successor, Flags: ''+ARSefiorstv''
Can view access lists; has full access as a successor; can use ''recover'', ''sync'', and ''clear'' commands; exempt from ''+b'' and can ''unban'' themselves; allowed to modify channel access lists; can use the ''invite'' and ''getkey'' commands; allowed to use ''op''/''deop'' commands; can use the ''unban'' command; can use the ''set'' command; allowed to use ''topic'' and ''topicappend''; allowed to ''voice''/''devoice''.
==== Flags Reference ====
/msg chanserv help flags
Syntax: FLAGS <#channel> [nickname|hostmask|group template]
Syntax: FLAGS <#channel> [nickname|hostmask|group flag_changes]
Permissions:
+v - Enables use of the voice/devoice commands.
+V - Enables automatic voice.
+o - Enables use of the op/deop commands.
+O - Enables automatic op.
+s - Enables use of the set command.
+i - Enables use of the invite and getkey commands.
+r - Enables use of the unban command.
+R - Enables use of the recover, sync and clear commands.
+f - Enables modification of channel access lists.
+t - Enables use of the topic and topicappend commands.
+A - Enables viewing of channel access lists.
+S - Marks the user as a successor.
+F - Grants full founder access.
+b - Enables automatic kickban.
+e - Exempts from +b and enables unbanning self.
The special permission +* adds all permissions except +b, +S, and +F.
The special permission -* removes all permissions including +b and +F.