After the last release of the Importer, I thought things would be relatively calm and quiet with this module. Unfortunately, I was wrong. Dead wrong. It turns out that more people are using it than ever and the few discovered errors are subtle, complicated, and generally require a sample file and particular phase of the moon to reproduce.
Regardless, I'd like to thank Jean Dannemann, Lyle Albright, and Jonathan Williams for identifying the two issues along with providing sample files to see the issues in action.
- Fixed the duration rounding error. Previously tasks with fractional hour durations wre being rounded down to the nearest hour. Now the actual value is perserved.
- Fixed the character cutoff issue. Due to how PHP4 handles XML parsing and cdata blocks, special characters were triggering the parser to treat the single cdata node as multiple nodes therefore causing only the last of the text segments to be imported.
- There were a number of places where an incorrect parsing of the document could throw errors and prevent the import from occuring. In a few applicable places, default values are set to mitigate this scenario. The document's data overrides these values as appropriate.
- Various raw SQL statements have been replaced by their DBQuery equivalents.
- [core dotProject fix] When the Importer would create a User, they not be given any permissions. If you attempted to delete the User, the User would be successfully deleted but an error would display saying that the permissions failed to be deleted. Now, instead of applying a "is deleted?" check, dotProject applies a "still exsists?" test. This fix will be in the next release of dotProject.
Version 1.5 of the Project Importer can be downloaded here.
Please Note: The next release will likely be PHP5 only in order to take advantage of the SimpleXML extenson… and the fact that PHP4 was just EoL'd