បង្ហាញ​កាល​បរិច្ឆេទ


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html lang="en">
<head>

   <data:blog.pageTitle/>

<meta charset='utf-8'/>
<meta content='width=device-width, initial-scale=1' name='viewport'/>
<link href='https://fonts.googleapis.com/css?family=Sriracha|Playball|Merienda+One|Bokor|Bayon|Koulen|Moul|Nokora|Hanuman|Metal' rel='stylesheet'/>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<b:skin>
<![CDATA[
/*ការរចនា​ចាប់​ផ្តើម​ទី​នេះ*/
*{
  padding:0;
  margin:0;
}
.header-wrapper{
  position: -webkit-sticky;
  position: sticky;
  top: 0px;
  z-index:999;
}
.header{
  color:grey;
  background:#f2f2f2;
  padding:15px 20px;
}
.header h1{
  font:20px/1.5 Koulen;
  margin-bottom:0;
}
.kb-navbar{
  background:#17a2b8;
}
.kb-navbar .navbar-brand{
  color:white !important;
  font:18px/1.5 Bokor;
}
.kb-navbar .nav-link{
  font:16px/1.5 Nokora;
  color:#e6e6e6 !important;
}
.kb-navbar .nav-link:hover{
  color:white !important;
}
.post-wrapper,.sidebar-wrapper{
  padding:10px;
}
.post-body,.sidebar{
  background:#f2f2f2;
  min-height:400px;
}
.footer{
  margin-top:20px;
  min-height:200px;
  background:grey;
}
.blog-posts{
  padding:10px 20px;
}
.date-header{
  font:italic 17px/1.5 Hanuman;
  padding-bottom:10px;
  border-bottom:1px solid lightgrey;
}

/*ចុង​បញ្ចប់​នៃ​ការរចនា*/
]]>
</b:skin>

</head>
<body>





គេហទំព័រ​យើង

<b:if cond='!data:mobile'>
<b:loop values='data:posts' var='post'>
</b:loop>
<b:else/> <b:include name='mobile-main'/> </b:if>
</body> </html>

ពិនិត្យ​គេហទំព័រ​ជាក់​ស្តែងៈ https://webdesign-kh.blogspot.com/

នៅ​ក្នុង​កូដ​ខាង​លើ​នេះ យើង​សង្កេត​ឃើញ​ថា​មាន​ការបន្ថែម​នូវ​ផ្នែក​កូដ​ជា​ភាសា​ JavaScript មួយ​​ផ្នែក​ទៀត​ទៅ​​ក្នុង​ធាតុ HTML «head» នៅ​ក្នុង​គំរូ​គេហទំព័រ​​ខាង​លើនេះ​។ ជា​លទ្ធផល កូដ​ខាង​លើនេះ​មាន​លក្ខណៈ​ពេញលេញ​​ជា​កូដ​របស់​គំរូ​គេហទំព័រ​ជា​​ទូទៅ មិន​ត្រឹម​តែ​សំរាប់​ប្រព័ន្ធ Blogger តែ​មួយ​ប៉ុណ្ណោះ​ទេ​។

ក៏ប៉ុន្តែ ក្រៅ​ពី​មានលក្ខណរួម​ជា​ទូទៅ ប្រព័ន្ធ​​ Blogger ក៏​មាន​លក្ខណៈ​ដោយ​ឡែក​ផ្ទាល់​ខ្លួន​របស់​វា​ដែរ ពោល​គឺ​វា​ប្រើប្រាស់​ភាសា​គំរូ​គេហទំព័រ​ (template language) ផ្ទាល់​ខ្លួន​របស់​វា​តែ​ម្តង ក្នុង​ការរៀបចំ​និង​ឬ​រចនា​គេហទំព័រ​នានា​នៅ​លើ​ប្រព័ន្ធ​របស់​វា​។

ជាក់ស្តែង នៅ​លើបន្ទាត់​លេខ 114 ការសរសេរ​ថា <b:includable id="main"> គឺ​ជា​ការ​​បង្កើត​ក្បួន​មួយ (function) មាន​ឈ្មោះ​ថា «main» ដែល​នឹង​ត្រូវ​យក​ទៅ​ប្រើ​ជា​ស្វ័យប្រវត្តិ នៅ​ពេល​ដែល​គេហទំព័រ​ត្រូវ​បាន​បើក​មើល​។ មួយវិញ​ទៀត មាន​តែ​ក្បួន​ឈ្មោះ «main» តែ​ប៉ុណ្ណោះ​ ដែល​នឹង​ត្រូវ​​យក​ទៅ​ប្រើ​ជា​ស្វ័យ​ប្រវត្តិ ចំពោះ​ក្បួន​ដទៃ​ទៀត​ដែល​មាន​ឈ្មោះ​ខុស​ពី​នេះ នឹង​មិនត្រូវ​យក​ទៅ​ប្រើ​ដោយ​ប្រវត្តិឡើយ យើង​ចាំបាច់​ត្រូវ​យក​ទៅ​ប្រើ (calling) ​ដោយ​ខ្លួន​យើង​​ផ្ទាល់​។

ជាទូទៅ បញ្ជា​ទាំងឡាយ (statement) នៅ​ក្នុង​ភាសា​គំរូគេហទំព័រ​រប់ស​ប្រព័ន្ធ Blogger មាន​លក្ខណៈ​ស្រដៀងនឹង​ភាសា HTML ដែរ​គឺ​មាន tag បើក​ដែល​ត្រូវ​ស្ថិត​នៅ​ក្នុង​សញ្ញា < > និង tag បិទ​ដែល​ត្រូវ​ស្ថិត​ក្នុង​សញ្ញា </ > ឧទាហរណ៍​ដូចជា​ tag បើក <b:includable​ id="main"> ដែល​មាន​ tag បិទ​របស់​វា​គឺ </b:includable> ។​

នៅ​លើ​បន្ទាត់​លេខ 152 ការសរសេរ​ថា <b:if cond='!data:mobile'> គឺ​ជា​ការប្រើ​បញ្ជា​ «if» នៅ​ក្នុង​ភាសា​គំរូ​គេហទំព័រ​របស់​ប្រព័ន្ធ​ Blogger ។ ហើយ​ក្រុម​បញ្ជា​នៅ​ក្នុង​បញ្ជា «if» នេះ​នឹង​ត្រូវ​យក​ទៅ​អនុវត្ត​ក្នុង​លក្ខខ័ណ្ឌ​ដែល​កន្សោម​ប្រមាណវិធី «!data:mobile» ផ្តល់​តំលៃ​ជា​តក្កវត្ថុ​ true បាន​ន័យ​ថា​ក្នុងករណី​ដែល​ឧបករណ៍​អេឡិចត្រូនិក​សំរាប់​បើកមើល​គេហទំព័រ មិន​មែន​ជា​ទូរស័ព្ទ​ដៃ​។ បើ​ពុំនោះសោត​ទេ ក្រុមបញ្ជា​នៅ​ក្នុង​បញ្ជា «else» នៅ​បន្ទាត់​លេខ 163 នឹង​ត្រូវ​យក​ទៅ​អនុវត្ត​។

ជាទូទៅ ទំរង់​នៃ​បញ្ជា if/else នៅ​ក្នុង​ភាសា​គំរូ​គេហទំព័រ​របស់​ប្រព័ន្ធ Blogger គឺ​ដូចនេះ <b:if cond=''><b:else/></b:if>

នៅ​លើ​បន្ទាត់​លេខ 154 ការសរសេរ​ថា <b:loop values='data:posts' var='post'> គឺ​ជា​ការប្រើបញ្ជា «loop» នៅ​ក្នុង​ភាសា​គំរូគេហទំព៍រ​របស់​ប្រព័ន្ធ Blogger ដើម្បី​យក​សមាសវត្ថុ (container) ដែល​ជា​ post មួយ​ចំនួន​ យក​មក​ពិនិត្យ​មើល​មួយ​ម្តង​ៗ រហូត​ដល់​អស់។ ហើយ​ tag បិទ​របស់​បញ្ជា <b:loop values='data:posts' var='post'> នេះ​គឺ </b:loop> នៅ​បន្ទាត់​លេខ 161 ។

នៅ​ក្នុង tag បើក <b:loop values='data:posts' var='post'> ការសរសេរ​ថា «values='data:posts'» គឺ​ជា​ការយក posts ចុងក្រោយ​គេមួយ​ចំនួន​​នៅ​ក្នុង​ប្លក់​របស់​យើង​មក​ប្រើការ​។ ចំនួន​ post ដែល​ត្រូវ​យក​មក​ប្រើការ គឺ​ស្មើ​នឹង​ចំនួន​ post ដែល​យើង​បាន​កំណត់​នៅ​ក្នុង​ «setting» ។ ចំណែក​ឯ​ការសរសេរ​ថា var='post' បាន​ន័យ​ថា​ឈ្មោះ «post» នេះ​នឹង​ត្រូវ​យក​ទៅ​ភ្ជាប់​ជាមួយ​នឹង​ post ដែល​ជាការ​​ចុះ​ផ្សាយផ្សេង​ៗ ម្តង​មួយៗ​​​តាម​លេខ​រៀង។

នៅ​បន្ទាត់​លេខ 158 គឺ​ជាការ​យក​​​វិធីឈ្មោះ «getKhDate» មក​ប្រើ​ដើម្បី​បកប្រែ​កាលបរិច្ឆេទ​របស់​ post និមួយ​ៗ​អោយ​ទៅ​ជា​ភាសា​ខ្មែរ​។ វិ៊ធី​ឈ្មោះ «getKhDate» នេះ​ត្រូវ​បាសរសេរឡើង​ជា​ភាសា​ JavaScript ​​នៅ​ក្នុង​ផ្នែក​ script របស់​​គំរូគេហទំព័រ​ខាង​លើ​។

ជាមួយ​គ្នានេះ​ដែរ នៅ​លើ​បន្ទាត់​លេខ 158 ក៏​មាន​ការសរសេរ​ថា <data:post.dateHeader/> នេះ​ដែរ​។ ការសរសេរ​របៀប​នេះ គឺ​ជាការ​ប្រើ​បញ្ជា​នៅ​ក្នុង​ភាសាគំរូ​គេហទំព័រ​របស់​ប្រព័ន្ធ Blogger តំរូវ​អោយកាលបរិច្ឆេទ​របស់​ post ដែល​កំពុង​តែ​ត្រូវ​បាន​ពិនិត្យ​ អោយ​លេចឡើង​នៅ​ទីនោះ​​។

នៅ​បន្ទាត់​លេខ 164 ការសរសេរ​ថា <b:include name='mobile-main'/> គឺ​ជា​ការយក​ក្បួន​ឈ្មោះ «mobile-main» មក​ប្រើ​ក្នុង​ករណី​ដែល​គេហទំព័រ​ត្រូ​បាន​បើកមើល​ដោយ​ទូរស័ព្ទ​ដៃ​។ ដូចនេះ នៅ​ក្នុង​ភាសា​គំរូ​គេហទំព័រ​របស់​ប្រព័ន្ធ Blogger រាល់​ការបង្កើត​ក្បួន​ត្រូវ​ប្រើ​បញ្ជា «includable» ហើយ​ការយក​ក្បួន​មក​ប្រើ​​ទាមទារ​អោយ​ប្រើ​បញ្ជា «include» ៕