// standard metadata structures variables.stdMetadata = structNew(); // variables.stdMetadata.pageID = 0; variables.stdMetadata.name = ""; variables.stdMetadata.title = ""; variables.stdMetadata.caption = ""; variables.stdMetadata.description = ""; variables.stdMetadata.globalKeywords = ""; variables.stdMetadata.categoryName = ""; variables.stdMetadata.subsiteID = ""; variables.stdMetadata.templateID = ""; // custom metadata structure variables.custMetadata = structNew(); // page data variables.pageID = 0; var contentResult = ""; // Merge the custom metadata form into the standard metadata form to make a single data structure var pageData = arguments.stdMetadata; var tempStruct = structNew(); var i = 1; var j = 1; var metadataKeyList = ""; var currFormName = ""; var currFormKeyList = ""; var currFieldName = ""; var logStruct = structNew(); var logArray = arrayNew(1); var loggingEnabled = false; // Check the element is in the API Config file and defined var apiConfig = variables.api.getAPIConfig(); var result = StructNew(); // Convert Metadata Struct into an Array of values if needed // FieldName = The name of the field in the metadata form. // FormName = The name of the metadata form. // Value = The value of the metadata field. if ( IsStruct(arguments.custMetadata) OR !IsArray(arguments.custMetadata) ) pageData.metadata = variables.csData.metadataStructToArray(metadata=arguments.custMetadata); else pageData.metadata = arguments.custMetadata; // Call the API apiElement Lib Component contentResult = variables.apiPage.create(pageData=pageData,activatePage=arguments.activatePage); // Format the result in the way that was previously constructed result.contentUpdated = contentResult.CMDSTATUS; result.msg = contentResult.CMDRESULTS; // Update the existing return variables to make backwards compat. result.newPageID = contentResult.CMDRESULTS; result.pageCreated = contentResult.CMDSTATUS; // Set the logging flag if ( isStruct(apiConfig) AND StructKeyExists(apiConfig, "logging") AND StructKeyExists(apiConfig.logging, "enabled") AND apiConfig.logging.enabled == 1 ) { if ( result.contentUpdated ) { logStruct.msg = "#request.formattedTimestamp# - Page [Page ID = #result.newPageID#] [Title = #arguments.stdMetadata.title#]"; logStruct.logFile = 'API_Page_create.log'; arrayAppend(logArray, logStruct); } else { // Check if the error is a CFCATCH struct if ( isStruct(result.msg) AND StructKeyExists(result.msg, "message") AND StructKeyExists(result.msg, "detail") ) logStruct.msg = "#request.formattedTimestamp# - Error [Message: #result.msg.message#] [Details: #result.msg.detail#]"; else logStruct.msg = "#request.formattedTimestamp# - Error [#result.msg#]"; logStruct.logFile = 'API_Page_create_error.log'; arrayAppend(logArray, logStruct); } // Write the log files variables.utils.bulkLogAppend(logArray); } return result;