var feedArray = ArrayNew(1); var feedData = StructNew(); var feedStream = ArrayNew(1); var postQty = arguments.maxPosts; var userData = StructNew(); var dt = ""; var d = 1; var feedAuthorName = ""; var lnk = 1; var PostID = ""; var thmbArray = ArrayNew(1); var thmb = 1; // Get the the YouTube feeds from the registered URL feedInfo = application.ptSocialMedia.youTubeFeedsDAO.getYouTubeChannel(arguments.feedCriteria); feedStream = application.ptSocialMedia.youTubeFeedsDAO.getYouTubeChannelUploads(arguments.feedCriteria,arguments.maxPosts); if ( arguments.showFeedDump ) { application.ptSocialMedia.utils.doDUMP(feedInfo,"YouTube-feedInfo (#arguments.FeedID#)",0); application.ptSocialMedia.utils.doDUMP(feedStream,"YouTube-feedStream (#arguments.FeedID#)",0); } // Make sure the feedStream data contains an Array if ( IsArray(feedStream) ) { if ( ArrayLen(feedStream) LTE arguments.maxPosts ) postQty = ArrayLen(feedStream); for ( d=1; d LTE postQty; d++ ) { // Get the YouTube Video ID (as PostID) PostID = ""; if ( StructKeyExists(feedStream[d],"media$group") AND StructKeyExists(feedStream[d].media$group,"yt$videoid") AND StructKeyExists(feedStream[d].media$group.yt$videoid,"$t") ) { PostID = feedStream[d].media$group.yt$videoid.$t; } // Do not Build a Feed Data Struct for Posts that are part of the Excluded Posts List if ( ListFindNoCase(arguments.excludedPostIDs,PostID) EQ 0 ) { // Build the empty feed data structure feedData = Application.ptSocialMedia.feedController.buildFeedDataFormat(); // Fill in the feedData structure with the post info // General Post Metadata feedService = Application.ptSocialMedia.youTubeFeedsDAO.getYouTubeMetadata(); StructAppend(feedData,feedService,true); // Feed ID feedData.FeedID = arguments.FeedID; // Feed Type feedData.FeedType = "channel uploads"; // Channel Page Name (from Channel Feed) if ( StructKeyExists(feedInfo,"title") AND StructKeyExists(feedInfo.title,"$t") ) feedData.FeedName = feedInfo.title.$t; // Channel Image (from Channel Feed) if ( StructKeyExists(feedInfo,"media$thumbnail") AND StructKeyExists(feedInfo.media$thumbnail,"url") ) feedData.FeedImage = feedInfo.media$thumbnail.url; // Channel Link (from Channel Feed) if ( StructKeyExists(feedInfo,"link") AND ArrayLen(feedInfo.Link) ) { for ( lnk=1; lnk LTE ArrayLen(feedInfo.Link); lnk=lnk+1 ) { if ( StructKeyExists(feedInfo.link[lnk],"rel") AND feedInfo.link[lnk].rel EQ "alternate" ) { feedData.FeedLink = feedInfo.link[lnk].href; break; } } } // feed author name //if ( StructKeyExists(feedInfo,"author") //AND ArrayLen(feedInfo.author) //AND StructKeyExists(feedInfo.author[1],"name") //AND StructKeyExists(feedInfo.author[1].name,"$t") ) //feedAuthorName = feedInfo.author[1].name.$t; // Published Dates if ( StructKeyExists(feedStream[d],"published") AND StructKeyExists(feedStream[d].published,"$t") ) { dt = Application.ptSocialMedia.date.ISOToDateTimeStruct(feedStream[d].published.$t); // Feed Pub Dates feedData.PublishedDate = dt.ISO8601DateTime; feedData.csFormattedPublishedDate = dt.csDateTime; // Content Pub Dates feedData.Content.Date = dt.ISO8601DateTime; feedData.Content.CSFormattedDate = dt.csDateTime; } // Source Info (Complete Info Not needed for YouTube) /* if ( StructKeyExists(feedStream[d],"author") AND ArrayLen(feedStream[d].author) ) { // Source User Name, User ID and Name if ( StructKeyExists(feedStream[d].author[1],"name") AND StructKeyExists(feedStream[d].author[1].name,"$t") ) { // Source User Name feedData.Source.UserName = feedStream[d].author[1].name.$t; // Source Name feedData.Source.Name = feedStream[d].author[1].name.$t; // Source User ID feedData.Source.UserID = feedStream[d].author[1].name.$t; } } */ // Post Content // Content Post ID (PostID) if ( LEN(TRIM(PostID)) ) feedData.Content.PostID = PostID; // Content Title ( title.$t or media$group.media$title.$t ) if ( StructKeyExists(feedStream[d],"title") AND StructKeyExists(feedStream[d].title,"$t") ) feedData.Content.Title = feedStream[d].title.$t; if ( StructKeyExists(feedStream[d],"media$group") ) { // Content Thumbnail (media$group.media$thumbnail[1].url) if ( StructKeyExists(feedStream[d].media$group,"media$thumbnail") AND IsArray(feedStream[d].media$group.media$thumbnail) ) { thmbArray = feedStream[d].media$group.media$thumbnail; for ( thmb=1; thmb LTE ArrayLen(thmbArray); thmb=thmb+1 ) { if ( StructKeyExists(thmbArray[thmb],"yt$name") AND thmbArray[thmb].yt$name EQ "default" ) { feedData.Content.Thumbnail = thmbArray[thmb].url; break; } } } if ( LEN(TRIM(feedData.Content.Thumbnail)) AND LEN(TRIM(PostID)) ) { // TODO: Add Thumb URL to config element feedData.Content.Thumbnail = "http://i.ytimg.com/vi/" & PostID & "/default.jpg"; } // Content Link (media$group.media$player.url) if ( StructKeyExists(feedStream[d].media$group,"media$player") AND StructKeyExists(feedStream[d].media$group.media$player,"url") ) { feedData.Content.Link = feedStream[d].media$group.media$player.url; } if ( LEN(TRIM(feedData.Content.Link)) AND LEN(TRIM(PostID)) ) { // TODO: Add Link URL to config element feedData.Content.Link = "http://www.youtube.com/watch?v=" & PostID; } // Content Description (media$description.$t) if ( StructKeyExists(feedStream[d].media$group,"media$description") AND StructKeyExists(feedStream[d].media$group.media$description,"$t") ) feedData.Content.Description = feedStream[d].media$group.media$description.$t; } // Post Source Info // published = feedStream[1].published.$t // title = feedStream[1].title.$t // link = feedStream[1].media$group.media$player.url // image = feedStream[1].media$group.media$thumbnail[1].url // description = feedStream[1].media$description.$t // contentid = feedStream[1].media$group.yt$videoid.$t // feedStream[1].link[1].rel EQ "alternate" // feedStream[1].link[1].href // category = feedData.media$group.media$category[1].label ("People & Blogs") // large player = content.src // FB Like and Twitter Tweet Buttons if ( LEN(TRIM(feedData.Content.Link)) ) { feedData.FBLikeBtn.link = feedData.Content.Link; feedData.TweetBtn.link = feedData.Content.Link; } else if ( LEN(TRIM(feedData.Source.Link)) ) { feedData.FBLikeBtn.link = feedData.Source.Link; feedData.TweetBtn.link = feedData.Source.Link; } else { feedData.FBLikeBtn.link = feedData.FEEDLINK; feedData.TweetBtn.link = feedData.FEEDLINK; } // Twitter Tweet Text if ( LEN(TRIM(feedData.Content.Title)) ) feedData.TweetBtn.message = Left(feedData.Content.Title,120); else if ( LEN(TRIM(feedData.Content.message)) ) feedData.TweetBtn.message = Left(feedData.Content.message,120); else if ( LEN(TRIM(feedData.Content.description)) ) feedData.TweetBtn.message = Left(feedData.Content.description,120); ArrayAppend(feedArray,feedData); } } } return feedArray; var reHTML = ""; var appConfigStruct = application.ptSocialMedia.getAppConfig(); var uiTheme = 'redmond'; var appStyleSheet = "/ADF/apps/pt_social_media/style/socialmedia.css"; // Set the UI theme from the Configuration Element if ( structKeyExists(appConfigStruct,"ui_theme") AND LEN(TRIM(appConfigStruct['ui_theme'])) ) uiTheme = appConfigStruct['ui_theme']; // load jQuery headers application.ptSocialMedia.scripts.loadJQuery(); application.ptSocialMedia.scripts.loadJQueryUI(themeName=UItheme); // load headers for jQuery light box application.ptSocialMedia.scripts.loadADFLightbox();
#renderInlineYouTubeVideoPlayer( videoid=TRIM(arguments.videoid) ,videoWidth=arguments.videoWidth ,videoHeight=arguments.videoHeight ,urlParams=arguments.urlParams )#
var reHTML = ""; var appConfigStruct = application.ptSocialMedia.getAppConfig(); var embeddedVideoURL = "http://www.youtube.com/v/{{videoid}}?version=3"; // YouTube iFrame Embed URL - Experimental //var embeddedVideoURL = "http://www.youtube.com/embed/{{videoid}}"; var replaceStr = "{{videoid}}"; var uParams = ""; // Set the UI theme from the Configuration Element if ( structKeyExists(appConfigStruct,"apiYouTubeEmbeddedVideoURL") AND LEN(TRIM(appConfigStruct['apiYouTubeEmbeddedVideoURL'])) ) embeddedVideoURL = appConfigStruct['apiYouTubeEmbeddedVideoURL']; if ( FindNoCase(replaceStr, embeddedVideoURL) ) embeddedVideoURL = ReplaceNoCase(embeddedVideoURL,replaceStr,TRIM(arguments.videoid),"one"); if ( LEN(TRIM(arguments.urlParams)) ) { uParams = TRIM(arguments.urlParams); if ( Find("?",embeddedVideoURL,1) ) { if ( Find("&",uParams,"1") NEQ 1 ) uParams = "&" & uParams; } else { if ( Find("?",uParams,"1") NEQ 1 ) uParams = "?" & uParams; } embeddedVideoURL = embeddedVideoURL & uParams; }