On 04/10/2010 10:41 PM, Gerritjan Koekkoek wrote: > Hi, > Most of your advise was accurate and has helped, > Thank you, > > XWikiDocument articleDoc = vArticle.getDocument(); > articleDoc.setAuthor(user); > articleDoc.setCreator(user); > aticleDoc.setContentDirty(false); > aticleDoc.setMetaDataDirty(false); > xwiki.getXWiki().saveDocument(articleDoc, xcontext.getContext); > > In Groovy; should I add the semicolon at the end of each line?
I think it's optional. I prefer adding them. > Should I add this piece of code after the vArticle.save() statement? You should not keep the vArticle.save() line, since the block that I gave you is exactly for saving the document. > When I did I get the following error: > Script22.groovy: 73: unable to resolve class XWikiDocument > @ line 73, column 15. > XWikiDocument articleDoc = vArticle.getDocument(); You should import com.xpn.xwiki.doc.XWikiDocument; > ^ > the category and hidden tip did work > > Op 6 apr 2010, om 21:45 heeft Sergiu Dumitriu het volgende geschreven: > > On 04/03/2010 01:34 PM, Gerritjan Koekkoek wrote: >> Hi, >> >> I try to convert a website in xwiki.blog application >> For each page I create a groovy script that creates a blog post >> The script is successful with three exceptions; >> >> 1) Would like to maintain the original author >> So I create a xwiki.user (this works) >> Then I would like to set the document property with >> {{groovy}} >> ... (the first part of the script) >> vArticle.set("creator",'XWiki.FamilievandenMeulengraaf') >> vArticle.save() >> {{/groovy}} >> >> But looking at the post it still has creator as the user running the code > > Using the public API it's impossible to set a different creator/author > than the current user. You need to get into the internal objects, and do > something like: > > XWikiDocument articleDoc = vArticle.getDocument(); > articleDoc.setAuthor(user); > articleDoc.setCreator(user); > aticleDoc.setContentDirty(false); > aticleDoc.setMetaDataDirty(false); > xwiki.getXWiki().saveDocument(articleDoc, xcontext.getContext); > >> 2) Categories >> I've created a few categories in the blog application >> So I would like to set the category attribute, where the class-attribute >> definition of the post = Database Tree >> >> {{groovy}} >> ... >> vObjArticle.set("Category",'???') >> ... >> {{/groovy}} >> Does any body know what to put in '???', since a category can be multiple >> entries ??? > > If you want to put just one category, you can use the document name > where the category is defined (in the blog each category is a document, > look at the existing categories to see how they look like): > > vObjArticle.set('Category', 'Blog.MyNiceCategory') > > If you want to put multiple entries, you can use an array: > > vObjArticle.set('Category', ['Blog.Cat1', 'Blog.Cat2']) > >> 3) >> When I run the script a postpage is created, I see a link in the new >> documents frame. >> When I go to it it displays OK, but when I go to the blog application it >> does not show in the blog indexes (recently, categories (explained under 2)) >> or historical) >> Only when I go to the page, click edit object and directly click save it >> will show up in he blog >> What could be the reason for this, > > Try also setting a value for the 'isHidden' property. > >> The code looks like (XXXX = title of the post) >> {{groovy}} >> vArticle = xwiki.getDocument("CdlsArticle.XXXXXX") >> vArticle.setContent('{{include >> document="CdlsArticle.ArticlePostSheet"/}}') >> vArticle.setParent("CdlsArticle.WebHome") >> vArticle.set("language","nl") >> vArticle.set("translation","1") >> vObjArticle = >> vArticle.getObject("CdlsArticle.ArticlePostClass",true) >> ... >> def vTitle = "XXXXX" >> vObjArticle.set("title",vTitle) >> ... >> def vExtractHeader = '....' >> def vExtractText = '....' >> def vExtractPicture = 'image:photo.cdl...@xxxx.jpg >> vObjArticle.set("extract",vExtractHeader + vExtractText + >> vExtractPicture) >> .. etcetera >> .. >> vObjArticle.set("published",'1') >> vArticle.save() >> {{/groovy}} > -- Sergiu Dumitriu http://purl.org/net/sergiu/ _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users