
ក្រោយពីមានទំព័រនៃកម្មវិធីជាភាសា JavaScript សំរាប់ជួយសំរួលក្នុងការសរសេរកូដចុះផ្សាយវីដេអូរួចហើយ យើងត្រូវធ្វើការកែសំរួលមួយចំនួនទៀត នៅក្នុងគេហទំព័ររបស់យើង ដើម្បីអាចចុះផ្សាយវិដេអូ និងឬអត្ថបទផ្សេងៗអោយនៅលាយឡំជាមួយគ្នាបាន។ ហើយគ្រប់ការចុះផ្សាយជាវីដេអូទាំងឡាយនឹងត្រូវមានសញ្ញាសំគាល់ជារូបចាក់វីដេអូ (play icon) នៅលើនោះ។
ជាដំបូងឡើយ យើងត្រូវធ្វើយ៉ាងណាអោយគេហទំព័ររបស់យើងអាចធ្វើការកត់សំគាល់បានរវាងការចុះផ្សាយជាអត្ថបទ និងការចុះផ្សាយជាវីដេអូដែលត្រូវបានបង្កប់នូវអត្តសញ្ញាណពិសេសម្យ៉ាងដែលជាពាក្យថា «__video-id__» ។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
.mobile .img-frame{ width:100%; } .img-frame{ display:block; overflow:hidden; width:50%; float:left; margin:0 10px 5px 0; position:relative; } .play-icon{ position:absolute; top:50%; left:50%; transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%); width:20% !important; min-height:auto; } #KBPlayer{ border-radius:4px; padding:2.5% 2% 1.5%; background:black; text-align:left; margin-bottom:20px; } #relatedPosts{ background:#404040; padding:10px 10px 10px; height:360px; overflow-y:scroll; margin-bottom:3px; } #relatedPosts a div{ height:60px; padding:10px; margin:2px 0 2px; width:100%; border-radius:4px; color:white; } #relatedPosts a div:hover{ background:#282828; color:orange; } #relatedPosts a:hover{ text-decoration:none; } #relatedPosts a div img{ float:left; height:95%; width:120px; margin-right:7px; border:1px solid white; border-radius:2px; padding:0; }
KBclass.prototype.createSummaryAndThumb = function (pID,postLink,postTitle,postDate){ var div = document.getElementById(pID); var str = $('#'+pID).html(); var imgtag = ""; var img = div.getElementsByTagName("img"); if(img.length>=1) { if(str.indexOf('__video-id__') != -1){ imgtag = ''; imgtag += ''; imgtag += '
'; imgtag += ''; }else{ imgtag = '
'; } }else{ img = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqyBk4cRKpkG3fGeA7VfaOO8oqqorD9y6OYea4qKym33HpbksGjJLdAn3cWjnp8c1Dw1i-BdoAtaIWgcK_x6Lbhv4E7vRMS_53vVwkKqQ4tuDpvCGeOoMZ2PiaKpkCAvD1CNaYkp99tEue/s1600/Capture.png"; imgtag = '
'; } this.summary = '
'; this.summary += ''; this.summary += ''; div.innerHTML = imgtag+this.summary; } KBclass.prototype.createThumb = function (postContent){ var div = document.createElement( 'div' ); div.innerHTML = postContent; var img = div.getElementsByTagName("img"); if(img.length>=1) { return img[0].src; } else{ return ("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpaWn3DC3tAnGN9TBh_RZ2QursVnkzggJ-gUpvyMeM3K6XCg_BtyJ0PAqLSMEBlkzQEZxJobsSVL6jxbITeaV7OMBVtC-uFNpoxXiO8FgoqhpTeCjxFZy9Dx75VEs9EMggeudbwAvUBv1y/s1600/picture.jpg"); } } KBclass.prototype.getPost = function (json){ this.postUrl = []; this.postTitle = []; this.postThumb = []; this.postDate = []; this.postIdList = []; this.postData = []; var postList = json.feed.entry; this.totalPost = json.feed.openSearch$totalResults.$t; this.postList = postList; for(var i=0; i < postList.length; i++){ for (var j = 0; j < postList[i].link.length; j++) { if (postList[i].link[j].rel == 'alternate') { this.postUrl.push(postList[i].link[j].href); break; } } var postContent = postList[i].content.$t; this.postData.push(postContent); this.postIdList.push(this.postList[i].id.$t); this.postTitle.push(postList[i].title.$t); this.postThumb.push(this.createThumb(postContent)); this.postDate.push(postList[i].published.$t); } } KBclass.prototype.setPostVid = function (postId){ var playlist = document.createElement( 'div' ); var description = document.createElement( 'div'); var post = document.getElementById(postId); var kbplayer = document.getElementById("KBPlayer"); var Playlistt = []; var str = post.getElementsByClassName("__video-id__")[0].getAttribute("data-id"); playlist.innerHTML = post.getElementsByClassName("__playlist__")[0].getAttribute("data-pl"); description.innerHTML = post.getElementsByClassName("__description__")[0].innerHTML; kbplayer.parentElement.insertBefore(description, kbplayer.nextSibling); var startIndex = str.indexOf('{'); var endIndex = str.indexOf('}'); var vidId = str.slice(startIndex+1,endIndex); if(str.indexOf('googledrive') != -1){ var iframeSrc = 'https://docs.google.com/file/d/'+vidId+'/preview'; }else if(str.indexOf('youtube') != -1){ var iframeSrc = '//www.youtube.com/embed/'+vidId; }else if(str.indexOf('dailymotion') != -1){ var iframeSrc = '//www.dailymotion.com/embed/video/'+vidId+'?logo=0&info=0'; }else if(str.indexOf('vimeo') != -1){ var iframeSrc = '//player.vimeo.com/video/'+vidId; }else if(str.indexOf('facebookvid') != -1){ var iframeSrc = 'https://www.facebook.com/video.php?v='+vidId; } if(str.indexOf('facebookvid') != -1){ var postContent = ''+postDate+''; this.summary += ''; postContent += '
'; postContent += ''; }else{ var postContent = ''; } post.innerHTML = postContent; var Player = post.getElementsByTagName('iframe'); if(str.indexOf('facebookvid') != -1){ var vidWidth = post.getElementsByTagName('p'); var Player = post.getElementsByTagName('div'); Player[0].setAttribute("data-width", vidWidth[0].clientWidth); }else{ var vidWidth = Player[0].clientWidth; Player[0].height = vidWidth / 16 * 9; } str = playlist.innerHTML; if(str.indexOf('pl') != -1){ var startIndex = str.indexOf('['); var endIndex = str.indexOf(']'); this.pl = str.slice(startIndex+1,endIndex); document.write('<script type=\"text/javascript\" src=\"/feeds/posts/default/-/'+this.pl+'?alt=json-in-script&start-index=1&max-results=150&callback=getRelatedPost\"><\/script>'); } } KBclass.prototype.getRelatedPost = function (json){ var partTitle = document.getElementsByTagName('title'); partTitle = partTitle[0].innerHTML; this.getPost(json); document.write(' '); var Player = $("#relatedPosts img").css("width"); var playerHeight = parseInt(Player)/16*9; $("#relatedPosts img").css("height",playerHeight); $("#relatedPosts div").css("height",playerHeight+20); element.scrollIntoView(); } function getPost(json){ KBobject = new KBclass(); KBobject.postSum = 1000; KBobject.getPost(json); } function getRelatedPost(json){ KBobject = new KBclass(); KBobject.getRelatedPost(json); }
<data:post.body/>
ពិនិត្យគេហទំព័រជាក់ស្តែង៖ https://testing-kb.blogspot.com/2019/04/video-test.html
នៅលើបន្ទាត់លេខ 8 ការសរសេរថា if(str.indexOf('__video-id__') != -1) គឹជាការពិនិត្យការចុះផ្សាយនិមួយៗថាវាមានបង្កប់នូវពាក្យថា «__video-id__» ដែរឬទេ។ ហើយបើសិនជាមានពាក្យនោះមែន ការផ្សាយនោះនឹងត្រូវរចនាទៅតាមលំនាំនៃការផ្សាយជាវិដេអូ។
នៅលើបន្ទាត់លេខ 11 ការសរសេរថា KBobject.setPostVid("<data:post.id/>"); គឺជាបញ្ជាតំរូវអោយយកវិធីឈ្មោះ «setPostVid» នៅក្នុងថ្នាក់ឈ្មោះ «KBclass» មកប្រើ ក្នុងគោលបំណងរចនាការផ្សាយនោះ អោយទៅជាការផ្សាយវីដេអូ៕
