Change Log


This file summarizes changes in WackoWiki releases. (ReleaseNotes)



5.5

(12.08.2016) Revision:3400 -> RC2 (Release Notes)


- Release Candidate - As work on WackoWiki 5.5 is still underway, this is an incomplete list of changes.

Actions

  • toc: allow missing heading levels in table of content
  • fixed inconsistent use of alias 'page' for 'for' / 'root' in actions -> use page= from now on 
  • topics: allow user to edit his forum posts per default
  • include: hide edit link in include if user has no rights to edit the included page
  • menu: fixed broken setting with system=1 (guests)
  • files: fixed false reference for files_cache, added parameter track (default off)
  • added
    • fileusage
    • hashid
  • removed
    • permalinkproxy
    • permalink -> successor hashid

Configuration

  1. disabled registration by default in config

primary config

  1. added
    • hashid_seed
  2. removed
    • header_action
    • footer_action
    • classes_path
    • action_path -> ACTION_DIR
    • formatter_path -> FORMATTER_DIR
    • handler_path -> HANDLER_DIR
    • theme_path -> THEME_DIR
    • upload_path -> UPLOAD_DIR_GLOBAL
    • upload_path_per_page -> UPLOAD_DIR_PER_PAGE
    • upload_path_backup -> UPLOAD_DIR_BACKUP
    • cache_dir -> CACHE_DIR

secondary config

  1. renamed
    • session_expiration -> session_length
    • x_csp -> csp
  2. new 
    • allow_persistent_cookie
    • allowed_languages
    • footer_tags
    • link_target
    • sorting_comments
    • ext_bad_behavior
    • approve_new_user
    • enable_referrers
    • menu_items
    • hide_article_header
    • enable_captcha
    • list_count
    • noreply_email
    • noreferrer
    • nofollow
    • diff_modes
    • default_diff_mode
  3. removed
    • x_frame_option
    • session_encrypt_cookie
    • allow_swfobject
    • revisions_hide_cancel
    • session_prefix
    • cookie_prefix
    • date_precise_format -> date_format and time_format_seconds
    • date_macro_format -> date_format and time_format
    • phpmailer
    • disable_npjlinks

user settings

  1. new 
    • sorting_comments
    • notify_minor_edit
    • notify_page
    • notify_comment
    • menu_items
  2. renamed
    • changes_count -> list_count
  3. removed
    • revisions_count -> list_count

constants

  1. new 
    • RECOVERY_MODE
    • LINK_PAGE
    • LINK_FILE
    • DAYSECS
    • CONFIG_DIR
    • CONFIG_FILE
    • CONFIG_DEFAULTS
    • SITE_LOCK
    • AP_LOCK
    • ACTION_DIR
    • FORMATTER_DIR
    • HANDLER_DIR
    • IMAGE_DIR
    • THEME_DIR
    • UPLOAD_GLOBAL_DIR
    • UPLOAD_PER_PAGE_DIR
    • UPLOAD_BACKUP_DIR
    • XML_DIR
    • CACHE_DIR
    • CACHE_CONFIG_DIR
    • CACHE_FEED_DIR
    • CACHE_PAGE_DIR
    • CACHE_SQL_DIR
    • CACHE_SESSION_DIR
    • CACHE_TEMPLATE_DIR
    • SITEMAP_XML
  2. renamed
    • TRAN_DONTCHANGE -> TRANSLIT_DONTCHANGE
    • TRAN_LOWERCASE -> TRANSLIT_LOWERCASE
    • TRAN_LOAD -> TRANSLIT_LOAD
    • TRAN_DONTLOAD -> TRANSLIT_DONTLOAD
    • ACTIONS4DIFF -> ACTION4DIFF
  3. removed
    • SQL_NULLDATE
    • CSP_CUSTOM -> csp_custom.conf

conf files

  1. autoload.conf
  2. router.conf
  3. csp_custom.conf

Core

  • major refactoring of init system
  • new session handler
  • URI router
  • new template engine
  • fixed missing slash in LIKE condition to clone, backup or rename cluster
  • using password_hash() and password_verify() API 
  • replaced the error prone use of KiB for upload quota with Bytes
  • public registration moderation by admin
  • added auth and form form token
  • give all forms unique names
  • $_REQUEST allows only $_GET and $_POST
  • add config option: 'allow_persistent_cookie'
  • file:attachment.ext loads now the local file before the global file
    • it tries to load the local file first and only if there is none, it loads the global file
    • to force the global file with the same name use file:/attachment.ext
  • added option to write sitemap only once in a given period
  • Captcha works again out of the box 
  • set <META NAME="ROBOTS" CONTENT="NOINDEX,FOLLOW"> for meta pages like page index, recent changes
  • fixed broken moderator notification
  • switched diff mode for notify_watcher email to source diff
  • fixed DEFAULT value error in save_revision function (STRICT_TRANS_TABLES SQL mode)
  • invalidate cache for pages with form tokens like login and registration: $this->disable_cache = true; in no_cache($client_only = false)
  • removed deprecated X-Frame-Options in favor of the frame-ancestors directive from the CSP Level 2 specification
  • saves now also page lang with revision
  • unset PHP default_charset for page cache to avoid encoding disagrees ini_set('default_charset', NULL);
  • reimplemented target="_blank" as a user option for external links
  • set link to ((user:UserName UserName)) via config['users_page'] in link() function
  • set link to ((group:GroupName GroupName)) via config['groups_page'] in link() function
  • implemented file link tracking file:we_track_reference_like_we_do_for_links.txt
  • separate email address for sending emails noreply_email, Send From / No-reply address e.g. noreply@example.com

Methods

This is only a random selection.


  • added function
    • validate_email($email_address)
    • validate_form_token($form_name)
    • affected_rows($dblink, $results)
    • can_upload() – checks if user has all rights required to upload files
    • update_link_table()
    • set_user_trail($size = 5)
    • get_user_trail($titles = false, $separator = ' > ', $linking = true, $size)
    • binary_multiples_factor ($size, $prefix = true)
    • load_file_usage($file_id, $for = '')
    • set_cookie($name, $value, $days = 0, $persistent = false, $secure = 0, $httponly = 1)
    • user_link($user_name, $account_lang = '', $linking = true, $add_icon = true)
    • group_link($group_name, $group_lang = '', $linking = true, $add_icon = true)
    • notify_moderator($page_id, $tag, $title, $user_name)
    • notify_watcher($page_id, $comment_on_id, $tag, $title, $page_body = '', $user_id, $user_name, $is_revision)
    • get_list_count($max, $default = 50)
    • show_pagination($pagination = '')
    • write_sitemap($write_site_map = false, $update = false)
    • form_autocomplete_off()
    • add_html_head()
  • modified function
    • no_cache($client_only = true) – added option to disable also server cache for a page, default false (required for form tokens)
    • form_open($form_name = '', [])
  • renamed function
    • get_translation() -> _t()
    • user_is_owne()r -> is_owner()
    • load_recently_deleted() -> load_deleted()
    • load_recently_changed() -> load_changed()
    • load_recently_comment() -> load_comment()
    • get_time_string_formatted() -> get_time_formatted()
    • set_session_cookie() -> set_cookie()
    • set_persistent_cookie() -> set_cookie()
    • header() -> theme_header()
    • footer() -> theme_footer()
  • removed function
    • get_page_time_formatted() -> get_time_formatted($this->page['modified'])

Classes


  • added class
    • see class folder ... plus add a short explanation
  • renamed class
    • RSS -> Feed

Folders

  • renamed folders
    • actions -> action
    • classes -> class
    • files -> file
    • formatters -> formatter
    • handlers -> handler
    • icons -> icon
    • images -> image
    • modules -> module
    • themes -> theme

Use singular for folder names, it describes a specific entity.


URI router

foo://example.com:8042/over/there?name=ferret#nose
\_/   \______________/\_________/ \_________/ \__/
 |           |            |           |        |
scheme     authority     path        query   fragment
 |     ___________________|__
/ \   /                      \
urn:example:animal:ferret:nose


config/router.conf

// whole idea is to take URI path, _GET/_PUT/_SERVER data and other
// meta-data, then process rules in this file sequentially, which
// results in dispatched handler to process query,
// and all arguments extracted from URI for furher usage by those handlers
// (e.g. you can extract parts of URI to _GET vars, etc.)


// 'language' guide:
// every line of code consists of regex which matched against URI, and
// actions, all separated by whitespace. there are no possibility to
// include whitespace in regex or action.
// regex will be matched against URI, on success all actions executed, on failure - we go for next regex.
// lines without regex is continuations for same regex, and will be executed sequentially if regex matched.

// every single action can succeed or fail. if any one fails - all
// variable assignments made by THIS line (even before failed action) is
// discarded, and we go to next line.

// two control action exist (all action line must succeed for them to act!)
//	_next!		-- jump to next regex (skip next action lines with empty regex)
//	_ok!		-- search terminated with success
// if no _ok! executed ever - search fails and 404 emitted

// that's all on control flow.

// main regex:
// http://php.net/manual/en/reference.pcre.pattern.syntax.php -- usual php preg_* regex syntax apply, including
// delimiters and options after trailing delimiter.
// convenience macros (defined by 'define' line, or supplied by wackowiki) expanded before matching.
// used as {macro} - to be referenced as $1-vars then, or {var=macro} - for inline assignment.
// macros cannot be used in ~-regexes

// VARIABLES:
//	$0..$9	- fields matched by main regex. $0 is complete match, $1 and later - corresponding (...) parts
//	$a..$j	- as $0..$9 but set by sub-matched (by ~ operator) patterns 
//	Gname	- _GET[name]
//	Pname	- _PUT[name]
//	Sname	- _SERVER[name]
//	others	- local variables
// predefined vars:
//	_tls		- 1 or 0, tls session
//	_uri		- parsed URI (it is matched against main regex, but can be changed by assignment)
//	_method		- _SERVER[REQUEST_METHOD]
//	_rewrite	- 1 or 0, mod_rewrite active
// usage of undefined variables considered a failure (if not masked by @ in VALUE expansion, see later)

// ACTIONS:
// similar format used for all actions (not all fields apply for every action, and just ignored):
//		VARIABLE[:FUNCTION]operatorVALUE

// value is a string, with expanded variables. expansions:
//	$0 .. $9 / $a .. $j -- see above
//	${name}
//	@$... format can be used to mask undefined variable error
//	$$ - replaced by $
//	$@ - replaced by @

// assignments:
// 	FUNCTIONs can be used: tolower | toupper | int
//	var=$1
//	var:tolower=$1
//	var?=$2				-- assign if not set
//	var!				== var=1
//	dbg=$1,$2,$3		-- Ut::dbg printer ;)

// pattern matching:
//	var~/regex/i			-- sets $a..$j on success
//	var!~/regex/i
//	var~hashid:[1-9]		-- hashid expansion, into $a...
//	var!~hashid:[1-9]

// comparisons:
//	FUNCTIONS can be used: int -- both args converted to int before comparison
//	var==12    var!=12    var:int<12    var>12    var<=12    var>=12

// others:
// var?					-- isset
// var-					-- unset

//define	{method}	name|name|name		// predefined by wackowiki
define		{hashid}	[0-9a-zA-Z]+
define		{i}			[0-9]+
define		{h}			[0-9a-fA-F]+
define		{a}			[0-9a-zA-Z]+
define		{w}			[\w]+
define		{}			[^/]*
define		{*}			.*?
define		{**}		.*

//`^{hashid}$`						$1~hashid:2 Gone=$a Gtwo=$b all=$0+${Gone} _ok! _tls!=0 _method~/g(e)t/i BIN:tolower=$b Pln=${_line}
//									desc=$0 term:tolower=MyMethod term!= Gmethod=show _ok!
//`^{hashid}/{Op=*}/{Mode=**}$`
//									Op!~/^diff$/i &next!
//									$1~hashid:2 Gone=$a Gtwo=$b Gmethod:tolower=${Op} _ok! // test

`^`
		SPATH_INFO!= _uri=${SPATH_INFO} _next!		// if PATH_INFO available - use it
		_rewrite==0 _uri=@${Gpage} Gpage-			// when rewrite mode is off - replace _uri by page _GET variable

`^/*{_uri=*}/*$`	// trim _uri of beginning & trailing slashes
`^index\.(php|html)$`									_uri=

'^'												route=static age=30 static=${_uri}

`^robots\.txt$`										_ok!
`^sitemap\.xml$`									_ok! age=0 

`^(theme/{}/css|theme/_common|admin/style)/{}$`			_ok!	// css
`^image/(wikiedit/)?{}$`								_ok!	// icons
`^theme/default/icon/{}$`								_ok!	// icons
`^js/(lang/)?{}$`									_ok!	// js
`^files/global/{}$`									_ok!	// global uploads
`^setup/(image|css)/{}$`								_ok! unlock=1	// setup inlines
`^xml/{}$`											_ok! age=0	// feeds

'^'												_ok! _install!=0 route=install unlock=1
												session=1 age- static-

`^\.freecap$`										_ok! route=freecap

'^'												engine=1 route=wacko

`^admin\.php$`										_ok! route=admin

`^{}(/.*)?$`
		$1~hashid:2 page=$ax$b method=Hashid _ok!
		// $1~hashid:2 Gpage_id=$a Gversion_id=$b page= method=show redirect=301 _ok!

//`^{i}rev{i}$`
//		page=$1x$2 method=Hashid redirect=301 _ok!

//`^{page=}$`
//		method=show _ok!

`^(|{page=**}/){method}(/.*?)?$`i
		method:tolower=$3 _ok!

// catch-all
`{page=**}`
		method=show _ok!

Database

  1. added table
    1. auth_token
    2. file_link
  2. renamed table
    1. link to page_link
    2. upload to file
    3. category_page to category_assignment
  3. renamed field
    1. session_expiration to session_length in table user_setting
    2. parent to parent_id in category table
    3. session_time to last_visit in user table
    4. moderator to moderator_id in usergroup table
    5. changes_count to list_count in user_setting table -> default number of records per page in lists
    6. description to category_description in category table
    7. lang to page_lang in page and revision table
    8. lang to category_lang in category table
    9. lang to cache_lang in cache table
    10. lang to menu_lang in menu table
    11. lang to tag_lang in tag table
    12. lang to file_lang in file table
    13. lang to user_lang in user_setting table
    14. upload_id to file_id in file table
  4. added field
    1. user_ip VARCHAR(40) to user table
    2. sorting_comments to user_setting table
    3. description to category table
    4. account_lang to user table
    5. group_lang to usergroup table
    6. account_status to user table
    7. menu_items in user_setting table
    8. version_id to page table
    9. page_size INT(10) to page and revision table
    10. mimetype to file table
    11. assignment_id INT(10) to category_assignment table
    12. object_type_id INT(10) to category_assignment table
    13. object_id INT(10) to category_assignment table
  5. removed field
    1. revisions_count in user_setting table
    2. salt from user table, but remains in upgraded installation
  6. changed field
    1. title to VARCHAR(250) in page and revision table
    2. edit_note to VARCHAR(200) in page and revision table
    3. name to CHAR(40) in cache table
    4. password to VARCHAR(255) in user table
  7. updated default values for standard_handlers in config table
  8. added primary key referrer_id to referrer table

Installer

  • added option to select only a subset of the available languages with multilanguage on 
  • set noindex true for all default pages except for Home and Admin page
  • removed old unused secondary config settings
  • use version_compare() scheme for upgrade, e.g. version_compare('5.5.rc', '5.5.beta2')
  • fixed DEFAULT values errors for columns 'body_r' and 'body_toc' (STRICT_TRANS_TABLES SQL mode)
  • added missing default values in table creation scripts
  • checks if database version is lower then 5.6.4 and sets engine to MyISAM if necessary

Formatters

  • removed redundant anchor <a name="[p|h]1249-1">
  • use new HTML5 <mark> tag for ??highlight text?? syntax
  • added support for SVG files
  • removed double nested pre tag if highlighter class is used
  • implemented ACTION4DIFF, sets allowed actions in DIFF
  • added option to add rel= noreferrer and nofollow to external links
  • added anchor link to headings
  • removed npjlinks patterns
  • removed icq highlighters

Handlers

  1. show: fixed broken redirect after editing a page comment with active paging
  2. renamed ms to wordprocessor
  3. diff: added a link to switch directly between full and simple diff
  4. referrers: added anchor for internal links
  5. _comments: toggle setting that allows users to list comments either with the most recent OR the oldest comment at the top of the list of page comments
  6. upload: added missing file path for local file in preview link
  7. allowed Admin to fix e.g. typos in comments of other users
  8. properties: show keywords with related categories in page properties
  9. remove: updates menu array in session after deleting a related page
  10. show: moved page title (H1) from theme header to show handler
    • to suppress the page title you can set hide_article_header true in your action or theme
  11. added option to turn external referrers off or to show them only to administrators, off by default
  12. added attachments handler
  13. added filemeta handler

WikiEdit

Admin panel (BETA)

  1. now you must be logged as Admin in the first place to access the admin panel
  2. recovery password login (in case of db corruption) -> requirers to set RECOVERY_MODE to 1
  3. fixed broken groups management
  4. backup & restore:
    1. fixed broken processing of default values with '' and 'timestamp'
    2. uses now the DEFAULT keyword to restore empty values
    3. fixed broken backup and restore for cluster
  5. fixed Admin Panel sets mode_rewrite allways on 
  6. added AP module to convert MyIsam to InnoDB / XtraDB
  7. added AP module for Bad Behavior extension
  8. added AP module for User approval
  9. added AP module config appearance
  10. added AP module config upload
  11. loads separate lang files for Admin panel

Extensions

  1. added Bad Behavior extension

Themes

  1. replaced GIF with PNG/SVG icons
    1. optimized svg files with SVG Cleaner
  2. HTML5 Migration
  3. removed smooth scrolling JavaScript functions in default.js
  4. default: use reverse hierarchy order in titles
  5. default: bookmarks as dropdown
  6. moved theme icons to default.css
  7. moved wiki link icons to wacko.css

Translations

Packages

added


updated


removed

  • SWFObject

Note that the changelog is usually incomplete, for a complete list of changes that went into R5.5, you can browse the Mercurial log, the Bug Tracker Log and ToDo list.


5.4

(12.07.2014) Revision:2389 -> M3 (Release Notes)

Actions

  • use nested list for table of content
  • fixed broken menu session array after updating bookmarks via menu action #367
  • fixed broken reset password links with mode rewrite off 
  • exclude deleted pages from tree
  • exclude deleted pages and comments from search

Configuration

  • primary config
    1. 'database_charset' => '[latin1|cp1251|...]',
  • constants
    1. HTML_ENTITIES_CHARSET '[ISO-8859-1|cp1251]'

Core

  • removed depreciated MySQL API support
  • PHP Version >= 5.4 patch for htmlspecialchars(), htmlentities(), html_entity_decode()
  • replaced preg_replace() e modifier with preg_replace_callback
  • exclude pages from XML sitemap with noindex '1'
  • use field 'deleted ' to mark deleted pages, comments, files
  • renamed function cache_invalidate() to invalidate_page_cache()
  • purges SQL queries cache after adding, renaming or deleting a page / comment
  • replaced obsolete element (tt) with (code).
  • show only the default language for selection in usersettings if multilanguage is set off 
  • hash the lost password and email confirm code/token in the database
  • PHPMailer: added missing autoloader

Database

  • added field 'cache_id' to cache table
  • database: added missing default values

Installer

  • added option to chose charset in DB config section (cp1251 | latin1 | latin2 | greek)

Bugfixes

  • tree action: fixed broken nested list
  • fixed loading other language with theme if multilanguage is set off

Handlers

  • shows upload permissions only to user if uploads are allowed
  • disallow page names with 'Comment[0-9]' and all sub pages
  • added option to show referrers by time

Admin panel (BETA)

  • fixed broken backup and restore for cluster and set correct charset
  • fixed deleted pages module
  • show success message after saving changed config settings
  • fixed broken groups management
  • fixed: Error loading admin module "configupload.php"

Themes

  • replaced GIF with PNG icons

Translations

  • added message sets for resend the email confirmation code
  • updated German, French

Packages


Note that the changelog is usually incomplete, for a complete list of changes that went into R5.4, you can browse the Mercurial log, the Bug Tracker Log and ToDo list.


5.1

(17.06.2012) Revision:2173 -> Final (Release Notes)

Core

  • removed legacy code for R4.x legacy versions

Installer

  • removed upgrade routine for R4.x legacy versions

Bugfixes

  • creates a new page not just with the default language

Formatters

  • ##monospace## now uses <code> instead of <tt>

Handlers

  • display link to show files / comments only if there is one or/and user has the right to add a new one

Translations

  • Languages Localization
    • updated German, French

Note that the changelog is usually incomplete, for a complete list of changes that went into R5.1, you can browse the Mercurial log, the Bug Tracker Log and ToDo list.


5.0

(07.08.2016) Revision:3383 -> Maintainance3 (Release Notes)

Database

Installer

  • added option to chose InnoDB as MySQL database engine (experimental)

Configuration

  • renamed and moved wakka.config.php to config/config.php
  • new available settings
    1. 'edit_summary' => 0,
    2. 'minor_edit' => 0,
    3. 'debug_admin_only' => 0,
    4. 'debug_sql_threshold' => 0,
    5. 'disable_bracketslinks' => 0,
    6. 'disable_wikilinks' => 0,
    7. 'disable_npjlinks' => 0,
    8. 'disable_formatters' => 0,
    9. 'cache_sql' => 0,
    10. 'cache_sql_ttl' => 600,
    11. 'review' => 0,
    12. 'hide_revisions' => 0,
    13. 'enable_email' => 1
    14. 'enable_email_notification' => 1
    15. 'phpmailer' => 1
    16. 'phpmailer_method' => '[mail|sendmail|smtp]'
    17. 'email_from' => ''
    18. 'abuse_email' => 'admin@example.com'
    19. 'smtp_host' => ''
    20. 'smtp_port' =>
    21. 'smtp_connection_mode' => ''
    22. 'smtp_username' => ''
    23. 'smtp_password' => ''
    24. and many others [to add]
  • removed settings
    1. upload_max_per_user

Features

  • added LaTeX export
  • added Admin panel (beta)
  • Implemented PHPMailer (smtp support)
  • added page title / comment title
  • added change summary
  • added timezone support
  • Support X-Content-Security-Policy (CSP)
  • Support Strict-Transport-Security header

Core

  • Lots of bugfixes & enhancements, including:
    • description showed next to uploaded file on the "upload successful" page.
    • added line for new signature button in WikiEdit
    • email notification if the ownership of a page is transfered
    • implemented cache in NpjTranslit
    • implemented cache for expensive SQL-queries (by default off)
    • _cache folder has now the following subfolders
      • /config
      • /pages
      • /queries
      • /feeds (optional)
    • merged acl and massacl handler
    • merged rename and massrename handler

Actions

  • added
    • adminupdate
    • authors
    • categories
    • category
    • deleted
    • feed
    • forums
    • groups
    • menu
    • mostcommented
    • mostrated
    • news / newsinput
    • pagebreak
    • permalink / permalinkproxy
    • polls / pollsadd / pollsarchive / pollspreview
    • randompage
    • tagcloud
    • topics
    • userpages
    • users
    • whatsnew
  • renamed
    • comments -> comment
    • recentlycommented -> commented
    • recentcomments -> comments
  • removed aliases
    • a -> anchor
    • orphanedpages -> orphaned
    • recentchanges -> changes
    • showparagraphs/p -> paragraphs
    • tableofcontents -> toc
    • wantedpages -> wanted
    • mywatchespages -> mywatches
    • searchfor
    • textsearch
    • topicsearch
  • removed
    • lastusers
    • linkstree

Formatters

  • Typografica:
    • 'laquo' => 0, // angle quotes
    • 'quotes' => 0,
  • renamed
    • comments -> comment
  • extended Wacko Syntax
    • footnotes (experimental)
      • [[fn text of footnote here]]
    • table header (experimental)
      • #|
        *|heading 1|heading 2|heading 3|*
        ||cell 1-1|cell 1-2|cell 1-3||
        ||cell 2-1|cell 2-2||
        |#

Handlers

  • added
    • categories
    • clone
    • purge
    • source
    • moderate
    • new
    • rate
    • review
    • latex
  • merged
    • massacls -> acls
    • massrename -> rename
  • renamed
    • acls -> permissions
    • files -> file
    • settings -> properties

Installer

  • fixed usage of wrong encoding during upgrade
  • sets SQL mode to permissive

Makros

  • changed :::: creates now ((user:UserName UserName))
    • you can set the path for user: in the interwiki.conf (e.g. /User?profil= or User/)

Translations

  • Localization?
    • localized more remaining and new strings (Russian & English)
    • renamed language files from wakka.xy.php to wacko.xy.php
    • updated German, French, Russian, Greek and Spanish all other languages still have English placeholders
    • removed Moldavian

Themes

  • added new default theme
  • header.php

Packages


Note that the changelog is usually incomplete, for a complete list of changes that went into R5.0, you can browse the Mercurial log, the Bug Tracker Log and ToDo list.


4.3

(20.03.2011) Revision:1816 (Release Notes)

Database

  • add MySQLi support
  • implementing PDO support
    • yet only MySQL works, most of the core classes and actions are not abstracted from MySQL specific code
      • requires vendor specific setup scripts for database
    • For now we only support legacy MySQL, legacy MySQLi and PDO MySQL. Other PDO dsns will be added in the near future with MS SQL, SQL Lite and PG SQL at the top of the list.
  • ALTERed column
    • body to MEDIUMTEXT in table pages and revisions
    • body_r to MEDIUMTEXT in table pages and revisions

Installer

  • New installer has been implemented.

Configuration

  • changed or new db settings
    • "database_driver" => "mysql_legacy",
    • "database_host" => "localhost",
    • "database_port" => " ",
    • "database_database" => "wacko",
    • "database_user" => "wacko",
    • "database_password" => "mypassword",
  • new available settings
    • "session_prefix" => “wacko43_",
    • "xml_sitemap” => 0,
    • "spam_filter" => 1,
    • added hide_files and hide_comments to config file
    • the hide_files and hide_comments config options now take "0" to not hide them, "1" to hide them from all users and "2" to hide them from non-registered users
  • added captacha settings
    • "captcha_new_comment" => 1,
    • "captcha_new_page" => 1,
    • "captcha_edit_page" => 1,
    • "captcha_registration" => 1,

Features

  • RSS feed for "recentcomments"
  • added XML Sitemap Support
    • Ability to turn XML Sitemap on and off via the config file
  • AutoComplete feature — in place completion of wiki-links while pressing Ctrl+Space. MSIE users got pretty inplace menu, Mozilla users got toolbar indicator.
  • redirect non logged in users to the language that suits their system as default (not yet implemented for cache)
  • added optional spam bot protection: Captcha to new page, edit page, page comments and user registration.

Core

  • Lots of bugfixes & enhancements, including:
    • new pdf and rdf link and icon
    • added support for bz2 and 7z to file links
    • implemented cache in NpjTranslit
    • set correct content type for graphics
    • set correct content type for languages
    • hide referrers page from non registered users
    • hide settings page from users that don't have write permission
    • now rename also associated files on filesystem when a page is renamed
    • now remove also associated files on filesystem when a page is removed
    • change wakka.php?wakka= to index.php?page=
    • changed default ACL configuration values from "*" to "$" for write and comments
    • Now we insert the logo image data into the uploads table during installation. The actual image file is stored in the /files directory. The homepage logo image link has been changed to point to it i.e. file:wacko_logo.png
    • Fixed: multiple installations on same domain sharing session data
    • Fixed: Wanted Pages list has wrong count for referrers
    • Fixed: WantedPages don't obey ACLs

Actions

  • add mygroups and updated usergroups
  • add nofiles and allowfiles
  • add edit and comments
  • add nomark attribute for backlinks
  • mostpopular now works also for clusters and on subpages, add <fieldset><legend> and [nomark="1"] option
  • added "bydate" option for mychanges
  • pageindex by letter including result limiting, added two arguments to the PageIndex action. The first is "limit" which sets the maximum number of pages to show at any one time on each index page. The second argument is "letter" which lets you pick which pages to display based on their name starting with a specific letter.
  • update flash action to use SWFObject 2
  • fixed include: Multiple insert of a page is now possible
  • added user level based outputting to the usergroups action i.e. see nothing if you're not logged in, see just the groups you belong to if you're a normal user and see all groups if you're an admin.

Translations

  • localized more remaining and new strings (Russian & English)
  • added Danish and Greek
  • updated German, French, Russian, Greek, Spanish, all other languages still have English placeholders

Themes

  • hide watch/unwatch icon and "powered by ..." from guests
  • @import "../../common/X11ColorNames.css";
  • localized search box in Tabs theme
  • hide referrer tab from guests in tabs theme
  • header.php
    • added JS include line for autocomplete.js
    • added JS include line for swfobject.js
    • added JS include line for captcha.js
    • include protoedit, wikiedit2, & autocomplete.js only on method==edit
  • ../css/wakka.css
    • added style for autocomplete button
  • added new classes
    • .debug
    • .pageedit form textarea {width: 100%;height: 400px; }
    • img {border:none;vertical-align: middle;}
  • added "new" default theme, the old default theme is now called "wakka"

Packages

Removed Features

  • delete outdated j.php action


Note that the changelog is usually incomplete, for a complete list of changes that went into R4.3, you can browse the Mercurial log the Bug Tracker Log and ToDo? list.


4.2

(27.03.2005)

  • complete PHP5 compatibility
  • mysql 4.1 compatibility (DB locale Latin-1 only)
  • Dozen of XSS vulnerabilities fixed
  • Import (accessible thru {{import}} action) & export (accessible from page`s properties)
  • Lots of bugfixes & enhancements, including:
    • fixed bug on duplicated event email notification
    • fixed anchor issue in InterWiki syntax
    • html- & css-formatters now take care about Cyrillic characters
    • more pages become XHTML valid.
  • Safehtml updated to version 1.3.1
  • Source code comments are completely in English from now 
  • RSS autodiscovery feature added
  • Actions:
    • pageindex — Index action with paging support
    • backlinks fixed — empty links removed
    • usergroups lists contents of access groups
  • Translations (language packs)
    • Estonian
    • Portuguese
    • Bulgarian
  • Formatters
    • icq formatter: added History++ Miranda plug-in support
    • WackoFormatter: added up-to-3-digit ordered lists & colouring syntax highlight
    • WackoFormatter: correct workaround of missed <table> closing tags
    • introduced wrappers (try %%(wacko wrapper=box))
    • introduced alignment in wrappers (like %%(wacko wrapper=box wrapper_align=right))
  • And stuff.

4.0

(31.07.2004)

  • Fixed XSS in textsearch
  • SafeHTML integrated – now you can enable "<# #> syntax safely. No XSS =)
  • Text Formatting changes:
1. Closing delimiter of header formatting (==header==) could contain any number of = (more than 2) — there is no more need to enter exact amount of them as in opening delimiter. Fuf.
2. Email-like quotation formatting added (per-line > prefix)
3. Double quotes, {{ and %% now could be escaped with tilda (~)
4. URLs are displayed as links in ICQ- and Email-highlighted text.
  • Moldavian and Polish translation updated.
  • New action {{admincache}} for cache cleaning.
  • When debug=1 Wacko reports, how much memory used for creating page.
  • Now administrator can change ACL of any page.
  • %%(box align=... width=...) text %%
  • More XHTML compatibility
  • Bugfixes
  • RC1 (14.07.2004)
  • Automagical smooth scrolling between the anchors in a page.
  • We're close to be fully XHTML 1.0 Transitional compliant
  • Brand new static content cache for unregistered users. Can be turned on by cache=1 config option.
  • Now you can turn off comments for any particular page: {{nocomment}}
  • Now you can change ACLs for whole cluster in two clicks (massacls handler).
  • Option for disabling registration: allow_registration
  • Hurrah! Preview is back.
  • New config option owners_can_remove_comments – allow page's owner to delete comments
  • Watches was broken for “locked” pages.
  • New skin coffee by Konstantin Kolomeetz.
  • New highlighter for css, diff, dtd, php, javascript, mysql, sql, python, xml.
  • New highlighters: ini, html and css.
  • Fixed a lot of bugs, including bug in ACLs.
  • Fixed problem with Apache1 and lowercasing of page names
  • Now we uses WikiEdit 2.0, with that cool toolbar
  • beta2 (15.04.2004)
  • “Small” text syntax: ++small++
  • “Definition” syntax: (?RTFM Read The Fcuking Manual?)
  • “Footnotes” syntax: text[[*]] more text[[*1]]
    [[#*]] Footnote star
    [[#1]] Footnote digit
  • More usable upload
  • Global acl for rename: rename_globalacl
  • New config parameters outlook_workaround, disable_autosubscribe
  • Bugs fixed
  • beta1 (27.02.2004)
  • Flexible Upload feature
  • Four new language packs (it, fr, pl, nl).
  • Javascript-editor /Wiki Edit, that allows using shortcuts for quick insertion of wiki-formatting
  • Multilingual support in single installation (pages can be written in different languages and thereby using different encodings — within single installation)
  • Formatting enhancements:
    • Wiki-formatter has now two passes. This feature keeps it from making mistakes.
    • Paragrafica formatter – now HTML contains <p> in addition to <br> (e.g., it allows paragraphs autonumbering)
    • Formatters (highlighters) for SQL and Pascal or Delphi source code.
    • Formatter for emails
    • “Blockquote” syntax: <[ text ]>
    • New (additional) link syntax: Actions.New Manual
    • Support fot \\LAN\Path and file:// protocol
  • Email validation & confirming
  • Password changing, “Forgot password?” function
  • Essential amount of refactoring “action” features (take a look on /Doc/English/Actions new syntax & capabilities). As a result, most of actions now works in a separate cluster of wikispace (for example, you could look on RecentChanges of a separate cluster)
  • Individual “settings” for every page, where you can change language, META keywords and description
  • New actions
    • flash, for inserting flash movies
    • hits, mostpopular – calculate and display the number of requests to pages
  • User settings ehnanced, in particular user can choose “theme” (design of wacko pages) from the list of preinstalled themes.
  • IIS compatibility, preliminary.
  • Millions of bugs fixed

3.5

(28.06.2003)

  • FIRST THINGS FIRST: some XSS-holes fixed, delete-by-GET-request fixed, Information Disclosure Vulnerability bug fixed.
  • Comment deletion implemented.
  • Page renaming implemented.
  • Comments are mailed to users “watching” the commented page now.
  • Simple diff supplied in email notifications on page changes (for users “watching” the page)
  • new formatters “icq”, “icq_m” & “icq_l” (ICQ, Miranda (nConvers plug-in) & ICQLite in that order) — to paste icq-logs.
    Should be used as: %%(icq_m) ... %% ( ... — paste your log here)
  • Users of “Admins” group (in wakka.config.php) can delete (but not view/edit) any page.
  • Usergroups & interwiki-links became case-insensitive.
  • New URL syntax — underscores & first letters capital. Comments on this are appreciated.
  • Various sort modes in mypages action
  • “Referers” handler shows BackLinks also.
  • New macros to inlining your WackoName and/or current date (use 4 colons or 31.07.2004 14:50 and KusoMendokusee /31.07.2004 14:50/)
  • Diff enhanced one more time.
  • Significant speed-up due caching of wacko-formatted text wherever it is possible.
  • Tilded links gone deprecated & unsupported. Tilde (~) itself is used only to prevent linking to a WikiLink (like this) now.
  • In-page anchoring now supported due ((#Anchor_name)) syntax & {{anchor..}} action
  • New syntax for semantic markup ??some text?? : some text
  • Some actions look improved.
  • LinksTree action is back & enhanced.
  • meet new wakka.config.php options: url_underscrores, show_spaces и show_datetime.
  • Time of last revision of the page is inserted in HTTP-header (search engines will feel better from now)
  • Many-many errors fixed & unnessesary changes made. Backlinks which were broken in CVS for some time ago fixed too.

3.0

(30.04.2003)

  • Multilingual installer
  • Case-insensitive and language-insensitive page names (f.e. /Логин = /Login = /LoGin = /ЛогИн).
  • WackoТypografica — a tool to enhance text according some rules: “pretty quotes”, ©2003, ™, ® & soon.
  • Links are accompanied with icons: email, foreign site link, lock (forbidden page) & key (page with limited access).
  • Separate handler for MSWord export (separate CSS & <div> instead of <br> in line-breaks).
  • “Themes” support — different interface designs w/o changing php-code. There is already two themes included: “default” & “tabs”.
  • WackoClusters — now you can create sub-pages & group pages in so-called clusters (hierarchically classification & some adjacent features)
  • Numerous caching issues that lead to significant perfomance improvement
  • Some new actions, such as TableOfContents & unified Search
  • Severe XSS problem fixed (there was a possibility to insert any html into double-double-quotes. Now this possibility still exists in Raw HTML?, but it is limited and can be completely turned off)
  • Some extensions to formatter, such as %%(noautolinks)...%% & ability to create WikiLinks with spaces inside using ((Page name== Text to place on page)).
  • 100% correct work with mod_rewrite turned off.
  • Zounds of lesser changes & bugfixes.

2.0

(25.03.2003)

  • image insertion by posting link into the page
  • enhanced “code” & “php” formatters
  • foreign links & links to forbidden pages have different CSS-styles
  • WakkaAliases – admin can arrange users in groups using wakka.config.php “Aliases” option
  • spaces in WikiNames
  • separate “print version” handler
  • UserBookmarks – personal menu that user can add page links to 
  • page watching
  • i18n, english & russian translations
  • complete support of Russian language (yes, that was a very urgent need for us)
  • forget about www.oversite.ru/wika/%D1%F2%E0%ED%E4%E0%F0%F2%FB%C2%E5%F0%F1%F2%EA%E8 — all links are converted into [a-z] range
  • wakka formatter greatly enhanced:
    • added table parsing
    • headers syntax now compatible with OpenWiki
    • bulleted/numbered list syntax now compatible with OpenWiki (old syntax still supported)
    • added strikeout & center
    • most of formatting features limited to one line
    • tons of slight enhancements
  • page deletion added
  • some actions added too:
    • Tree (LinksTree in R3 & greater)
    • Include
    • see /Actions for details (sic! in Russian)
  • Much more powerfull diff added

Wakka


Please note: The changes below are made in the dev version of Wakka and won't be available to the public until we prepare a new version (read: no public CVS, sorry), which of course will be posted here, too. So, for example, everything posted above "Released Wakka 0.1.1." won't be available until there's a bold line of text saying "Released Wakka 0.1.2." or something. Hendrik Mans


2003-02-16:


  • Wakka 0.1.2 is out, containing the changes mentioned below. Sorry about the delay; a busy work schedule as well as a big server move prevented an earlier release. Thanks to everyone for sending in feedback and hacks; I'd love to include some of them in the 0.2 release.

There will probably be a 0.1.3 first, though, containing more fixes (if anyone finds further problems, that is), and some minor new features (including image tags).

2002-12-28:



2002-12-27:


  • double slashes in URLs won't mess up the formatting anymore. CarlosZottman

  • Revisions additionally available in RSS format now. CarlosZottman

  • Wakka's XHTML 1.0 Transitional compliant now ("basic compliance" only, i.e. until the formatter is completely rewritten to intercept badly nested tags, the user still has to take care of good nesting, but as long as s/he does, it's compliant;)), and the default CSS file is valid CSS (external file now, the CSS is not hardcoded into actions/header.php anymore). CarlosZottman

  • added static XML file output for RecentChanges page, updated at every page save/edit. CarlosZottman

  • Actions can now have attributes. Action calls are much more fool-proof now and don't care about trailing/leading (white-)spaces anymore; the calls may look like this: {{exampleaction}}, {{ exampleaction }} or {{exampleaction attribute1="test" attribute2="test0r", attribute3="test0sterone"}} (attributes/parameters may be separated by comma or spaces or anything that's neither number nor letter; it's still two brackets as it is now, but I couldn't write them in the examples or Wakka would try to execute these example action calls). CarlosZottman

2002-12-26:


  • Added global comments on/off switch in the config ("hide_comments"). CarlosZottman

2002-12-25:


  • ACL change: "§" was added as placeholder for "registered users only". CarlosZottman

  • Everybody give CarloZottmann a hug; he's now a co-developer for this little Wiki engine. :)

2002-11-26:


  • Rumors of my death are greatly exaggerated! I've been super-ultra-busy the last couple of months and unfortunately didn't have any time to invest into Wakka. This isn't going to change significantly any time soon, I'm afraid, but I'll try to fix a couple of things here and there and get a 0.1.2 out within the next couple of weeks.

2002-09-14:


  • The Wakka formatter now auto-links URLs.

  • New formatting tag: ... for "notes" text. Looks like this!

2002-09-13:


  • Fixed a minor-ish problem with the link tracking code.

  • Fixed the silly comment sorting problem on RecentlyCommented.

  • Fixed a text problem on the referrer pages.

  • Fixed a couple of access control related problems. :|

  • Added new {{BackLinks}} action. It inserts a list of all pages that link to the current page. Very useful for structuring your Wakka using categories.

2002-09-10:


  • Released Wakka 0.1.1.

  • Wakka now purges old page revisions. This is controlled by the new configuration parameter pages_purge_time (which should be set to the number of days old page revisions should be kept — the default value is 90 days).

  • referrers_purge_time now uses days, not hours! If you've had it set at 24, change it to just 1. :)

  • Wakka doesn't use <?= ... ?> any longer. It was causing problems on systems with PHP's short_open_tag disabled. Urk!

  • The web installer/updater now writes the correct configuration file if you've told Wakka to use a non-standard one. More on that, err, later. Yeah.

  • Page previews now have a little "Preview" header at the top. Just in case.

  • You can now lock your Wakka site by creating a file called locked in your Wakka's directory. This file should contain a cleartext password on its first line. Once the file is there, everybody who accesses your site will be asked for a password. You will have to enter the specified password and "admin" as the user name to get in. Note that this isn't supposed to be a quick & dirty password protection hack, but rather a simple way to temporarily protect your Wakka site while, say, upgrading to a new version.

I'm actually thinking about making the installer/updater create this file automatically, so upgrading to a new version is safer. Let me know what you think.

2002-09-04:


  • Fixed the magic_quote_gpc workaround. Oops!

  • Released Wakka 0.1.
  • Wakka now comes with a .htaccess file that should make "nice URLs" work automagically. (It'll still work if the .htaccess file isn't being used.)
  • Hah. Hahaha. Hahahahhahaa.
  • Added a workaround for the magic quote stuff. Grrrrr.
  • You can now hide/display comments/comment forms. In UserSettings, you can control whether they should be displayed or hidden by default.

2002-09-03:


  • New configuration variable: navigation_links. A piece of text that gets inserted at the top of the page by the default Header action. This way you can easily change the links at the top without overriding the complete action. (Note: may add something similar for CSS styles in a future version.)
  • New action/handler overriding mechanism: You can now define paths (action_path and handler_path) that will be searched, so you can specify directories containing your own stuff without getting it overwritten when upgrading to a new Wakka version.
  • Added two new functions: Wakka::FormOpen() and Wakka::FormClose(). It is heavily recommended that you use these when putting forms into actions/methods.
  • Added a nice web-based installer/updater. When Wakka recognizes that it's been updated or newly installed, it'll automatically fire up the thing. It'll first ask you to set your configuration values, and then install all necessary tables. In future versions of Wakka, it'll also do all necessary changes.
  • Fix never-ending popup bug.
  • Fixed the stupid little bug in RecentlyCommented with some stupid little code. Yes, stupid. I hate it. It's evil.

2002-08-29:


  • Not saving empty comments any longer.

2002-08-28:


  • Oh man. I'm really, really tired. I've been tired all day. Still, I think this has been the most productive day for Wakka so far. Today I converted Wakka from a straight-forward Wiki engine into a real website toolkit. I'm happy. (But tired.) :)
  • I've kinda revamped the user login/signup page (on UserSettings on this site). You are now required to provide a password and an email address when signing up. Also, your user name has to be a WikiName. This rule may get relaxed at some point by making it a configuration option. Also, another upcoming configuration option will allow you to configure your Wakka site so users signing up will have to activate their accounts through an activation mail, for added security.
  • Pages now have owners. Only the page owner can edit a page's access control lists. In the ACL editing screen, he can also pass on ownership of the page to another user. Owners are stored per-revision, so it's possible to trace back who owned the page at what time. Pages created by non-registered users are owned by nobody. Pages owned by nobody can be "claimed" by registered users. In other words: if you want to have control over your created pages, make sure you sign up for an account and log in!
  • Added the ACL stuff. Good lord. It's in. It's easy to use. It rocks. See AccessControl for details.
  • Now there is no comment box on pages that don't exist yet.
  • Added some more comments stuff. There's now a {{RecentlyCommented}} action (see RecentlyCommented) that lists pages that have recently had comments attached to them. May be somewhat more useful than RecentComments.
  • You can now attach comments to pages. The functionality is pretty basic at the moment; I will probably change it so it only displays the comments from the last <n> days, or just the latest <n> comments. Probably the former, in order to "purge" stale discussion about possibly outdated page revisions. <n>, of course, will be a configurable value.

2002-08-27:


  • You can now view a page's referres from within the last 24 hours. Actually, this number is configurable through the configuration value referrers_purge_time.
  • Oops! I neglected AlwaysTwoCharacters with the header formatting codes. I've changed them so the smalles header now uses ==...== and the biggest ======...======. Yes, it's big!
  • Added a small TextSearch form in the footer action.
  • InterWiki linking implemented.
  • WantedPages can now display a list of pages linking to a wanted (non-existing) Wakka page.
  • Added a basic plugin structure. Pages are now being handled by "handlers", which are similar to classes with methods. In a future version, it will be possible to specify a handler when creating a new page. This will open up a lot of new possibilites for Wakka plugins that go a long way beyond simple Wiki pages.
  • The "header_action" and "footer_action" configuration values are now actually being used. Ahem.
  • Bracketed links are now slacker friendly, supporting lazy links like [[www.example.com]] or [[webmaster@example.com]].
  • Added some crazy database optimizations! Wakka is finally as fast as it is supposed to be.

2002-08-25:


  • Disabled auto-linking of URLs and email address, as this was causing some bad problems. :-(
  • Crazy! You can now embed source code %%like this%%. You can specify a language after the first %% enclosed into brackets. For example: %%(php)<?php actual PHP code ?>%%. Right now, PHP is the only syntax highlighter available, but there will be more available soon, I'm sure.
  • URLs and email addresses are now HTMLified automagically.
  • In unescaped text, HTML tags now can't be used any longer. < and > will automagically be converted to their corresponding HTML entities. If you really need to use raw HTML, you'll have to escape it (by putting it inside pairs of double quotes).
  • When looking an old revision of a page, there now is a button that allows you to send that revision to the editor. This allows you to easily restore old revisions of pages.
  • Rewrote the Wakka formatter. Now it's useful! ;)
  • Added a very sexy Preview button to the editor.
  • In your config file, you can now specify meta_keywords and meta_description. No need to explain what those are for, right?
  • New formatting tag: ##...## for monospace text.
  • Uh-oh, forced links now use [[...]]! Time to update some pages. :)
  • Actions are now {{Action}}.
  • Bold, italic and underlined now use **, // and __.
  • You can now use
    to force line breaks. This can be useful in list entries.
  • Wakka now checks for the existence of $_REQUEST[] to make sure it is running on a somewhat recent version of PHP. Without this check, it would go nuts on pre-4.1.0 versions. (Thanks GabeKruger.)

2002-08-23:


  • Added formatting code for headers.
  • Added formatting code for escaped text; text enclosed in double quotes will not be touched by the formatter at all. Unfortunately doesn't work over multiple lines yet.
  • Clicking the page title will launch a full text search.
  • Added a full text search at TextSearch.
  • When you log in through UserSettings, you will be remembered through cookies. (ie, you don't have to log in again the next time to visit.)
  • You can now disable the double-click editing if you don't like it. Also, it will now only work when you're viewing the page itself, not the editor or revision list.
  • API stuff: added Wakka::Redirect() for HTTP redirects, and Wakka::SetMessage() to store a message that the next page can display (vanilla Wakka does this in a Javascript alert box).
  • Added a new action: UserSettings — implements basic user management. Basically, Wakka now allows you to create a user account (linked to a WikiUserName) that should, but doesn't have to be password protected. If you don't set a password, anyone can use your WikiUserName. Your name will be used on RecentChanges and maybe some other upcoming pages/actions.
  • Slightly revised the RecentChanges action. Inspired by WikkiTikkiTavi.

2002-08-22:


  • On the revision list, you can now select two revisions that can be compared for differences.
  • You can now access old versions of all pages.
  • Added some more list types and normal indented text.
  • Rewrote bulleted list code. Now uses tabs.
  • Removed (these) links.
  • Made tabs work in editor.
  • First version online. :)