Plugin developer prefixes

All plugin developers must have a prefix to name their plugins and use in plugin development.

A prefix is a three-character (alphanumeric) indication of who the plugin developer is, and precedes a plugin name with an underscore. For example, wet_haystack is one of several plugins by Robert Wetzlmayr. The prefix in this case is ‘wet’, which precedes the specific plugin name (‘haystack’) with an underscore. All together it forms the unique and complete name of the plugin. An underscore is used for each additional word in a compound name, for example smd_user_manager. Plugin names are entirely lowercase.

On this page:

Guidelines for choosing and using a prefix

There are some courtesies to keep in mind when registering a plugin prefix:

  1. You must have a Textpattern CMS support forum account, and you should provide the link to your forum profile when registering a prefix.
  2. You can only have one prefix.1
  3. Your prefix should be three alphanumeric characters. No less and no more. (Ignore any you see that defy this convention.)
  4. Register a prefix when you have a plugin ready for publication. Or to put it another way, don’t register a prefix and sit on it indefinitely without ever creating a plugin. This is just squatting, and it’s not fair to someone else who might like that prefix and have their first plugin ready. Unused prefixes go to the person who first has a plugin to share.
  5. You cannot use a prefix already used by another developer, even if that developer is no longer active in the community.2

How to register a prefix

When you’re ready to register a prefix, create an ‘issue’ in the Textpattern user documentation repo on GitHub and an editor will add it to the plugin developer prefix list.

Prefix owners, if you’re username is not linked with your forum profile and you would like it to be, create an issue as described indicating your forum profile link and it will be added.

Registered prefixes

The prefixes in the following table are registered, but see the guidelines above.

Prefixes are noted in relation to their owners (prefix/username). Owners are identified by their Textpattern CMS support forum usernames. Usernames link to forum profiles, not personal websites (which should be indicated in the profiles anyway).

Legend:

  • Red prefixes are off limits until further notice (notably “foo”).
  • Yellow prefixes are used internally by Textpattern and are off limits.
  • Green prefixes mean the developer has left the community and no plugins remain with that prefix anymore. These prefixes can be claimed by a new developer.
  • (?) next to a username means no forum profile is found and the status of the prefix is questionable. If an external link is known, it will be on the ‘?’. These prefixes could certainly be challenged for new ownership (see guidelines above).
  • (!) next to a username means the indicated developer has adopted all the original developer’s plugins, which were abandoned (orphaned).

A

  • aaa/jayrope
  • aam/Logoleptic
  • aao/aurelian
  • aba/aba
  • abc (for user docs only)
  • abl/developr
  • act/angryCat (?)
  • add
  • adi/gomedia
  • afa/Anton
  • ajt/segfault
  • ajw/Andrew
  • aka/AkaScooter
  • akh/tweak
  • ako/akokskis
  • aks/makss
  • akw/thekolonel
  • alt/GeertAki
  • an7/iaian7
  • anc/usonian
  • any/anyNeT
  • arc/monkeyninja
  • arg/argi
  • aro/rloaderro
  • asv/variaas
  • asy/Sencer
  • atb/atbradley
  • ats/schussat
  • aud/Alex McKee (?)

B

  • bab/benbruce
  • bau/bauhouse
  • bas/Bastian
  • beb/1beb
  • ben/Baseline_Benny
  • bep/alice_c
  • bit/bit
  • bkp/AkaScooter
  • bnk/Duncan Clarke
  • bos/Zanza
  • bot/redbot
  • bsl/polygon_monkey
  • btx/DougBTX
  • bud/andyb

C

  • cbe/CeBe
  • cbs/cbeyls
  • cfm/aeonflux
  • cgd/Caged
  • cha/chalito
  • chh/takshaka
  • chu/charmston
  • cjm/chrismc
  • ckr/Cedric
  • cng/chess
  • cnj/octover
  • cnk/chriloi
  • cnn/cnewkirk
  • cno/cnolle
  • csb/csandberg
  • css
  • cxc/cXc
  • cti/Celti
  • czg/cziggurat

D

  • dak/Kaiser
  • dca/Dean
  • dds/nemoorange
  • dem/demoncleaner
  • dfc/domfucssion
  • djw/wet (!)
  • dmp
  • dom
  • dow/dow
  • dru/Drew
  • dub/jamiew
  • dzd/Dragondz

E

  • e26/edduddiee
  • ebl/TheEric
  • eck/ecklesroad
  • ede/edeverett
  • egg/yatil.de
  • end
  • eoi/dubsky
  • esq/cain-mi
  • etc/etc
  • etz/Etz Haim

F

G

H

  • hak/hakjoon
  • has
  • hcg/hcgtv
  • hdd/Ron Hickson (?)
  • hed
  • hfw/DarkWulf
  • hhh/hoho
  • hpw/duffe
  • htn/grafzahl
  • hwm/hotwebmatter

I

  • ice/artagesw
  • ied/Bloke (!)
  • ign/igner
  • imm/mikhail
  • it/Sketch

J

  • ja/london567
  • jab/jbaty
  • jad/jdueck
  • jas/larry
  • jbb/Jeremie
  • jbe/jot.be,
  • jbx/grundgesetz
  • jcb/jimb
  • jcp/JohnAJ
  • jcv/grump.org
  • jdt/iioshius
  • jdw/JanDW
  • jea/Jeadorf
  • jfp/jordi.f
  • jgh/Rufnex
  • jgk/Rufnex
  • jgp/Rufnex
  • jjj/jascha
  • jk/Jeff_K
  • jmc/jufemaiz
  • jmd/jm
  • jmr/jmrhoades
  • jnm/juanjonavarro
  • jns/himynameisjonas
  • joe/joewils
  • jof/woof
  • joh/Slaktad
  • jrh/Jan H (?)
  • jsh/pericat
  • jtb/JeffClark
  • jvg/jeroenvg
  • jwl/grapeice925

K

L

  • lam/iblastoff
  • leo/LeonNet
  • lhg/1ukaz
  • low/JustinLow
  • lsx/LeeStewart
  • lum/Themroc
  • lwh/Luke Wesley-Holley (?)

M

  • mcb/mcbenton
  • mck/MarcoK
  • mcw/mikewest
  • mdn/Remillard
  • mdp/greenrift
  • mem/Manfre
  • mic/micampe
  • mik/mikkeX
  • mim/kemie
  • mka/Martin Kozianka (?)
  • mkp/michaelkpate
  • mlk/milkshake
  • mrd/mrdale
  • mrh/aesop1
  • mrs/marios
  • mrz/marz
  • mrw/nesher
  • msd/MattD
  • msv/Martin Svihla (?)
  • mta/morgant
  • mtp/plummerm

N

  • nab/nabrown78
  • nav
  • nhn/Skubidu
  • nok/anoke

O

P

  • pac/gaekwad
  • pap/tranquillo
  • pat/pat64
  • pax/johnstephens
  • pcs
  • phq/phq
  • phw/phiw13
  • plh/planeth
  • pnh/placenamehere
  • ppc/kusor
  • prad/fpradignac
  • pro/hilaryaq
  • psa
  • pub (‘public’; used for plugins resulting from community collaboration)
  • ptv/Borisch
  • pzc/prizmcloud

Q

None at this time.

R

  • r11/skipper
  • rah/Gocom
  • ras/rsilletti
  • rcb/Russell Brown (?)
  • rdi/ian
  • rdt/rdtietjen
  • rei/ReinierBiz
  • rlt/richtestani
  • rmc/ruairi
  • rob/Rob Bell (?)
  • rom/Romuald
  • rpc/ARCanine
  • rpg/leralle
  • rsd
  • rss/wilshire
  • rsx/ramanan
  • rtr/rob_roy
  • rvm/ruud

S

  • sab/supa
  • sac/saccade
  • saw/ninj
  • scs/steph
  • sdr/sderuiter
  • sed/net-carver
  • see/sthmtc
  • sen/gago
  • set
  • sgb/sungodbiff
  • sho/stephan
  • sir/fabio sirna
  • ske/skeptisch
  • skp/piyashrija
  • smd/Bloke
  • smf/txfrog1999
  • smu/e-sven
  • soo/jsoo
  • spc/spchampion
  • spf/spiffin
  • spi/photonomad
  • spr/springworks
  • srh/Vitruvius
  • ste/stefan
  • stm/monsta
  • stw/santheo
  • swf/swf

T

  • tab
  • tbs/thebombsite
  • tch/Sketch
  • tcm/tmacwrig
  • tda
  • tfu/carton
  • the
  • thg/the_ghost
  • tin/jeroen
  • tps/Tomsec
  • tok/ToK
  • tom/Sacripant
  • tpt
  • tru/truist
  • tsw/mwaldtha
  • tuk/paradotsky
  • txp

U

  • uli/uli
  • uri/urizen
  • upm/Mary

V

  • vag/vagari
  • vdh/larf
  • vg/Vincent Grouls (?)

W

  • wan/wanni
  • waz/wazdog
  • wcz/whocarez
  • wet/wet
  • wlk/Walker
  • wnp/datafirm
  • wm/watts
  • wow/nighthawk

X

  • xkl/nimnix

Y

Z

  • zcr/community (zem_contact modules)
  • zem/zem
  • zen/zenigy
  • zmk/maxk

Where to use the prefix

In addition to plugin names, you’ll apply your prefix in the following locations:

  • The names of PHP classes, functions, and global variables in the plugin’s code.
  • The database table and indices names.
  • The names of stored preferences in the _txp_prefs_ table and/or the $prefs array;.
  • Any global JavaScript variables or function names you use for modifying the backend or adding features to the front-end.
  • IDs, and to some extent, classes of HTML elements that you add to the backend interface.3
  • URL parameter names. Replace ?foo=bar&baz=1 with ?abc_foo=bar&abc_baz=1, where “abc” would be your own prefix.
  1. Sometimes a plugin developer will assume the prefix of a retired plugin developer when the former ‘adopts’ the latter’s ‘orphaned’ plugins. This is the preferred practice against simply changing plugin names. For example, username ‘wet’ has his own plugins (wet/wet), as indicated in the prefix table at bottom, but he’s adopted the orphaned plugins with prefix ‘djw’ too (djw/wet). 

  2. Prefix ownership may be challenged if it’s found that a developer has not created a plugin yet and is squatting on the prefix. In this case, you (the challenger) must produce the first plugin to earn ownership of the prefix in question. To challenge prefix ownership, bring the issue to light in the Plugin discussion forum, where others can help determine if the challenge is reasonable. 

  3. The exception to this is if an element of your markup is logically similar to an already existing core element and you wish it to be styled in the same way by themes. Doing this saves theme designers from having to write specific rules to target your plugin’s markup. 

See something wrong in this document? Outdated info, a broken link, faulty code example, or whatever? Please write an issue and we’ll fix it.