1 Date: Tue, 6 May 2008 22:23:15 +0200
2 Mime-Version: 1.0 (Produced by PhpWiki 1.3.14)
3 X-Rcs-Id: $Id: ReleaseNotes,v 1.81 2008-05-06 20:27:35 rurban Exp $
4 Content-Type: application/x-phpwiki;
6 pgsrc_version="2 $Revision: 1.81 $";
10 Content-Transfer-Encoding: binary
12 1.3.15 ?? 2008 Reini Urban, Sabri Labbenes, Marc-Etienne Vargenau
14 Improved dumping, pageset handling for format= with ActionPages.
15 e.g. dump pagesets or multi-page pdf's.
18 * fix PagePerm for multiple groups: not a member and undecided: check other groups
19 * fix rss button actions for special RecentChanges actions (UserContribs, PageHistory, ...)
20 * fix Bug#1749950 accesslog SQL duration float with ","
21 * fix template inclusion with a recursion cycle leading to crashes in blog PageInfo
22 * removed dynamic features from htmldump pages for more static pleasure
23 * ignore fatals and access-denied stowstoppers on multi-page dumps
24 * link only to existing pages on multi-page dumps (pagesets)
25 * fix Bug#1795420 by Sven Ginka: Use /U in preg_match
26 * ensure ending uploads slash even on user provided UPLOAD constants. Fixes plugin/UpLoad
27 * stablize Comment. substring search for basepages, do not tokenize.
28 * fix Bug#1792170 Handle " ( " or "(test" without closing ")" as plain word. Allow single string token "0"
29 * fix Bug#1752172 undefined method TextSearchQuery_node_or::_sql_quote()
30 * dba: fix sorting for empty mtime field
31 * LdapSearch: fix layout and logic
32 * FileInfo: fix Upload: links
33 * XHTML validation corrections (vargenau)
34 * avoid recursive modification when renaming a page like 'PageFoo to 'PageFooTwo' (vargenau)
35 * fix Bug#1904088 Some brackets links with \n cause the parser to crash
38 * changed SemanticSearch query semantics: all regex=auto terms with no regex chars (.+*?^$")
39 will be searched exact, and not with regex=auto. This means no word splitting, no substrings.
40 * ranked search for title and fulltext for non-SQL backends. Simple score function.
41 * allow comments in WikiGroup lists after username
42 * aesthetic request: remove ?action=edit after edit
43 * create interim pages as minor not see them in RecentChanges
44 * default theme: use standard search template (LiveSearch)
45 * [Help:CalendarPlugin] changed default start_wday from 0 to 1 (Monday)
46 * [Help:CalendarListPlugin] pages now in parallel with Calendar: year + month args as start base.
47 The behaviour before 2007 with last/next_n_days was to start now.
48 * removed fpdf support. only use external converters
49 * change rename action from access perm change to edit: allow the signed-in user to rename.
50 * htmldump copies locally uploaded images also
51 * improve SemanticRelations layout: direct links, support attributes and relations filters
52 * LdapSearch: use default basedn
53 * WhoIsOnline cleans stale sessions
54 * remove Upload button from edit
55 * changed Wikiwyg editor workflow (labbenes)
56 * allow <s> to strike; update Help for <s> and <strike> (vargenau)
57 * RichTable plugin: enrich syntax for attributes (vargenau)
58 * more icons for toolbar (vargenau)
59 * UserPreferences: specific message when only one preference is updated (vargenau)
62 * PageList supports listtype=ul,ol,dl. dl used by FullTextSearch
63 * pageable textsearch results
64 * external search button by using Search: and searchtype=external
65 * added UniversalWikiEditButton to MonoBook, default, blog. More themes later.
66 * add INSECURE_ACTIONS_LOCALHOST_ONLY for advanced security actions
67 * enable "^A or ^B" pages argument for PageLists: e.g. splitted actions for large htmldump's
68 * dba: add args to check and rebuild (full or links only)
69 * RecentChanges: add category, pagematch arguments
70 * add UriResolver needed for external rdf access
71 * AppendText: support pages argument: append to multiple pages
72 * new pages: SpecialPages, LockedPages (vargenau)
73 * implemented Mediawiki-like syntax for tables (vargenau)
74 * enable RecentChangesCached as box, improve performance.
76 1.3.14 July, 1 2007, Reini Urban
79 * Fix the broken LDAP fix from 1.3.13p1
80 * fixed sortby with multiple pagelists
83 * changes all themeinfo.php files, moved global to method load() to be
84 easier derived from custom theme classes, main now calls $WikiTheme->load
85 * MailNotify is now silent unless DEBUG
88 * added experimental ATOM support
89 * added Changes and Upload button to edit
91 1.3.13p1 June, 9 2007, Reini Urban
93 An immediate security fix for 1.3.13, plus some minor fixes.
95 * LDAP Auth: Disallow empty passwords! Certain ldap implementations return true
96 on empty passwords with ldap_bind().
97 * LDAP Auth: fix password quoting
98 * fix action=upgrade for dba, rename nosql to nodb
99 * fixes SpamBlockList config file locations (config/two-level-tlds, config/whitelist)
100 * enable $MailNotify->onChangePage
101 * fix display of pagenames containing ":" in certain lists
102 * fixed backend asArray access to iterators (DebugInfo with SQL)
103 * fix wrong PhpWikiCvs InterWikiMap entry
104 * fix syntax error in pgsrc/Help%2FActionPage
105 * fix case in pgsrc/Help%2FAsciiSVGPlugin
106 * fix links in pgsrc/Help%2FSemanticRelations
107 * fix pgsrc/Help%2FWikiPlugin
110 * allow \n and single letter pages in {{ }} template syntax.
111 patch #1732793 by AlJeux and ReiniUrban
112 * with ENABLE_SPAMBLOCKLIST check only new external links:
113 max 5, allow interwiki links, and improve failed output.
115 1.3.13 June, 2 2007, Reini Urban
117 This is major feature release which will be the base for the stable
118 1.4.0. The highlights are SemanticWeb support, basic support for
119 various WYSIWYG editors (not yet stable), a stable ~MonoBook (wikipedia)
120 and Blog theme, enabled acdropdown support (~LiveSearch), postgresql and
121 oracle enhancements, moving Help pages into Help/, support different
122 charsets in pgsrc and Windows NTLM auth support via HttpAuth, a lot
123 more plugins and enhancements. UTF-8 should work.
126 * fix UpLoad to disallow all php extensions
127 * DB: use ANSI SQL statements (oracle by Bob Peele & Christopher Jones,
128 postgresql by Reini Urban)
129 * fixed blog, MonoBook, sidebar and wikilens theme layout
130 * fix Template and CreatePage variable expansion
131 * xhtml dump for subpages into subdirectories, fixed filenames and subdir names
132 * fixed loading pages into foreign charsets (such as utf-8)
133 * ErrorManager: patch #1438439 by Matt Brown:
134 Only set no-cache headers when error output is generated
135 * ImageLinks: patch #1348996 by Robert Litwiniec
136 * fix bug #1327912 numeric pagenames can break plugins (Joachim Lous)
137 * improve pdf output via external converter
138 * force integer constants to be set as integer
139 * partially fix CRC overflow in ziplib (Bob Apthorpe)
140 * testsuite: force C locale and EN $LANG
141 * fixed display of edited InterWikiMap. static var issue
142 * fixed display of "Merge and Edit: pagename" header in merge edit (hack!)
143 * WikiFormRich: fix name=value parsing. fix limit with plugin-list invocations
144 * plugin/Diff: fix lib/diff loading conflicts by removing duplicate classes
145 * plugin/Ploticus: support PLOTICUS_PREFABS config.ini setting (documented but never worked)
146 * fix edit:locked label selection: typo, was edit:lock
147 * fixed moacdropdown integration
148 * fixed fortune error handling
149 * fixed limit handling with multiple pagelists: don't overwrite request arg
150 * change PageDump Content-Type header for download to application/octet-stream to avoid
151 pesty .txt suffixes on windows clients
152 * fixed wikilens with dba and RATING_STORAGE=SQL. RATING_STORAGE=WIKIPAGE not yet fixed.
153 * fixed action=diff error with external links
156 * add UpLoad policy DISABLE_UPLOAD_ONLY_ALLOWED_EXTENSIONS, default: false
157 * SemanticWeb: add linkrelation support, getPageLinks returns now an array of hashes.
158 optimize get_links for relations.
159 * add new linksyntax "[:pagename]" inside square brackets only, not to store backlinks.
160 [:DontStoreLink] (experimental)
161 * moved default help pages to Help/ subpages. Partially for "de" also.
162 * generalized ENABLE_HTMLAREA3 to ENABLE_WYSIWYG
163 * support more WikiFormRich method arguments: url, dynurl, xmlrpc, dynxmlrpc, plugin,
164 the autocomplete option for pulldown[] and editbox[] and the new combobox[] widget.
165 Improve WikiFormRich layout.
166 * DB: foreign key support in schemas, simplify methods
167 * remove user table: upgrade from SQL db.
168 * updated locale for it, de and es (google translation)
169 * improve loading multiple version archives such as full zipdumps. force temp. overwrite.
170 support loadfile for multipart archives (full dumps) automatically
171 * omit actionbar from pdf output
172 * support charsets in pagedumps for loadfile and virgin setup
173 * _BackendInfoPlugin prints linkinfo also.
174 * ExternalSearchPlugin displays the button at the right. Change it with
175 EXTERNALSEARCH_DEFAULT_BUTTON_POSITION = left, or the argument button_position=left or none.
176 * disabled postgresql optimize() in favor of autovacuum,
177 enable it in the backend method if the web user is the table owner (security risk)
178 * print "Ignored stoplist words" on FullTextSearch,
179 add FULLTEXTSEARCH_STOPLIST constant,
180 make TextSearchQuery->_stoplist localizable
181 * fix arg order in WikiDB_backend_search()
182 * protected tests. only allow localhost
183 * optimize ArchiveCleaner for the new default case (since 1.3.11): Keep all revisions.
184 * changed the default DB backend from gdbm to dba db4
185 * changed action=upgrade to check and store a db version
186 * don't loadfile *.orig files (this might be a limitation. sorry)
187 * rename _AuthFile to DebugAuthFile in upgrade
188 * updated most template files for harmonisation
189 * changed default LiveSearch method in search.tmpl from url to xmlrpc. faster and less hackish.
190 * fixed all templates with missing revision check. can be false.
191 * rewrote and redefined WikiDB::listRelations. list only all relations as array.
192 * changed Semantic attribute syntax from ":-" to ":=" (relevant to cvs users only)
193 * change TextSearchQuery handling of regex=pcre: plain string, no parsing at all,
194 detect and apply modifiers.
195 * enhance text2png arguments and features. See Help:text2pngPlugin
196 * Template plugin: allow passing arbitrary args, not just in vars.
197 * added old gd support to PhotoAlbum thumbs (ImageTile)
198 * Improve LdapSearch plugin and add action page.
199 * Improved wikilens theme.
200 * Changed all default Template vars to expanded to uppercase: PAGENAME, USERID, ...
201 * CSS: no MonoBook css hacks/requests, check special browser versions in php
204 * add SemanticRelations syntax, db structure and attribute units.
205 Sample: pagename=SanDiego is_a :: city => SanDiego relation = is_a, linkto = city
206 population := 1,305,736 (numeric units)
207 Store unified attribute in pagedata.
208 * new experimental WYSIWYG edit library framework:
209 WikiWyg, tinymce, FCKeditor, htmlarea3, htmlarea2, spaw
210 * new wysiwyg_editor feature by Jean-Nicolas GEREONE and Sabri LABBENE (experimental)
211 * added postgresql tsearch2 support
212 * new experimental flatfile backend: readable page source files (experimental)
213 * added new xmlrpc and SOAP methods: listPlugins, getPluginSynopsis, mailPasswordToUser,
214 getUploadedFileInfo, listRelations, callPlugin, linkSearch
215 * new plugins: SemanticSearch, SemanticRelations, LinkSearch, ListRelations,
216 FileInfo, BoxRight, PasswordReset, WatchPage, SpellCheck, SearchHighlight,
218 * add <nowiki></nowiki> tag: Transform only html markup and entities
219 * new option DISABLE_MARKUP_WIKIWORD to force [ ] for links
220 * new option ENABLE_MARKUP_DIVSPAN (experimental)
221 * new option PLUGIN_MARKUP_MAP for xml-style plugin syntax (experimental)
222 * support Windows NTLM Auth via HttpAuth: mod_ntlm (apache1+2. also on linux)
223 and mod_auth_sspi (apache2. better, but windows only)
224 * new stable option ENABLE_SEARCHHIGHLIGHT with actionpage and plugin SearchHighlight.
225 In CVS for some time called USE_SEARCHHIGHLIGHT.
226 * patch #1377011 by Matt Brown: add DATABASE_OPTIMISE_FREQUENCY
227 * new options db-check and db-rebuild for WikiAdminPlugin.
228 You can now retransform all pages at once.
229 * new MailNotify class, simplified WikiDB.php
230 * added "Printable version" js to monobook theme. See License in
231 http://www.howtocreate.co.uk/jslibs/termsOfUse.html
232 * new ActionButton function for MonoBook with selected state. (tab state)
233 * added SyncWiki plugin to sync pages and uploads with a master wiki.
234 (foreign auth not yet solved)
235 * added boolean UPLOAD_USERDIR to upload into user-specific directory.
236 * added support for multiple page arguments in BackLinks. Logical AND.
237 * added wikidb->backend->rebuild()
238 * added "Keep old" and "Overwrite with new" buttons and actions for loadfile merge edit.
239 * added lib/XmlRpcClient, xmlrpc methods to lib/HttpClient and acdropdown.js. JSON not yet.
240 * created Help/*Plugin stubs for *ALL* plugins in pgsrc
241 * added a new _DEBUG_REMOTE flag to debug into remote sessions (xmlrpc, ajax, ...)
242 * added WikiDB::linkSearch and backend/dumb/~LinkSearchIter.php. Mainly for SemanticSearch,
243 and LinkSearch, but can be used for SemanticSearchAdvanced (combined queries as <ask>) and
244 BackLinks et al also.
245 * added Calendar display_weeknum argument
246 * added new AsciiSVG plugin
247 * added new YouTube plugin
248 * added XmlRpcTest tests
249 * Added nopage argument to PageList and all its plugins. Unique rows only not yet.
250 * Added author, owner argument to RecentChanges and added action pages:
251 MyRecentChanges, MyRecentEdits, UserContribs
252 * added RecentChanges format=contribs for MonoBook theme: => UserContribs
253 * added MonoBook accesskeys
255 1.3.12p3 Jun, 18 2006, Reini Urban:
257 * fix [/Subpage] links
258 * fix pref storing of already crypted passwords. bug #1327470 (Tom Harding)
259 * fix cache headers on errors (@ob_end_flush issue). (matt brown)
260 * fix BogoLogin when ENABLE_PAGEPERM=false. patch #1438392 by Matt Brown
261 * unique WIKI_ID cookies per WIKI_NAME. patch #1333957 by Matt Brown
262 * added DATABASE_OPTIMISE_FREQUENCY feature. patch #1377011 by Matt Brown
263 * don't check lock_table priv on action=upgrade
264 * fix _accesslog->logtable and _is_buffering_output warnings (uckelman)
265 * do not print wrong length header on url-rewriting. bug #1376007
266 * fix pref->set: Error generated when login out. bug #1355533 (Thierry Nabeth)
267 * fix default preferences for editheight maxrows, by Manuel Vacelet.
268 * fix DBAUTH arguments to be position independent, bug #1358973
269 * add PdoDbPassUser user
270 * fix output of Homepage prefs update
271 * update config-dist.ini format from CVS
272 * update configurator.php from CVS
273 * print optimize wikidb only when DEBUG
274 * simplify messages for translators
275 * added ImageTile.php
276 * added tsearch2 to doc/INSTALL.pgsql
277 * added basepage to Cached_WikiLink::asXML for subpages within CreateTOC
278 * print filename on dba access error
279 * use bind_textdomain_codeset. bug #1480077 (Kai Krakow)
280 * make TextSearchQuery->_stoplist localizable and overridable within config.ini
281 * fixes for mysql 5.x wantedpages join
282 * add rel=nofollow to more actions. patch by Matt Brown
283 * add verify to RevertPage, display reverted page as template
284 * update plugin/CalendarList: patches by mpullen and banjo
285 * update plugin/GraphViz
286 * added plugin/PasswordReset
287 * fixed hash() in plugin/RateIt
288 * plugin/_AuthInfo: protect File passwords
289 * added Captcha to Crao edit template
290 * added MacOSX Pdf button
291 * fixed Portland and Wordpress editpage template
292 * removed Wordpress buttons, transparent default buttons should be used.
293 * disabled RelatedChanges button
295 1.3.12p2 Mar, 7 2006, Reini Urban:
297 * fix change prefs for File WikiUser
298 * fix HomepagePrefs update message
300 * apply PluginToolbarButton fix from cvs
302 1.3.12p1 Mar, 4 2006, Reini Urban:
304 * fix "Call-time pass-by-reference" in CreateBib
305 * fix parse error in SiteMap.php
307 1.3.12 Mar, 4 2006, Reini Urban:
309 Rename function hash() and method final() for php-5.1 compatibility.
310 Add various backports from cvs:
314 * Fix "Call-time pass-by-reference has been deprecated" errors,
315 allow_call_time_pass_reference = Off
316 * fix broken locale update for php-5.1.1
317 * default locale fix by Thomas Harding
318 * fix Bug #1381464 "Duplicate functions" with php-5.1.1
319 * InterWikiMap: allow spaces in paths, even implicitly. fixes bug #1218733
320 * fix 'VOID' in TextSearchQuery
321 * remove LIMIT 1 in ADODB
322 * fix SQL WantedPages
323 * fixed fulltext search and stoplist handling
324 * fix bug #1327912 numeric pagenames can break plugins (Joachim Lous)
325 * fix xmlrpc and tests/unit for !register_long_arrays
326 * ensure absolute uploads path
327 * fix GoogleMaps syntax error
328 * fix ListPages for non-SQL backends. Add top3recs as default only if
329 ratings are available
330 * plugin/PageTrail improved empty cookie
331 * plugin/_WikiTranslation: protect against 2x define
332 * remove mysql specific ISNULL()
333 * fix signout pref error
334 * don't log on ACCESS_LOG_SQL < 2
337 * cache EditToolbar popup content
338 * beautify SCRIPT lines
339 * added cfg-able markups only for default TextTransformation, not
341 * add a proper Content-Encoding: gzip if compressed, and omit Content-Length then.
342 Trick to send the correct gzipped Content-Length
343 * set dsn after SQL/ADODB switches in WikiDB backends for easier unit testing
344 * email notifications: better From: header
345 * add DBAUTH_PREF_INSERT: self-creating users. by John Stevens
346 * improved WikiUser/Ldap error description
347 * cache SystemInfo methods
348 * VisualWiki: remove INCLUDED from EXCLUDED, includes override excludes.
349 * improve postgresql schemas (tsearch2 and stored procedures not yet)
352 * added NUM_SPAM_LINKS as config.ini option
353 * new ENABLE_SPAMBLOCKLIST, lib/SpamBlocklist.php:
354 check external links against surbl.org and bl.spamcop.net
355 * added Captcha class and better spiral
356 * added get_captcha_random_word() contributed by Dan Frankowski
357 * dumphtml when not at admin page: dump the current or given page
358 * added plugin FileInfo
359 * major PhotoAlbum feature enhancements by Thomas Harding:
360 slides mode, real thumbnails
361 * add more backends to the testsuite (PearDB_pgsql, ...)
363 1.3.11p1 Sep, 18 2005, Reini Urban:
366 * added missing pgsrc/OldStyleTablesPlugin
367 * fixed OldStyleTables plugin with args
368 * protect against Content-Length if headers_sent()
369 * fixed ENABLE_MARKUP_TEMPLATE warning if undefined
370 * fixed writing unwanted accesslog sql entries
371 * fixed WikiAdminSelect preselection
372 * fixed passencrypt.php for PHP5 !register_long_arrays
373 * fixed configurator for DATABASE_DSN, USER_AUTH_ORDER
376 * optimized explodePageList to use SQL when available
377 (titleSearch instead of getAllPages)
378 * added optimization for a new ALL textsearch token
379 (* => pcre: .*, sql: %)
380 * configurator takes default description from config-dist.ini
381 * added some missing configurator constants
383 1.3.11 Sep, 11 2005, Reini Urban, Joel Uckelman:
385 Lots of bugfixes, and some feature and performance enhancements.
386 A new EDIT_TOOLBAR from mediawiki, more page permission enhancements,
387 reduced memory usage for pagelists which need no page content,
388 related improvement for OldMarkup crashes because of PCRE memory exhaustion.%%%
389 New <!plugin-list !> syntax and PhpWiki:PageListLibrary args.%%%
390 Because of SQL changes you'd need to ?action=upgrade to update for SQL.
393 * fixed crash after login, by eliminating endless recursion in
394 group isAdmin() checks
395 * fixed syntax errors in signin.tmpl
396 * fixed missing DEBUG warnings (Support #954260)
397 * PhpWiki is now allow_call_time_pass_reference = Off safe (php.ini)
398 Some external libraries are not (Pear_DB odbc, adodb oracle)
399 * fixed sql statements for pagedata where it is not needed, fixing the
400 typical PageList memory exhaustion on simple page lists.
401 cached_html is handled complete seperate now.
402 * fixed and improved WikiDB pageid caching.
403 * fixed some WikiGroup errors for WIKIPAGE and DB
404 * fixed JS_SEARCHREPLACE
405 * fixed rename with dba
406 * fixed Today link in all templates if USE_PATH_INFO = false
407 * fixed PluginManager fatal error line 222
408 * utf-8 pagenames fixed (typed foreign names from IE)
409 * CGI: no PATH_INFO fix
410 * fix some too loose PhpWiki:PagePermissions for signed, but not authenticated users
411 (admin, owner, creator), and edit and view for Bogo and Password users
412 * security fix for create ACL: action=edit is now checked for create
413 * fixed important WikiDB bug with DEBUG > 0: wrong assertion
414 around line 172 (#954648)
415 * fixed flatfile ArchiveCleaner assertion
416 * RssFeedPlugin stability fix for empty feeds or broken connections
417 * fixed Sidebar theme CSS, added existing dates to jscalendar
418 * fixed PhpWiki:ImageLinks, broken since 1.3.10 (Bug #956068)
419 * fixed lib/pear/File_Passwd loading
420 * TranslateText: verbatim needed a pagebreak
421 * fixed duplicate session_id warning with adodb
422 * fixed adodb ~DbPassUser login
423 * fixed external ~DbPassUser login
424 * fixed adodb action=upgrade
425 * fixed ~FilePassUser locking problems and session handling
426 * fixed a lot of LDAP auth and group issues
427 * fixed LDAP options handling (by John Cole)
428 * fixed possible security problems: allowing only posixly strict usernames,
429 and an actual LDAP Injection problem, detected by Steve Christey, MITRE.
430 * honor s=wildcard arguments for ~WikiAdmin plugins
431 * fixed flatfile assertion (#963268) - check existing previous version
432 * fixed all msg references from index.php to config/config.ini
433 * fixed immediate LANG and THEME in-session updates if not stored in prefs
434 * fixed USER_AUTH_POLICY=old, use only USER_AUTH_ORDER methods (besides ~HttpAuth)
435 and removed LDAP, POP3, IMAP default configs.
436 * RelatedChanges: fixed days links
437 * fix Rename: Change pagename in all linked pages
438 * fixed PhpWiki:PageChangeNotification for not-current users
439 * fixed UpLoadPlugin for filenames with space (Bug #969532)
440 * fixed label support for CreateTocPlugin (Bug #969495)
441 * fixed Apache2 crashing with old markup and the CreateTocPlugin.
442 * catch fatals and request->args changes on dumping
443 * fixed unneeded UserPreferences plugin login screen on dumphtml
444 * catch SOAP fatal on GooglePlugin without GOOGLE_LICENSE_KEY
445 * silently ignore jshide argument on MacIE for AddCommentPlugin and CreateTocPlugin
446 * fixed xmlrpc to be able to use the native xmlrpc extension.
447 * fixed xmlrpc wiki.listLinks method: "name" => "page" param
448 * fixed xmlrpc security not using eval on usercode anymore
449 * fixed WikiAdminUtils behaviour on POST
450 * fixed strict login on "Db" (by Mikhail Vladimirov)
451 * more /tmp warnings on flatfile (by Joel Uckelman)
454 * ~WikiAdminSetAcl functional
455 * enabled PhpWiki:PagePermissions for all admin plugins (no admin required):
456 Remove, Rename, Replace, ~SetAcl, Chown
457 * renamed DB_Session.php to ~DbSession.php and moved libs to a subdir
458 * new Error-style with collapsed output of repeated messages
459 * whitespace trim pagenames to avoid abuse
460 * no double login page header, better login msg.
461 * improved ~FileFinder include_path logic (~NormalizeLocalFileName, ...)
462 ** init global FileFinder to add proper include paths at startup
463 adds PHPWIKI_DIR to the front if started from another dir, lib/pear to the end.
464 ** fix slashify for Windows
465 * check more config-default and predefined constants
466 * ~AutoSplit pagenames at subpage seperators, esp for Sidebar theme
467 * improve Pagelist layout by equal pagename width for limited lists
468 * added CPAN, OsFaq2, WikiLens to interwiki.map
469 * ExternalSearchPlugin useimage arg (RFE #952323)
470 * simplified some strings for easier translation
471 * added hash and object support for ~SessionPassUser userid session variable
472 * auth page=>DB ~PassUser upgrade: delete existing Page prefs, if Db prefs are saved.
473 * vastly improved french locale support, which is now complete (by Pierrick Meignen).
474 english, german and french are now completely translated. The others partially.
475 * improved ~SetupWiki (virgin setup) loading all required action pages in english,
476 if no foreign translation found (by Pierrick Meignen)
477 * show RelatedChanges only if minimum two links on the current page.
478 * PageDump: ViewSource link, better actionpage usage, MessageID TZ
479 * brought ~WikiUser (old) uptodate
480 * added owner and acl fields to dumps
481 * import GOOGLE_LICENSE_KEY and FORTUNE_DIR from config.ini
482 * renamed global $Theme to $~WikiTheme (gforge nameclash)
483 * aggressive WikiDB and cache memory optimization: don't cache %content
484 and _cached_html if not needed.
485 * PageDump added format=backup: dump all revisions.
486 * force mysql to use auto_increment page.id for performance reasons.
488 * extended all plugins which take "pages" and "exclude" params to accept
489 <!plugin-list !> pagelists
490 * enabled limit, exclude and sortby PageList options for almost all db backends natively
491 * improved SqlResult: templates and variable expansion.
492 automatic paging not yet.
493 * use latest Pear DB features, which will break on older PearDB libs.
494 (escapeSimple). Use INCLUDE_PATH to override.
495 * INCLUDE_PATH is now prepended, not appended. PHPWIKI_DIR is forced to be first.
496 * rewrote OldTextFormattingRules, AnciennesR%E8glesDeFormatage
497 for proper importing (PCRE+memory related crashes on older php's)
498 * added extra page.cached_html column. ?action=upgrade or PhpWikiAdministration
499 "Convert cached_html" is needed to convert your old pagedata "_cached_html".
500 * page deletion is now undoable and being seen in RecentChanges. Purge pages
502 * zipdump and dumphtml contains now images, buttons and css
503 * improved _WikiTranslation performance with gettext extension
504 * moved DbSession methods to extra files as with WikiUser files.
505 * changed config.ini options:
506 KEYWORDS: "Category:Topic" => "Category* OR Topic*",
507 KEYWORD_LINK_REGEXP removed,
508 * action=dumphtml dumps only the current page unless done from PhpWikiAdministration
511 * new ENABLE_EDIT_TOOLBAR (from mediawiki), JS_SEARCHREPLACE,
512 AddCategory, AddPlugin buttons
513 * new other config options:
514 ** ENABLE_PAGEPERM to turn off ACL (no owner at the statusline if off)
515 ** FORTUNE_DIR to enable random quotes for new pages
516 ** GOOGLE_LINKS_NOFOLLOW, ACCESS_LOG_SQL, BABYCART_PATH, BLOG_DEFAULT_EMPTY_PREFIX,
517 CATEGORY_GROUP_PAGE, DATABASE_PERSISTENT, DBADMIN_PASSWD, DBADMIN_USER,
518 DEFAULT_DUMP_DIR, DISABLE_GETIMAGESIZE, ENABLE_DOUBLECLICKEDIT,
519 ENABLE_LIVESEARCH, ENABLE_MODERATEDPAGE_ALL, ENABLE_RAW_HTML_LOCKEDONLY,
520 ENABLE_RAW_HTML_SAFE, ENABLE_SPAMASSASSIN, ENABLE_XHTML_XML,
521 GOOGLE_LICENSE_KEY, HTML_DUMP_DIR, LDAP_OU_GROUP, LDAP_OU_USERS
522 PLUGIN_CACHED_CACHE_DIR, PLUGIN_CACHED_DATABASE, PLUGIN_CACHED_FILENAME_PREFIX,
523 PLUGIN_CACHED_FORCE_SYNCMAP, PLUGIN_CACHED_HIGHWATER,
524 PLUGIN_CACHED_IMGTYPES, PLUGIN_CACHED_LOWWATER, PLUGIN_CACHED_MAXARGLEN,
525 PLUGIN_CACHED_MAXLIFETIME, PLUGIN_CACHED_USECACHE, TEMP_DIR, USECACHE,
526 USE_EXTERNAL_HTML2PDF, ENABLE_MARKUP_COLOR, ENABLE_MARKUP_TEMPLATE
527 * implemented WikiDB page creator and ownership
528 * added paging support for simple one-column pagelists
529 * added new PageList options: cols, azhead, comma, commasep, ordered
530 and enabled the new args on most plugins.
531 * new pagename utf8 detection logic (from mediawiki)
532 * added action revert, with button from action=diff
533 * added new <!plugin-list PluginName args!> syntax within plugin args
534 * new plugin IncludePages, esp. for <!plugin-list !>
535 * added template variable expansion support to the CreatePagePlugin
536 * added new <!plugin-list PluginName args!> syntax within plugin args
537 * new plugin IncludePages, esp. for <!plugin-list !>
538 * added template variable expansion support to the CreatePagePlugin
539 * WikiSpam prevention:
540 ** On GOOGLE_LINKS_NOFOLLOW add rel=nowfollow to all external
541 links, unless the author was authenticated.
542 ** max 20 new links hardcoded
543 ** new babycart module interfacing SpamAssassin
544 * added WikiPluginCached support for image maps, static cache in uploads/ and SVG
545 * added case-sensitive/insensitive and regex searching, replace also
546 * added action=pdf: only page formatter missing, use USE_EXTERNAL_HTML2PDF instead
547 * new ~XmlParser, ~HtmlParser: new libs for HTML->wiki import and htmlarea3 support
548 * new action=chown|setacl|rename|dump action shortcuts pointing to the plugin
549 * new SyntaxHighlighter plugin (based on work by alecthomas),
550 needs highlight from http://www.andre-simon.de/
551 * new PloticusPlugin. Full application/xhtml+xml support not yet
552 (javascript document.write() not supported with ENABLE_XHTML_XML)
553 * new ListPages plugin (by Dan Frankowski)
554 * new TeX2pngPlugin (by Pierrick Meignen)
555 * added support for ?force_unlock=1 parameter for stale File_Passwd locks
556 (should not be needed anymore, we lock only when we actually change the passwd)
557 * added mysql-4.1 fix at action=upgrade,
558 added CACHE_CONTROL NONE => NO_CACHE config.ini fix to action=upgrade
559 * author, owner, creator support for WikiAdmin* and AllPages plugins:
560 ** AllPagesCreatedByMe, AllPagesLastEditedByMe, AllPagesOwnedByMe
561 * added option regex to ~WikiAdminSearchReplace and ~WikiAdminRename
562 * added oracle PearDB backend (by Philippe Vanhaesendonck)
563 * added experimental SearchHighlight feature (not for HTML yet)
564 * added experimental LiveSearch feature
565 * added [OverWrite All] button to loadfile action on the first page.
566 * added [Load & OverWrite] button to PhpWikiAdministration
567 * performance: use cached static config/config.php, if it's writable by
568 the webserver. (experimental)
569 * added ACCESS_LOG_SQL &1: read, &2 write. new accesslog sql table.
570 for various log analysis: abuse prevention, recent referrers.
571 * added more PageChangeNotification on other actions: rename, remove.
572 changed subject on create. Collapse mult. emails to one.
573 * added new PhpWiki:WikiFormRich plugin
574 * added new AppendTextPlugin (by Pascal Giard)
575 * added RSS2 link (format=rss2) in RecentChanges. (no cloud channel yet)
576 * added PhpWikiAdministration WikiDB buttons:
577 [Purge all empty unreferenced pages], [Convert cached_html]
578 * (nyi) new experimental ModeratedPage feature. (i.e. delayed POST actions)
579 * new edit "[] old markup [Convert]" button to convert and save to new markup.
580 * new LinkDatabase plugin and actionpage for the http://touchgraph.sourceforge.net/ ~WikiBrowser
581 * new hyperwiki applet in the Sidebar theme. See http://hypergraph.sourceforge.net/
582 * new xmlrpc methods: putPage, mailPasswordToUser
583 * new xmlrpc test framework
584 * action=upgrade performs now a mysql LOCK TABLE privileges check and fix
585 * action=upgrade asks now for the admin's user and password if not defined
586 * added lib/ASCIIMathPHP and AsciiMath plugin
587 * new AnalyseAccessLogSqlPlugin (by Charles Corrigan)
588 * new TemplatePlugin, optionally mediawiki-style {{Template}} syntax
589 * new ENABLE_ACDROPDOWN moacdropdown library. fast xmlrpc communication nyi
592 * support remove for $WhichDatabase = file
595 * support php5 with register_long_arrays = off
597 PhpWiki 1.2.9 bugfix:
598 * Jose Vina fixed MostPopular sorting for dba and dbm,
599 which was broken since 1.2.3
601 1.2.8 (the old-stable branch) Jan, 30 2005, Reini Urban:
602 * register_globals=off fix:
603 fix and centralize broken register_globals=off logic.
604 * update message catalog
605 * replace mysql_pconnect by mysql_connect
607 1.2.7 (the old-stable branch) Jan, 6 2005, Reini Urban:
608 PhpWiki 1.2.7 backport cvs release-1_2-branch enhancements never released with 1.2.3-1.2.6:
609 * full xhtml conformity
610 * split_pagename in title and header to help google
611 * "INSTALL.Mac OS X" added from cvs
612 * lib/zipfile.php: Content-Disposition: attachment
613 * lib/config.php, lib/stdlib.php: support new USE_LINK_ICONS and AUTOSPLIT_WIKIWORDS,
614 better i18n $!WikiNameRegexp
615 * re-added images/* LINK_ICONS, pre-calculate DATA_PATH
616 * locale/*: fix and update strings and templates esp. for german,
617 * index.php: urlparser extended to omit &start_debug=1 and other args
618 * added minor_edit checkbox
619 * print more meta tags: robots, favicon, language and PHPWIKI_VERSION
621 1.2.6 (the old-stable branch) Dec, 19 2004, Reini Urban:
622 ;: flatfile fixes and enhancement:
623 * fixed !TitleSearch and Backlinks for flatfile.
624 * enable MostPopular (hitcount storage) for flatfile
626 1.2.5 (the old-stable branch) Nov, 28 2004, Reini Urban:
627 * works with register_globals=off
628 * adds user/password to pgsql,
629 * fix zip and dumpserial on dba, dbm, msql and file,
630 * and fixes a minor (un)lock issue, displaying the (un)locked page afterwards
631 and not the FrontPage.
633 1.3.10 May, 13 2004, Reini Urban, Joby Walker:
635 ;: In short: paging support, adodb rewrite, permission problem fixed.
638 * fixed severe permission problem:
639 Default permissions not honored. Everybody was able to edit.
640 * set UserPreferences for bool and int fixed
642 * dba open problems improved, but not generally fixed
643 * fixed dba session reading, but still broken
644 * support wikiword links and image links in RichTable content,
645 backlinks still not working.
646 * fixed navbar links in theme smaller, and made them default
647 * fixed loading of localized pagenames on action=upgrade
648 * fixed interwiki.map loading on certain PrettyWiki setups
649 * re-enabled php-4.0.6 support (broken since 1.3.8: superglobals, array_key_exists),
650 4.0.4-pl1 and 4.0.5 do work, but not stable enough.
651 * fix running phpwiki in "http://server/" (empty DATA_PATH)
652 * fix PhpWiki:PrettyWiki detection: starter script includes index.php,
653 and include main.php by its own to override certain config values.
654 * fix WikiAdminRemove arguments passed from WikiAdminSelect,
655 WikiAdminRemove deleted too many args if passed from WikiAdminSelect
656 * session transportation improved, no db objects stored
657 * PageGroup support for [links] and subpages
658 * HttpClient fixes for older php's
659 * RssFeed for allow_url_fopen=false, IMAGE support, empty ITEM list
660 * Theme buttons are now also searched in the default theme
661 * numerous other minor bugfixes.
664 * ADODB update from ancient mysql-only, to 4.21 with all supported databases.
665 transaction support, with mysql locking-workarounds
666 * pear not in our include_path anymore: either use your pear or our pear,
667 by adding it to your include_path or not. use now 1:1 copies of pear libs.
668 * CreateToc parses now headers with links and formatting optionally, if
669 TOC_FULL_SYNTAX is defined
670 * PageChangeNotification: userids, not emails are printed
671 * default theme navbar consistency: linkButtons instead of action buttons
672 * _~WikiTranslation what=buttons, noT=1, nolinks=1
673 * ~SetupWiki (virgin setup) also loads all mandatory pages now
674 and overwrites ReleaseNotes
675 * PageChangeNotification changed subject to "[WikiName] Page change %s",
676 update your filters accordingly
677 * action=upgrade now linked in PhpWikiAdministration,
678 db: fix page.id auto_increment and ADD session.sess_ip
679 * some internal InlineParser optimization
680 * DBAuthParam statement syntax change: variables now like '$userid'
683 * new ini-style config instead of old index.php, by Joby Walker
684 * paging support for pagelists longer than limit
685 * PopularNearby plugin: same as the classic most popular footer
686 * formatted single-line plugins supported
687 * RelatedChanges plugin: only those which are links at the current page
688 * new GoogleLink pref: add "[G]" lookup on unknown links
689 * added chinese language support, by Yan-ren Tsai (druryl)
690 * added missing MacOSX buttons, by Carsten Klapp.
691 * new Crao theme from http://wiki.crao.net, by Arnaud Fontaine and Laurent Lunati
692 * extended PhpWiki:InlineImages markup (size, border, ...)
695 1.3.9-p1 May,5 2004, Reini Urban:
697 Bugfix patch for the following 1.3.9 problems:
698 * Default permissions not honored. Everybody was able to edit.
699 * set UserPreferences for bool and int fixed
700 * dba open problems improved
701 * session transportation improved, no db objects stored
702 * php-4.0.6 support re-enabled (superglobals, array_key_exists)
703 * WikiAdminRemove deleted too many if args passed from WikiAdminSelect
704 * PageGroup support for [links] and subpages
705 * disabled default dba sessions, broken!
706 * HttpClient fixes for older php's
707 * RssFeed for allow_url_fopen=false, IMAGE support, empty ITEM list
710 1.2.4 (the old-stable version) May, 4 2004, Reini Urban:
711 * improves possible deadlocks in DBA,
712 * fixes problems with DBA open failures.
715 1.2.3 (the old-stable version) Apr, 29 2004, Reini Urban:
716 * added the most popular footer for dba
717 * added remove for dba
718 * fixed a warning on info page
721 1.3.9 Apr, 12 2004, Reini Urban:
723 Bugfix release for the following 1.3.8 problems:
724 * syntax errors in lib/plugin/UpLoad.php
725 * syntax errors in lib/plugin/WikiAdminRemove.php
726 * syntax error in schemas/mysql.sql
727 * several path issues (cannot findfile...), which were caused
728 by a chdir for bindtextdomain in lib/config.php.
729 Failed opening required 'lib/stdlib.php',
730 templates/html.tmpl: not found, and more
731 * added self-registration for DbPassUser
732 * added GoTo plugin, RateIt action page
734 1.3.8 Jan-Apr 2004, Reini Urban:
736 External plugable authentification, DB prefs and sessions,
737 some more fixes, docs, themes and plugins.
739 * new WikiUserNew class (started by Carsten Klapp),
740 * new Preferences (optionally from DB, no cookies anymore)
741 * improved DB_Session (added ADODB + dba support,
743 * enabled WikiGroup (Joby Walker and Reini Urban)
744 * new individual PagePermissions (enabled, but not yet enforced)
745 * new WikiAdminRename, WikiAdminSearchReplace, WikiAdminSetAcl
746 * several other new plugins: WikiPoll, WhoIsOnline,
747 CreateToc (experimental), AddComment,
748 _WikiTranslation and TranslateText, NoCache,
749 UpLoad (by NathanGass, qubit and Reini Urban),
750 IncludeSiteMap (by cuthbertcat and Reini Urban),
751 RichTable (by Sameer D. Sahasrabuddhe),
752 CreatePage and RateIt (by Dan Frankowski),
753 RssFeed (by Arnaud Fontaine)
754 * added InterWiki image button support
755 * added Japanese language support (by Tadashi Jokagi)
756 * added sqlite support (thanks to Matthew Palmer)
757 * added theme and plugin-specific PageList column types and theme-specific UserPreferences
758 * added EmailVerification and PageChangeNotification (experimental)
759 * added new sess_ip column (DB_Session) for ip-based robot throttling
761 * Pear DB update, minor performance improvement for PearDB
762 * PageList: enhanced sortby + limit support, sortable gridbuttons enforced, cleanup.
763 * minor theme/default overhaul, new theme/smaller, new experimental theme/wikilens
764 * new theme/Wordpress by Mike Pickering
765 * updated theme/Sidebar: box methods, fast jscalendar and easier to customize
766 * more OldStyleTable arguments, PhotoAlbum local fs support
767 * preliminary action=upgrade (To import new pgsrc pages only yet. not for DB)
768 * preliminary SOAP support
769 * added PdfOutput libraries
770 * experimental javascript Search&Replace edit buttons
771 * experimental old-browser compatibility code.
773 * fixed WikiAdminSelect, WikiAdminRemove
774 * fixed and improved XHTML dumps (css, images, unlinked pages, \r\r\n issue)
775 * fixed ADODB limit problem, fixed dba on Windows PHP 4.3.x
776 * fixed BlockParser problem with "0" as text
777 * fixed UnfoldSubpages sortby
778 * fixes for PHP5 compatibility started
779 * fixed gettext, setlocale and update_locale problems
781 1.3.4 until 1.3.7, 2002-2003 Jeff, Carsten and Steve Wainstead:
783 * several stable releases with better documentation (most plugins) and various bugfixes.
784 * EditMetaData (by MichaelVanDam) for example. (forgot what else was new)
785 * Jochen Kalmbach's new UserFileManagement and UserRegistration didn't went upstream.
786 (personal uploads, ...)
788 1.3.3 early 2002, Jeff strikes back, with the help of Carsten Klapp:
790 * major feature enhancements:
791 * Cache all output and use a clever page cache. Get rid of plugin-head.
792 * new PageType class. Formatter and Search engine rewrite.
794 * broke several older plugins: InterWikiSearch, WikiAdminSelect. broke image buttons
795 * Carsten Klapp's beloved MACOSX theme, button factory and CSS wizardry in general.
796 * XHTML dumps, WikiBlog as page type.
797 * PluginManager and several more plugins.
799 1.3.2 early 2002, Reini Urban strikes:
801 * Start of external authorisation in the config, but not in code.
802 * Store Preferences in the users PersonalPage (Jeff)
803 * Sessions in DB, pear DB update
804 * concept of Subpages, UnfoldSubpages, SiteMap, AllPages, AllUsers, ...
805 * PageList (Jeff and Reini)
806 * Several new plugins: RedirectTo, plugin-head architecture.
807 Normalize template names. WikiAdminSelect architecture: WikiAdminRemove
808 * VisualWiki, TexToPng, text2png + several cached plugins (by Johannes Große)
809 * PhpWeather (?), PrevNext, image buttons,
810 * IncludePage (Joe Edelman), FrameInclude (Reini), Transclude (Jeff)
811 * Calendar (contributed by ?), CalendarList, WikiBlog, ...
813 .... a small hole here .... (three years no detailed HISTORY. see the outline above)
817 * New database API. See =lib/WikiDB.php= and =lib/WikiDB/backend.php=
818 for the bulk of the documentation on this. The new database can
819 save multiple archived versions of each page. A mechanism for
820 purging archived revisions is now in place as well. See the
821 $~ExpireParams setting in =index.php=, and =lib/~ArchiveCleaner.php=
822 for details. At this point, the DBA, MySQL and Postgres backends
823 are functional. The DBA backend could use some performance
824 optimization. The whole API is still subject to some change as I
825 figure out a clean way to provide for a variety of (not all forseen)
826 methods of indexing and searching the wiki.
828 * New WikiPlugin architecture.
830 * New template engine. This needs to be documented further, but, for
831 now, see =lib/Template.php=. On second thought, don't
832 (=lib/Template.php= desperately needs refactoring, still.) The
833 basic advance is that PHP4's =ob_*()= functions can be used to
834 capture output from code that is run through =eval(). This allows
835 the templates to be PHP code...
837 * Edit preview button on the edit page. Now you can see what your
838 edits look like before committing them.
840 * Reworked the style-sheets. I still need to clean this up some more.
841 I would appreciate comments and bug reports on it. So far I've only
842 tested the new style sheets with Netscape 4.77 and Mozilla 0.9.3
843 (both running under Linux.)
845 * Expanded syntax for text search, Searches like "wiki or web -page"
846 (or "(wiki or web) and not page") will now do more-or-less what they
847 look like they'll do.
849 * Security Issues: PhpWiki will now work with PHP's =register_globals=
852 PhpWiki 1.3.x development branch.
854 * Pagenames in =PATH_INFO=.
856 * File uploads: see PhpWikiAdministration.
860 * Ugly [MagicPhpWikiURLs] for administrative links.
862 PhpWiki 1.2 is a huge advance over version 1.0:
864 * Database support for MySQL, Postgresql, mSQL, flat file and the new
865 dba_ library in PHP4 is included.
867 * Internationalization: support for different languages, down to the
868 source level, is included. German, Spanish, Swedish and Dutch are
869 currently shipped with PhpWiki. An architecture is in place to
870 easily add more languages.
872 * New linking schemes using square brackets in addition to the old
875 * Administration features include page locking, dumping the Wiki to a
876 zip file, and deleting pages.
878 * A MostPopular page showing the most frequently hit pages.
880 * Full HTML compliance.
882 * Links at the bottom of pages describing relationships like incoming
883 links from other pages and their hits, outgoing and their hits, and
884 the most popular nearby pages.
886 * Color page diffs between the current and previous version.
888 * An info page to view page metadata.
890 * Far more customization capability for the admin.
892 * A templating system to separate the page HTML from the PHP code.
894 * New markup constructs for =<B>=, =<I>=, =<DD>=, =<BR>= and more.
896 * Tabless markup to supercede the older markup (both still supported).
901 PhpWiki 1.1.9 includes Spanish language pages, a full implementation
902 for Postgresql, numerous bug fixes and more. See the =HISTORY= file
903 for more info: http://phpwiki.sourceforge.net/phpwiki/HISTORY
907 PhpWiki 1.1.6 is a major revision of PhpWiki. The ability to have
908 themes (via an easy-to-edit template system) has been added; the
909 schema for MySQL has been completely overhauled, breaking the page
910 details into columns (for efficiency we agreed not to put references
911 in a separate table, so it's not completely normalized. "Don't let the
912 best be the enemy of the good.")
914 Postgresql support has been added and the markup language is evolving, now allowing
920 tags and __a new way to make text bold__, and of course the
921 [new linking scheme].
923 There is a new feature on all pages called ''more info'' that gives
924 you a low level detailed view of a page, which is probably more useful
925 for debugging than anything.
927 As we move towards a 1.2 release we will be adding logging, top ten
928 most active pages and other new features with the new database schema
929 (and yes, these features will make it into the DBM version too). I
930 also want to add mSQL support and test it under Zend, the new PHP4.
932 Below are the release notes for version 1.03, the last release of the
933 1.0 PhpWiki series. --Steve Wainstead, mailto:swain@panix.com
937 PhpWiki was written because I am so interested in WikiWikiWeb~s, and I
938 haven't used PHP since version 2.0. I wanted to see how it had
941 Version 1.0 is a near-perfect clone of the Portland Pattern
942 Repository, http://c2.com/cgi-bin/wiki?WikiWikiWeb. In truth, I was
943 using the Wiki script you can download from there as a model; that
944 Wiki lacks a number of features the PPR has, like EditCopy. So in
945 truth PhpWiki is a kind of hybrid of the PPR and the generic Wiki you
946 can get from there (which is written in Perl).
948 The one caveat of PhpWiki is the allowance of HTML if the line is
949 preceded by a bar (or pipe, which is how I usually say it). (That's a
950 '=|='). It was very simple to add, and the idea came from a posting
951 somewhere on the PPR about how AT&T had an internal Wiki clone and
952 used the same technique. The ability to embed HTML is disabled by
953 default for security reasons.
955 Version 1.01 includes a patch that fixes a small error with rendering
956 <hr> lines. Thanks to Gerry Barksdale.
958 See the =HISTORY= file for a rundown on the whole development process
959 if that sort of thing really interests you :-)