$LJ::READONLY is set on in ljconfig.pl, the most commonly-accessed features which require database writes are disabled in some form. In most cases, this comes in the form of removing the auth fields and replacing them with a message saying the site is down. There are some special cases...
- talkread.bml loses some buttons from its
@linkele(the blue bar thing) which link to things which require database writes.
- The reply links on talkread.bml vanish, the first of which being replaced by a message explaining why.
- The delete links on comments vanish.
- talkpost.bml refuses to output anything bar an error message.
- The protocol handler returns a warning to clients at login, and error messages when commands are executed which do database writes.
- A little blurb goes on the front page.
- The support section loses the links to post a question and read questions (since you can't answer them right now anyway)
In addition to these, I also recommend the following changes to ljcom, which I don't do...
- Disable all of the stuff about paid accounts. It won't be nice if people try to buy paid accounts when the site's read-only and LiveJournal ignores the acknowledgement from paypal.
- Edit the dystopia BML scheme to display a small warning somewhere and also remove links to the main things which will require database edits.
The modification to
LJ::auth_fields is a hackish catch-all I just threw in to cover anything else in some way, relying on the fact that we never use auth fields for anything which doesn't edit stuff. At some point when readonly checking is added everywhere, that stuff should be removed because it doesn't really belong there.
I also fixed up some HTML to be well-formed XML but not everywhere.