1%%[ if not empty(RequestParameter("nID")) then
2 Set @newsID = RequestParameter("nID")
3 Set @parent = Concat(@newsID,"_Parent")
4 Set @customerKey = Replace(@newsID,"_","")
5 Set @newsIDName = Replace(@newsID,"_"," ")
6 Set @parentCreated = 0
7 Set @parentFolderCustomerKey = Concat(@customerKey,"_Parent")
8 Set @parentFolderName = Replace(Concat(@newsIDName,"_Parent"),"_"," ")
9
10 /* Retrieve NewsletterID Folder */
11 Set @ret1 = CreateObject("RetrieveRequest")
12 SetObjectProperty(@ret1,"ObjectType","DataFolder")
13 AddObjectArrayItem(@ret1,"Properties","ID")
14 AddObjectArrayItem(@ret1,"Properties","Name")
15 AddObjectArrayItem(@ret1,"Properties","ContentType")
16 AddObjectArrayItem(@ret1,"Properties","ObjectID")
17 AddObjectArrayItem(@ret1,"Properties","CustomerKey")
18 Set @filter = CreateObject("SimpleFilterPart")
19 SetObjectProperty(@filter,"Property","CustomerKey")
20 SetObjectProperty(@filter,"SimpleOperator","equals")
21 AddObjectArrayItem(@filter,"Value",@customerKey)
22 SetObjectProperty(@ret1,"Filter",@filter)
23
24 /* Do the retrieve to see if newsletter id folder exists */
25 Set @retReq1 = InvokeRetrieve(@ret1)
26
27 /* Found the folder, so now set the variables */
28 if RowCount(@retReq1) == 1 then
29 Set @row1 = Row(@retReq1,1)
30 Set @newsletterFolderID = Field(@row1,"ID")
31 Set @folderIDs = Concat("||",@newsletterFolderID,",")
32 Set @contentType = Field(@row1,"ContentType")
33 Set @parentCreated = 1
34
35 /* No NewsletterID Found, so now make one */
36 else
37 Set @ret2 = CreateObject("RetrieveRequest")
38 SetObjectProperty(@ret2,"ObjectType","DataFolder")
39 AddObjectArrayItem(@ret2,"Properties","ContentType")
40 AddObjectArrayItem(@ret2,"Properties","ObjectID")
41 AddObjectArrayItem(@ret2,"Properties","ID")
42 AddObjectArrayItem(@ret2,"Properties","Name")
43 Set @filter2 = CreateObject("SimpleFilterPart")
44 SetObjectProperty(@filter2,"Property","Name")
45 SetObjectProperty(@filter2,"SimpleOperator","equals")
46 AddObjectArrayItem(@filter2,"Value","my contents")
47 SetObjectProperty(@ret2,"Filter",@filter2)
48
49 /* Do the retrieve to get the my contents root folder */
50 Set @retReq2 = InvokeRetrieve(@ret2)
51
52 /* We found one row for the root my contents folder */
53 if RowCount(@retReq2) == 1 then
54 Set @row2 = Row(@retReq2,1)
55 Set @myContents = Field(@row2,"ID")
56 Set @contentType = Field(@row2,"ContentType")
57 Set @parentFolder = CreateObject("DataFolder")
58 SetObjectProperty(@parentFolder,"ID",@myContents)
59 Set @folderobject = CreateObject("DataFolder")
60 SetObjectProperty(@folderobject,"ParentFolder",@parentFolder)
61 SetObjectProperty(@folderobject,"CustomerKey",@customerKey)
62 SetObjectProperty(@folderobject,"Name",@newsIDName)
63 SetObjectProperty(@folderobject,"Description",@newsIDName)
64 SetObjectProperty(@folderobject,"ContentType",@contentType)
65 SetObjectProperty(@folderobject,"AllowChildren",1)
66 SetObjectProperty(@folderobject,"IsEditable",1)
67 Set @statusCode1 = InvokeCreate(@folderobject,@statusMsg,@errorCode)
68 /* NewsletterID Parent Create Errored, so Try Update */
69 if @statusCode1 == 'Error' then
70 Set @statusCode1 = InvokeUpdate(@folderobject,@statusMsg,@errorCode)
71 /* NewsletterID Parent Create Is Good */
72 else /* Try to retrieve the newly created NewsletterID folder */
73 Set @ret3 = CreateObject("RetrieveRequest")
74 SetObjectProperty(@ret3,"ObjectType","DataFolder")
75 AddObjectArrayItem(@ret3,"Properties","CustomerKey")
76 AddObjectArrayItem(@ret3,"Properties","ID")
77 AddObjectArrayItem(@ret3,"Properties","Name")
78 AddObjectArrayItem(@ret3,"Properties","ContentType")
79 AddObjectArrayItem(@ret3,"Properties","ObjectID")
80 Set @filter3 = CreateObject("SimpleFilterPart")
81 SetObjectProperty(@filter3,"Property","CustomerKey")
82 SetObjectProperty(@filter3,"SimpleOperator","equals")
83 AddObjectArrayItem(@filter3,"Value",@customerKey)
84 SetObjectProperty(@ret3,"Filter",@filter3)
85 /* Do the retrieve to see if the NewsletterID folder exists */
86 Set @retReq3 = InvokeRetrieve(@ret3)
87 /* We found a row for the newly create NewsletterID folder */
88 if RowCount(@retReq3) == 1 then
89 Set @row3 = Row(@retReq3,1)
90 Set @newsletterFolderID = Field(@row3,"ID")
91 Set @folderIDs = Concat("||",@newsletterFolderID,",")
92 Set @contentType = Field(@row3,"ContentType")
93 Set @parentCreated = 1
94 endif
95 endif
96 endif
97 endif
98
99 if @parentCreated == 1 AND not Empty(@newsletterFolderID) then
100 /* Retrieve parent module folder */
101 Set @ret4 = CreateObject("RetrieveRequest")
102 SetObjectProperty(@ret4,"ObjectType","DataFolder")
103 AddObjectArrayItem(@ret4,"Properties","ID")
104 AddObjectArrayItem(@ret4,"Properties","Name")
105 AddObjectArrayItem(@ret4,"Properties","ContentType")
106 AddObjectArrayItem(@ret4,"Properties","ObjectID")
107 AddObjectArrayItem(@ret4,"Properties","CustomerKey")
108 Set @filter4 = CreateObject("SimpleFilterPart")
109 SetObjectProperty(@filter4,"Property","CustomerKey")
110 SetObjectProperty(@filter4,"SimpleOperator","equals")
111 AddObjectArrayItem(@filter4,"Value",@parentFolderCustomerKey)
112 SetObjectProperty(@ret4,"Filter",@filter4)
113 /* Do the retrieve to see if newsletter id folder exists */
114 Set @retReq4 = InvokeRetrieve(@ret4)
115 /* Found a parent module folder for the parent module */
116 if RowCount(@retReq4) == 1 then
117 Set @row4 = Row(@retReq4,1)
118 Set @moduleFolderID = Field(@row4,"ID")
119 Set @folderIDs = Concat(@folderIDs,@moduleFolderID,"|||")
120 Set @contentType = Field(@row4,"ContentType")
121 /* No parent module folder lets make one */
122 else
123 Set @parentFolder = CreateObject("DataFolder")
124 SetObjectProperty(@parentFolder,"ID",@newsletterFolderID)
125 Set @folderobject = CreateObject("DataFolder")
126 SetObjectProperty(@folderobject,"ParentFolder",@parentFolder)
127 SetObjectProperty(@folderobject,"CustomerKey",@parentFolderCustomerKey)
128 SetObjectProperty(@folderobject,"Name",@parentFolderName)
129 SetObjectProperty(@folderobject,"Description",@parentFolderName)
130 SetObjectProperty(@folderobject,"ContentType",@contentType)
131 SetObjectProperty(@folderobject,"AllowChildren",1)
132 SetObjectProperty(@folderobject,"IsEditable",1)
133 Set @statusCode2 = InvokeCreate(@folderobject,@statusMsg,@errorCode)
134 /* NewsletterID Parent Create Errored, so try update */
135 if @statusCode2 == 'Error' then
136 Set @statusCode1 = InvokeUpdate(@folderobject,@statusMsg,@errorCode)
137 /* NewsletterID Parent Create Is Good */
138 else /* Retrieve parent module folder */
139 Set @ret5 = CreateObject("RetrieveRequest")
140 SetObjectProperty(@ret5,"ObjectType","DataFolder")
141 AddObjectArrayItem(@ret5,"Properties","ID")
142 AddObjectArrayItem(@ret5,"Properties","Name")
143 AddObjectArrayItem(@ret5,"Properties","ContentType")
144 AddObjectArrayItem(@ret5,"Properties","ObjectID")
145 AddObjectArrayItem(@ret5,"Properties","CustomerKey")
146 Set @filter5 = CreateObject("SimpleFilterPart")
147 SetObjectProperty(@filter5,"Property","CustomerKey")
148 SetObjectProperty(@filter5,"SimpleOperator","equals")
149 AddObjectArrayItem(@filter5,"Value",@parentFolderCustomerKey)
150 SetObjectProperty(@ret5,"Filter",@filter5)
151 /* Do the retrieve to see if newsletter id folder exists */
152 Set @retReq5 = InvokeRetrieve(@ret5)
153 /* We found a parent module folder for the parent module */
154 if RowCount(@retReq5) == 1 then
155 Set @row5 = Row(@retReq5,1)
156 Set @moduleFolderID = Field(@row5,"ID")
157 Set @folderIDs = Concat(@folderIDs,@moduleFolderID,"|||")
158 endif
159 endif
160 endif
161 endif ]%%
162 %%= v(@folderIDs) =%%
163%%[ endif ]%%