Checking wordpress user’s role

วิธีตรวจสอบว่า wordpress user ปัจจุบันว่าเป็น admin หรือไม่ ทีแรกมั่วๆ ไปดูที่ function is_admin() แต่อ่านโค้ดดูแล้วไม่ใช่ อันนั้นมันเอาไว้ดูว่าหน้าปัจจุบัน เป็นหน้า wordpress admin หรือเปล่า

วิธีตรวจสอบที่ถูก คือดูจาก capability ของ user นั้นๆ (reference สำหรับเช็ค capability ของ role ต่างๆ) โดยใช้ function current_user_can() เช็คว่าทำได้หรือไม่

เช่น จะดูว่า user สามารถลบคอมเมนต์ได้หรือไม่ ก็เช็คว่า current_user_can('moderate_comments') หรือถ้าต้องการจะเช็คจริงๆ ว่า user เป็น admin หรือเปล่า ก็ใช้ current_user_can('level_8')

แต่ถ้าสำหรับ wordpress MU จะมี function is_site_admin() ให้ใช้ด้วย

Open link from XULRunner

วันก่อนงมหาวิธีทำให้เวลาคลิก link ใน XULRunner แล้วไปเปิดหน้านั้นๆ ใน browser ของเราอยู่นาน สุดท้ายก็ไปดาวน์โหลดโค้ดของ Flickr Uploadr เอามาแกะดู ถึงได้พบดวงตาเห็นธรรม (โค้ดเป็น GPLv2)

1
2
3
4
5
6
7
8
9
10
11
12
13
function launch_browser(url) {
  try {
    var io = Components.classes['@mozilla.org/network/io-service;1']
      .getService(Components.interfaces.nsIIOService);
    var uri = io.newURI(url, null, null);
    var eps = Components.classes['@mozilla.org/uriloader/external-protocol-service;1']
      .getService(Components.interfaces.nsIExternalProtocolService);
    var launcher = eps.getProtocolHandlerInfo('http');
    launcher.preferredAction = Components.interfaces.nsIHandlerInfo.useSystemDefault;
    launcher.launchWithURI(uri, null);
  } catch (err) {	}
  return url;
}

ทีแรกนึกว่าง่ายๆ แบบเขียนบรรทัดเดียวเสร็จ เอาเข้าจริงแล้วไม่ง่ายเลย

LIMIT optimization

จดไว้กันลืม

เวลาที่เรา SELECT ข้อมูลจาก MySQL ปกติก็จะเขียนกันแบบนี้
SELECT * FROM data ORDER BY id LIMIT 10,10

แต่ถ้าวันหนึ่ง เรามีข้อมูลมากๆ แล้วต้องการข้อมูลที่ LIMIT เยอะๆ เช่น
SELECT * FROM data ORDER BY id LIMIT 900000,10

Query แบบหลัง จะช้ากว่าแบบแรกอยู่เยอะ
วิธีที่จะ optimize ให้ query แบบหลัง ทำงานได้เร็วขึ้นทำได้แบบนี้
SELECT * FROM data WHERE id >= (SELECT id FROM data ORDER BY id LIMIT 900000,1) LIMIT 10

โดยที่ id ต้องเป็น index จะทำให้ใน subquery สามารถทำงานได้รวดเร็ว

Bangkok Election Updates

จากช่วงก่อนหน้านี้ที่มีเรื่องพันธมิตรบุกยึดทำเนียบ ลองทำ Thai political updates ไปใส่ในเว็บดูแล้วก็มีคนสนใจระดับหนึ่ง คราวนี้ใกล้ช่วงโค้งสุดท้ายของการหาเสียงเลือกตั้งผู้ว่า กทม. แล้ว ก็เลยลองทำอีกเวอร์ชันออกมาดู

bangkok election
หน้าตาไม่ค่อยสวยเลย

ลองเล่นได้ที่ MThai Bangkok Election

การทำงานก็เหมือนเดิมๆ ใช้ search API ของ twitter ทำ filter คำค้นที่ต้องการออกมา

Political updates from Twittersphere

ทีแรก เมื่อวานได้เห็นเว็บ govtweets.com เป็นเว็บที่แสดงข้อความ tweet จากชาว twitter ที่เกี่ยวข้องกับการเมืองของสหรัฐฯ ดูแล้วเป็นการเอา Twitter Search API มาแสดงผลในรูปแบบที่น่าสนใจ

พอดีกับว่า @macroart บอกว่าถ้ามีเรื่องการเมืองไทยบ้างก็คงจะดี ในที่สุดก็เลยได้ Thai political updates ขึ้นมา ทำแบบง่ายๆ เร็วๆ หน้าตาไม่ค่อยสวยเท่าไหร่


ลองเล่นได้ ที่นี่

การทำงานก็ไม่มีอะไรมาก ใช้ Twitter Search API ค้นคำที่สนใจแล้วเอามาแสดงผล อัพเดตทุกๆ 30 วินาที เขียนด้วย PHP + MySQL ธรรมดา