28 ตุลาคม 2552

การนำ Feed มาแสดงผลใน Drupal โดยใช้ Module FeedAPI

การนำ Feed มาแสดงผลใน Drupal นั้น ยังสามารถใช้ Module FeedAPI ที่เป็นการนำ เอาข่าวที่มีคนให้บริการเข้ามาเป็น Content ของเ้ว็บเรา แล้วจะมีลิงค์ไปอ่านยังบทความนั้นต่อ มีข้อดีอยู่ก็คือ เราสามารถจัดการกับ Feed นั้น ๆ ได้เหมือนกับ Content ที่เราสร้างขึ้นมาเลย ก่อนอื่นเลย เราก็ต้องไปดาวน์โหลด Module FeedAPI จาก http://Drupal .org/project/FeedAPI มาก่อน เสร็จแล้ว แยกไฟล์ แล้วจะได้ Folders FeedAPI ทำการ คัดลอก ไปไว้ใน Sites/All/Modules/ ของ Web Directory หลังจากนั้น ทำการเปิดการใช้งาน Module FeedAPI โดยเข้าไปที่ Administer > Site building > Modules ทำเครื่องหมายถูกที่ด้านหน้า Module FeedAPI ตามรูป แล้วทำการบันทึก
ขั้นตอนต่อไป เราก็ทำการ สร้าง Content type ชนิดใหม่ ให้กับ Feed โดยเราจะสร้าง Content Type ชื่อว่า IT News ให้เข้าไปที่ Administer > Content managements > Content Types > Add content types เสร็จแล้วทำการบันทึก
ขั้นตอนต่อไป ก็ทำการสร้าง Feed โดยเข้าไปที่ Create Content > Feed ช่อง Title : IT News From Sanook ช่อง Description : IT News From Sanook Feed URL : ให้ป้อน Feed URL ที่เราจะนำมาแสดงผล Node type of feed items: เลือก Content Types ที่เราได้สร้างขึ้นมาเพื่อเป็น Content ของ Feed ( ที่ได้สร้างไปตอนต้น ) เสร็จแล้วทำการบันทึก
หลังจากเราได้ทำการเพิ่ม FeedAPI item เข้าไปแล้ว เราก็สามารถเข้าไปดูรายการ Feed ที่จะขึ้นมาแสดงผล โดยเลือกที่ Refresh เพื่อทำการดึงข้อมูลออกมาแสดง แล้ว คลิ๊กที่ Feed item เพื่อดูรายการทั้งหมด
ผลลัพธ์ ที่ได้ก็เป็นแบบนี้แหละครับ
ก็ลองเอาไปปรับใช้กันดูนะครับว่ืาอันไหนจะเหมาะกับคุณ มันมีวิธีใช้ที่ต่างกันนะครับ วันนี้แค่นี้ก่อนก็แล้วกัน

26 ตุลาคม 2552

การนำ Feed มาแสดงผลโดยใช้ Module Aggregator

การนำ Feed มาแสดงผลใน Drupal นั้น ทาง Drupal ได้มี Module อยู่หนึ่งอันที่ทำหน้าที่จัดการกับ Feed ชื่อว่า Module Aggregator ก่อนอื่น เราต้องเข้าไปเปิดใช้งาน Module Aggregator กันก่อน เข้าไปที่ Administer > Site building > Modules ทำเครื่องหมายเช็คถูก ที่หน้า Module Aggregator แล้วทำการบันทึก
หลังจากนั้นทำการกำหนด Permission ให้กับ Module Aggregator ให้เข้าไปที่ Administer > User management > Permissions โดยจะพบว่า Module Aggregator จะมี สิทธิ์ อยู่ 2 ประเภท คือ access news feeds กับ administer news feeds โดย access news feeds ก็จะเป็นการกำหนด ว่าใครสามารถเข้าถึงการใช้งาน ได้ และ administer news feeds หมายถึง ใครสามารถเข้าไปจัดการได้ ผมจะกำหนด ให้ บุคคลทั่วไป (anonymous user) และ สมาชิก (authenticated user) สามารถเข้ามาใช้งานได้ ผมก็ทำการเช็คถูกที่ user ดังกล่าว แล้วทำการบันทึก
จากนั้น เราก็เข้าไปทำการเพิ่ม หมวดให้กับข่าวโดยเข้าไปที่ Administer > Content Management > Feed Aggregator > Add Category เพิ่มหมวดของข่าวเข้าไปแล้วทำการบันทึก
จากนั้นเราก็ไปหาข่าวที่จะมาแสดง โดยผมได้เตรียมข่าวมาจาก Sanook.com พอเราได้ข่าวที่จะมาแสดงแล้วก็ทำการ เพิ่มข่าว โดยเข้าไปที่ Administer > Content Management > Feed Aggregator > Add Feed ทำการป้อนชื่อของข่าว และ ทำการคัดลอง URL ของข่าว ที่่จะมาแสดง ลงไปในช่อง URL เลือกเวลาในการ อัพเดทข้อมุล และ ทำการเช็คถูกที่ด้านหน้าของหมวดของข่าวที่เราได้เพิ่มเข้าไป เสร็จแล้วทำการบันทึก เมื่อเสร็จแล้วจะพบกับ Item ของ Feed และ Feed Category ดังรูป ทำการคลิ๊กที่ Update Items เพื่อทำการดึงข้อมูลมาแสดง
หลังจากนั้นเข้าไปดูผลงานที่เราได้ทำมา ครับ จะอยู่ใน Feed Aggregator
เพียงเท่านี้เราก็สามารถทำ ข่าวเข้ามาแสดงในเว็บของเราแล้วครับ

16 ตุลาคม 2552

การเขึยน PHP code ใน Drupal

การเขียน PHP Code ไว้ใน Content ของ Drupal นั้นสามารถทำได้อย่างง่าย เพราะ Drupal ได้อนุญาติให้เราสามารถเขีียน PHP code ลงใน content ได้ แต่ต้องมีการเปิดใช้งาน Module PHP filter ซึ่งทาง Drupal ได้แนบ Modules ตัวนี้มาเข้ามาด้วยอยู่แล้ว แต่ยังไม่ได้เปิดใช้งาน เราต้องเข้าไปเปิดใช้งาน โดยเข้าไปที่ Administer > Site building > Modules ให้ทำเครื่องหมายเช็คถูก ไว้ที่ด้านหน้า Module PHP filter แล้วทำการคลิ๊กที่ Save Configuration
จากนี้เราก็สามารถเขียน PHP code ลงไปใน content ได้แล้ว แต่เราต้องเลือก input format เป็น PHP code
ผลลัพธ์ที่ได้คือ
เพียงเท่านี้เราก็สามารถเขียน PHP Code ใน Drupal ได้แล้ว ง่ายมั้ยละครับ

14 ตุลาคม 2552

การทำ Node แบบสุ่มด้วย Views แบบ Block

วันนี้เราจะมาทำ views สุ่ม Node มาแสดงผลแบบ Block เอาไว้แสดงผลในหน้าแรกหรือ ทุก ๆ หน้า ก่อนอื่น ต้องเตรียมเนื้อหาก่อน ต้องเตรียมข้อมูล คือ สร้าง Blog ขึ้นมาซัก 6-8 บทความก่อน เพื่อจะได้เห็น การสุ่มขึ้นมา เราจะทำการสร้าง views ให้แสดง Node ออกมา 4 อัน แสดงผลให้เป็นแบบ 2 คอลัมน์ แบบสุ่ม ตามขั้นตอนดังนี้ ขั้นตอนที่ 1 เราก็เข้าไปสร้าง Views โดยไปที่เมนู Administer > Site Building > Views เลือก Add
กำหนดชื่อ views ( view name) เป็น NodeRandom คำอธิบาย views (view description) เป็น random node เลือก Next ขั้นตอนที่ 2 ทำการกำหนด Row style ให้เป็น Node แล้วเลือก Update
ขั้นตอนที่ 3 กำหนด style ให้เป็น grid
กำหนด Build Mode ให้เป็น Teaser ( แสดง Node แบบย่อ ) และทำเครื่องหมายเช็คถูกที่ Display links
ขั้นตอนที่ 4 กำหนด จำนวน column ให้เป็น 2
ขั้นตอนที่ 5 กำหนด Items to display ให้เป็น 4
ขั้นตอนที่ 6 กำหนด filter ที่เราจะใช้งาน ( ถ้านำไปใช้กับ Node ชนิดอื่น ก็สามารถเปลี่ยนประเภทของ Node ได้ ) ทำการเลือก filter ชนิด node : type ทำการเลือก Blog entry
ขั้นตอนที่ 7 กำหนด Sort criteria เลือก ให้เป็นแบบ global : Random
ขั้นตอนที่ 8 ทำการ Add display ให้กับ Views ที่เรากำลังสร้างนี้ โดย เลือกประเภท ของ Views ให้เป็น Block และ เลือก Add display
ขั้นตอนที่ 9 ทำการบันทึก Views เป็นขั้นตอนที่สำคัญมาก ๆ ถ้าหากท่านไม่ทำการบันทึก ที่เราทำมาข้างต้นทั้งหมด ก็หายไปหมด ฉะนั้น ต้องทำการบันทึกทุกครั้ง (สามารถทำการบันทึกได้ในระหว่างทุก ๆ ขั้นตอนได้) เราขะเห็นตัวอย่าง Views ที่เราได้กำหนดค่าขึ้นมาดังรูป
ขั้นตอนที่ 10 เข้าไปกำหนดการแสดงผล Block ที่เราได้สร้างขึ้นมาจาก Views ได้โดยเข้าไปที่ Administer > Site Building > Block โดยกำหนด ให้ Block ที่เราได้สร้างขึ้นมา (NodeRandom: Block) นำไปวางในตำแหน่ง ของ Content เสร็จแล้วทำการบันทึก Block ดังกล่าว
จากนั้นเป็นการตั้งค่าการแสดงผล ของ Block โดยเราจะกำหนดให้แสดงทุกหน้า่ ยกเว้น หน้า Admin และ หน้าของ User ให้คลิ๊กที่ Configure ที่อยู่ด้านหลังของ NodeRamdom : Block เพื่อเข้าไปสู่ในส่วนของการ กำหนดการแสดงผล
กำหนด Block Title ให้เป็น Blog กำหนด Show block on specific pages ให้เป็น Show on every page except the listed pages. กรอกช่อง pages ให้เป็น admin/* user/* แล้วทำการบันทึก ( Save block ) เราสามารถตรวจสอบ Block ที่เราได้สร้างขึ้นมาโดยหน้าตา ทีได้ออกมาก็จะเป็นตามตัวอย่างด้านล่างนี้ แต่ตัวอย่างข้างล่างนี้ ผมได้เปลี่ยน NodeType ตามขึ้นตอนที่ 6 จึงได้ผลออกมาอย่างที่เห็นนี่แหละครับ
จบแล้วครับตัวอย่างการแสดง Node แบบสุ่ม มีปัญหาตรงไหนติดขัดตรงไหนก็ Comment ไว้นะครับ คงไม่ยา่กเกินไปนะครับ แล้วคราวหน้าผมจะเอา เทคนิคดี ๆ มาฝากอีกนะครับ

12 ตุลาคม 2552

ติดตั้ง Blog ให้กับ Drupal

การเปิดใช้งาน Module Blog ให้กับ Drupal นั้น ทำได้ไม่ยากเลย เนื่องจาก Drupal มีการนำ Module Blog เข้ามาไว้เป็น Core เสริม ถ้าพูดแบบบ้าน ๆ ก็คือ มีมาให้อยู่แล้วแต่ไม่ได้เปิดใช้งาน การเปิดใช้งานสามารถทำได้ โดย เข้าไปที่ เมนู Administer > Site Building > Modules ทำเครื่องหมายเช็คถูก ด้านหน้าของ Module Blogs ดังรูป
ทำการบันทึก ( Save Configuration ) เป็นการเสร็จสิ้นการเปิดใช้งาน Module Blog หลังจากนั้นทำการกำหนด Permission ให้กับ ผู้ใช้งาน ว่าจะให้ใครสามารถเขียน Blog ได้ เข้าไปที่เมนู Administer > User Management > Permissions
จากรูป ผมได้ทำเครื่องหมายเช็คถูกให้กับ กลุ่มของ authenticated user คือ ผู้ที่เป็นสมาชิกของระบบ สามารถ เขียน blog ได้ (create blog entries) สามารถ แก้ไข blog ของตัวเองได้ (delete own blog entries) และสามารถลบ blog ของตัวเองได้ (edit own blog entries) การเขียน Blog เราสามารถเข้าไปเขียน Blog ได้โดยเข้าไปที่เมนู Create Content > Blog entry จะพบกับส่วนของการเพิ่ม Blog ดังรูป

09 ตุลาคม 2552

การเรียกใช้งาน jQuery จาก google APIs

การใช้งาน jQuery เราต้องดาวน์โหลดมาใช้งาน วันนี้จะมาบอกวิธีที่ไม่ต้องดาวน์โหลด กล่าวง่าย ๆ ก็คือ เข้าไปใช้งานจาก Google APIs ซึ่ง ทาง Google เค้าสามารถให้เราเข้าไปนำมาใช้งานได้ตลอด ทำให้เราไม่ต้องกังวลในเรื่องของ Version ที่มีการอัพเดท อยู่เสมอ แต่บางครั้งอาจเกิดความล่าช้าในการ เรียก script มาใช้งาน การนำ jQuery จาก Google APIs มาใช้งาน ทำได้ 2 แบบ
แบบที่ 1 ใช้งานผ่าน google.load()
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">

    // โหลด jQuery
    google.load("jquery", "1.3.2");

    google.setOnLoadCallback(function() {
        // วางโค๊ดของคุณที่นี่
    });
     
</script>

เราสามารถเปลี่ยน Version ได้โดยดูจาก http://code.google.com/apis/ajaxlibs/documentation/index.html#jquery

แบบที่ 2 นำเข้า Libary โดยตรงจาก Google APIs
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>

script ด้านบน เป็นการนำเข้า Libary ชนิด last version สามารถเลือก Version ได้นะครับ โดยเลือกได้จาก http://blog.jquery.com/2009/08/20/codejquerycom-redirected-to-google-ajax-apis/

08 ตุลาคม 2552

jQuery

jQuery หลาย ๆ คนคงสงสัียว่ามันคือ อะไร มีไว้ทำไม ผมจะมาไขข้อข้องใจกันซักที jQuery คือ Javascript Framework มี รูปแบบการเขียนที่่ค่อนข้างง่าย ยืดหยุ่น เป็นการรวบรวม Javascript ที่มีอยุ่ เพื่อให้ได้ใช้งานได้อย่างรวดเร็ว อีกทั้งยังสนับสนุน การทำงานด้าน Animation และการติดต่อกับ Ajax. jQuery ถูกออกแบบมาเพื่อการเปลี่ยนวิธีการเขียน Javascript ให้ง่ายขึ้น ซึ่งเรียกได้ว่าเป็น Javascript Framework ที่สมบูรณ์มากทีเดียว มีการอัพเดท และพัฒนากันอย่างต่อเนื่อง และยังมี plug in ด้านต่าง ๆ พัฒนาออกมาอย่างต่อเนื่อง

PHP Regular Expression Function

ฟังก์ชันของ PHP ที่ใช้กับ Regular Expression
จากที่ผ่านมาเราได้ให้ความรู้เกี่ยวกับ Meta characters ไปแล้ว ในส่วนนี้เราจะพูดถึงฟังก์ชันของ PHP ที่นำเอา regex ไปใช้ซึ่งได้แก่
ฟังก์ัชั่นแบบ Perl Compatible Regular Expression (PCRE) กับ POSIX Extended Regular Expression


Perl compatible Regular Expression (PREC) ประกอบด้วย
  • preg_grep
  • preg_last_error
  • preg_match_all
  • preg_match
  • preg_quote
  • preg_replace_callback
  • preg_replace
  • preg_split
การระบุ patthen ใน Perl Compatible Regular Expression (PCRE) นั้นจะต้อง อยู่ภายใต้ /.../ เท่านั้น

POSIX Extended Regular Expression ประกอบด้วย
  • ereg_replace
  • ereg
  • eregi_replace
  • eregi
  • split
  • spliti
  • sql_regcase
จากฟังก์ชั่นที่กล่าวมาทั้งหมด มักมีการใช้งานกันไม่กี่ฟังก์ชั่น โดยจะขอยกตัวอย่างฟังก์ชั่นที่มีการใช้งาน บ่อย ๆ เช่น preg_match, preg_replace, ereg, ereg_replace
preg_match() ใช้สำหรับค้นหาข้อความ เปรียบเทียบข้อความกับ patthen โดยมี syntax คือ int preg_match (
string $pattern , string $subject [, array &$matches [, int $flags [, int $offset ]]] ) ตัวอย่างเช่น
<?php
$string = "http://docs.google.com/View?id=dvn0000_5ddbv0000";
if (preg_match('/^http:\/\/docs.google.com\/View\?id=([a-z0-9]{7})+_+([a-z0-9]{9})+$/', $string ))
{
echo "$string is Google Docs URL";
}
else
{
echo "$string is't Google Docs URL";
}

?>
ผลลัพธ์ที่ได้ก็จะเป็น http://docs.google.com/View?id=dvn0000_5ddbv0000 is Google Docs URL

ตัวอย่างการนำเอาข้อความที่ค้นหาเจอมาใช้งาน
<?php

$string = "YOUR IP IS 127.0.0.1";
if (preg_match('/(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/', $string, $match ))
{
echo $match[0];

}
else
{
echo "$string is't have IP Address";
}

?>

ผลลัพธ์ ที่ได้คือ 127.0.0.1

preg_replace() ใช้สำหรับค้นหาและแทนที่ข้อความ มี syntax คือ mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit=
-1 [, int &$count ]] ) preg_replace สามารถใช้ patthen ในรูปแบบของ array ได้ นั่นก็หมายถึง สามารถแทนที่ข้อความหลาย ๆ แบบ ด้วย ข้อความ หลาย ๆ แบบ ตัวอย่างเช่น

<?php
$patthen = array('/ll/', '/or/');
$strreplace = array('--', '--');

$string = "Hello World";
echo preg_replace($patthen, $strreplace, $string);
?>

ผลลัพธ์ที่ได้คือ He--o w--ld

ereg() ใช้ไว้สำหรับค้นหาข้อความ มี syntax คือ int ereg ( string $pattern , string $string [, array &$regs ] ) ถ้าคนพบรูปแบบที่กำหนดก็จะคืนค่า True ถ้าไม่พบหรือเกิดความผิดพลาด ก็จะคืนค่า False เราสามารถนำค่าที่ค้นหาเจอไปใช้ได้โดยการเพิ่ม parameter ตัวที่ 3 เข้ามา คือ &$regs และจะคืนค่าออกมาเป็น array เราจะมายกตัวอย่างให้ดูำักัน เช่น


<?php
$text = "Hello";
if (ereg("^[a-z]", $text)) {
echo "$text is Match.";
} else {
echo "$text is Not Match.";
}
?>


ผลลัพท์ทีได้จากการ ทำงานของฟังก์ชั่นข้างบนคือ จะพิมพ์ประโยค Hello is Match. ออกมาก

การนำเอาคำที่ค้นหาเจอไปใช้งาน สามารถทำไ้ด้ เช่น


<?php
$date = "01-01-2009";
if (ereg("([0-9]{2})-([0-9]{2})-([0-9]{4})", $date, $regs)) {
$year = $regs[3];
echo "this year is : $year";
} else {
echo "Date Format is Not Match !";
}
?>


จากตัวอย่างข้างบน จะได้ผลลัพธ์ คือ this year is : 2009 จะเห็นว่าเราได้เพิ่ม $regs เข้ามารับค่าของ array ที่เปรียบเทียบแล้วตรงกับ patthen ค่าที่มีอยู่ใน $regs จะเรียงตามกลุ่มของ patthen ที่เราระบุไว้ โดยจะมีข้อมูลอยู่ภายใน array ดังนี้
$regs[0] = "01-01-2009"
$regs[1] = "01"
$regs[2] = "01"

$regs[3] ="2009"

ereg_replace () ใช้่สำหรับค้นหาและแทนที่คำ ใน ข้อความ โดยใช้ patthen เป็นตัวระบุรูปแบบของข้อความ มี syntax คือ string ereg_replace
( string $pattern , string $replacement , string $string ) ถ้าทำการค้นหาเปรียบเทียบคำพบแล้ว ก็จะแทนที่ด้วยคำที่ระบุเข้าไปใน $replacement ตัวอย่างเช่น
<?php

$string = "Hello world";
echo ereg_replace("world", "sutee", $string);
// ผลลัพธ์ ที่ได้ออกมาคือ Hello sutee

?>

01 ตุลาคม 2552

Regular Expressions Metacharacter

Regular Expressions หรือ regex เป็น เครื่องมือที่มีประโยชน์มากในการเปรียบเทียบตัวอักษร คำ หรือ รูปแบบของข้อความต่างๆ ที่เราต้องการจากข้อความอื่นๆ เมื่อค้นหาได้แล้วเราก็อาจจะแทนที่ด้วยข้อความอื่นๆ ได้

การใช้ regex ไม่ได้มีเฉพาะใน PHP นะครับ อย่างใน Javascript, Perl, VBscript แม้กระทั่งใน MySQL ก็มีเช่นกันครับ

ถ้าคุณต้องการจะใช้ regex ละก็คงหนีไม่พ้นที่จะต้องทำความรู้จักกับ Meta characters เพราะนอกจากเราจะใช้ตัวอักษรและตัวเลขต่างๆ ในการสร้างรูปแบบ (pattern) ของตัวอักษรที่เราต้องการจะค้นหาแล้ว เราสามารถใช้ Meta characters มาช่วยสร้างรูปแบบอื่นๆ ที่มีความซับซ้อนมากขึ้นได้

Meta characters

  • \ ใช้เป็น escape character
  • ^ ใช้สำหรับกำหนด ตำแหน่งเริ่มต้นของข้อความ เช่น "^PHP" จะตรงกับข้อความที่จะต้องขึ้นต้นด้วย PHP เท่านั้น
  • $ ใช้สำหรับกำหนด ตำแหน่งสิ้นสุด เช่น "PHP$" จะตรงกับข้อความที่จะต้องลงท้า่ยด้วย PHP เท่านั้น
  • . ใช้สำหรับแทนตัวอักษรใด ๆ 1 ตัวอักษร เช่น "P.P" จะตรงกับ "PHP" แต่จะไม่้ตรงกับ "PHHP" เนื่องจากต้องการตัวอักษรตัวใดก็ได้ที่อยู่ตรงกลาง
  • [ เริ่มต้นการกำหนดระดับอักษรที่เป็นไปได้ในเงื่อนไข
  • ] สิ้นสุดการกำหนดระดับอักษร
  • | เป็นสัญลักษณ์ที่สำหรับเป็นทางเลือก
  • ( ใช้สำหรับเริ่มจัดกลุ่มตัวอักษร
  • ) ใช้สำหรับสิ้นสุดการจัดกลุ่มตัวอักษร
  • ? แทนตัวอักษร แต่จะสามารถปรากฎ หรือไม่ปรากฎก็ได้ 1 ครั้ง
  • * แืทนตัวอักษร แต่จะสามารถปรากฎ หรือไม่ปรากฎ ได้หลาย ๆ ครั้ง เช่น "wh*" จะตรงกับ "w" และ "where"
  • + แทนตัวอักษร ที่จะต้องปรากฎ 1 ครั้ง หรือปรากฎได้หลายครั้ง เช่น "wh+" จะตรงกับ "where" แต่จะตรงกบ "w"
  • { เริ่มตรวจสอบจำนวนตัวอักษร
  • } สิ้นสุดการตรวจสอบตัวอักษร
  • - ใช้สำหรับระบุช่้วงตัวอักษร ต้องใช้ภายใต้ [] เท่านั้น

การใช้งาน [ และ ]

การ ใช้งาน [ และ ] เป็นการตรวจสอบระดับตัวอักษรที่เป็นไปได้ในเงื่อนไข จะสามารถตรวจสอบได้เพียง 1 ตัวอักษร ตัวอย่าง "[abcde]" จะตรงกับ "a" แต่จะไม่ตรงกับ "f" และ "g"

การใช้งาน { และ }

เราสามารถระบุจำนวนของตัวอักษร การใช้งานของ { } สามารถใช้ได้ 3 แบบ คือ
  • {n} n แทนตัวเลขที่ปรากฎได้ หมายถึงต้องมีตัวอักษรปรากฎเท่ากับจำนวนตัวเลขที่ระบุอยู่ เช่น "{3}" จะต้องมี ตัวอักษรหรือตัวเลขปรากฎ 3 ตัวอักษร ซึ่งจะตรงกับ "are" แต่จะไม่ตรงกับ "were"
  • {n,} n แทนตัวเลขที่ปรากฎได้ หมยถึง ต้องมีตัวอักษรปรากฎอยู่ มากกว่าหรือเท่ากับ จำนวนตัวเลขที่ระบุอยู่ เช่น "{3,}" จะต้องมี อักษรปรากฎอยู่อย่างน้อย 3 ตัวอักษร ซึ่งจะตรงกับ "are" และ "were" แต่จะไม่ตรงกับ "do"
  • {n,m} n แทนตัวเลขที่ปรากฎได้ m แทนตัวเลขที่ปรากฎได้สูงสุด หมายถึง ต้องมีตัวอักษรปรากฏอยู่อย่างน้อน n ตัว แต่ต้องไม่เกิน m ตัว เช่น "{3,5}" ซึ่งจะตรงกับ "are" และ "where" แต่จะไม่ตรงกับ "do"

การใช้งาน [] ร่วมกัีบ {}

การนำเอา "[]" มาใช้งานร่วมกับ "{}" ก็จะทำให้ "[]" ที่ตรวจสอบตัวอักษรได้แต่ 1 ตัวอักษร ก็ทำให้สามารถตรวจสอบ ได้หลาย ตัวอักษร เราสามารถใช้ "-" เช่น "[a-z]{3}" จะตรงกับ "who" และ "are" ซึ่งตรงตามเงื่อนไขก็คือ สามารถมี a - z แต่ต้องมีขนาด 3 ตัวอักษร แต่จะไม่ตรงกับ "2bb" เนื่องจากมี ตัวเลขปรากฎอยู่

การใช้ () และ |

เราสามารถใช้ () จัดกลุ่มข้อความที่มีอยู่ และ | ใช้สำหรับเลือกทางเลือก เช่น "a(b|c)" จะตรงกับ "ab" และ "ac" แต่จะไม่ตรงกับ "bc" ลองดูตัวอย่างที่มีการทำงานซับซ้อนมากขึ้นอีกนะครับ "^[a-z]+[a-z]$" ความหมายคือ ต้องขึ้นต้นด้วยตัวอักษร และ ลงท้ายด้วยตัวอักษร อย่างน้อย 1 ตัว "^[a-z\-]" ความหมายคือ ต้องขึ้นต้นด้วยตัวอักษร หรือ "-" ตัวอย่างของ Regex ที่มีใช้บ่อย ๆ "^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$" ใช้สำหรับตรวจสอบ email "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$" ใช้สำหรับตรวจสอบ IP Address

FileField ImageField

เมื่อเราจะเข้าไปจัดการกับ Fields ของ content types ยังมี Fields อีกบางประเภท ที่ยังไม่ถูกติดตั้งมากับ CCK นั้นก็คือ Imagefield และ Filefield ในบางครั้งที่เราต้องการให้ Content ของเรามีการแทรกรูปภาพ หรือไฟล์ ลงไปด้วย

การติดตั้ง Imagesfield และ Filefield นั้นจะต้องติดตั้ง Modules ดังนี้

  • CCK Module
  • FileField Module

และมี Module ที่เกี่ยวข้องกันอีก คือ ImageCache ไว้สำหรับจัดกาีรกับรูปภาพ ซึ่งไม่ต้องติดตั้ง Module นี้ก็สามารถใช้งานได้

เริ่มต้น เราต้องดาวน์โหลด FileField Module และ ImageField Module ก่อน และทำการคัดลอก Modules ทั้ง 2 ตัวนี้ไปไว้ใน /Modules เข้าไปทำการเปิดใช้งาน Modules โดยเข้าไปที่เมนู Administer > Site building > Modules ทำการ Enable Modules ทั้ง 2 ตัวนี้

เราจะมาทดสอบการสร้าง ImageField ให้กับ Announcement โดยเราจะสร้าง Content type ขึ้นมาใหม่โดยกำหนดชื่อว่า Announcement แล้วเพิ่ม ImagesField เข้าไปให้แสดงรูปภาพประกอบด้วย

ขั้นตอนแรก ต้องเพิ่ม Content type เข้าไป โดยไปที่เมนู Administer > Content management > Content types เลือก Add content type

ทำการป้อนค่้าดังนี้

Name : Announcement

Type: announcement

Description : Announcement news this web site

Title field label : หัวข้อข่าว

Body field label : เนื้อหาข่าว

ทำการบันทึกโดยเลือก Save content type แ้ล้วเราจะได้ Content type ชนิด Announcement ขึ้นมาดังรูป

หลังจากสร้าง Content type เสร็จแล้วให้เข้่าไปที่ manage fields ของ Announcement

ทำการเพิ่ม new field ดังนี้

lebel : รูปภาพข่าว

field name picturenews

type : file

Form element : Image

เมื่อทำการป้อนค่าแล้ว เลือกที่ Save

จากนั้นจะเข้่าสู่การกำหนดค่าของ field ที่เราได้สร้่างขึ้นมา

ทำการป้อนค่าดังนี้

Permitted upload file extensions: gif jpg jepg png bmp

ทำเครื่องหมายถูกที่ Use default image

Upload image: เลือกไฟล์ที่เราจะกำหนดให้เป็นไฟล์เริ่มต้น สำหรับผม ผมได้สร้างไฟล์นี้ขึ้นมาเพื่อกำหนดเป็นค่าเริ่มต้นไว้ ผมก็จะเลือกไฟล์ที่ทำได้สสร้างไว้

เลือก Save field settings ถือเป็นการเสร็จสินการเพิ่ม field ชนิด image ให้กับ Announcement ต่อไปนี้เราจะมาทดสอบการเพิ่ม เนื้อหา ให้กับ Announcement กัน โดย เข้าไปที่เมนู Create content > Announcement ตัวอย่างดังรูป

ทำการป้อน หัวข้อข่าว เนื้อหาข่าว และเลือกรูปภาพข่าว จากนั้นเลือก Save เพียงแค่นี้ Announcement ของเราก็สามารถเพิ่มรูปภาพเข้าไปได้แล้ว จากข่าวที่ผมเพิ่มเข้าไป แสดงผลได้แบบนี้

เห็นมั้ยละครับ การเพิ่ม ImageField ไม่ยากอย่างที่คิด ส่วนการเพิ่ม Filefield ก็ทำเหมือนกัน Imagefield นี่แหละ แต่ไอ้ตอนที่เลือก Form element ให้เลือก เป็น File ก็แค่นั้นเองครับ คราวหน้าผมจะมาบอกกับการจัดการขนาด กับรูปภาพที่สร้างขึ้นมาจาก Imagefield นะครับ

Content Type CCK

คราวนี้เราจะมาเรียนรู้กับ Content Types ด้วย CCK (Content Construction Kit)

Content Types หมายถึงประเภทของเนื้อหา ที่ใช้ในเว็บไซต์ทั้งหมด ตามปรกติ Drupal จะกำหนด Contype types มาให้ 2 ประเภท คือ Page และ Story และจะสามารถมีเสริมได้อีก คือ Forum Blog Pool ตาม Modules ที่เราได้เปิดการใช้งาน Content types เหล่านี้ถือเป็น Content types ที่ Modules แต่ละประเภท เป็นคนสร้างขึ้นมาให้ใช้งานนั่นเอง เราสามารถเข้าไปจัดการกับ Content types เข้าไปที่ Administer > Content management > Content types เราสามารถสร้างประเภทเนื้อหาของเราเองได้ การสร้างประเภทเนื้อหาสามารถทำได้โดย เลือกที่ add content type แล้วทำการป้อนข้อมูลของประเภทเนื้อหา และกำหนดค่าต่าง ซึ่งการกำหนดค่าต่าง ๆ จะมีดังต่อไปนี้

Identification : เป็นการกำหนดค่าพื้นฐานของ Content types ชื่อ ชื่อที่ระบบเรียกใช้ คำอธิบาย

Submission form settings : กำหนด ชื่อ field และ label ของ form ในการเพิ่มเนื้อหา และจำนวนตัวอักษรที่น้อยที่สุด

Workflow settings : เป็นการกำหนดค่าด้านการใช้งาน การกำหนดค่าเริ่มต้นของการใช้งาน เช่น อนุญาติให้ประกาศได้เลยหรือไม่

Comment settings : เป็นการกำหนดค่าด้านการ comment ของ Content types ประเภทนี้

CCK หรือ Content Construction Kit เป็น Module ที่มีไว้สำหรับเพิ่ม field ให้กับ Content types หากเริ่มเพิ่มประเภทของเนื้อหาแล้วยังต้องการเพิ่ม field ต้องใช้ CCK เป็นตัวช่วยสำหรับการเพิ่ม field

การติดตั้ง Module CCK เริ่มต้นด้วยการเตรียม Module โดยสามารถเข้าไปดาวน์โหลด ได้ที่ http://drupal.org/project/cck เมื่อดาวน์โหลดเสร็จแล้วก็ทำการแยกไฟล์ แล้วทำการคัดลอกไปไว้ในโฟลเดอร์ modules แล้้วทำการเปิดการใช้งาน Module โดยเข้าไปที่ Administer > Site building > Modules แล้วทำการเปิดกาีรใช้งาน CCK โดยทำการเช็คเครื่องหมายถูก ที่ Modules ภายใต้ package ของ CCK ทั้งหมด

แล้วเลือก Save configuration

หลังจากได้ติดตั้ง Modules CCK ไปกันแล้วเราจะมาลองเพิ่ม field ให้กับ Content types กัน เข้าไปที่ Administer > Content management > Content types ระบบจะทำการเพิ่ม ส่วนของการจัดการ field ให้โดยอัตโนมัติ ตามรูปด้านล่าง

เราสามารถเข้าไปจัดการกับ field ของ Content types ได้ทุกประเภท โดยการคลิ๊กที่ manage fields แล้วจะพบกับส่วนของการจัดการ fields

เราสามารถเพิ่ม fields ได้ โดยป้อนในช่อง new field

  • label : ป้ายกำหนดของ field
  • field name : ชื่อของ field
  • type of data to store : ชนิดข้อมูล
  • form element to edit the data : รูปแบบการป้อนข้อมูล

หลังจากนั้นกดปุ่ม save แล้วจะไปพบกับการตั้งค่าของ ชนิดข้อมูลแต่ละประเภท เพียงแค่นี้เราก็สามารถจัดการกับ field ไว้ใช้งานเองได้อย่างไม่ยากเลย

การติดตั้งภาษาไทยให้กับ Drupal

การติดตั้งภาษาไทยให้กับ Drupal นัน ก่อนอื่นต้องมี ไฟล์ ตัวแปลภาษาไทยก่อน สามารถดาวน์โหลดได้ที่นึ่ เลยครับ เมื่อดาวน์โหลดมาจะได้ไฟล์ th-5.x-1.x-dev.tar.gz ทำการแยกไฟล์ ข้างในจะประกอบไปด้วยไฟล์ดังนี้






จากนั้นต้องเปิดการใช้งาน ของ Modules Locate โดยเข้าไปที่เมนู Administer > Site building > modules ทำการเช็คถูกที่ ด้่านหน้าของ Modules Locate แล้ว เลือก Save configuration


เมื่อเปิดการใช้งาน Modules Locate แล้ว จะมี เมนูเพิ่มขึ้นมาอีกหนึ่่งตัว คือ Translate interface เข้าไปที่เมนู Translate interface เลือก Import






ช่อง Language file เลือกไฟล์ th.po ที่เราได้ดาวน์โหลดมา

Import into เลือก thai (ภาษาไทย)

เลือก Import

ระบบ จะทำการคัดลองข้อความภาษาออกมาจากไฟล์ th.po และถ้าหาก เราต้องการแปล เพิ่มเอง สามารถทำได้โดยเลือกที่เมนู Search ป้อนคำที่เราต้องการค้นหา และ ค้นหา ทำการแก้ไข ภาษาไทย ให้กับข้อความดังกล่่าว


เมื่อทำการ Import ตัวแปลภาษาเข้ามาแล้ว ต้องไปเปิดการใช้งานภาษาไทย โดยเข้าไปที่เมนู Administer > Site configuration > Language ทำการเช็คถูกที่ Enable และ Default ของภาษาไทย แล้วเลือก Save configuration เป็นการติดตั้งภาษาไทยเสร็จสมบูรณ์







เครดิต : http://www.thaidrupal.org/index.php?q=node/5
 

sutee-developer Copyright © 2009 Community is Designed by Bie