Differences from version 15 to 26



@@ -1,72 +1,69 @@

-This is documentation of the process used while porting Trackers V2 from TikiWiki 1.9 to bitweaver.
 {maketoc}
 !Create the Directories
 Well, first thing I'll do is create sub-dirs under my bitweaver install as per Fire's Tutorial_Custom_package.
-{CODE()}$ mkdir trackers2
+{code}$ mkdir trackers2
 $ mkdir trackers2/admin
 $ mkdir trackers2/icons
 $ mkdir trackers2/modules
 $ mkdir trackers2/plugins
-$ mkdir trackers2/templates{CODE}
+$ mkdir trackers2/templates{/code}
 
 !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.
 !!Libraries
-{CODE()}$ cp ../tw-1.9/lib/trackers/trackerlib.php trackers2{CODE}
+{code}$ cp ../tw-1.9/lib/trackers/trackerlib.php trackers2{/code}
 !!Root files (non-admin)
-{CODE()}$ cp ../tw-1.9/tiki-list_trackers.php trackers2
+{code}$ cp ../tw-1.9/tiki-list_trackers.php trackers2
  ...tiki-view_tracker_item.php
  ...tiki-view_tracker_more_info.php
- ...tiki-view_tracker.php{CODE}
+ ...tiki-view_tracker.php{/code}
 !!Root files (admin)
-{CODE()}$ cp ../tw-1.9/tiki-admin_include_trackers.php trackers2/admin
+{code}$ cp ../tw-1.9/tiki-admin_include_trackers.php trackers2/admin
  ...tiki-admin_tracker_fields.php
- ...tiki-admin_trackers.php{CODE}
+ ...tiki-admin_trackers.php{/code}
 !!Icons
-{CODE()}$ cp ../tw-1.9/img/icons/admin_trackers.png trackers2/icons{CODE}
+{code}$ cp ../tw-1.9/img/icons/admin_trackers.png trackers2/icons{/code}
 !!Modules
-{CODE()}$ cp ../tw-1.9/modules/mod-last_modif_tracker_items.php trackers2/modules
- ...mod-last_tracker_items.php{CODE}
+{code}$ cp ../tw-1.9/modules/mod-last_modif_tracker_items.php trackers2/modules
+ ...mod-last_tracker_items.php{/code}
 !!Templates (modules)
-{CODE()}$ cp ../tw-1.9/templates/modules/mod-last_modif_tracker_items.tpl trackers2/modules
+{code}$ cp ../tw-1.9/templates/modules/mod-last_modif_tracker_items.tpl trackers2/modules
  ...mod-last_tracker_items.tpl
- ...mod-usergroup_tracker.tpl{CODE}
+ ...mod-usergroup_tracker.tpl{/code}
 !!Wiki Plugins
-{CODE()}$ cp ../tw-1.9/lib/wiki-plugins/wikiplugin_tracker.php trackers2/plugins
- ...wikiplugin_trackerlist.php{CODE}
+{code}$ cp ../tw-1.9/lib/wiki-plugins/wikiplugin_tracker.php trackers2/plugins
+ ...wikiplugin_trackerlist.php{/code}
 !!Templates (non-modules)
-{CODE()} cp ../tw-1.9/templates/tiki-admin-include-trackers.tpl trackers2/templates
+{code} cp ../tw-1.9/templates/tiki-admin-include-trackers.tpl trackers2/templates
  ...tiki-admin_tracker_fields.tpl
  ...tiki-admin_trackers.tpl
  ...tiki-list_trackers.tpl
  ...tiki-plugin_trackerlist.tpl
  ...tiki-view_tracker_item.tpl
  ...tiki-view_tracker_more_info.tpl
- ...tiki-view_tracker.tpl{CODE}
+ ...tiki-view_tracker.tpl{/code}
 !!Templates (notifications)
-{CODE()}$ cp ../tw-1.9/templates/mail/tracker_changed_notification.tpl trackers2/templates{CODE}
+{code}$ cp ../tw-1.9/templates/mail/tracker_changed_notification.tpl trackers2/templates{/code}
 
 !Renaming files
 Its BW practise to remove the ''tiki-'' prefix from all PHP and Smarty templates.
-^Looking for PERL function to do this automatically^
-
-!Removing __tiki-__ references
-Next, I run a very destructive script __**BEWARE**__ - that removes all ''tiki-'' prefixes within all files.
-{CODE()}$ find -type f -exec perl -i -wpe 's/tiki-//g' {} \;{CODE}
+{code}cd trakers2
+find . | grep tiki- | sed -re "s/^(\S*)tiki\-(\S*)$/mv \1tiki-\2 \1\2/g" > tmp && sh tmp && rm tmp{/code}
+Dirty but it works ;-)
 
 !index.php
 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.
-{CODE()}<?php
+{code}<?php
 header ("location: sheets.php");
 die;
-?>{CODE}
+?>{/code}
 
 !bit_setup_inc.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.
-{CODE()}$ perl -i -pe 's/tiki-setup.php/..\/bit_setup_inc.php/g' `find trackers2 -type f -name '*.php'`{CODE}
+{code}$ perl -i -pe 's/tiki-setup.php/..\/bit_setup_inc.php/g' `find trackers2 -type f -name '*.php'`{/code}
 
 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.
-{CODE(colors=>php)}<?php
+{code}<?php
 // Initialise global variables
 global $gBitSystem, $gBitUser;
 

@@ -79,31 +76,30 @@

  // Register user menu
  $gBitSystem->registerAppMenu( TRACKERS2_PKG_DIR, TRACKERS2_PKG_NAME, TRACKERS2_PKG_URL.'index.php',
  'bitpackage:trackers2/menu_trackers.tpl', true );
-
-/*
- if( $gBitUser->hasPermission($gBitUser->getUserId(), 'bit_p_admin_trackers') )
- {
- $perms = $userlib->get_permissions(0, -1, 'perm_name_desc', '', 'trackers');
- foreach ($perms["data"] as $perm)
- {
- $perm = $perm["perm_name"];
- $smarty->assign("$perm", 'y');
- $$perm = 'y';
- }
- }
- $smarty->assign('t_use_db', 'y');
- $smarty->assign('t_use_dir', '');
-*/
 }
-?>{CODE}
+?>{/code}
 
 !Libraries
 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 -i -pe "s/\'lib\/trackers\//TRACKERS2_PKG_PATH.\'/g" `find trackers2 -type f -name '*.php'`
+{code}$ perl -i -pe "s/\'lib\/trackers\//TRACKERS2_PKG_PATH.\'/g" `find trackers2 -type f -name '*.php'`{/code}
+
+!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
+etc
+
+You can use a PERL find and replace to do mass changes:
+{code}$ perl -i -pe "s/trackerId/tracker_id/g" `find trackers2 -type f`{/code}
 ...page...
 {maketoc}
 !Database Schema
 Now for table creation - the TW1.9 database schema for Trackers 2 is quite lengthy, but we will use the main one as an example and explain the rest of the conversion in less detail. The main trackers table is as follows:
+
+{code}
  CREATE TABLE tiki_trackers (
  trackerId int(12) NOT NULL auto_increment,
  name varchar(80) default NULL,

@@ -120,10 +116,10 @@

  orderAttachments varchar(255) NOT NULL default 'filename,created,filesize,downloads,desc',
  items int(10) default NULL,
  PRIMARY KEY (trackerId)
- ) TYPE=MyISAM AUTO_INCREMENT=1 ;
+ ) TYPE=MyISAM AUTO_INCREMENT=1 ;{/code}
 
 We need to create an AdoDB DataDict PHP file to create the tables as required. I have used the ''trackers'' file as a template and created ''trackers2/admin/schema_inc.php''. This file shows how SQL create scripts are converted into DataDict PHP scripts. For more information, see DataDictTutorial.
-{CODE(colors=>php)}<?php
+{code}<?php
 $tables = array(
 'tiki_trackers' => "
  tracker_id I4 AUTO PRIMARY,

@@ -147,41 +143,45 @@

 global $gTikiInstaller;
 foreach( array_keys( $tables ) AS $tableName ) {
  $gTikiInstaller->registerSchemaTable( TRACKERS2_PKG_DIR, $tableName, $tables[$tableName] );
-}{CODE}
+}{/code}
 After each of the tables have been specified, you would specify the indices. In this case, there are none.
 
 Next we specify the inserts. These usually consist of permissions and default preferences.
-{CODE(colors=>php)}$gTikiInstaller->registerSchemaDefault( TRACKERS2_PKG_DIR, array(
+{code}$gTikiInstaller->registerSchemaDefault( TRACKERS2_PKG_DIR, array(
  "INSERT INTO `".TIKI_DB_PREFIX."users_permissions` (`perm_name`, `perm_desc`, `level`, `package`)
  VALUES ('tiki_p_admin_trackers', 'Can admin trackers', 'editors', 'trackers')",
 ...
  "INSERT INTO `".TIKI_DB_PREFIX."tiki_preferences`(`package`,`name`,`value`) VALUES ('trackers2',
  'feature_trackers', 'n')"
 ) );
-?>{CODE}
+?>{/code}
 ...page...
 {maketoc}
 !Making the Menu
 TP menus are different from TW. We have to cut the menu items out of TW's ''templates/modules/mod-application_menu.tpl'' and create a ''trackers2/templates/menu_trackers2.tpl''. I found the menu template from ''trackers'' package was suitable with some modification.
-{CODE(colors=>smarty)}<a class="menuoption" href="{$gTikiLoc.TRACKERS2_PKG_URL}index.php">{tr}List trackers{/tr}</a>
+{code}<a class="menuoption" href="{$gTikiLoc.TRACKERS2_PKG_URL}index.php">{tr}List trackers{/tr}</a>
 {if $tiki_p_admin_trackers eq 'y'}
  <a class="menuoption" href="{$gTikiLoc.TRACKERS2_PKG_URL}admin/index.php">{tr}Admin trackers{/tr}</a>
-{/if}{CODE}
+{/if}{/code}
 
 !Making the Admin Menu
 First we have to rename the main Trackers2 admin page.
  mv trackers2/admin/tiki-admin_trackers.php trackers2/admin/admin_tracker2_inc.php
 
 Now we have to create the Admin menu. Again the ''trackers/templates/menu_trackers2_admin.tpl'' is based on a similar file found in the ''trackers'' package.
-{CODE(colors=>smarty)}{if $tiki_p_admin_trackers eq 'y'}
+{code}{if $tiki_p_admin_trackers eq 'y'}
  <a class="menuoption" href="{$gTikiLoc.TRACKERS2_PKG_URL}admin/index.php">{tr}Trackers Settings{/tr}</a>
-{/if}{CODE}
+{/if}{/code}
 
 Now, create the ''trackers2/admin/index.php'' file as shown below.
-{CODE(colors=>php)}<?php
+{code}<?php
  // This is not a package.
  header ("location: ../index.php");
-?>{CODE}
+?>{/code}
+
+!Removing remaining __tiki-__ references
+Next, I run a very destructive script __**BEWARE**__ - that removes all ''tiki-'' prefixes within all files.
+{code}$ find -type f -exec perl -i -wpe 's/tiki-//g' {} \;{/code}
 
 !Initial Testing
 
Page History
Date/CommentUserIPVersion
18 May 2008 (20:42 UTC)
laetzer85.178.10.6226
Current • Source
Marc Kalberer195.186.167.23324
View • Compare • Difference • Source
Vijay Aswadhati63.197.4.13023
View • Compare • Difference • Source
Stephan Borg218.214.1.11318
View • Compare • Difference • Source
Stephan Borg218.214.1.11317
View • Compare • Difference • Source
Stephan Borg218.214.1.11315
View • Compare • Difference • Source
Stephan Borg218.214.1.11314
View • Compare • Difference • Source
Stephan Borg218.214.1.11313
View • Compare • Difference • Source
Stephan Borg218.214.1.11312
View • Compare • Difference • Source
xing194.152.164.4511
View • Compare • Difference • Source
Stephan Borg218.214.1.11310
View • Compare • Difference • Source
Stephan Borg218.214.1.1139
View • Compare • Difference • Source
Stephan Borg218.214.1.1138
View • Compare • Difference • Source