Home Features Demos Download Installation User Manual Developer Manual Relation function Credits



17.9.2023 3.9.0

  • Made compatible with PHP 8
  • PHP 8 needs SQLite, CURL and ZipArchive extensions (not default anymore)
  • PHP 5.4 does not work any more, you need at least 5.6
  • Polyfill for missing ZIPArchive

14.3.2023 3.8.9

  • Relation function textrank()

10.3.2023 3.8.8

  • Relation database and sql instruction
  • Relation write can write to connected database
  • Relation repeat instruction
  • Fixed access of menus of redirections
  • Fixed gtn function in expressions
  • Cosmetic: rewrote relation linehandler run2 assertions
  • Expression function sqlesacape()

23.12.2022 3.8.7

  • Pseudo namespace Imagelazy: allows to render images only if they are visible, together with new endpoint imageapi.php rendering resampling of images
  • Refactored special:images page
  • New aggregate functions for Relation: gm, hm, gini, hill, prod, shannon
  • New functions for Relation: tag, template, link
  • Some functions in Relation can have a variable number of inpurts: min, max
  • Improved performance of fulltext index(removed expensive formatting of found text and working with entities allows byte string handling)
  • Improved performance of SQLite DB updates.
  • Style parser handles better paragraphs and text on same line after end of table
  • Language pages can be deleted also if the main page is missing
  • Moved overtime script in own header and footer files
  • Fixed logical errors with bitmaps of uneven lengths

17.10.2022 3.8.6

  • filter index allows fast search on fields with exact values
  • New statistical functions for Relation: BigramStat(), Levenshtein(), TrigramSimilarity(), TrigramWeightedSimilarity(), TrigramCosineSimilarity()
  • Faster link parser for internal links
  • Fixed table genration in style parser (multiple lines)
  • Fixed errors on incomplete bloom and monogram indexes
  • Optional $swWikiTextPre=false to opt out pre tags in wikitext (line starting with space)

7.10.2022 3.8.5

  • Query adds the FILTER instruction which emulates the filter instruction of Relation (much faster).

22.9.2022 3.8.4

  • Fixed score algorithm for full text search (div/0)
  • Expanded monogram to digram and fixed monogram filter

19.9.2022 3.8.3

20.8.2022 3.8.2

  • fixes incomplete bloom and monogram indexing bugs (missing results)
  • it is recommended to reindex all with this release

16.8.2022 3.8.1

  • fixed regex crashes on monogram indexing (503 errrors)

9.8.2022 3.8.0

  • default values for $swRamdiskPath (‘db’) and $swDbaHandler (‘sqlite3’). Change in your configuration to ‘db4’ or ‘persistance’ if the PHP implementation (MAMP for example) does not support sqlite. If you change the database engine, you must delete completely the content of site/indexes/ and site/queries/
  • the relation console can now also modify the pages with the relational execute instruction.
  • the relation instruction “print spacegrid” allows to print a more flexible filtrable table (inline table which can also be 2-dimensional floating)
  • improved dba engine synchronisation
  • fixed relationfiler bloom filter bugs and interaction between filter and user rights
  • removed syntax coloring
  • rewrote table parsing in style parser
  • fixed header visibility in table.js
  • fixed language switch on search

6.4.2022 3.7.9

  • Fixed delete of language subpages
  • Fixed interlanguage links
  • Fixed unwanted display (0 or 1 ontop of page) of swOverWrite status in inc/skins/header.php
  • Fixed obscure header error on manual installation

30.3.2022 3.7.8

  • Special:Import revisions accepts zip file in site/upload folder
  • Correctly displaying image pages with PNG and GIF images
  • Fixed Upload Images
  • Fixed missing folder site/cache/
  • Monogram maintenance (reset with bloom, overtime)
  • System Message lookup is not lazy any more
  • Removed shortcuts for menus

16.3.2022 3.7.7.

  • Maintenance update (external pull request)

6.3.2022 3.7.6

  • Special:Active Users
  • Special:Deleted Pages shows timestamp
  • Special:Tickets allows for upload of screenshots and other files
  • swPersistanceDba as database for small sites (without Sqlite3 nor dba_handlers)
  • $swDbaHandler = "persistance" by default
  • $swOldSearch is now false by default
  • Refactored upload functions
  • Fixed localized cookies.

16.2.2022 3.7.5

  • Fixed wrong order of failaction and indexerror block in index.php
  • Fixed sublang insertintroduced by change of parser order (new parser sublang)
  • Added cache and image refresh menus

14.2.2022 3.7.4

  • _group right inherits right of another user (note this is only one step, no groups of groups)
  • Fixed notice bugs

13.2.2022 3.7.3

  • Improved reliability of Upload.js
  • Fixed extenstion of cookie valididy
  • Added a Favicon in default skin

12.2.2022 3.7.2

  • Fixed installer

11.2.2022 3.7.1

  • New image link Download:name returns file from php instead of Media:name that returns a link. Downside: it also mobilies PHP ressources
  • New function encryptpassword(name, pass)
  • Function rnd() in Expression returns now a fraction number between 0 and 1
  • Worked on upload.js interface und optimization. Tested
  • Fixed bug on delete.php preventing deleting files
  • Fixed bug on passwords.php preventing user creation
  • Action new allows GET parameters (name, content) to populate empty page
  • swGetValue accepts also curly braces in values.

9.2.2022 3.7.0

  • Application style admin menus for all skins
  • Dialog windows for editing tasks
  • Relation input instruction also uses the dialog windows
  • Redesigned skin structure skin design and CSS
  • Default skin handles now mobile screens.
  • New global $swStatus
  • Redesigned page-subpage relationship. Protect is global, Rename and Delete are by default global, but configurable.
  • Redirection always goes to the main page and not a subpage.
  • Empty subpages are now ignored and do not cover a main page any more.
  • Edits without change in content do not trigger a new revision any more
  • Special:Field Search allows to browse the entire site for field values
  • Experimental Special:Upload Big: resiliant, ineractive upload tested up to 1 GB
  • Function uploadzone function allows to create custom upload pages for users
  • Function preventovertimesearchagain prevents
  • swSystemMessages are by default english, if no localisation is present
  • Actions in index.php precede now the menu creation
  • Template parser is now after the fields parsers. This allows more legal characters in fields.
  • Fixed bug $swOvertime not present when memory limited filter or relationfilter
  • Image pages do show the content again (unparsed like template pages)
  • Cookie values are now refreshed as long as the user is active.
  • Some code moved to their own files

29.1.2022 3.6.3

  • Cron does not save any statistics any more in logs namespace (too much space).
  • The new relation logs instruction filters logs lines directly from log files.
  • New Special:Metrics based on logs instruction.
  • Refactored and all other pages indexes with grid
  • Added SofaDoc comments inc/a-f and renamed functions
  • Refactored expression functions and operators in own file
  • Fixed space on email parser
  • Fixed error prevented <== to work in Relation
  • Fixed log errors
  • Relation read can access remote files if you provide a swVirtualLinkHook, see Relation external URL
  • Special:Passwords prefills the password

11.1.2022 3.6.2

  • Monogram filter
  • Bitmap further compression
  • Using correct UTF-8 substring in expression
  • Starting documentation

2.1.2022 3.6.1

  • Start implementing documenation with SofaDoc https://www.sofawiki.com/sofadoc.php
  • Optimized compilation of expressions with caching
  • Image crop editor (see File upload)
  • Optimized table parser for big tables (more than 50 000 lines)
  • Relation function print grid with more link.
  • Added unused fields and text and select menu as alternative to radio in Editor templates
  • Fixed bug in inc/special/logs.php

15.12.2021 3.6.0

  • Refactoring DB indexes
  • Refactoring relation filter namefiler
  • Editor templates
  • Fixed bug that did not index the bloom for the last revision

12.12.2021 3.5.6

  • dba implemented sqlite3 (filebased)
  • hint function for expressions, working like filter hint
  • improved table and new relation instruction "print linegrid" (table, but no borders)
  • overtime refresh only at the end of the page, no sentence any more
  • fixed double language link
  • new relation instruction "filter index col"

2.12.2021 3.5.5.

  • dba improved file lock and indexing
  • swDBAerror

1.12.2021 3.5.4

  • Fixed dba->list() because list is a reserved word in PHP 5
  • Translate function
  • Adapted DeepL to Free API
  • swBitmap has now a default value for out of range getbit requests
  • Memory limits for expensive loops
  • relation filter project drop
  • relation filter walk instruction
  • dba improved file lock and indexing

28.11.2021 3.5.3

  • Relation function has alternate input fields _textarea and _select
  • Native wiki functions can directly be used in expressions without using template
  • Native DBA-Function if DBA-Support is not installed with PHP (for example MAMP)
  • Fixed bug overwriting ticket
  • Improved bloom indexing

21.10.2021 3.5.2

  • Bugfix index updating on new records (force index to save last revision)
  • Aggregation in relation function includes Infinite(∞, -∞ ) and undefined values (⦵)
  • Bugfix namespace handling in swRelationfilter function
  • Restored Special:Indexes page disappeared with 3.5.1
  • Fixed 24 hour timestamp in Special:Tickets

13.10.2021 3.5.1

  • Infinite(∞, -∞ ) and undefined values (⦵) are now valid numbers in expressions.
  • Fixed crash when a relation instruction does not return a relation on the linehandler stack.
  • Special:Backup now provides a listing of backed up files for download
  • Fixed user rights in relationfilter and relation import function

26.9.2021 3.5.0

  • Fixed error on ticket id generation
  • Fixed error on db where $lastwrite maybe 0 if there is no revision yet
  • Fixed exception error display on swRelationFilterOvertimeRetake on invalid queries

22.9.2021 3.4.9

  • Performance update on indexes and special pages

10.9.2021 3.4.8

  • Security update: Improved Deny management. You can also block random accesses of login pages. See inc/special/deny.php

8.9.2021 3.4.7

  • Custom search redesigned search.php
  • Cache parses adds a cache refresh menu for users with global modify rights
  • Improved resume function (still not perfect)

5.9.2021 3.4.6

  • Relation echo has access to global variables
  • Relationfilter always searches at least 50 records, even if there is overtime.

4.9.2021 3.4.5

  • Optimized Bloom filter (does not reindex any more because bloombitmap is lost)

23.8.2021 3.4.4

  • Optimized relationFilter (removed unused revisions from search in namespace filter.

2.8.2021 3.4.3

19.7.2021 3.4.2

  • data in relation can have csv option (no expression handling)
  • improved performance of fields output of relation
  • template function in expression allows to embed any template (or function) in an expression
  • improved template parser
  • improved nowiki performance in parsing
  • error handling for writing records with illegal names
  • fixed refresh of relation filters

2.7.2021 3.4.1

21.6.2021 3.4.0

  • Refactored swGetFields (accepting more keys (all except newline and wiki special characters) and more values (all except )
  • Charts functions for Relation function but not only
  • Special:Metrics uses charts

12.6.2021 3.3.2

  • Fixed problems with last changes not showing in relationfilter.
  • Tickets can be reopened by anyone
  • Relation pivot

11.6.2021 3.3.1

  • Fixed logical bugs in bitmap

3.6.2021 3.3.0

  • Relation filter uses Berkeley DB as search cache
  • Bitmap reenabled compression
  • Semaphore filebased
  • Bloom filter redesignet
  • URL database
  • Improved filter performance.

24.5.2021 3.2.3

  • All special pages use now swRelation instead of swQuery
  • New internal function swRelationToTable returns a table
  • Table headers cells can now have attributes like table cells
  • RSS function uses relation, not query any more
  • Improved resume function and nowiki parser
  • Expressions functions nowiki and resume

20.5.2021 3.2.2

  • New operator regexi in Expression engine (regex case insensitive)
  • Relation function has now print grid which allows to explore (filter and sort) big tables.

15.5.2021 3.2.1

  • Delegate instruction in Relation function hands over the current relation as CSV to a template or a function.

31.3.3021 3.2.0

  • Relation search as option if you set $swOldSearch = false (see inc/relationfilter.php )
  • Fixed performance in relation filter. Hint can now have multiple words (separated with spaces) which must appear, but not necessarily in order
  • Pipe trick internal links uses now display name
  • Fixed logs. You can now manually consolidate the today log being sure it will be replaced with the last date next day.
  • Schedule function makes wikitext visible based on time.
  • NB: Special pages will now be converted from query to relation over the time

17.2.2021 3.1.3

  • Relation filter now can search for _paragraph (for search better to handle than _content
  • Fixed HTML table output of Relation
  • Improved performance of Relation filter with _name hints
  • Instead of password reset, an email access is possible (link to send, works once without login)

14.10.2020 3.1.2

  • Relation import
  • Allow notify with HTML

10.8.2020 3.1.1

28.7.2020 3.1.0

  • input instruction for Relation function
  • possibility to use Berkeley DB as RAM disk.
  • Fixed several bugs in swRelationFilter()
  • Fixed a bug when the text is too short for Bloom Filter.
  • Added Berkeley DB to cron.php
  • Updated Relation expression engine to Belle Nuit Relation
  • Adaption to intval errors PHP 7.2
  • Improved Link Parser
  • Improved CSS styles for Relation function
  • Improved Mark Relation code
  • Fixed title bug in special:tickets
  • Added failaction hook for Login and Logout.

28.5.2020 3.0.3

  • install.php Script see Download
  • Styled swSystemMessage parses also templates. Use with caution.

27.5.2020 3.0.2

  • Relation supports update instruction. Valid names can start with undescore (_)
  • Lost password sends a reset link instead of a new password.

5.5.2020 3.0.1

  • Relation supports label instruction.

29.4.2020 3.0.0

  • New Relation function
  • Change: Inside templates, line returns inside a parameter are not converted to spaces any more. The parameter is still trimmed.

9.4.2020 2.1.3

  • Added accented caracters to link parser

7.12.2019 2.1.2

  • Login: Possibility to disable autofill on login with $swBlockLoginAutocomplete=true un configuration.
  • Removed color coding code from 1.9.7 in skins and special edit.php (did not really work)

20.11.2019 2.1.1

  • Fixed query and value function output of tag characters <>

1.8.2019 2.1.0

2.3.2019 2.0.5

  • Added $swMaxFileSize (default 8000000) for File Upload form. Note that the max upload size is also limited by the PHP.ini variables upload_max_filesize and post_max_size.

20.2.2019 2.0.4

  • swVirtualLinkHook has now 3 parameters: $urlname, $fields, $query
  • Removed a bug that could remove content when new password is used (greedy regex)
  • Removed user on revisions new password and lost password
  • Improved field editor
  • New function fields

3.2.2019 2.0.3

  • Searchnamespaces and transcludenamespaces always include AllUserRights now
  • swInternalLinkHook removed from filter and import and replaced by swVirtualLinkHook which has a second parameter fields
  • Removed Preview

9.12.2018 2.0.2

  • Search includes now user actions from logs (querygoodresults) and refreshes itself on default skin if overtime.

31.10.2018 2.0.0

  • VERBOSE in query shows stack in a tree form
  • swSystemMessage improved
  • new functions systemmessage and diff

10.10.2018 1.9.9

  • swSystemMessage does return unchanged key if no message has been found.
  • Image tag allows now to define crop preference on image resize. Note: alt tag has moved one parameter forward. Scale image

4.1.2018 1.9.8

  • Moved Colorcode to skins default and wiki only
  • Fixed base href in skins in inc

19.9.2018 1.9.7

  • Colorcode textarea for editing
  • swSystemMessage keys more resilient. They are only fallback URL. (1.9.4)

1.7.2018 1.9.6

  • Simplified first installation
  • Fixed parameter count on swInternalLinkHook

25.6.2018 1.9.5

27.5.2018 1.9.4

  • Added swLogHook
  • Bitmap fixed non numeric values for set and get
  • Configuration: $swLogAnonymizedIPNumber (default true) scrambles the last IP number for log files. The result numbers are still unique valid IPv4 numbers.
  • Logfiles are consolidated by Cron (or manually from Special:Indexes
  • Possibility to delete old logfiles from Special:Log
  • Special:Metrics statistics on consolidated log files
  • .htaccess files added to snapshot for inc/, site/ (deny from all) and exceptions (allow from all) for inc/skins/, site/cache, site/files/ and site/skins/. Note that the main .htacess file remains manual
  • Cleaned swSystemMessage keys. They are all URL. You might have to rename overrides.
  • Improved Special:System Messages page with tabular view
  • Improved Paragraph rendering.
  • Pipeprotected text in templates is now style parsed
  • Reintroduced missing pre tag
  • Open Div tags are automatically closed at the end of the parsed content
  • Parameters in templates can be declared optional {}
  • Query: DATA commmand verbatim fields
  • Query WHERE clause in SELECT can use a column from the top stack (wigth $ notation)
  • Query WHERE allows for IN :: Hint Possible
  • Query CALC can use some functions with FUNCTION- command (set arity >=0 for self-defined functions to get all arguments from stack)

13.4.2018 1.9.3

  • Removed Pre from style to tidy parser
  • Fixed space on simple links
  • Deleted page returns 404 now

1.4.2018 1.9.2

  • Fixed Bloom for sites with many revisions
  • Resume function does ignore category now
  • Removed superflous br tag in Category parser

21.3.2018 1.9.1

  • Introduced P tags instead of double BR. See Paragraph tags
  • Style pretty format HTML

14.3.2018 1.9.0

  • Language integrated in URL (optional $swLangURL)
  • Moved session close to end
  • Fixed PHPO 7 Syntax in notify.php

14.3.2018 1.8.5.

  • Added $swNotifyMailBCC and $swNotifyMailCC;
  • Proper Unicode encoding for notify mail subject
  • Fixed bug when username remained with wrong password login
  • Logout refreshes Session

28.12.2017 1.8.4

  • Fixed bug on bloom filter (db lastrevision+1)
  • Removed datatable and relaxed mode
  • Changed swInternalLinkHook to return URL and not link
  • Enabled swInternalLinkHook for IMPORT and FROM VIRTUAL

22.11.2017 1.8.3

  • Feature: Special:Tickets
  • Performance: Bloom indexes in RAM
  • Performance: Special:Recent Changes does not reset Bitmap any more
  • Bug: Iniset to prevent PREG_REPLACE to limite to 2700 characters

27.9.2017 1.8.2

  • Added NOCASE for case sensitive ORDER and GROUP

6.9.2017 1.8.1

  • Added swGeneratePasswordHook() function for password generation

30.8.2017 1.8.0

  • Introduction of alt Users
  • Removed references to old filter, data function, tree, trigram, keyvaluestore, semaphore is now always on.

23.8.2017 1.7.5

  • Introduction of IP users
  • Fixed a missing db object reference in swFilter
  • Prevented record to write a revision 0
  • Moved update servers to https

16.4.2017 1.7.4

  • Fixed minor Bug in swBitmap-Redim() (one off let missing revision appear in Recent Changes
  • Special:Regex bigger input fields and possibility to use literal replace instead of regex
  • swRecord lookup filters invalid names in URL-representations
  • swFamilyName function
  • swQuery order FAMILYNAME and URL

9.4.2017 1.7.3

  • Fixed bug in swBitmap-Redim() when longer, all bits of the last byte were not set
  • Optimized site search no filters only in already found revisions for further multiple words
  • swFilter() has a checkhint paramater to limit search on certain revisions.
  • Added swLengthSort() in utilities.php

5.4.2017 1.7.2

  • Function swSimpleSanitize removes greater and lower tag characters on input that shoud not have one (url get parameters query and names, also to be used on public input fields) to prevent XSS.

5.1.2017 1.7.1

  • Fixed warning on bloom when you filter while there was not yet an index
  • Added Cancel Button on Edit.
  • Modify after edit shows no the localized version, not the general. This reflects more the wiki style where the general page is fields and the localized page only text and includes with {{}} syntax.
  • Fixed superfluous return at the end of output TAB in swQuery.

4.1.2017 1.7.0

  • Added possibility to save log search directly to page
  • Introducing bloom filter. Bloom filter replaces Trigram. If you want to continue with Trigram, set configuration $swUseTrigram = true;

14.12.2016 1.6.8

  • New function swCleanTupleFieldOrder to properly output query results
  • Removed LIST in query as not working properly
  • Comment command # in query

12.10.2016 1.6.7

  • Fixed bug in swZipArchive (warnings on journal not present)
  • Fixed bug in swQuery TABHEADER output

24.10.2016 1.6.6

  • Custom swZipArchive class which is lazy to faster update often changed files (keeping a journal)
  • Update sets now all written files to permission 0750 for files, 0770 for folders.

23.10.2016 1.6.5

  • Using zip file for Trigram makes indexing much faster. Can be turned of using $swTrigramUseZip = false in configuration.php

5.9.2016 1.6.4

  • Fixed bug OUTERJOIN was removed in 1.6.3 accidentally.
  • Sempahore less verbose

17.8.2016 1.6.3

  • Query Group has a new function CONCAT for strings
  • Update sets now all written files to permission 0777

16.7.2016 1.6.2

  • Fixed bug on OUTERJOIN missing right joins and field order

16.5.2016 1.6.1

  • Optimzation: swFilter does not save any more if no revision has been checked
  • Optimization: swGetallrevisions reads 20 entries in a chunk.

21.4.2015 1.6.0

  • :: modifier in templates takes argument verbatim, wthout removing newlines
  • Semaphores in test mode replace concurrency protection with session variable.

Semaphore is experimental, you can turn it of setting $swUseSemaphore false. See inc-semaphore.php, in that case session protection is left until the end of the execution.

20.4.2015 1.5.9

  • Fixed BR and HR tags didn't work any more in tidy parser.

29.3.2016 1.5.8

  • Fixed wrong adressing of first element in an array in swQuery with 0 index instead of reset

23.3.2016 1.5.7

  • Removed SHOWKEY in swQuery
  • Fixed bug in OUTPUT TAB in swQuery, last character of each line was cut
  • UNION, CROSS, LEFTJOIN and OUTERJOIN now return always complete relations (all fields), see also Join and Cross

21.3.2016 1.5.6

  • Removed <> operator which is a duplicate of !=
  • all fields in the WHERE clause are tested, even if non existent (evaluate to 0)

see also Query null values

29.1.2016 1.5.5

  • Fixed outdated PHP syntax in swQuery function for TABHEADER
  • Added alt tag for all images and for Image links
  • Fixed transclude bug on extvalue function

15.1.2016 1.5.4

  • Lostpassword and Special:Passwords pages create password for urlified name (to avoid wrong user errors for use of uppercase)
  • Disabled autofill on Special:Passwords page
  • swFilter() removed an ending space in the SQL query for field existence and reorderd code in swGetFilterCacheHeader, which created together false negatives
  • swRecord lookup method recovers all fields now, also invisibles (prefix underscore).
  • No delete without post
  • new page Special:Deny manager
  • Improved field editing (no invisible fields any more, transpose button, add columns and rows button)

14.10.2015 1.5.3

  • Added italian language.

14.10.2015 1.5.2

  • Fixed a branch in swRecord lookup function.
  • Tuned trigram indexing.

30.9.2015 1.5.1

  • Meta tag title and description
  • Meta tags support for _description field
  • Improved resume function (templates filtered out)
  • Improved recreation of indexes when current not present
  • Fixed sitemap (was old filter data)

22.9.2015 1.5.0

  • Rolled back, removed tree (slow)
  • Better search, priority on title
  • Better log performance

7.9.2015 1.4.1

  • Optimized Trigram and Tree index (only current)
  • Simplified search, removed search in title
  • Fixed bug, persistance overloading its own persistance path
  • TEMPLATE can now have multiple columns as arguments
  • Added special field _any (all field values)

2.9.2015 1.4.0

  • Tree index
  • Unique tuples does not sort any more, order is preserved when you PROJECT for example

28.8.2015 1.3.5

  • Images parser can now ignore links, used by resume function
  • Fixed cosmetic bug in css function

13.8.2015 1.3.4

  • Added special fields _user, _timestamp, _fields
  • FIELDS depreciated (Use SELECT _fields)
  • Added HINT to regex operator r=
  • Cleaned up special pages Dead End Pages and Most Linked Categories
  • Added tags backslash, lt, gt, null

28.7.2015 1.3.3

  • New Special:Import page
  • Each wiki on the same domain has now its own PHPSESSID

29.6.2015 1.3.2

  • Fixed bug in filter missing bitmaps

4.5.2015 1.3.1

  • Option to rename subpages when renaming page
  • CALC has REGEX and STRLEN operator
  • css function
  • Namespace tabs in Special:All Pages
  • Hint field on Special:Regex
  • Fill Gaps in Special:Indexes
  • Special:Orphan Pages
  • Special:Dead End Pages
  • Special:Redirects
  • Special:Most Linked Pages
  • Special:Most Linked Categories
  • Special:Most Linked Pages
  • Special:Unused Categories
  • Special:Unused Files
  • Special:Unused Templates
  • Special:Uncategorized Pages
  • Nowiki works on multiple lines
  • Bug: Removed ordering on CALC in swQuery

9.3.2015 1.3.0

  • Searches are now stored in multiple files for performance
  • Fixed bug in Category parser.

1.3.2015 1.2.0

  • New functions swWriteRow(), swReadField() and swRowToString() as helper for swFIlter()
  • swFilter keeps serialized versions of the lines as long as possible (faster and less memory)
  • Rewrote swuniqueTuples() with usort and using helper function
  • New format for filters using plain fields
  • Hexit() and dehexit() in swBitmap compress stream with new characters g,h,i,j
  • Internal links, category links and templates are now also searchable with filter as fields _link, _category and _template
  • RAND value in calc function

10.2.2015 1.1.6

  • Rewrote swFilter bitmap logic

20.1.2015 1.1.5

  • Fixed a bug that prevented ask for new password if you already tried to log in.

2.1.2015 1.1.4

  • Fixed bitmap error on redeem (not dehexed)
  • Tuned filter with to check-bitmap (to do: mace code more readable)
  • Fixed bug in special_systemmmessages that hid missed translations
  • Hunted missed recent indexing in db and filter
  • Fixed ending spaces in short.txt lookups

2.1.2015 1.1.3

  • Added Fields action and editor
  • Added Fields right

1.1.2015 1.1.2

  • Tuned lazy filter saving

26.12.2014 1.1.1

  • Redesigned Ramdisk more conservative as read cache.

23.12.2014 1.1.0

  • Improved atomicity of record write
  • Trim read of records in short index to remove padded spaces
  • Hex based bitmaps
  • Current saved only based on hash, not revision
  • Fixed missing newline links at starung line
  • Introduced lazy filter, is not saved if a record is written
  • Introduced possibility to use a ramdisk for the current and queries folder. To use the cache, you need to provide a path to the ramdisk $swRamdiskPath with trailing slash /.
  • Redesigned index page to easier reindex.

16.12.2014 1.0.6

  • Fixed broken Special:Query
  • Fixed mulitline pre

7.12.2014 1.0.5

  • Fixed error on timelimited namespaces for filters
  • Fixed notice on search
  • Removed echotime for short, added for long lookups.

7.11.2014 1.0.4

  • Keep cache of short files (less than 512 characters) in a single file short.txt
  • shortbitmap.txt keeps track of short entries
  • Fixed main namespace transclusion

23.10.2014 1.0.3

  • Rewrote flter indexing to make it saver.
  • Special:Indexes pages show both bitmaps on queries
  • Tweaked Trigram for speed

17.10.2014 1.0.2

  • Included fallback to update db if a revision was not indexed.

11.10.2014 1.0.1

  • Rewrote trigram indexing to make it safer

2.9.2014 1.0.0

  • Streamlined Template parser (can now nest templates)
  • Streamlined Fields parser and placed it after Templates parser
  • Rewrote swFilter creates columns caches for fields
  • Query mode in swFilter and Query function enforce unique tuples
  • Editing conflict when new page overwrites existing page
  • Rewrote Query function: Removed commands KEY, FORSELECT, OR (replaced wit UNION), RENAMEALL, CONST, new formatting commands TEXTSPACE, TABHEADER
  • Login create Cookie for user, with login token
  • User cookie period can be set in $swUserCookieExpiration, by default 4 hours
  • Default table format in query with border
  • Deep lists as query function output
  • swQuery function is now a wrapper for the query function for API access.
  • Calc function
  • Removed datatable function.
  • Improved special indexes with safer delete and with more detailed information

12.8.2014 0.9.9

  • Improved search page, better rating
  • Removed swQuery function, and regex and relaxed mode in swFilter
  • All not query mode in swFilter are now depreciated and use is logged as error
  • Error 404 on name proposes search for name
  • Improved reindexing. in view.php if not found, urls is inspected
  • Improved display of search results
  • Improved error detection query function on stacks
  • Regex can now search on names and export a found set
  • Sitemap is off by default
  • User pages can have default user menus
  • Bitmaps in Special:indexes show revisions
  • Bitmaps are recreated regularly (to correct currentBitmap from false positives)

11.7.2014 0.9.8

  • Rewrite of indexing: Indexedbitmap replaces lastindex, urls.txt is fixed size for random access and can be used to rebuild bitmaps, current folder is not alimented via reindex to speed up with readheader, but when record read by revision, if not in current then page does not exist.
  • reworked special pages.
  • removed data filter at most places
  • better normalizing for multiple values

1.7.2014 0.9.7

  • Improved performance of swFilter (internal request check for lastfound and not only last revision)
  • safe reindexing with splash screen when all indexes reset
  • cron script

27.6.2014 0.9.6

  • Fixed virtual namespace issue in query
  • Moved Category pages to query function

29.5.2014 0.9.5

  • Query Syntax allow FROM main:

29.5.2014 0.9.4

  • Rewrote swFilter on namespace handling and caching
  • Fixed bug duplicate returns swFilter
  • Fixed bug infinite loop UpdateIndexes

20.5.2014 0.9.3

  • Improvement on swFilter() performance
  • Fixed bug with starting spaces in swNameURL
  • Fixed bug with bitmap
  • Added FIELDS option to IMPORT

4.4.2014 0.9.2

  • Improved index performance: bak files are now dated and only written in cron
  • Improved index preformance: revision 0 file is written to current when name does not exist
  • Fixed template parser bug (embedded templates)
  • Added IMPORT command to queryfunction (experimental tab import, to be documented)
  • Fixed bug on Displayname space
  • Fixed redindexing. currentbitmap is included when verifying lastindex
  • Fixed relookup on new pages
  • One can reset now a single query in the special:indexes. echotime links to single query page
  • Fixed bug on swfilter experimental * bitmap reducer removed too much
  • Added searchNamespaces based on user rights
  • space is now also a tag.

5.3.2014 0.9.1

  • Added functionality to Query function: LEFTJOIN, OUTERJOIN, ROTATE, NUMBERFORMAT
  • Added VIRTUAL for SELECT statement in Query function
  • Added functionality for Rename: RENAMEALL, RENAME * , RENAME # and fieldlist in one line
  • Allows for quoted strings in expression with quote escape.
  • Order is respected on grouping. If there is no aggregation, the first row is used.
  • Fixed bug in Tidy parser for parsing nonbreakable space in UTF8
  • Disabled readonlyheader for record lookup() because of unknown bugs.

2.3.2014 0.9.0

  • Added Query function
  • Datatable function is depreciated and will be removed with version 1.4.0
  • Rewrote swFIlter() for Query function.
  • Rewrote Template. Nested templates now work.
  • Removed default template (same name) for fields.
  • Fixed bug, page was invisible when there was no file in current
  • Current folder now also holds a serialized version of revision, for faster indexing.
  • Added Strreplace function
  • Fields name and status are allowed now, but work only with query.
  • Added FROM in the SELECT function.
  • Revised access rights for Query, Datatable, Resume and Extvalue: If the function is on a normal page, only transcludable pages are returned. If the function is in a template page, all pages can be returned.
  • Added escaping for > and < when not in a tag
  • Added special tags for pipe, colon, leftsquare, rightsquare, leftcurly, rightcurly.
  • Rewrote huntduplicates() based on urls.txt
  • Added check current against currentbitmap on lookup()

25.1.2014 0.8.6

  • Fixed redindexing wrote only current of first 100 characters
  • Added Special:Indexes page
  • Fixed multi word style in datatable function
  • Added UTF8 declaration in swNotify mail header

21.1.2014 0.8.5

  • Fixing a indexing bug when the there are missing revisions.
  • Current revisions are not written any more when the revision does exist
  • Fixed SUM in datatable. Added MIN, MAX, AVG

13.1.2014 0.8.4

  • inc/filter.php
    • cached query is now specific to namespace and flags
    • fixed bug preventing global searches
    • new function swFilterCompare() externalises compare switch
  • inc/special/regex.php prevents replace if search is not complete to prevent updating of obsolete versions
  • inc/db.php cosmetic changes
  • index.php error reporting only for pwer users
  • inc/parser/template.php system messages are now cached during a http request
  • inc/special/search.php added all results link

28.12.2013 0.8.3

  • Fixed links in Image pages (links were localized)
  • Fixed bugs in search page (all results was not showing)
  • Added statistics to Special:Log page
  • Added backup option to swPersistance to improve reliability (used by bitmaps of the db)
  • Fixed index urls.txt (double lines)

29.11.2013 0.8.2

  • Added swInternalHasRightHook() to model more complex access logic
  • Added swActionHookFile to allow for custom actions
  • Allow for multiple powerusers in configuration.php

8.11.2013 0.8.1

  • Internal links are shown as plain text if the user has not the right to view them
  • New swWiki function namewithoutlanguage()
  • Sublanguage edit menus are shown and only them, if the user can only edit and modify sublanguages. No access to history for these users.

12.10.2013 0.8.0

  • Indexing has been radically simplified.
  • Use of boolean bitmaps for indexes
  • Removed lazy indexing.

5.10.2013 0.7.2

  • Grain of indexes lowered from 10'000 to 1'000.
  • Limited propagation of touch revision, when revision is not in current

22.9.2013 0.7.1

  • Improved speed on special log regex search

9.9.2013 0.7.0

  • Indexing has been improved, so that the database can handle 100'000 revisions
  • The Datatable function has been improved
  • Backup has been improved to deal with a large number of files
  • Unused features have been removed to simplify codebase: the action propose, the talk pages, the breadcrumb history, the special pages mail and twitter. The user account has been simplified
  • Profiling data is now collected via the echo time() function and can be output to users via swDebug

7.6.13 0.6.2

  • Multiple cosmetic changes on better parsing
  • Alternative output for datatable: HEADER, ROWSEPARATOR, COLSEPARATOR, FOOTER

6.6.13 0.6.1

  • Fixed Category pages (new wiki variable: originalName)
  • New function sprintf

30.5.13 0.6.0

  • Rewritten Filter function.
  • Searches for fields are now indexed.
  • Datatable function for dynamic page content based on website search
  • Templates can be multiline

5.1.13 0.5.6

  • Improved speed on recent pages special page.
  • Cleaned DISPLAYNAME and Media link from search results.

2.10.12 0.5.5

  • Allowed more characters in template parameters and names: ? ! «» .
  • Image links can now have width and height
  • DISPLAYNAME directive allows to add another displayname if it is not possible to use as name

2.10.12 0.5.4

  • Fixed broken form links in the special pages logs, passwords and mail
  • Cleans now template and images links in nowiki filter for search results
  • Unicode characters work now as parameters in Templates

3.7.2012 0.5.3

  • Added a field browser in special:fields
  • Upload does use filename of uploaded file if filename is left empty.
  • Improved value function. Besides a separator, it accepts now a template to format the value

30.6.2012 0.5.2

  • Rewritten URL generation: all small caps, underscore replaced by hyphen
  • System Deleted Pages links now to history page of the deleted pages
  • Cleanup name for new pages (First capitalized, replace hyphens by space
  • New pages do not have protect and rename buttons any more
  • revision.txt index now also shows original name and not only URL. New function db->GetAllUrls()
  • Image pages cleanup text as separate paragraph
  • Fixed broken regex and added modifier shortcut documentation

26.6.2012 0.5.1

  • Fixed Latin1-to UTF encoding, when Latin1 is actually Windows codetable
  • Improved pretty URL generation and performance on using swNameURL() only when needed

24.6.2012 0.5.0

  • Moved to UTF-8. Older revisions in Latin1 are converted on the fly.

Important note: After installing this version, please do some homework by updating the following files:
  1. Change the textencoding header of your /site/skin/ templates to "utf-8"
  2. Remove the index files in /site/indexes/ because their content is not yet "utf-8". The indexes will be rebuilt automatically.

29.4.2012 0.4.10

  • Improved password page
  • username is now not sensible to caps and special characters
  • skin contains now new elements System:SkinHeader System:SkinMenu and System:SkinFooter that can be defined directly in the wiki
  • Preview of new page preserves special characters of name
  • Removed Special:Twitter does not work properly
  • New function currenturl

6.1.2012 0.4.9

  • Added resume function
  • Added custom class for each filetype media link
  • Added variable swMediaFileTypeDownload defines downloadable filetypes
  • Fixed table code missing style on cells at the end of the row
  • Fixed default language when not set

17.8.2011 0.4.8

  • Included danish localization

25.6.2011 0.4.7

  • Rewritten table parser, support for header, captions and styles
  • Limited Twitter output to 100 recent (timeout)

12.6.2011 0.4.6

  • Fixed menus for action editmulti and special
  • Removed preview in talk edit
  • Update version list is now sorted reverse
  • Included spanish localization
  • Fixed edit conflict and version count limit on getallrevisions

8.6.2011 0.4.5

  • Special page Twitter archive
  • Changed rendering of semantic variables with and withour pipe trick
  • Fixed Image scalinng

7.6.2011 0.4.4

  • Moved swMessage and swSystemMessage to api.php
  • Default lang of swMessage is now empty string

4.6.2011 0.4.3

  • support for preformatted text (leading space)

5.3.2011 0.4.2

  • fixed regex pattern for image link parser
  • added support for numbered entities
  • added templates for yfrog picture, movie and youtube
  • pretty output

26.2.2011 0.4.1

  • moved to website sofawiki.com
  • moved update sever to sofawiki.com

5.1.2011 0.4.0

  • refactored to support PHP4

5.1.2011 0.3.12

  • category works now for all searchable namespaces
  • history menu items
  • function folder in site folder

31.12.2010 0.3.11

  • search result does only give back pages the user has the right to view
  • simpler user creation in Special:Passwords
  • IP number in logs when no user logged in
  • fixed bug that prevented talk pages

23.12.2010 0.3.10

  • handling editing conflicts
  • removed propose for users with only modify right, it distracts
  • function as better solution for language replaces /nn in 0.3.9
  • value function to get values from pages
  • pipe tricks on variables

19.12.2010 0.3.9

  • nowiki Tag support
  • placeholder language in templates /nn
  • Fixed missing localization of home page (bug in lang parser)
  • Fixed bug in Lost Password (global method)
  • Template and User pages show not rendered
  • Moved to HTML5

3.12.2010 0.3.8

  • Enabled ' for names
  • Support for latin1 characters in templates

10.11.2010 0.3.7

  • Added ISO-8859-1 in mail header

2.11.2010 0.3.6

  • fixed bug remaining wiki-init in mail.php

17.7.2010 0.3.5

  • special:update
  • separated usernames in sessions for the name server
  • fixed wrong link in swMessage
  • fixed cut linkwiki in Template parser

15.7.2010 0.3.4

  • extensive log and special:log page
  • refactored menu items in index.php
  • refactored actions
  • refactored db, moved to global methods
  • modifying user can also propose

13.7.2010 0.3.3

  • comments for revisions
  • special page regex search and replace
  • skins are XHTML 1.1 compliant
  • User and Template namespace pages are not parsed any more
  • no login lockout any more when you are not logged in on a special page
  • fixed wrong links in special:images page

27.6.2010 0.3.2

  • disabled cookies in API
  • namespace for cookies
  • fixed leak that allowed to see revisions without rights

16.6.2010 0.3.1

  • special page upload multiple
  • excluded cache, files (too big), indexes and queries from backup
  • fixed bug in swMessage (main namespace) and template parser (lookup limited to 1000 char)

20.5.2010 0.3.0

  • direct upload link in editmenu items
  • simple URL with .htaccess, nameURL
  • blockquote
  • ordered lists
  • tables
  • small and big tag
  • fixed & lang = bug
  • bug after edit action and language change

16.5.2010 0.2.3

  • system messages can be styled
  • swInternalLinkHook
  • external link with alternate text
  • pipe trick on internal links
  • fixed missing file notify

12.5.2010 0.2.2

  • fixed relative paths in to makle api usable (to test)
  • multilanguage editing interface
  • added modification date in zip files
  • fixed template parser characters in name

28.4.2010 0.2.1

  • fixed reserved word namespace for function swRecord->wikinamespace()
  • use md5 strings for current folder
  • moved all includes to api.php, so that the code can be used by site php code

12.4.2010 0.2.0

  • localization of user interface (system namespace)
  • new actions. new, talk, newtalk, newtalksubmit, newuser, newusersubmit
  • new special:mail
  • redesigned talk
  • new user and lost password forms
  • notify
  • skin tribune
  • rewritten link parser
  • backup

8.4.2010 0.1.0
concept study unpublic online