This is documentation of the process used while porting Trackers V2 from TikiWiki 1.9 to bitweaver.

Created by: Stephan Borg, Last modification: 18 May 2008 (20:42 UTC) by laetzer

Create the Directories

Well, first thing I'll do is create sub-dirs under my bitweaver install as per Fire's Tutorial_Custom_package.

mkdir trackers2
mkdir trackers2/admin
mkdir trackers2/icons
mkdir trackers2/modules
mkdir trackers2/plugins
mkdir trackers2/templates

Copying the Files

First thing I'll do is copy the trackers library, root php files, modules and templates. I've used the '...' to indicate the previous command but with a different filename for brevity.


cp ../tw-1.9/lib/trackers/trackerlib.php trackers2

Root files (non-admin)

cp ../tw-1.9/tiki-list_trackers.php trackers2

Root files (admin)

cp ../tw-1.9/tiki-admin_include_trackers.php trackers2/admin


cp ../tw-1.9/img/icons/admin_trackers.png trackers2/icons


cp ../tw-1.9/modules/mod-last_modif_tracker_items.php trackers2/modules

Templates (modules)

cp ../tw-1.9/templates/modules/mod-last_modif_tracker_items.tpl trackers2/modules

Wiki Plugins

cp ../tw-1.9/lib/wiki-plugins/wikiplugin_tracker.php trackers2/plugins

Templates (non-modules)

../tw-1.9/templates/tiki-admin-include-trackers.tpl trackers2/templates

Templates (notifications)

cp ../tw-1.9/templates/mail/tracker_changed_notification.tpl trackers2/templates

Renaming files

Its BW practise to remove the tiki- prefix from all PHP and Smarty templates.

cd trakers2
. | grep tiki- | sed -re "s/^(\S*)tiki\-(\S*)$/mv \1tiki-\2 \1\2/g"  tmp && sh tmp && rm tmp

Dirty but it works ;-)


Lets start with an index page. By default, we want list trackers to be the index page. Rather than rename the page, I'd suggest creating a new index.php file, and using a Location header to redirect to your preferred start page.

("location: sheets.php");


Okay - all references to tiki-setup.php must be changed to ../bit_setup_inc.php. I've used a PERL command that will find and replace all instances of tiki-setup.php to ../bit_setup_inc.php in all *.php files under trackers2 directory.

perl --pe 's/tiki-setup.php/..\/bit_setup_inc.php/g' `find trackers2 -type f -name '*.php'`

Now create a bit_setup_inc.php file in the trackers2 directory. I've used the trackers/bit_setup_inc.php file as a template.

// Initialise global variables
global $gBitSystem$gBitUser;

// Register package with kernel
$gBitSystem->registerPackage'Trackers v2'dirname__FILE__ ).'/' );

// If package is installed
if( $gBitSystem->isPackageActive'trackers2' ) )
// Register user menu
'bitpackage:trackers2/menu_trackers.tpl'true );


Okay - all references to lib/trackers/trackerlib.php must be changed to TRACKERS2_PKG_PATH.'tracker_lib.php'. Once again, we will use a PERL find and replace.

perl --pe "s/\'lib\/trackers\//TRACKERS2_PKG_PATH.\'/g" `find trackers2 -type f -name '*.php'`

Field and Variable Names

One standard we have changed from TikiWiki, is the variable naming convention. All fields and variables now use underscores and standard suffixes identifying the data type.
trackerId => tracker_id
lastModif => last_modified
showCreated => show_created
showStatus => show_status
showLastModif => show_last_modified

You can use a PERL find and replace to do mass changes:

perl --pe "s/trackerId/tracker_id/g" `find trackers2 -type f`