Hi, seems like you have also encountered the issue reported here: http://www.pubbs.net/201005/xwiki/10944-xwiki-users-configuring-open-office-... Your suggestions sounds good (but may be you should have used $util.clearName() for cleaning names). Anyway, you should create a JIRA issue at jira.xwiki.org under officeimporter component and attach your suggestions as a patch. I'll review the patch and apply it. Thanks. - Asiri On Tue, May 11, 2010 at 1:45 AM, Wouter Boasson <[email protected]>wrote:
Dear reader,
Version: XWiki/XE 2.2.4
I gave the Office importer some treatment to make it work conform expectations. Maybe interesting for others? Whats weird is, that in IE7 it proposes an ugly document name, something like: c-fakepath etc. So I modified XWiki.OfficeImporterResults to strip everything in front of the actual documentname:
#set($fileName=$fileUpload.getFileName("filePath").replaceAll("^.*[\\]",""))
Then, I added a check for an empty spacename (otherwise you'll end-up with a document in the XWiki space, which is probably not what you want), and also strip any considered 'dangerous' character from the documentname (such as &^@, accents, etc):
########################### ## Validate Target Space ## ########################### #if(! $request.targetSpace) {{error}}$msg.get("xe.officeimporter.results.missingspace", [$goBack]){{/error}} #else #if( $request.targetSpace == "" ) {{error}}$msg.get("xe.officeimporter.results.missingspace", [$goBack]){{/error}} #else ## #set($targetSpace=$request.targetSpace.replaceAll("[:/&=+?#]", "-")) ## #set($targetSpace=$request.targetSpace.replaceAll("[^a-zA-Z0-9-_~]","_").replaceAll(" \\.\\/", "").replaceAll('"',"")) #set($targetSpace=$request.targetSpace.replaceAll(" \\.\\/", "").replaceAll("[\=\&\@'\\/()]","-").replaceAll('"',"").replaceAll("[^a-zA-Z0-9-_~]","_")) #end #end ########################## ## Validate Target Page ## ########################## #if(! $request.targetPage) {{error}}$msg.get("xe.officeimporter.results.missingpage", [$goBack]){{/error}} #else ## #set($targetPage=$request.targetPage) ## #set($targetPage=$request.targetPage.replaceAll("[^a-zA-Z0-9-_~]","_").replaceAll("/", "-").replaceAll('"',"")) #set($targetPage=$request.targetPage.replaceAll("[\=\&\@'\\/()]", "-").replaceAll('"',"").replaceAll("[^a-zA-Z0-9-_~]","_")) #end
Finally, I did not want to present the menu option at all for users who have no rights to create documents: In: templates/menuview.vm ## #if($canImport) (original) #if($canImport && $hasCreatePage) #submenuitem($xwiki.getURL('XWiki.OfficeImporter', 'view') $msg.get('core.menu.create.pageFromOffice') 'tmActionImport') #end
More of this to follow, hopefully useful for others!
Regards, Wouter _______________________________________________ users mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/users