<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Trouble with custome site creation script in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201131#M154261</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am working on duplicating the functionality of the create-site script in share so i can hook on some extra functions (copy default files, add users) when the site is created.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I opted not to extend the default script because i didn't want to screw it up (yet).&amp;nbsp; So, as a result, I created my own versions of create-sites and on the alfresco end, a script to create.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the alfresco script runs some validation and ultimately runs this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;var site = siteService.createSite(sitePreset, shortName, title, description, isPublic);&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;the share script calls the alfresco script and then once it completes runs this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;var sitePreset = "site-dashboard";&lt;BR /&gt;var tokens = new Array();&lt;BR /&gt;tokens["siteid"] = 'shortName';&lt;BR /&gt;sitedata.newPreset(sitePreset, tokens);&lt;BR /&gt;model.response = "ahhh";&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;After this runs, the sites are identical to sites created using the stock create-site script. Groups, Users, folders, dashboard and the nodebrowser for the site are indistinguishable from what a normal site looks like (so far as i can tell).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The problem is after i run this, the my-sites dashlet and site search page stop functioning.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;the my site dashlet says &lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;No sites to display&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;the site search page pops up saying&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Failed to retrieve site membership information for the current user. Join and Leave buttons will not be available&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;then when i click search it says this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;Wrapped Exception (with status template): Error during processing of the template 'Expression jsonUtils.encodeJSONString(x) is undefined on line 2, column 23 in org/alfresco/repository/site/site.lib.ftl.'. Please contact your system administrator.&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;SPAN&gt;I can also navigate to the newly created site manually at &lt;/SPAN&gt;&lt;A href="http://server:8080/share/page/site/shortName/dashboard" rel="nofollow noopener noreferrer"&gt;http://server:8080/share/page/site/shortName/dashboard&lt;/A&gt;&lt;SPAN&gt;.&amp;nbsp; so i know it was created properly and it looks proper (haven't checked functionality)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Does anyone know what is missing from my scripts that would cause these errors or know what i should be doing to emulate this behavior(full code below) ??&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;my best guess is it is the presets. but have no idea where to begin on this&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Adam&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;PS. Please forgive the use of get and hard coding variables, i just want it to work and tried to take all the ambiguity out of it&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;alfresco code (the .js file)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;//grab site,&amp;nbsp; role and group args&lt;BR /&gt;var shortName = args.site;&lt;BR /&gt;var role = args.role;&lt;BR /&gt;var groupName = "GROUP_" + args.group;&lt;BR /&gt;var title = args.title;&lt;BR /&gt;var description = null;&lt;BR /&gt;var isPublic = false;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;//see if site name passed through&lt;BR /&gt;if (shortName == null || shortName.length == 0)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.code = 404;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.message = "Shortname not specified";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.redirect = true;&lt;BR /&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;var site = siteService.getSite(shortName);&lt;BR /&gt;// See if the shortName is available&lt;BR /&gt;if (site != null)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.code = 404;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.message = "Shortname already in use";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.redirect = true;&lt;BR /&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;//preset&amp;nbsp; ***dont think this is in use**** this is how Alfresco does it.&amp;nbsp; looks like it is a "to-do"&lt;BR /&gt;//var sitePreset = args.preset;&lt;BR /&gt;var sitePreset = "site-dashboard";&lt;BR /&gt;if (shortName == null || shortName.length == 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status.code = 404;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status.message = "preset not real";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status.redirect = true;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;//check if role is set&lt;BR /&gt;//**************validate to see if it is a reall one in the future***********&lt;BR /&gt;if (role == null || role == undefined)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status.code = 404;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status.message = "roll not defined";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status.redirect = true;&lt;BR /&gt;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;//see if group is real.&amp;nbsp; if so, grab it, if not error 404&lt;BR /&gt;if (people.getGroup(groupName) != undefined)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var group = people.getGroup(groupName).properties["{&lt;A href="http://www.alfresco.org/model/user/1.0}members" rel="nofollow noopener noreferrer"&gt;http://www.alfresco.org/model/user/1.0}members&lt;/A&gt;"];&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;if (group == undefined)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.code = 404;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.message = "Group not found";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; status.redirect = true;&lt;BR /&gt;}&lt;BR /&gt;else &lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var membersAdded ="";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//create site.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;var site = siteService.createSite(sitePreset, shortName, title, description, isPublic);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var tokens = new Array();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tokens["siteid"] = shortName;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sitedata.newPreset(sitePreset, tokens);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (var i=0; i&amp;lt;group.length; i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//we have a valid username, just want to make sure they are a person&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var person = people.getPerson(group[i]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (person == null)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;status.setCode(status.STATUS_BAD_REQUEST, "The person with user name " + group[i] + " could not be found.");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//return;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//add them to the group&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;site.setMembership(group[i],role);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;membersAdded += group[i] +"&amp;lt;br /&amp;gt;";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;model.group = group;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;model.membersAdded = membersAdded;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;model.siteName = shortName;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;model.role = role;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;share code, the .js file&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;function main()&lt;BR /&gt;{&lt;BR /&gt;&lt;BR /&gt;var scriptRemoteConnector = remote.connect("alfresco");&lt;BR /&gt;var repoResponse = scriptRemoteConnector.get("/sample/createproject?group=someGroup&amp;amp;site=desiredSiteShortName&amp;amp;role=SiteContributor&amp;amp;preset=site-dashboard&amp;amp;title=titleOfSite");&lt;BR /&gt;&amp;nbsp; model.response = repoResponse;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (repoResponse.status == 401)&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status.setCode(repoResponse.status, "error.loggedOut");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; else&lt;BR /&gt;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;var sitePreset = "site-dashboard";&lt;BR /&gt;var tokens = new Array();&lt;BR /&gt;tokens["siteid"] = 'desiredSiteShortName';&lt;BR /&gt;sitedata.newPreset(sitePreset, tokens);&lt;BR /&gt;model.response = "ahhh";&lt;BR /&gt;&lt;BR /&gt;}&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;main();&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 01 Apr 2009 18:19:15 GMT</pubDate>
    <dc:creator>ofrxnz</dc:creator>
    <dc:date>2009-04-01T18:19:15Z</dc:date>
    <item>
      <title>Trouble with custome site creation script</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201131#M154261</link>
      <description>I am working on duplicating the functionality of the create-site script in share so i can hook on some extra functions (copy default files, add users) when the site is created.&amp;nbsp; I opted not to extend the default script because i didn't want to screw it up (yet).&amp;nbsp; So, as a result, I created my own ve</description>
      <pubDate>Wed, 01 Apr 2009 18:19:15 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201131#M154261</guid>
      <dc:creator>ofrxnz</dc:creator>
      <dc:date>2009-04-01T18:19:15Z</dc:date>
    </item>
    <item>
      <title>Re: Trouble with custome site creation script</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201132#M154262</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I think i got this one figured out.&amp;nbsp; I didnt pass it through site.lib.ftl&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 02 Apr 2009 15:37:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201132#M154262</guid>
      <dc:creator>ofrxnz</dc:creator>
      <dc:date>2009-04-02T15:37:57Z</dc:date>
    </item>
    <item>
      <title>Re: Trouble with custome site creation script</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201133#M154263</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Let us first get back to all necessary steps for creating a site programmatically&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1) On DM repo side, a node needs to be created under /Sites space and it needs to have all required metadata such as sitePreset etc. This will be taken care of by siteService.createSite. This API is available on DM site as both JAVA API and JavaScript API.&amp;nbsp; Keep in mind, it doesn't create any required data on AVM side.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) on AVM repo side, for each site, we need to create all necessary SURF XML files such as dashboard.xml etc. All needed APIs/services for creating those files are available on Share side. It should be doable on DM site as well since we can use AVM related service to create files. But it will require much more work.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now let us figure out possible solutions:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If we take a close look at the Share side create site service, you can see the extra step is&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check if we got a positive result&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (repoJSON.shortName)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Yes we did, now create the site in the webtier&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var tokens = new Array();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tokens["siteid"] = repoJSON.shortName;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sitedata.newPreset(clientJSON.sitePreset, tokens);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; model.success = true;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The key is to populate the sitedata object once DM side siteService.createSite is invoked.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;To validate it, let us first create a site on DM side&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;var site = siteService.createSite("site-dashboard", "yongtest", "YongTestSite", "YongTestSite", true);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The new site will be created. But if you click on the site link, it will be forwarded to user dashboard.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now let us add a new webscript to share&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;File: custom-site.get.desc.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;webscript&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;shortname&amp;gt;Utility Service for creating site programmatically&amp;lt;/shortname&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;description&amp;gt;Utility Service for creating site programmatically&amp;lt;/description&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;/modules/custom-site&amp;lt;/url&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/webscript&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;File:custom-site.get.html.ftl&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;empty&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;File: custom-site.get.js&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; var tokens = new Array();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; tokens["siteid"] = args.shortName;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; sitedata.newPreset(args.sitePreset, tokens);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Add all files to&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco \modules&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Refresh Share webscript list.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Open a browser and hit the following link&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://localhost:8080/share/service/modules/custom-site" rel="nofollow noopener noreferrer"&gt;http://localhost:8080/share/service/modules/custom-site&lt;/A&gt;&lt;SPAN&gt; ?shortName=yongtest&amp;amp;sitePreset=site-dashboard&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now, let us visit the site dashboard again and you you will find out it works.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So the conclusion is&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The suggested solution is to write java code to invoke Share site service directly.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We can prepare a JSON object and post to the Share side service endpoint&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/modules/create-site&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sample code (for how to prepare a JSON object and do a POST) can be found org.alfresco.repo.web.scripts.site.SiteServiceTest.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Again, we need to post it to the Share service endpoint not the DM service endpoint.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yong&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 26 Jun 2009 15:14:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201133#M154263</guid>
      <dc:creator>yqu</dc:creator>
      <dc:date>2009-06-26T15:14:57Z</dc:date>
    </item>
    <item>
      <title>Re: Trouble with custome site creation script</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201134#M154264</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi ofrxnz,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;I think i got this one figured out. I didnt pass it through site.lib.ftl&lt;/BLOCKQUOTE&gt;&lt;SPAN&gt;What did you do to pass it through site.lib.ftl?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Also does your site work after tomcat restart?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sans!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Jan 2011 12:25:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201134#M154264</guid>
      <dc:creator>sans</dc:creator>
      <dc:date>2011-01-07T12:25:12Z</dc:date>
    </item>
    <item>
      <title>Re: Trouble with custome site creation script</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201135#M154265</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Is there any solution for PHP Rest API for custom site create?&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="https://forums.alfresco.com/en/viewtopic.php?f=21&amp;amp;t=44985" rel="nofollow noopener noreferrer"&gt;https://forums.alfresco.com/en/viewtopic.php?f=21&amp;amp;t=44985&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Jun 2012 10:59:40 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/trouble-with-custome-site-creation-script/m-p/201135#M154265</guid>
      <dc:creator>devmehta555</dc:creator>
      <dc:date>2012-06-06T10:59:40Z</dc:date>
    </item>
  </channel>
</rss>

