ក្រោយពីមានទំព័រនៃកម្មវិធីជាភាសា 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 += ''+postDate+'';
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 = '';
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» មកប្រើ ក្នុងគោលបំណងរចនាការផ្សាយនោះ អោយទៅជាការផ្សាយវីដេអូ៕













