var retStruct = {}; var qFindCom = server.CommonSpot.api.getObject('QuickFind'); var mmCom = server.CommonSpot.api.getObject('Multimedia'); var ssCom = ''; var searchString = arguments.title; var searchOperator = 'Equals'; // Options: 'Begins With', 'Contains', 'Ends With', or 'Equals' var searchTypeList = 'metadata'; // Options: metadata,keywords,tags var subsiteFilter = ''; // subsiteid , -1 (current subsite), 0 (all subsites) var ssQry = ''; var ssURL = ''; var mmResult = {}; var mmQry = ''; var pageID = 0; if ( TRIM(arguments.subsitePathOrID) EQ '' ) throw "A subsite path or id is required!"; if ( NOT IsNumeric(arguments.subsitePathOrID) ) { // Convert subsite path to ID ssURL = arguments.subsitePathOrID; // - Normalize the subsiteURL value ssURL = Replace(ssURL,'\','/','ALL'); if ( LEFT(ssURL ,1) NEQ '/' ) ssURL = '/' & ssURL ; if ( RIGHT(ssURL ,1) NEQ '/' ) ssURL = ssURL & '/'; ssURL = Replace(ssURL,'//','/','ALL'); // - Query the subsites table ssQry = queryExecute( "SELECT ID FROM subsites WHERE subSiteURL = :subsiteURL", { subsiteURL = "#ssURL#", cfsqltype="cf_sql_varchar" }, { datasource=request.site.datasource, maxrows=1 } ); if ( ssQry.RecordCount ) subsiteFilter = ssQry.ID[1]; if ( VAL(subsiteFilter) LTE 0 ) throw "The provided subsite path was not found!"; } else { // - Query the subsites table ssQry = queryExecute( "SELECT ID FROM subsites WHERE id = :subsiteID", { subsiteID = "#arguments.subsitePathOrID#", cfsqltype="cf_sql_integer" }, { datasource=request.site.datasource, maxrows=1 } ); if ( ssQry.RecordCount ) subsiteFilter = ssQry.ID[1]; if ( VAL(subsiteFilter) LTE 0 ) throw "The provided subsite id was not found!"; } // Find the Multimedia Items that match the query mmResult = qFindCom.getMultimediaResults(searchString=searchString, searchOperator=searchOperator, searchTypeList=searchTypeList, subsiteFilter=subsiteFilter ); if ( StructKeyExists(mmResult,'ResultQuery') ) { mmQry = mmResult.ResultQuery; if ( mmResult.ResultQuery.RecordCount ) pageID = mmResult.ResultQuery.id[1]; } if ( pageID GT 0 ) retStruct = mmCom.getInfo(multimediaID=pageID); retStruct = Duplicate(retStruct); retStruct['PageID'] = pageID; retStruct['MultimediaID'] = pageID; return retStruct; var retArr = []; var qFindCom = server.CommonSpot.api.getObject('QuickFind'); var mmCom = server.CommonSpot.api.getObject('Multimedia'); var ssCom = ''; var searchString = arguments.title; var searchOperator = 'Equals'; // 'Begins With', 'Contains', 'Ends With', or 'Equals' var searchTypeList = 'metadata'; // metadata,keywords,tags var subsiteFilter = 0; // subsiteid , -1 (current subsite), 0 (all subsites) var serviceID = 0; var channelID = 0; var docTypeList = ''; var ssQry = ''; var ssURL = ''; var mmServCom = ''; var mmServQry = ''; var servIdQry = ''; var mmServName = ''; var mmChanCom = ''; var mmChanQry = ''; var chanIdQry = ''; var mmChanName = ''; var mmResult = {}; var pageID = 0; if ( TRIM(arguments.subsitePathOrID) NEQ '' ) { if ( NOT IsNumeric(arguments.subsitePathOrID) ) { subsiteFilter = ''; // Reset the subsite filter to empty string // Convert subsite path to ID ssURL = arguments.subsitePathOrID; // - Normalize the subsiteURL value ssURL = Replace(ssURL,'\','/','ALL'); if ( LEFT(ssURL ,1) NEQ '/' ) ssURL = '/' & ssURL ; if ( RIGHT(ssURL ,1) NEQ '/' ) ssURL = ssURL & '/'; ssURL = Replace(ssURL,'//','/','ALL'); // - Query the subsites table ssQry = queryExecute( "SELECT ID FROM subsites WHERE subSiteURL = :subsiteURL", { subsiteURL = "#ssURL#", cfsqltype="cf_sql_varchar" }, { datasource=request.site.datasource, maxrows=1 } ); if ( ssQry.RecordCount ) subsiteFilter = ssQry.ID[1]; } else subsiteFilter = arguments.subsitePathOrID; } if ( TRIM(arguments.serviceNameOrID) NEQ '' ) { if ( NOT IsNumeric(arguments.serviceNameOrID) ) { // Convert Service name to id mmServCom = server.CommonSpot.api.getObject('MultimediaService'); mmServQry = mmServCom.getList(); // - Query the subsites table servIdQry = queryExecute( "SELECT ID FROM mmServQry WHERE NAME = :serviceName", { serviceName = "#arguments.serviceNameOrID#", cfsqltype="cf_sql_varchar" }, { dbtype='query', maxrows=1 } ); if ( servIdQry.RecordCount ) serviceID = servIdQry.id[1]; } else serviceID = arguments.serviceNameOrID; } if ( TRIM(arguments.channelNameOrID) NEQ '' ) { if ( NOT IsNumeric(arguments.channelNameOrID) ) { // Convert channel name to id mmChanCom = server.CommonSpot.api.getObject('MultimediaChannel'); mmChanQry = mmChanCom.getList(); // - Query the subsites table chanIdQry = queryExecute( "SELECT ChannelID FROM mmChanQry WHERE NAME = :channelName", { channelName = "#arguments.channelNameOrID#", cfsqltype="cf_sql_varchar" }, { dbtype='query', maxrows=1 } ); if ( chanIdQry.RecordCount ) channelID = chanIdQry.channelID[1]; } else channelID = arguments.channelNameOrID; } // Find the Multimedia Items that match the query mmResult = qFindCom.getMultimediaResults(searchString=searchString, searchOperator=searchOperator, searchTypeList=searchTypeList, subsiteFilter=subsiteFilter, includeChildSubsites=arguments.includeChildSubsites, multimediaServiceID=serviceID, multimediaChannelID=channelID ); if ( StructKeyExists(mmResult,'ResultQuery') ) { pageid = 0; for ( var i=1; i <= mmResult.ResultQuery.RecordCount; i++ ) { pageID = mmResult.ResultQuery.id[1]; if ( pageID GT 0 ) { mmData = mmCom.getInfo(multimediaID=pageID); mmData = Duplicate(mmData); mmData ['PageID'] = pageID; mmData ['MultimediaID'] = pageID; ArrayAppend(retArr,mmData); } } } return retArr;