ConversionFromPostnuke

pn2tiki.zip
Glenn Henshaw, AKA thraxisp contributed a package of scripts on this patch tracker(external link) on 2003-11-13. You should not expect these to work independently of the versions used, but they should be a good help for someone that has to convert. Feel free to document better those scripts and contribute your fixes.

Scripts provided :
  • move and reformat the wiki
  • move articles and comments
  • move faqs masquerading as articles
  • move the faqs

pn_article2tiki.php

Name

pn_article2tiki.php - Migrate your postnuke articles into Tiki Articles.

Synopsis

I wanted a slightly different script for importing Postnuke articles over. The underlying principle was to be able to run the conversion script any number of times to update Postnuke articles into Tiki and not have to worry about balooning overlapping records into your database. Then I decided I wanted html to wiki syntax conversion built-in which is when things got out of hand. pn_article2tiki.php is my script to handle all this.

This script works on my particular installation (php-4.4.0 and MySql-4.1.15). Although I expect the code to be reasonably portable, I make no guarantees. Expect to get your hands dirty.

The program relies heavily on PHP MySQL(external link) functions and Perl-Compatible Regular Expression Functions(external link). You'll need to have those extensions installed and be using a MySQL database then for this to work.


Features

  • Import Postnuke Articles with corresponding comments
  • Import Article Topics and assign articles to them
  • Import Categories and assign articles to them
  • Optionally import Postnuke users
  • Option to translate article author names over to a different Tiki username.
  • Users, Categories and Topics are only added once so if you update them from within Tiki, your changes will not be affected by re-running the script. That is, overlapping records are not ported, while new ones are appended.
  • Articles and Comments are either replaced with database UPDATE for overlapping records or new ones are INSERTED based on object timestamp. So if you modify a record you already imported in Tiki and then run the script again, the colliding record will create a new instance of itself (for example, if you update an article in Tiki and then run pn_article2tiki.php, the colliding document from Postnuke will come in as a new articleId). Otherwise objects of identical timestamp are replaced with the Postnuke data.
  • Option to parse article hometext and body through included html2wiki function
    • html2wiki function recognizes tags to passthru data you don't want converted. If you surround a portion of your Postnuke article with <!noconversion> <!/noconversion> tags, it will not be parsed by the html to wiki translator. This is particuilarly useful for complex html syntax (eg. layered tables) that the html2wiki function is likely to mutilate.
    • Handled Conversion Rules:
      • Bulleted/Enumerated Lists
      • Break and paragraph tags
      • Bold, Italic and Bold/Italic types
      • Blockquote and monospaced text
      • Horizontal rules
      • Rudimentary tables
      • External links
      • Image references
      • Ampersand entities: lt, gt, amp, quot, nbsp

Installation

MAKE A BACKUP OF YOUR DATABASE. Seriously. There's no guarantee that the script won't munge everything.

Unzip pn_article2tiki.tgz into a directory you can point your browser to. I strongly suggest you secure this directory (eg. user authentication). It will soon contain a config file with your database password in clear text. (You could also dump the files in some private directory and parse it by php manually but the output won't be as pleasant).

Edit the pn_article2tiki_cfg.php file. You'll basically need to change just about every line to properly configure the script for your system. The file comments will tell you what to do.

Point your browser to pn_article2tiki.php. Perhaps it will work.

After the script has run, you must manually:
  • Assign users to any groups you want them to belong to.
  • Assign any special permissions to categories that should have them.
  • Upload images to Article Topics if desired.
  • Manually update user info. The only information imported over is the username, password and email address.

Known Bugs

  • If there are any articles posted at exactly the same time, only one will be transferred over (in my installation this wasn't anything to be worried about).
  • Extraneous linebreaks may appear in some places
  • Handling of carriage returns (\r's) and linefeeds (\n's) was messy and may not be the most portable code.

Todo


Author

Art Davis

Files

See attached.

Contributors to this page: ardavis3 points  , Chealer92127 points  and marclaporte44401 points  .
Page last modified on Sunday 30 October 2005 23:06:18 CET by ardavis3 points .

Switch Language

Subscribe to Tiki Newsletters!

Delivered fresh to your email inbox!
Newsletter subscribe icon
Don't miss major announcements and other news!
Contribute to Tiki

Shoutbox

Torsten2431 points , 14:06 CEST, Sun 22 Apr. 2012: Next Webinar at Thursday, 17th of May 2012 (21:00 UTC)at http://tiki.org/live
Torsten2431 points , 11:43 CEST, Tue 10 Apr. 2012: Next Webinar at Thursday, 19th of April 2012 (21:00 UTC) at http://tiki.org/live
Jyhem2569 points , 13:07 CET, Fri 16 Mar. 2012: What happened to the BBB room ?
Torsten2431 points , 01:44 CET, Sat 25 Feb. 2012: Next Webinar at Thursday, 15th of March 2012 (21:00 UTC) at http://tiki.org/live
Torsten2431 points , 13:29 CET, Fri 10 Feb. 2012: Next webinar at Thursday, 16. of Feb. 2012 (21:00 UTC) at http://tiki.org/live