ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย mimimy _ -
Number of replies: 11

ตอนนี้ทำโปรเจค moodle อ่ะคะ

อาจารย์ต้องการให้เราเขียน module

ลงใน moodle คะ ก้อเลยเครียด

ใครมีคำแนะนำ ช่วยตอบด้วยนะคะ

mimimy_sn2@hotmail.com

In reply to mimimy _

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย Piriya Jennoppakarn -

อย่าเพิ่งเครียดไปครับ ชาวบ้านเขาก็เขียนโมดูลกับ Moodle มากมาย เราก็ต้องเขียนได้อยู่แล้ว

เขียนโมดูลอะไรเหรอครับ

In reply to Piriya Jennoppakarn

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย mimimy _ -

ตอนนี้ก้อโหลด NEWMODULE มาลองลงดูแล้วคะ

แต่ว่าทำไมมันลงได้แต่สร้างฐานข้อมูลไม่ได้ก้อไม่รุ้

ถ้ายังไงขอเมล msn ไว้ปรึกษาได้ป่าวคะ

ขอบคุณคะ

In reply to mimimy _

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย gootooyoo service -
1.ใส่ ใน folder db เก็บข้อมูลเป็น xml ครับ
<?xml version = "1.0" encoding = "UTF-8" ?>
<XMLDB PATH = "mod/flashvideo/db" VERSION = "20070401" COMMENT = "XMLDB file for Moodle mod/flashvideo"
xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "../../../lib/xmldb/xmldb.xsd">

<TABLES>
<TABLE NAME = "movies_front" COMMENT = "Default comment for movies front, please edit me" NEXT = "info_movies_front">
<FIELDS>
<FIELD NAME = "id" TYPE = "int" LENGTH = "10" NOTNULL = "true" UNSIGNED = "true" SEQUENCE = "true" ENUM = "false" COMMENT = "id of the table" NEXT = "title"/>
<FIELD NAME = "title" TYPE = "text" LENGTH = "medium" NOTNULL = "false" UNSIGNED = "false" SEQUENCE = "false" ENUM = "false" COMMENT = "title of the table" PREVIOUS = "id"/>
</FIELDS>
<KEYS> <KEY NAME = "primary" TYPE = "primary" FIELDS = "id" COMMENT = "Primary key for flashvideo"/> </KEYS>
<INDEXES> <INDEX NAME = "course" UNIQUE = "false" FIELDS = "course"/> </INDEXES>
</TABLE>
<TABLE NAME = "info_movies_front" COMMENT = "value to config for movies_front" PREVIOUS = "movies_front">
.
.
.
</TABLES>

</XMLDB>
ตัวอย่างสร้าง table ครับ
In reply to mimimy _

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย Piriya Jennoppakarn -

การสร้างฐานข้อมูลโมดูลจะใช้ db/install.xml ครับ ผมขอยกตัวอย่างโมดูล chat ละกันครับ

Chat จะประกอบด้วยตาราง chat, chat_messages, chat_users เวลาเขียน install.xml ก็จะได้

<TABLES>
  <TABLE NAME="chat" NEXT="chat_messages">
   ....
  </TABLE>
  <TABLE NAME="chat_messages" PREV="chat" NEXT="chat_users">
   ....
  </TABLE>

  <TABLE NAME="chat_users" PREV="chat_messages">
   ....
  </TABLE>
</TABLES>

ตาราง chat ประกอบด้วย id, course, name, intro, keepdays, studentlogs, chattime, schedule, timemodified เขียนได้ดังนี้

<TABLE NAME="chat" NEXT="chat_messages">
      <FIELDS>
        <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="course"/>
        <FIELD NAME="course" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="name"/>
        <FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="course" NEXT="intro"/>
        <FIELD NAME="intro" TYPE="text" LENGTH="small" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="name" NEXT="keepdays"/>
        <FIELD NAME="keepdays" TYPE="int" LENGTH="11" NOTNULL="true" UNSIGNED="false" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="intro" NEXT="studentlogs"/>
        <FIELD NAME="studentlogs" TYPE="int" LENGTH="4" NOTNULL="true" UNSIGNED="false" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="keepdays" NEXT="chattime"/>
        <FIELD NAME="chattime" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="studentlogs" NEXT="schedule"/>
        <FIELD NAME="schedule" TYPE="int" LENGTH="4" NOTNULL="true" UNSIGNED="false" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="chattime" NEXT="timemodified"/>
        <FIELD NAME="timemodified" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="schedule"/>
      </FIELDS>
    <KEYS>
      <KEY NAME="primary" TYPE="primary" FIELDS="id" />
    </KEYS>
    <INDEXES>
      <INDEX NAME="course" UNIQUE="false" FIELDS="course"/>
    </INDEXES>
</TABLE>

เมื่อผู้่ใช้นำโมดูลไปติดตั้ง Moodle ก็จะสร้างตารางตามที่เรากำหนดไว้ตรงนี้ล่ะครับ ดังนั้นถ้าเราพัฒนาโมดูลแล้วไม่แก้ไฟล์ db/install.xml ระบบก็จะไม่สร้างฐานข้อมูลให้

สำหรับเทคนิคการพัฒนาที่ผมใช้อยู่ก็คือ ผมจะไปสร้างตารางไว้เลย เช่น ถ้าจะทำ poll ก็จะไปสร้างตาราง poll_question, poll_result เอาไว้ใน MySQL เลย เพราะจะได้ทุ่มเทเวลาไปเขียนโปรแกรมให้มันทำงานตามที่เราต้องการ แล้วเมื่อพัฒนาโปรแกรมเสร็จเรียบร้อย ก็ค่อยมาเขียน db/install.xml ให้ตรงกับโครงสร้างล่าสุดครับ

In reply to Piriya Jennoppakarn

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย mimimy _ -

งงจังเรยอ่ะค่า ถ้ายังไงพอจะมีไฟล์ตัวอย่างแบบว่าเราเคยโหลด NEWMODULE มาลงแล้วอ่ะคะ

แต่ว่าพอเราเรียกใช้ module มันจะขึ้นหน้า IE ว่างเปล่าขึ้นมาอ่ะคะ ก้อเลยสงสัยว่าเราทำอะไร

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

ไม่ค่อยมีความรุ้ด้านนี้เท่าไหร่เลยอ่ะคะ

                                                                                  ขอบคุณมากๆคะ

In reply to mimimy _

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย Piriya Jennoppakarn -

Moodle ก็ดีตรงนี้ล่ะครับ เวลามีปัญหาอะไรก็จะขึ้นหน้าขาว ๆ ทำให้เรารู้ได้ทันทีว่าต้องมีอะไรผิดพลาดแน่ .. เราก็แค่ย้อนกลับไปดูว่าที่เราแก้สุดท้ายคืออะไร เท่านี้ก็แก้ปัญหาได้แล้วครับ

ลองเริ่มจากแก้โมดูลแบบง่ายก่อนนะครับ สมมติว่าเราต้องการแสดง link ไป Google เราก็เริ่มต้นจากขยาย NEWMODULE.zip ไปไว้ใน /mod/newmodule จากนั้นก็เข้าเว็ปหน้า Administrator แล้วเลือก Notification (แจ้งเตือน) ระบบก็จะทำการติดตั้งโมดูลนี้เข้าไป

จากนั้นเปิด /mod/newmodule/view.php ขึ้นมาแก้ในส่วนแสดงผล โดยไปที่บรรทัดเกือบล่างสุด จะเขียนว่า

print_header_simple(...);
echo 'YOUR CODE GOES HERE';
print_footer($course);

เราแก้ตรง echo 'YOUR CODE GOES HERE' นี่ล่ะครับ ให้เป็น

echo '<a href=http://www.google.com>Google</a>';

เท่านี้โมดูลก็จะแสดงผลข้อความ Google ออกมาให้แล้วครับ ลองเริ่มจากง่ายไปหายากนะครับ จะได้มีกำลังใจเขียนโปรแกรม เกิดติดปัญหาตรงไหนจะได้มีกำลังใจว่าเคยเขียนโปรแกรมผ่าน แต่ถ้าเริ่มทำจากยากไปหาง่าย เดี๋ยวจะงงกับโปรแกรม และท้อแท้ไปก่อนครับ

In reply to mimimy _

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย ชยากร เจนพิทักษ์ -

ถ้าจะสร้าง module ให้สำหรับ upload file ต้องทำยังไงคับ

ช่วยหน่อยนะคับ

In reply to mimimy _

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย gootooyoo service -

class block_xxx extends block_list {

    function init(){
        $this->title = get_string('title', 'block_xxx');
        $this->version = 2009121100;
    }
    function has_config() {  return true;}
    function get_content(){ return $this->content;}

ต้องศึกษาเรื่อง class บ้างนะครับ By T

In reply to gootooyoo service

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย mimimy _ -

ขอบคุณทุกคนมากค๊า ตอนนี้ภาระงานมีเพิ่มมากขึ้นทุกทีเรยค๊า

เริ่มจากต้องเขียน actionscript3.0 เพื่อต่อฐานข้อมูล php

จากนั้นก้อเรียกใช้ LOM ซึ่งเปง xml เข้ามาในโมดูลที่เปง php

ใน moodle ของเราอีกที จะบ้าตาย จับต้นชนปลายไม่ถูกเลย

ทุกอย่างมันทำได้ เทสก้อทำได้อยุ่ค๊า แต่ปัญหามันคือไม่รุ้ต้อง

เอาอารายมาเชื่อมต่อกะอารายก่อนอารายหลังอ่ะจิ เห่อๆ โกรธ

In reply to mimimy _

ตอบ: ขอคำแนะนำการเขียน module เองลงใน moodle อ่ะคะ

โดย mimimy _ -

ตอนนี้เริ่มเขียนโปรแกรมได้แล้วคะ สามเหตุที่มันโชว์เพจว่างๆก้อเพราะว่ามันไม่แจ้ง error อ่าคะ

ต้องไปเซตค่าให้ moodle แจ้ง error ก่อน เราถึงจะเริ่มเขียนโปรแกรมได้ แต่ปัญหาคือ เขียนได้

แค่basic ให้มันโชว์ข้อความ โชว์ link ได้ก่อน แต่ว่ายังไง้ยังไง ทำไมก้อไม่รุ้ที่ว่าบันทึกลงฐาน

ข้อมูลไม่ได้สักกะทีนึง เฮ้อ เครียด แต่ก้อจะพยายามต่อไปคะ สุ๊ๆ ขอบคุณทุกคนมากๆคะที่ให้คำ

แนะนำช่วยได้เยอะเลยทีเดียวคะ