Get Adobe Flash player

วิธีแก้ปัญหา constructor error ใน phpmyadmin

  1. ใช้คำสั่ง sudo nano /usr/share/php/php-gettext/streams.php
  2. บรรทัดที่ 52 เปลี่ยนฟังก์ชั่น function StringReader ($str=”) { เป็น function __construct($str=”) {
  3. บรรทัดที่ 90 เปลี่ยนฟังก์ชั่น function FileReader($filename) { เป็น function __construct($filename) {
  4. บรทัดที่ 146 เปลี่ยนฟังก์ชั่น function CachedFileReader($filename) { เป็น function __construct($filename) {
  5. ใช้คำสั่ง sudo nano /usr/share/php/php-gettext/gettext.php
  6. บรรทัดที่ 36 เปลี่ยนฟังกชั่น function gettext_reader($Reader, $enable_cache = true) { เป็น function __construct($Reader, $enable_cache = true) {

ionic 2 : Create Page (ionic generate page)

ionic 2 : Create Page สร้าง Page ด้วยคำสั่ง ionic generate page เนื่องจาก ionic 2 เมื่อสร้างไฟล์ใหม่จะต้องมีไฟล์ที่ประกอบไปด้วย ไฟล์ .html, .ts (typescript), .scss (css) ใช้คำสั่งในการสร้าง Page จะได้ไฟล์ทั้งหมดทันทีดังภาพด้านล่าง

คำสั่งทั้งหมดที่เกี่ยวกับสร้าง Page

จัดทำรายงานสรุปการเข้าร่วมกิจกรรมของนักศึกษาบนระบบทรานสคริปกิจกรรม ปีการศึกษา 2560

จัดทำรายงานสรุปการเข้าร่วมกิจกรรมของนักศึกษาบนระบบทรานสคริปกิจกรรม ปีการศึกษา 2560 สามารถเข้าใช้งานได้ที่

http://activity.rmutp.ac.th/ และเลือกเมนู สรุปรายงานปีการศึกษา 2560

HTML5 picture element เพื่อทำ responsive image ที่ดีกว่า

ในปัจจุบันเป็นที่รู้กันว่าเราต้องทำเว็บไซต์ให้รองรับกับหน้าจอหลาย ๆ ขนาด (responsive web) รวมทั้งรูปภาพที่ใช้ในเว็บด้วย โดยวิธีที่ใช้กันมากคือการกำหนด CSS ให้ที่ทำให้รูปภาพมีความกว้างตามขนาดพื้นที่ที่มี เช่น

การใช้ CSS กำหนดให้รูปภาพเป็น responsive image สามารถใช้งานได้ดี แต่ก็ยังมีปัญหาเรื่องประสิทธิภาพ เพราะต้องเตรียมรูปภาพขนาดใหญ่เผื่อไว้รองรับหน้าจอขนาดใหญ่ เมื่อถูกเปิดด้วยหน้าจอขนาดเล็กก็ต้องโหลดรูปภาพขนาดใหญ่โดยไม่จำเป็น และหากพื้นที่เป็นแนวตั้ง แต่รูปภาพเป็นแนวนอน ก็จะส่งผลให้รูปภาพถูกย่อจนเล็กดังภาพ

 

ซึ่งในจุดนี้ HTML5 picture element จะเข้ามาช่วยได้ โดยการยอมให้เราเตรียมรูปภาพหลากหลายขนาดที่เหมาะสมกับหน้าจอขนาดต่าง ๆ และ picture element จะสั่งให้ web browser โหลดเฉพาะไฟล์ขนาดที่เหมาะสมตามที่เราตั้งค่าไว้  (เงื่อนไขเหมือนกับ media screen ของ CSS) โดยมีตัวอย่างดังนี้

ถ้าหน้าจอขนาด 600px ก็จะโหลดรูป img_pink_flowers แทน img_orange_flowers ทำให้ใช้ปริมาณเครือข่ายเท่าที่จำเป็น คือหน้าจอขนาดใหญ่โหลดภาพขนาดใหญ่ แต่ถ้าเป็นหน้าจอขนาดเล็กก็โหลดภาพขนาดเล็ก ดังภาพ

credit: https://webdesign.tutsplus.com/tutorials/quick-tip-how-to-use-html5-picture-for-responsive-images–cms-21015

ปรับปรุงระบบลาออนไลน์ เพิ่มหน้าให้ผู้ดูแลของหน่วยงานกลาง ( กบ.) สามารถเข้าดูการลาทุกคนได้

ปรับปรุงระบบลาออนไลน์ เพิ่มหน้าให้ผู้ดูแลของหน่วยงานกลาง ( กบ.) สามารถเข้าดูการลาทุกคนได้

การใช้งาน Bootstrap 4

การใช้งาน Bootstrap 4

BOOTSTRAP 4 VS BOOTSTRAP 3 แตกต่างกันยังไง

ก่อนอื่นเลยคนที่เคยใช้ Bootstrap 3 มาก่อนน่าจะมีพอสมควรครับ ข้อแตกต่างของ Bootstrap 4 กับ Bootstrap 3 คือ:

  • โค้ดของ Bootstrap 4 เขียนขึ้นใหม่ทั้งหมดตั้งแต่ต้น
  • Bootstrap 3 รองรับตั้งแต่ Internet Explorer 8 ส่วน Bootstrap 4 รองรับตั้งแต่ Internet Explorer 9
  • Bootstrap 3 เขียนด้วย LESS CSS ส่วน Bootstrap 4 เขียนด้วย SASS
    แต่ใครไม่ได้ใช้ LESS / SASS ก็ไม่เป็นไร เพราะเค้ามีเวอร์ชั่น CSS ธรรมดาให้ด้วย และสำหรับโปรเจคส่วนใหญ่ CSS ก็เพียงพอแล้วครับ
  • Bootstrap 4 สามารถใช้ Grid แบบ Flexbox ได้ (มีทั้งเวอร์ชั่น Flexbox และเวอร์ชั่นไม่ใช่ Flexbox) – ข้อดีของ Flexbox คือ เราสามารถทำให้คอลัมน์สูงเท่ากันอัตโนมัติได้ และสลับตำแหน่งในแต่ละหน้าจอได้ ถ้าใครสนใจกริดแบบ Flexbox แอดขอแนะนำ Bulma CSS Framework ที่เขียนถึงไปก่อนหน้านี้ด้วยครับ
  • Bootstrap 4 ขนาดไฟล์เบากว่า Bootstrap 3 เล็กน้อย
    • Bootstrap 3 ขนาดไฟล์ CSS = 121kb + JS = 37kb รวมเป็น 158kb
    • Bootstrap 4 ขนาดไฟล์ CSS = 105kb + JS = 45kb รวมเป็น 150kb
  • Bootstrap 3 เปิดตัวมานานแล้ว จะหาวิธีแก้ปัญหาต่าง ๆ ใน Google / Stackoverflow ได้ง่ายกว่า
  • Bootstrap 4 เพิ่มกริดขนาด xl และปรับความกว้างในแต่ละระดับจาก Bootstrap 3

 

การใช้งาน Bootstrap แบบไม่ต้อง Download

Bootstrap มีสิ่งที่เราเรียกว่า CDN หรือ Content Delivery Network ซึ่งมีผู้ใหญ่ใจดีโฮสต์ไฟล์ CSS และ JavaScript ของ Bootstrap ให้เราเรียกมาใช้ฟรี ๆ โดยคลิกเข้าไปที่:

เว็บไซต์ของ Bootstrap 4 

 

– โดยสามารถ Copy โค๊ดด้านบนมาวางในไฟล์ HTML ของเราได้เลยโดยใส่ไว้ภายใน tag <head>

 

– การเพิ่ม Plugin Javascript , Jquery ทำได้โดย copy โค้ดไปวางก่อนปิด tag </body>

 

การใช้งาน BootStrap แบบ Download

– คลิกที่ Download Bootstrap

– จากนั้นแตกไฟล์แล้วจะได้ โฟล์เดอร์ ดังรูปภาพ

– โดย Copy โฟล์เดอร์ทั้งสองไปวางไว้ในโฟล์เดอร์งาน Project ของเรา

 

– ภายในไฟล์ HTML นั้น Bootstrap นั้นจะเรียกใช้ HTML DOCTYPE  ซึ่งถ้าไม่มีการเรียกใช้งานและการแสดงผลจะออกมาไม่สมบูรณ์

 

 

– การเรียกใช้งานจะใช้โค้ดดังรูปภาพด้านบนซึ่งจะเรียกตามที่อยู่ของไฟล์ css ในโฟล์เดอร์

– โดยนำโค้ดมาใส่ไว้ภายใน tag <head>..</head> ดังรูปภาพ

 

การสร้าง Web Form Method Post ของ ASP.NET คล้ายๆกับ Form method POST ของ PHP

การสร้าง Web Form Method Post  ของ  ASP.NET คล้ายๆกับ Form method POST ของ PHP

หน้า Form Post

หน้ารับค่า Post StudentListAddDo.aspx

 

Favicon Best Practice 2017 ฉบับภาษาไทย

ในอดีดเราสามารถใช้ไฟล์ favicon.ico ขนาด 16×16 pixels ไฟล์เดียววางไว้บน root directory ของเว็บไซต์ เพื่อให้ Web Browser สามารถนำ Icon มาแสดงไว้หน้า Web Title ซึ่งก็ยังคงใช้งานได้จนถึงทุกวันนี้บนเว็บไซต์ แต่ในปัจจุบันเว็บไซต์ถูกนำไปเปิดบนหลากหลายอุปกรณ์ซึ่งมีความละเอียดของหน้าจอแตกต่างกัน นอกจากนั้นหากผู้ใช้ Add Website เป็น Bookmark หรือเพิ่มลงใน Home Screen ของโทรศัพท์ก็จะต้องใช้ Icon ขนาดใหญ่กว่าเดิม จึงทำให้ใน HTML5 มีคุณสมบัติใหม่เพิ่มเพื่อช่วยแก้ไขปัญหาเหล่านี้

Favicon ใน link (HTML5) จะมีคุณสมบัติเพิ่มขึ้นใหม่ประกอบด้วย

  1. รองรับไฟล์ชนิด png และ svg เพิ่ม นอกเหนือจาก ico (แต่รองรับไม่ครบทุก Web Browser)
  2. Attribute ใหม่คือ size ใช้กำหนดขนาดของ Icon เพื่อให้ Web Browser เลือกใช้ตามความเหมาะสม

ตัวอย่าง

ถ้าต้องการให้ Favicon ของเรารองรับทุก ๆ หน้าจอและอุปกรณ์จะต้องใส่ไฟล์ครบทุกขนาดตามตารางนี้

Size Name Purpose
32×32 favicon-32.png Standard for most desktop browsers
57×57 favicon-57.png Standard iOS home screen (iPod Touch, iPhone first generation to 3G)
76×76 favicon-76.png iPad home screen icon
96×96 favicon-96.png GoogleTV icon
120×120 favicon-120.png iPhone retina touch icon (Change for iOS 7: up from 114×114)
128×128 favicon-128.png Chrome Web Store icon & Small Windows 8 Star Screen Icon*
144×144 favicon-144.png IE10 Metro tile for pinned site*
152×152 favicon-152.png iPad touch icon (Change for iOS 7: up from 144×144)
167×167 favicon-167.png iPad Retina touch icon
(change for iOS 10: up from 152×152, not in action. iOS 10 will use 152×152)
180×180 favicon-180.png iPhone 6 plus
195×195 favicon-195.png Opera Speed Dial icon
(Not working in Opera 15 and later)
196×196 favicon-196.png Chrome for Android home screen icon
228×228 favicon-228.png Opera Coast icon

* Microsoft ต้องการ Meta tag msapplication-TileColor และ msapplication-TileImage สำหรับ IE10 บน Windows 8 และ Windows10 IE11 ขึ้นไปต้องการ browserconfig.xml.

จะเห็นว่าหากต้องการให้ Favicon สามารถรองรับแบบ Cross platform ได้เราจะต้องเหนื่อยมากในการเตรียมไฟล์และ Config ดังนั้นอาจจะพิจารณาเพื่อตัดตัวเลือกที่ไม่จำเป็นทิ้ง หรือใช้บริการเว็บไซต์ https://www.favicon-generator.org/ เพียงแค่ Upload ไฟล์ icon ที่มีขนาดมากกว่า 228×228 pixels จากนั้นระบบจะ generate ไฟล์ icon และ confg ที่จำเป็นทั้งหมด โดยมีขั้นตอนดังนี้

1) เลือกไฟล์ icon ที่ต้องการและเลือก Generate icons for Web, Androidm Microsoft and iOS

2) คลิกปุ่ม Create Favicon ระบบจะให้ Download ไฟล์สามารถ Extract ได้รายการไฟล์ดังนี้

3) จากนั้นให้นำไฟล์ทั้งหมด Upload เข้าสู่เว็บไซต์ และแทรก Script ด้านล่างนี้ไว้ใน Tag head สามารถแก้ไข path ให้ตรงกับที่อยู่ของไฟล์ได้ตามสะดวก

 

ASP.NET MVC LESSON 2 return Json data

ASP.NET MVC LESSON 2 return Json data โดยเราสามารถกำหนดการ return ค่าเป็นแบบ string หรือ Array Object ได้ดังภาพ

ในส่วนของ Controller ปกติจะ return View(); ให้  return Json(data,JsonRequestBehavior.AllowGet);

Json จากภาพด้านบนจะมีการส่งค่ากลับสามแบบ

แบบที่ 1

status = “0”,
statusTextTH = “ไม่ผ่าน”,
statusTextEN= “fail”,

 

แบบที่ 2

summary=new
{
obtainAct=15,
obtainHour=37,
criteriaAct=30,
criteriaHour=120

}

แบบที่ 3

จะต้องทำ Array เพราะสังเกตุว่าจะมี […..] ครอบ data ไว้อยู่ ให้สร้าง array ขึ้นมา
1) เริ่มจากสร้างตัวแปร
public class criteriaListArr
{
public String nameTH { get; set; }
public String nameEN { get; set; }
public int obtain { get; set; }
public int criteria { get; set; }
}
2) จากนั้นให้สร้าง ArrayList
public List GetcriteriaListArr()
{
var res = new List()
{
//case 1
new criteriaListArr()
{
nameTH = “กิจกรรมมหาวิทยาลัย ไม่น้อยกว่า 10 กิจกรรม”,
nameEN = “กิจกรรมมหาวิทยาลัย ไม่น้อยกว่า 10 กิจกรรม”,
obtain =8,
criteria=10
},
//case 2
new criteriaListArr()
{
nameTH = “กิจกรรมมหาวิทยาลัย ไม่น้อยกว่า 120 ชั่วโมง”,
nameEN = “กิจกรรมมหาวิทยาลัย ไม่น้อยกว่า 120 ชั่วโมง”,
obtain =50,
criteria=120
},
//case 3
new criteriaListArr()
{
nameTH = “กิจกรรมพัฒนานักศึกษาสู่การเป็นบัณฑิตพึงประสงค์ ครบ 5 ด้าน”,
nameEN = “กิจกรรมพัฒนานักศึกษาสู่การเป็นบัณฑิตพึงประสงค์ ครบ 5 ด้าน”,
obtain =4,
criteria=5
}

};

return res;
}
3) แล้วขั้นตอนการเรียกใช้ให้เรียกใช้โดยกำหนดตัวแปรเท่ากับ ArrayList ที่สร้าง
criteriaList = GetcriteriaListArr()

Code หน้า Controller ทั้งหมด

 

ASP.NET MVC LESSON 1 การเรียกใช้ Parameter

ASP.NET MVC LESSON 1 การเรียกใช้ Parameter
แบบที่ 1 เรียกผ่าน string query รูปแบบเดิมๆ ดังภาพ

ขั้นตอนการทำแก้ไขไฟล์ RouteConfig.cs เพื่อให้เรียก parameter ดังในภาพ

สร้าง Controller ชื่อ ActivityTranscript แล้วในส่วนของ Action ให้กำหนดตัวรับ Parameter ด้วย

หลังจากนั้นส่วนของ View ให้สร้าง View Index เพื่อแสดงผล ViewBag.StudentCode ที่เก็บค่ามาแสดง

แบบที่ 2 จะใช้แสลช / แยกเพื่อความสวยงาม เป็นแบบที่นิยมใช้  ดังภาพด้านล่าง

ไฟล์ RouteConfig.cs จะเหมือนเดิม

หน้า Controller เพิ่ม [Route(……….)] เพื่อระบุค่า Parameter กรณีที่มี Route เยอะๆ จะใช้วิธีรับค่า Parameter แทน