อาทิตย์, กันยายน 05, 2010
   
Font Size

หน้าหลัก - BlackDemon Project!

วิธีดึงข้อมูลจาก XML format เข้าไปเก็บไว้ใน ArrayList

นอนไม่หลับอ่ะ ตาแข็งโป๊กไม่รู้เป็นไรมานั่งอัพบทความเล่นดีกว่า (ไปที่ทำงานง่วงแน่ๆเลยตู)

วันนี้ เลยมีวิธีง่ายๆสำหรับการโหลด XML เข้าไปเก็บเป็น ArrayList ไว้มาฝาก หากใครกำลังมองหาวิธีดึงข้อมูลจากไฟล์ XML หรือว่า XML string อยู่

แต่ครั้นจะไปทำ Serialize/Deserialize ก็ดูออกจะอลังฯไปนิด มาใช้วิธีง่ายๆกันดีฟ่า เก็บเข้าเป็น ArrayList ละกันง่ายสุด

แล้วค่อยเอา ArrayList ไปต้มยำทำแกงต่อได้ง่ายๆด้วย

ตัวเอกใน app ตัวนี้ก็มี ArrayList (แหงมล่ะ) XmlDocument และ  XmlNode

ในตัวอย่างจะกำหนดให้ XML มีรูปแบบตายตัวและมี Node ที่แน่นอนตามตัวอย่างนี้

 
<?xml version='1.0' encoding='utf-8' ?>
<Company>
    <EmployeeDepartment>
        <ID>1</ID>
        <Name>DemonCodeZ</Name>
        <Group>100</Group>
    </EmployeeDepartment>
    <Note>
        <EmployerNote></EmployerNote>
    </Note>
    <EmployeeDepartment>
        <ID>2</ID>
        <Name>BlackDemon</Name>
        <Group>200</Group>
    </EmployeeDepartment>
    <Note>
        <EmployerNote>to call boss</EmployerNote>
        <EmployerNote>to call customer</EmployerNote>
    </Note>
        <EmployeeDepartment>
        <ID>3</ID>
        <Name>iKwannnnn</Name>
        <Group>300</Group>
    </EmployeeDepartment>
    <Note>
        <EmployerNote></EmployerNote>
    </Note>
        <EmployeeDepartment>
        <ID>4</ID>
        <Name>NingNarak</Name>
        <Group>400</Group>
    </EmployeeDepartment>
    <Note>
        <EmployerNote>ning love kwan</EmployerNote>
    </Note>
</Company>
 

 

มาเริ่มกันเลยดีกว่า. ก่อนอื่นก็ประกาศตัวแปรพวกนี้ก่อน

 
    public static ArrayList list = new ArrayList();
    public static ArrayList notelist = new ArrayList();   
 

 

จากนั้นก็สร้างคลาสมารองรับตัวแปรที่จะดึงมา

  
    public class EmployeeDepartment
    {
        public Int32 ID { get; set; }
        public String Name { get; set; }
        public Int32 Group { get; set; }

    }
    public class Note
    {
        public string EmployerNote { get; set; }
    }

 

เสร็จแล้วก็ประกาศนี่ซักหน่อย

  
    public static EmployeeDepartment ed = new EmployeeDepartment();  
  

 

 จากนั้นก็สร้างฟังค์ชั่นดึงข้อมูลจาก XML เข้าไปเก็บไว้ใน ArrayList

  
    public static void addToArray()
    {                
        XmlDocument xmldoc = new XmlDocument();        
        //ในที่นี้ข้อมูล XML เป็น string เก็บในตัวแปร strXML ถ้าเป็น File ให้ใช้ xmldoc.Load แทน
        xmldoc.LoadXml(strXML);
        XmlNode node;
        node = xmldoc.DocumentElement;
        foreach (XmlNode n in node.ChildNodes)
        {
            if (n.Name == "EmployeeDepartment")
            {                
                ed.ID = Convert.ToInt32(n.ChildNodes[0].InnerText);
                ed.Name = n.ChildNodes[1].InnerText;
                ed.Group = Convert.ToInt32(n.ChildNodes[2].InnerText);
                list.Add(ed.ID + "," + ed.Name + "," + ed.Group);
            }
            if (n.Name == "Note")
            {
                Note nt = new Note();
                nt.EmployerNote = n.ChildNodes[0].InnerText;
                notelist.Add(nt);
            }           
        }
    } 

 

เสร็จแล้วก็มาเรียกใช้งานดูซักหน่อยว่าได้ผลจริงรึปล่าว

   public static void Main()
    {
        addToArray();
        for (int i = 0; i < list.Count; i++)
        {
            string str = list[i].ToString();
            Console.Write(str+"\n");
        }
    }

 

สร้างเสร็จแล้วก็ลองรันโปรแกรมดูซิ

xml2array

 ฮัดช่า! โอ้วเห็นมั้ยซาร่า มันง่ายโคดดด ง่ายใช่มั้ยล่ะครับลองเอาไปใช้ดูนะครับ emoticon

 

ตรวจค่า uptime ของเว็บเราแบบฟรีๆ

เวลาจะครึกมันก็ครึกอัพ 2-3 บทความติดกันemoticon เวลาจะขี้เกียจก็ดองไว้ 2-3 เดือน!emoticon รู้สึกพลังชวิตผมจะเป็นแบบพุ่งสูงแล้วก็ดิ่งต่ำแฮะ เวลาคึกก็ทำงานหามรุ่งหามค่ำไม่สนใจห่าเหวอะไรเลย เวลาจะอารมณ์มัน down ก็ไม่อยากทำอะไรไปซะหมดงานการก็ไม่เสร็จ ตื่นก็สาย วู้! ไม่มีพอดีสักอย่าง! emoticon เอาไว้ว่างๆจะลากจุดกราฟอารมณ์ในแต่ละวันดูซิจะเป็นไง!

ว่าแล้วก็มาแนะนำไอ้นี่กันหน่อยดีกว่า 

ชาวเน็ตที่ชอบใช้ของฟรีต่างๆเช่น โฮสฟรี, โดเมนฟรี แต่ว่าไอ้โฮสฟรีเนี่ยก็รู้ๆอยู่ว่ามันอยู่ไม่ยั่งยืนหรอกมันมีขึ้นแล้วก็ต้องมีลง

emoticonแต่ว่าเราจะรู้ได้ไงว่ามันถึงจุดที่จะลงแล้ว?

แน่นอนก็ต้องเป็นเรื่อง server down นั่นเอง ถ้าช่วงที่มันจะเริ่มมีปัญหามันก็จะเพิ่มความถี่และระยะเวลาที่ server down มากขึ้น! มากกกขึ้นนนน! มากกกกกขึ้นนนนนน! จนปิดตัวลง

emoticonแล้วเราจะรู้ได้ไงว่าควรหนีตอนไหน?

ก็ใช้คำสั่งตรวจสอบเช่นคำสั่ง ping ว่าวันนี้ server มันจะ down กี่นาทีกี่ชั่วโมง  แต่ในความเป็นจริงถ้าไม่มีงานข้องแวะเกี่ยวกับดูและระบบคงไม่มีไอ้บ้าที่ไหนมานั่ง ping ทั้งวันทั้งคืน emoticon

emoticonแล้วใช้อะไรแทนดีล่ะ?

เรื่องของ Hosting มันจะมีคำว่า "ค่า Uptime" อยู่ซึ่งหมายถึงระยะเวลาที่ server online  นั่นเองส่วนมาเค้าจะคิดเป็น % กันเช่น Uptime 99% มั่ง 95% มั่งคือว่ายิ่งมากยิ่งดีว่างั้นล่ะ(แต่ระวังบางโฮสมันขี้ตู่เรื่องค่า uptime นะครับ แม่มรีเซ็ททุกเดือน) ทีนี้มันจะมีบริการตรวจสอบการออนไลน์ของ server อยู่เราเรียกกันว่าโฮสมอนิเตอร์ (Host monitor)

emoticonเหรอ งั้นอยากจะใช้บริการโฮสมอนิเตอร์ต้องทำไง?

เอาง่ายๆก็จ่ายตัง อิอิ แต่ถ้างกหน่อยแบบผมก็หาของฟรีตาม Internet อิอิ Internet  มีให้เสมอ(แน่นอนว่าคุณก็อย่าหวังว่าจะดีเลิศ) ที่แรกเลยที่ผมเข้าไปใช้บริการก็คือ

  • Host-tracker.com ก็ถือว่าเป็น Host monitor ที่ดีสามารถกำหนดระยะเวลาที่จะเข้าไปตรวจสอบได้เช่นตรวจสอบทุก 5 นาที 10 นาที และยังมีฟรี ปุ่มแสดงค่า % (ตย.อัพไทม์) ว่าเรามีค่า uptime อยุ่ที่เท่าไหร่   แต่ว่าของดีก็ต้องมีข้อจำกัดโดยบริการจะใช้ได้แค่ 30 วันเท่านั้นหากเลยกำหนด จะไม่สามารถตั้งค่าระยะเวลาที่จะไปตรวจสอบได้(ตั้งได้แค่ 30min)และใช้ได้แค่ 2 domain เท่านั้น เมื่อเป็นแบบนี้ก็เลยต้องหาตัวใหม่ค้นดูก็ไปเจอ
  • Basicstate.com  เข้าไปดูก็ไม่น่าเชื่อว่าเว็บหน้าตาเห่ยๆอย่างงี้จะมีบริการโอเคเลย เช่นสามารถเพิ่มโดเมนได้ไม่จำกัด ตรวจสอบทุกๆ 15min แสดงผลเป็น Graph ให้ดูด้วย ค้นไปเรื่อยๆ
  • Uptimedog.com  เจ้านี้ก็ดี แต่ก็เหมือนเดิมจำกัด 30 วัน
  • Siteuptime.com ครือกัล จำกัด 30 วัน
  • Timetouptime.com เจ้านี้ไม่ต้องสมัครอะไรให้วุ่นวายขายปลาช่อนเลยป้อนโดเมนปุ๊บใช้ได้ปั๊บ(ง่ายโคตร emoticon) แถม uptime button ให้ด้วย

emoticonขอบทสรุปหน่อย อ่านไม่รู้เรื่อง!

ตรูว่าละ! เอางี้ถ้าจะให้แนะนำก็ถ้าจะเอาแบบมี Report ดูง่ายๆก็ Basicstate มีกราฟให้ดูด้วย แต่ถ้าอยากได้button ให้เอาไปติดกับเว็บด้วยก็ Timetouptime ของฟรีก็หามาได้แค่นี้ครับ ใครมี Hostmonitor loline เจ๋งๆก็แนะนำกันมั่งนะครับ

   

eBuddy vs Meebo ใครเจ๋งกว่ากัน!

ระยะนี้ต้องใช้ Web messenger (พูดง่ายๆก็ครือการเล่น messenger ผ่านเว็บเพจนั่นแลฯ)  เนื่องจาก Windows 7 เจ้ากรรมดันมีปัญหาออนไลน์ไม่ได้ คาดว่าจะมาจาก service ตัวไหนเสียก็ไม่รู้

หาเวลาซ่อมตั้งนานก็ไม่ได้ เลยปล่อยไว้ก่อน.. จะลง OS ใหม่ก็ขี้เกียจต้องมา configure ระบบใหม่อีก(ลง OS ครึ่งชม. ปรับแต่งให้เข้าที่,ถูกใจ,ให้เข้ากับระบบที่พัฒนาอยู่ ครึ่งวัน! ฮ่วย)

ว่าแล้วก็เล่นผ่าน web messenger ง่ายกว่าเยอะ พูดมากแล้วไปดูเลยว่าการใช้ทั้งสองเว็บเป็นอย่างไร


ebuddy    มุมแดง eBuddy เปิดตัวมาก่อนในปี 2003 โดย(คาดว่า)น่าจะเป็นเจ้าตลาดอยู่ และในปัจจุบันอ้างว่าปัจจุบันมีผู้ใช้มากกว่า 30 ล้านรายและมีผู้ใช้เพิ่มขึ้นหนึ่งแสนรายทุกๆวัน



meebo

   มุมน้ำเงิน Meebo Meebo เปิดตัวมาในปี 2005 โดยการสนับสนุนทางการเงินจาก Sequoia Capital  Meebo  มีฐานการพัฒนามาจากไลบรารี่ที่เป็นโอเพนซอร์สที่ใช้สร้าง messenger ชื่อดังฝั่ง Linux นั่นคือ Pidgin นั่นเอง



โดยรวมทั้งสองฝั่งก็สามารถทำงานได้คล้ายๆกัน เช่นสามารถเข้าใช้ messenger ได้หลายระบบไม่ว่าจะเป็น AIM, GTalk, Yahoo, MSN,อื่นๆ มีระบบ UI เป็นภาษาไทย เหมือนๆกัน

สำหรับ eBuddy การสนทนาก็จะเป็นหน้าต่าง(Windows)แยกออกมา แต่ meebo จะเป็นการสนทนาภายใน Tab นั้นๆโดยจะมีหน้าต่างที่เป็น Ajax แทน อีกทั้งยังสามารถเคลื่อนย้าย(Move)หน้าต่างได้ตามใจชอบ

ทั้งสองสามารถกำหนด picture display ได้, กำหนด status ได้, เรียงลำดับรายชื่อได้, มี Chat log(ไม่ต้องกลัวแฟนมาเปิดดู), Send nudge!, ดู webcam ได้เหมียนๆกัล แต่ meebo มีระบบ Send file ให้ด้วย(ไม่แน่ใจว่ากำหนดขนาดไฟล์ที่เท่าไหร่นะ แต่ก็ถือว่ามีนั่นล่ะ)

แต่ eBuddy ก็มีส่วนแยกมาเฉพาะสำหรับ Mobile (eBuddy Moblie Messenger,eBuddy for iPhone,eBuddy for Android)ทำให้ครอบคลุมผู้ใช้ไปถึงกลุ่ม mobile ด้วย (ฐานลูกค้านี้ยิ่งกลุ่มใหญ่อยู่)

ด้าน widget ดูเหมือนจะมีแต่ meebo ที่สามารถเพิ่ม widget เข้าไปเองได้ส่วน eBuddy ดูเหมือนบอกว่ากำลังพัฒนาอยู่

ด้านการทำงานทั้งสองเว็บใช้พลัง Javascript สูงมากดังนั้นแนะนำให้เล่นผ่าน browser ที่มีการทำงานของ Javascript สูงๆเช่น Webkit, Mozilla ส่วน MSIE8 ก็ถือว่าทำความเร็วไม่น่าพอใจเท่าไหร่ แต่ก็ไม่น่าเกลียดจนเกินไปนัก emoticon(ไม่ได้ลืม Opera นะ แต่ไม่ค่อยได้ใช้เท่านั้นเอง อิอิ)

สรุปแล้ว ผมก็ยังไม่สามารถชี้ชัดได้ว่า web messenger ตัวไหนกันแน่ที่เจ๋งกว่ากัน หากดูตามความสามารถแล้วทั้งสองตัวก็สูสีกัน หายใจรดต้นคอกันอยู่ ฉะนั้นตัวแปรสุดท้ายที่จะตัดสินใจคือ web messenger ตัวไหนมันถูก"จริต"ผู้ใช้มากกว่ากัน แต่สำหรับผม ผมเลือก Meebo ครับไม่มีเหตุผลอะไรหรอกแค่ความชอบส่วนตัวล้วนๆemoticon (ชอบ UI มันน่ะ)

เสริม: ใช่ว่าในตลาดจะมีแค่สองเจ้านะครับยังมีอีกหลายตัวที่น่าสนใจอีกเช่น 

  • http://www.wablet.com
  • http://www.imhaha.com
  • http://www.imunitive.com

ปอลอจุด แต่ทั้งนี้ทั้งนั้น ข้อดีที่สุดสำหรับการใช้ web messenger ก็คือแอบเล่นได้แม้กระทั่งที่ที่บล็อค MSN นั่นเอง ใครอยากแอบเจ้านายเล่นก็นี่เลยแนะนำๆ emoticon

   

การย้ายบทความจาก Joomla 1.5.x ไป Drupal 6.x

ช่วงนี้กระแส Drupal (ออกเสียงว่า"ดรูปัล"มั้ง ตวัดลิ้นด้วยล่ะemoticon) กำลังมาแรงแซงทางแหกโค้ง ชาว Dev. คงเบื่อ Joomla แล้ว ปรกบ กับเห็นระดับ"เมพ"ทั้งหลายบอกกันว่าดี!

อย่างงี้มันต้องลองเล่นกันหน่อย ใครไม่เคยจับ "ดูเป้า" ถือว่าเชยตาย  ว่าแล้วอย่ารอช้าจับมาเล่นกัน แต่ เอ.. เรามีข้อมูลอยู่แล้วจาก Joomla จะย้ายไปดูเป้าไงล่ะนิ

ลองๆ  search หาข้อมูลดูก็พบว่ามีวิธีจาก official ก็แค่ย้ายจาก Joomla 1.0.x ไป Drupal 6.x แค่นั้นเอง ไม่ยักกะมี Joomla 1.5.x ไป Drupal  6.x มั้งเลย

แต่ๆ อ่านๆดูมีนาย armastevs  มาแนะนำวิธีย้ายอยู่..แต่ต้องออกแรงนิดนึง   ว่าแล้วก็ทดสอบซักหน่อย

 - ข้อแรกเตรียม  Drupal 6.x ที่ติดตั้งเรียบร้อยแล้วไว้ซักอัน

 - ข้อต่อมาก็เตรียม Joomla 1.5.x ที่จะย้ายไป

 - ข้อสาม ย้ายตาราง jos_categories, jos_content, jos_users ไปไว้ในฐานข้อมูลที่ Drupal ติดตั้งอยู่

 - ข้อสี่ สร้างตาราง sequences ขึ้นมา โดยให้มีฟิลด์ id และ name

 - ข้อห้า backup ตาราง users เอาไว้ จากนั้นก็เรียกคำสั่ง SQL นี้

TRUNCATE TABLE node;

INSERT INTO node SELECT id, id, 'story', 'english', title, 1, 1, UNIX_TIMESTAMP(created),  UNIX_TIMESTAMP(created), '2', '1', '0', '0', '0', '0' FROM jos_content;  
UPDATE sequences SET id = (SELECT MAX(nid) FROM node ) WHERE name='node_nid';

TRUNCATE TABLE node_revisions;
INSERT INTO node_revisions SELECT id, id, created_by, title, CONCAT(introtext, jos_content.fulltext),  introtext, ' ', UNIX_TIMESTAMP(created) , 3 FROM jos_content;

UPDATE sequences SET id = (SELECT MAX(vid) FROM node_revisions ) WHERE name='node_revisions_vid';
TRUNCATE TABLE vocabulary;

INSERT INTO vocabulary (name,description,hierarchy,multiple, required, module) VALUES ('Content Category', 'Categories for the imported content', 1, 1, 1, 'taxonomy' );
UPDATE sequences SET id = (SELECT MAX(vid) FROM vocabulary ) WHERE name='vocabulary_vid';

TRUNCATE TABLE vocabulary_node_types;
INSERT INTO vocabulary_node_types (vid, type) VALUES( (SELECT MAX( vid ) FROM vocabulary), 'story' );

TRUNCATE TABLE term_data;
INSERT INTO term_data SELECT id, '9999', title, description, ordering  FROM jos_categories WHERE section NOT LIKE '%com_%';

UPDATE term_data SET vid=(SELECT max( vid ) FROM vocabulary) WHERE vid=9999;
UPDATE sequences SET id = (SELECT MAX(tid) FROM term_data ) WHERE name='term_data_tid';

TRUNCATE TABLE term_hierarchy;
INSERT INTO term_hierarchy SELECT id, parent_id FROM jos_categories WHERE section NOT LIKE '%com_%';

TRUNCATE TABLE term_node;
INSERT INTO term_node SELECT id,id, catid FROM jos_content;

UPDATE `node_revisions` SET format= '2' WHERE format='3'

TRUNCATE TABLE users;
INSERT INTO users SELECT id, username, password, email, 0, 0, 0, ' ', ' ', UNIX_TIMESTAMP(registerDate), UNIX_TIMESTAMP(lastvisitDate), UNIX_TIMESTAMP(lastvisitDate), 1, '7200;', ' ', ' ',' ',' ' FROM jos_users; 

UPDATE users SET uid = 1 WHERE uid=62;
UPDATE node SET uid = 1 WHERE uid=62;
UPDATE node_revisions SET uid = 1 WHERE uid=62;

TRUNCATE TABLE F_Forums;
INSERT INTO F_Forums SELECT 1, 'Forums', NULL, 'Top forum', 0, 1 , 0, 0, 0, 0;
INSERT INTO F_Forums SELECT id+1, name, parent+1,  description, 0, 0, 0, 0, 0, 0 FROM jos_sb_categories;


TRUNCATE TABLE F_Threads;
INSERT INTO F_Threads SELECT id, subject, userid, time, NULL, NULL, 0,0, catid+1, hits, 1 FROM jos_sb_messages WHERE moved=0 AND parent=0;


TRUNCATE TABLE F_Posts;
INSERT INTO F_Posts SELECT id, subject, thread, userid, time, ' ', 0, 0, NULL, NULL  FROM jos_sb_messages;
UPDATE F_Posts SET Content= (SELECT message FROM jos_sb_messages_text WHERE jos_sb_messages_text.mesid= F_Posts.PostID);

UPDATE F_Threads SET Creator = 1 WHERE Creator=62;
UPDATE F_Posts SET Poster = 1 WHERE Poster=62;

UPDATE F_Threads SET LastPoster=(SELECT Poster FROM F_Posts WHERE F_Posts.ThreadID=F_Threads.ThreadID ORDER BY Posted DESC LIMIT 1 ), LastPost = (SELECT Posted FROM F_Posts WHERE F_Posts.ThreadID=F_Threads.ThreadID ORDER BY Posted DESC LIMIT 1);

UPDATE F_Posts SET PostTitle= (SELECT REPLACE(PostTitle, '&', '&' ));
UPDATE F_Posts SET Content= (SELECT REPLACE(Content, '&', '&' ));
UPDATE F_Threads SET ThreadTitle= (SELECT REPLACE(ThreadTitle, '&', '&' ));
UPDATE F_Forums SET ForumName= (SELECT REPLACE(ForumName, '&', '&' ));
UPDATE F_Forums SET ForumDesc= (SELECT REPLACE(ForumDesc, '&', '&' ));

UPDATE F_Posts SET PostTitle= (SELECT REPLACE(PostTitle, "\\'", '"' ));
UPDATE F_Posts SET Content= (SELECT REPLACE(Content, "\\'", '"' ));
UPDATE F_Threads SET ThreadTitle= (SELECT REPLACE(ThreadTitle, "\\'", '"' ));
UPDATE F_Forums SET ForumName= (SELECT REPLACE(ForumName, "\\'", '"' ));
UPDATE F_Forums SET ForumDesc= (SELECT REPLACE(ForumDesc, "\\'", '"' ));

เรียบร้อยครับ จากนั้นก็ไปเปลี่ยนรหัสผ่านของ user ให้เป็นรูปแบบของ Drupal แค่นี้ก็เสร็จแล้วครับ

   

ปกป้องอย่างมั่นใจจากสแปมบอทด้วย Captcha!! ฮัดดดช่าาาา!

หลังจากอัพเว็บไปได้ไม่ทัน 3 ชั่วโมง..... มันมาละครับทั่น แขกผู้มีเกลียดที่ไม่ได้รับเชิญ Spam bot!!! emoticon

มาถึงก็จัดการสมัครสมาชิก(มารยาทดีจริงๆ)แล้วก็ส่งสแปมมาให้ผมทางเมล 3 ฉบับ..... โหเร็วโคดดดดด!

ไอ้เราตอนแรกกะจะไม่ลง captcha  แล้วนะ เพราะมันดูน่าเกลียดเหมือนของแปลกปลอมไม่เข้ากับ template ฮ่าๆemoticon ในที่สุดต้องไปหามาลงจนได้

ว่าแล้วก็เอาแบบง่ายๆไว้ก่อนไม่ต้องลงให้มากมายไม่หนักระบบ หลังจากไปค้นในห้อง extension ของ joomla ดูๆไปก็มีตัวน่าสนก็คือคอมโพเน้นท์ security images

แต่ดูๆแล้วมันอ้วนไปหน่อย เลยเปลี่ยนใจมาเลือก Joomla Captcha แทน ไปโหลดมันมาซะพร้อมกับ Patch ด้วย เอามาแล้วก็ต้องออกแรงปรับนิดหน่อย

เพราะมัน patch ให้แค่ template ที่เป็น default สามอันแค่นั้นเอง เริ่มแรกก็ติดตั้งปลั๊กอินตัวนี้ลงไปซะ แล้วคัดลอกไฟล์ใน Patch ไปทับกับของเดิม

จากนั้นก็เข้าไปที่ template ของเราดูว่าใน templates->ชื่อเทมเพลต->html แล้วดูว่า template ของเราใช้ module ต่างหากหรือปล่าวถ้าไม่ก็ข้ามขั้นตอนนี้ไป

แต่ถ้าใช้ก็มาปรับแต่งตรงนี้กันหน่อยโดยต้องแทรกโค้ด

//CaptchaExtentionpatchrev.4.5.0Stable
    $dispatcher=&JDispatcher::getInstance();
    $results=$dispatcher->trigger('onCaptchaRequired',array('user.register'));
    if($results[0])
        $dispatcher->trigger('onCaptchaView',array('user.register',0,'<fieldset>','</fieldset>
'));
?>


 เข้าไปในโมดูลที่ต้องการให้มี captcha  อย่าลืมเปลี่ยนพารามิเตอร์ user.register ให้เป็นไปตามโมดูลทีจะใช้ด้วย

(ค่านี้จะเรียกจาก admin->extension->plugin->system captcha->Enabled captchas นั่นเอง)

จากนั้นก็ปรับแต่งสีต่างๆให้เป็นที่พอใจก็เสร็จละ เห็นม่ะง่ายโคดดดด emoticon

   

หน้า 5 จาก 9

Move
-

Short Articles

Top Headline

เมื่อก่อนผมหวงความเป็นส่วนตัวมากๆ ทั้งๆที่อาจจะไม่สำคัญอะไร แต่ไม่รู้ล่ะ ผมหวงของผมนี่(เกรียนดีมั้ยล่ะ) การใช้งานในผลิตภัณฑ์ต่างๆของ Google ซึ่งก็รู้อยู่แล้วว่า การใช้งานต่างๆมีการตั้งค่าปริยาย(Default) ทำให้ Google มีสิทธิ์เก็บข้อมูลต่างๆ ไม่ว่าจะเป็น - Google...

Read More...

เมื่อวานนี้ (26/11/2009) ทาง Mininova ได้ออกประกาศจำกัดการเผยแพร่เนื้อหา(งดอัพโหลดและลบไฟล์ torrent ออก) อันเป็นผลสืบเนื่องมาจากกรณีคำสั่งของศาลแห่งอูเทรคต์ ประเทศเนเธอแลนด์ เนื่องจากว่าทาง Mininova ไม่สามารถมีระบบที่กรองข้อมูลที่ละเมิดลิขสิทธิ์ได้ 100% ก็เลยต้องจำกัดเนื้อหาและการใช้งานเอาไว้ก่อน...

Read More...

ช่วงนี้ไม่ค่อยมีตังค์ใช้เลย คิดไปมาคิดมา เปิดระบบรับงาน outsource ดีกว่า ถ้าใครผ่านมาเห็นอยากจ้างงานกระผมก็ยินดีรับใช้ครับ ราคาถูกแพงต่อรองกันได้ครับ ดูรายละเอียดเพิ่มเติมได้ที่นี่

Read More...

Polls

มาเจอเว็บนี้ได้ไง

Login Form

Who's Online

เรามี 32 บุคคลทั่วไป ออนไลน์

Advertisement