Extension:TableEdit

Rationale and Features
Wiki markup can be challenging. Tables are one of the harder things for new users. TableEdit provides a simple table creation and editing system.

TableEdit replaces &lt;newTableEdit/> tags in wikitext with a "Create Table Here" link. Following this link goes to a Special page that creates HTML comment-delimited tables The content is controlled by an external mysql database, but the tables are saved back to the wiki in normal wikitext surrounded by HTML comments with the id number of the table in the database. Users can
 * Insert rows
 * Append columns
 * Change styles for tables, heading rows, and rows
 * Use template-defined lists of column headings

See EcoliWiki for more about the TableEdit features and how to use them.

Status
So far, TableEdit 0.2 has been tested with MediaWiki 1.8.3 and MediaWiki 1.9.3 on MacOSX. Help testing this extension on other versions will be appreciated!

Changes in Version 0.2

 * Persistence now changed to use $_SESSION variable
 * Rudimentary edit conflict detection and resolution
 * Ability to rotate tables so headings are on the left instead of on the top
 * With MW 1.9.3, tables with headings on top can be sorted using the sortable.js javascript library in MediaWiki/Common.js

Installation
Table.php installation requires an additional mysql database.
 * Download tableEdit0.2.tgz
 * Place the files from the TableEdit director in your extensionsdirectory. Files included:
 * TableEdit.php - the extension to catch &lt;newTableEdit/> tags, and load the other files.
 * SpecialTableEdit.php - setup for the special page
 * SpecialTableEdit.body.php - the special page that provides the editing interface and displays the help file
 * SpecialTableEdit.docs.php - help info
 * SpecialTableEdit.i18n.php - internationalization (needs lots of work)
 * Create the mysql database wikibox_db and grant appropriate permissions. See EcoliWiki for the SQL to create the database.
 * add
 * require_once("Cite/TableEdit.php");
 * to LocalSettings.php.

Alternatives

 * PropertyTable

Known Issues

 * Can't get the content back if the table is edited directly in the wiki. This can be prevented by combining TableEdit with ProtectSection
 * Can't sort
 * Can't insert columns in the middle

Dumps
While tables will be preserved when importing a dump from a wiki that uses TableEdit, when a user tries to click on the Edit link, bad things are likely to happen. In the best case, the recipient wiki will not have TableEdit installed and there will just be a 404 error. If TableEdit is installed, the most likely outcome is that the box_id and pagename will not match what is stored in the database and TableEdit will refuse to do the edit on the imported page. Suggestions for how to solve this are welcomed!

Problems with 0.2 distribution
- The 0.1 distribution install instructions for database setup are broken. Need to not create the 'xxx' column!

Problems with 0.1 distribution

 * Doesn't work on Mediawiki 1.9.3, PHP 5.1.6, MySQL 4.1.21; Muirhejs 02:07, 28 March 2007 (UTC)
 * Installed into wiki/extensions/TableEdit/
 * LocalSettings.php line: require_once("extensions/TableEdit/TableEdit.php");
 * Created tables as described at EcoliWiki with prefix mw_; modified the scripts with command perl -p -i -e 's/wikibox_db\./mw_/g' * to account for this
 * Part of the problem may have be in SpecialTableEdit.php. I changed the line
 * $wgExtensionFunctions[] = 'tableeditsetup'; to $wgExtensionFunctions[] = 'specialtableeditsetup';

Warning: call_user_func(tableeditsetup) [function.call-user-func]: First argument is expected to be a  valid callback in /home/ /public_html/wiki/includes/Setup.php on line 219
 * The extension seems to go straight to the help page instead of going to the editor; it seems that the extension is properly changing the .

FIXED: in TableEdit.php, changed line: [/wiki/index.php/Special:TableEdit?id=$box_id&page=&ns= Create Table Here]
 * to

[/wiki/index.php/Special:TableEdit?id=$box_id&page=&ns= Create Table Here]


 * Since this does work in our setup, please provide more information about the conditions under which it gave this error. JimHu 01:57, 28 March 2007 (UTC)