1 <!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns=
"http://www.w3.org/1999/xhtml">
5 <title>Moodle Doks: Manwal ng mga Developer
</title>
6 <link rel=
"stylesheet" href=
"docstyles.css" type=
"TEXT/CSS">
7 <meta http-equiv=
"Content-Type" content=
"text/html;
8 charset=iso-8859-15" />
12 <h1>Manwal ng mga Developer
</h1>
14 <p>Inilalarawan ng dokumentong ito ang ilan sa disenyo ng Moodle at kung
15 paano ka makapag-aambag sa pagdebelop nito.
18 <p>Medyo maikli pa lamang ito - pero magkakaroon din tayo ng mas mahusay
19 na dokumentasyon sa hinaharap!
21 <p>Mga seksiyon sa dokumentong ito:
</p>
23 <li><a href=
"#architecture">Arkitektura ng Moodle
</a></li>
24 <li><a href=
"#contribute">Kung paano ka makapag-aambag sa Moodle
</a>
26 <li><a href=
"#activities">Mga Aktibidad para sa Pag-aaral
</a></li>
27 <li><a href=
"#themes">Mga Tema
</a></li>
28 <li><a href=
"#languages">Mga Wika
</a></li>
29 <li><a href=
"#database">Mga Database Schema
</a></li>
30 <li><a href=
"#courseformats">Mga format ng Kurso
</a></li>
31 <li><a href=
"#doc">Dokumentasyon at mga artikulo
</a></li>
32 <li><a href=
"#bugs">Paglahok sa bug tracker
</a></li>
39 <h2><a name=
"architecture"></a>1.
40 Arkitektura ng Moodle
</h2>
42 <p>Kung titingnan natin ito sa pananaw ng isang system administrator,
43 ang Moodle ay dinisenyo ayon sa mga sumusunod na criteria:
46 <li><strong>Kailangang tumakbo ang Moodle sa pinakamaraming klase ng
47 plataporma
</strong><br />
48 <br />Ang web application platform na tumatakbo sa pinakamaraming
49 platform ay ang PHP kasama ang MySQL, at ito rin ang kapaligiran kung
50 saan dinibelop ang Moodle (sa Linux, Windows, at Mac OS X). Ginagamit
51 din ng Moodle ang ADOdb library para sa database abstraction, alalaong
52 baga'y makagagamit ang Moodle ng
53 <a href=
"http://php.weblogs.com/ADOdb_manual#drivers">higit pa sa
54 sampung magkakaibang brand ng database
</a> (kaya lang, hindi pa nito
55 kayang
<em><strong>magset-up ng mga table
</strong></em> sa lahat ng
56 database na ito - paguusapan pa natin ito mamaya).
60 <li><strong>Dapat ay madaling maiinstol, matutunan at mabago ang
63 <br />Ang mga unang prototype ng Moodle (
1999) ay nilikha gamit ang
64 <a target=_top
href=
"http://www.zope.org/">Zope
</a> - isang abanteng
65 object-oriented web application server. Kaya lang, bagama't cool ang
66 dating sa akin ng teknolohiyang ito, medyo mahirap matutunan at hindi
67 gaanong flexible, kung system administration ang pag-uusapan. Sa
68 kabilang banda ang PHP scripting language ay napakadaling matutunan
69 (lalo pa kung nakapagprogram ka na, gamit ang anumang scripting
71 Sa simula pa nagpasiya na akong iwasan ang paggamit ng anumang
72 class-oriented na disenyo - para nga mapanatili itong madaling
73 maintindihan ng mga baguhan. Sa halip ang muling paggamit ng code ay
74 ginawa sa pamamagitan ng mga library ng mga clearly-named function at sa
75 consistent na layout ng mga script file. Madali ring iinstol ang PHP
76 (may binary para sa bawat platform) at kalát na ang gamit, ibinibigay
78 nga itong istandard na serbisyo ng karamihang web hosting service.
84 <li><strong>Dapat ay madali itong iupgrade sa mga susunod na
87 <br />Alam ng Moodle kung anong bersiyon ito (gayundin ang mga
88 bersiyon ng lahat ng plug-in na modyul) at may built-in na itong
89 mekanismo na mag-aupgrade ng sarili nito sa bagong bersiyon (halimbawa
90 kaya nitong magrename ng mga database table o magdagdag ng mga bagong
91 field). Halimbawa, kung gumagamit ka ng CVS sa Unix, magtatype ka lang
92 ng
"cvs update -d
" pagkatapos ay bisitahin ang home page ng
93 site upang makumpleto ang upgrade.
97 <li><strong>Kailangan ay modular ito upang mabigyan ng kakayahang
99 <br />Maraming feature ang Moodle na modular, tulad ng tema,
100 aktibidad, mga wika ng interface, mga database schema at mga format ng
101 kurso. Maaari ngayong magdagdag ng feature ang sinuman sa pangunahing
102 codebase o kaya'y ipamahagi ang mga feature ng hiwalay. Tatalakayin pa
103 natin ito sa susunod na seksiyon sa ibaba.
107 <li><strong>Dapat ay nagagamit ito kasabay ng iba pang sistema
</strong><br />
108 <br />Itinatago ng Moodle ang lahat ng file para sa isang kurso sa
109 iisang, normal na direktoryo sa server. Dahil dito magagawa ng system
110 administrator na magbigay ng seamless forms ng file-level access para sa
111 bawat guro, tulad ng Appletalk, SMB, NFS, FTP, WebDAV at iba pa.
112 Pinapahintulutan ng mga authentication module ang Moodle na gumamit ng
113 LDAP, IMAP, POP3, NNTP at iba pang database bilang source para sa
114 impormasyon hinggil sa user. Kung hindi, ay marami pang kailangang
115 gawin. Ang mga feature na planong isama sa Moodle sa mga bersiyon sa
116 hinaharap ay : import at export ng Moodle data gámit ang mga XML-based
117 na format (kasama ang IMS at SCORM); at mas malaking bahagi sa paggamit
118 ng mga style sheet para sa interface formatting (para maiintegrate ito
119 nang biswal sa iba pang web site).
125 <h2><a name=
"contribute" id=
"contribute"></a>
126 2. Kung paano ka makapag-aambag
</h2>
128 <p>Nasabi na natin kanina na ang Moodle ay maraming feature na
129 modular. Kahit hindi ka programer, may mga bagay na mababago mo o
132 <h3><a name=
"activities" id=
"activities"></a>Mga
133 Aktibidad sa Pag-aaral
</h3>
135 <p> Ito ang mga pinakaimportanteng modyul, na nasa 'mod' na
136 direktoryo. May anim na default na modyul: takdang-aralin, pagpipilian,
137 talakayan, pagsusulit, rekurso, at survey. Ang bawat modyul ay
138 nasa hiwalay na subdirektoryo at binubuo ng mga sumusunod na
139 kinakailangang elemento (kasama pa ang mga ekstrang script na unique sa
145 mod.html: isang form para iset-up o iupdate ang instance ng modyul na
147 <li>version.php: nagdedefine ng ilang meta-info at
148 nagbibigay ng upgrading code
</li>
149 <li>icon.gif: isang
16x16 na icon para sa module
</li>
150 <li>db/: mga SQL dump ng lahat ng kinakailangang db table at
151 datos (para sa bawat uri ng database)
</li>
152 <li>index.php: isang pahina para ilista ang lahat ng instance sa
154 <li>view.php: isang pahina para makita ang isang partikular na
156 <li>lib.php: anuman/lahat ng function na idinefine ng modyul
158 Kung ang modulename ay tinatawag na widget, ang mga kinakailangang
159 function ay dapat may kasamang:
162 <li>widget_add_instance() - code para magdagdag ng isang
163 bagong instance ng widget
</li>
164 <li>widget_update_instance() - code para magupdate ng instance
166 <li>widget_delete_instance() - code para burahin ang instance
</li>
167 <li>widget_user_outline() - kung may instance, nagbabalik ng
168 buod ng iniambag ng user
</li>
169 <li>widget_user_complete() - kung may instance, magpiprint ng
170 mga detalye ng iniambag ng isang user
<br />
172 <li>Upang hindi magkaconflict, ang alinmang module function ay
173 dapat bigyan ng pangalang nagsisimula sa widget_ at anumang constant na
174 idefine mo ay dapat magsimula sa WIDGET_
179 <li>Panghuli, ang bawat moyul ay magkakaroon ng ilang file ng wika
180 na naglalaman ng mga string para sa modyul na iyon. Tingnan sa ibaba.
</li>
183 <p>Ang pinakamadaling paraan para magsimula ng bagong learning
184 activity module ay gamitin ang template sa
186 href=
"http://moodle.com/mod/newmodule_template.zip">mod/newmodule_template.zip
</a>.
</strong>
187 Iunzip ito at sundin ang README sa loob.
190 <p>Baka gusto mo ring magpost muna sa
191 <a href=
"http://moodle.com/mod/forum/view.php?id=44" target=
"_top">
192 Talakayan ng Activities modules sa Paggamit ng Moodle
</a>.
</p>
196 <h3><a name=
"themes" id=
"themes"></a>Mga Tema
</h3></p>
199 <p>Itinatakda ng tema (o skin) ang itsura ng isang site. May ilang
200 simpleng tema na nasa pangunahing distribusyon, baka mas gusto mong
201 lumikha ng sarili mong tema na may sarili mong kulay, logo, estilo at
205 <p>Ang bawat tema ay nasa isang subdirektoryo ng
"theme
"
206 na direktoryo, at naglalaman ng, sa minimum, ng sumusunod na file:
210 <li><strong>config.php
</strong>: idinidefine ang kulay ng tema na
211 ginagamit sa buong site
</li>
212 <li><strong>styles.php
</strong>: ang style sheet, na naglalaman ng
213 mga CSS definition para sa mga standard HTML element, gayundin ang
214 maraming elemento ng Moodle.
216 <li><strong>header.html
</strong>: Isinasama sa itaas ng bawat
217 pahina. Ito ang kailangan mong iedit upang makapagdagdag ng isang logo
218 sa itaas ng mga pahina.
</li>
219 <li><strong>footer.html
</strong>: Isinasama sa ibaba ng
223 <p>Para makalikha ka ng mga sarili mong tema para sa kasalukuyang
224 bersiyon ng Moodle:
</p>
226 <li>Kopyahin ang isa sa dating theme folder sa isang folder na may
227 bagong pangalan. Inirerekomenda ko na magsimula sa isa sa mga istandard
229 <li>Editin ang config.php at iinsert ang sarili mong mga kulay.
</li>
230 <li>Editin ang styles.php at baguhin ang CSS styles mo.
</li>
231 <li>Editin ang header.html at footer.html upang makapagdagdag ng
232 mga bagong logo, o mabago ang layout.
236 <p>Tandaan na ang lahat ng hakbang na ito ay opsiyonal - maaari kang
237 lumikha ng talagang kakaibang itsura ng site mo sa pamamagitan lamang ng
238 pag-edit sa mga kulay sa config.php
</p>
239 <p>Tandaan din na ang mga Moodle upgrade ay
<em>posibleng
</em>
240 sumira nang kaunti sa mga tema, kaya basahing mabuti ang mga release
241 note kung gumagamit ka ng pasadyang tema.
243 <p>Lalo pa, ang Moodle
2.0 ay magkakaroon ng ganap na bagong display
244 system, posibleng nakabatay sa mga XSL transformation ng XML output mula
245 sa Moodle. Posibleng ang mga bagong tema para dito ay magkakaroon ng
246 kakaibang format, pero ang bentahe ay magkakaroon ng posibleng mas
247 mataas na degree ng customisation (kasama ang paglilipat-lipat ng mga
251 <p>May mas malawak na talakayan hinggil dito sa
252 <a target=_top
href=
"http://moodle.com/mod/forum/view.php?id=46">
253 Talakayan ng Tema sa Paggamit ng Moodle
</a>. Kung lumikha ka ng
254 magandang tema na sa palagay mo ay magagamit ng iba, pakipost ang zip
255 file mo sa talakayan ng mga tema!
261 <h3><a name=
"languages" id=
"languages"></a>Mga Wika
</h3>
263 <p>Ang Moodle ay idinesenyo para sa internasiyonalisasyon. Ang
264 bawat 'string' o 'pahina' ng teksto na idinidispley bilang bahagi ng
265 interface ay kinukuha mula sa isang set ng mga file ng wika. Ang bawat
266 wika ay subdirektoryo ng direktoryong 'lang'. Ang istruktura ng lang
267 direktoryo ay sumusunod:
270 <p><strong>lang/en
</strong> - direktoryong naglalaman ng lahat ng
271 file para sa isang wika (eg Ingles)
</p>
273 <li>moodle.php - mga string para sa pangunahing interface
</li>
274 <li>assignment.php - mga string para sa assignment module
</li>
275 <li>choice.php - mga string para sa choice module
</li>
276 <li>forum.php - mga string para sa forum module
</li>
277 <li>quiz.php - mga string para sa quiz module
</li>
278 <li>resource.php - mga string para sa resource module
</li>
279 <li>survey.php - mga string para sa survey module
</li>
280 <li>.... kasama pa ang ibang modyul kung mayroon man.
<br />
283 Ang string ay tinatawag mula sa mga file na ito sa
284 pamamagitan ng
<strong><em>get_string()
</em></strong><em> </em>o
<em>
285 <strong>print_string()
</strong> </em> na function. Sinusuportahan ng
286 bawat string ang pagpapalit ng variable, upang masuportahan ang variable
287 ordering sa iba't-ibang wika.
<em><br />
289 </em>eg $strdueby = get_string(
"assignmentdueby
",
290 "assignment
", userdate($date));
<br />
292 Kung ang string ay wala sa isang partikular na wika, ang
293 katumbas nito sa Ingles ang awtomatikong gagamitin.
</li>
296 <p><strong>lang/en/help
</strong> - naglalaman ng mga buong pahina ng
297 tulong (para sa popup context-sensitive na tulong)
</p>
299 <p>Ang pangunahing mga pahina ng tulong ay naririto, samantalang
300 ang mga pahina ng tulong na para sa bawat modyul ay nasa subdirektoryo
301 na may pangalan ng modyul.
</p>
302 <p>Puwede kang mag-insert ng helpbutton sa isang pahina sa
303 pamamagitan ng helpbutton na function.
</p>
304 <p>eg helpbutton(
"text
",
"Iklik ito para sa tulong
305 tungkol sa teksto;);
</p>
306 <p>at para sa mga modyul:
</p>
307 <p>helpbutton(
"forumtypes
",
"Forum types
",
"forum
");
</p>
310 <p>Tandaan na puwede mong editin ang mga wika nang online, gamit ang
311 administration web tools na nasa ilalim ng
"Tingnan ang wikang
312 ito
". Pinadadali nito ang paglikha ng mga bagong wika gayundin ang
313 pagpapahusay ng dati na. Kung magsisimula ka ng bagong wika, pakikontak
314 ako,
<a target=_top
href=
"http://dougiamas.com/">Martin Dougiamas
</a>.
317 <p>Baka gusto mong magpost sa
318 <a target=_top
href=
"http://moodle.com/mod/forum/view.php?id=43">Talakayan ng
319 Wika sa Paggamit ng Moodle
</a>.
</p>
320 <p>Kung magmementina ka ng wika nang matagalan, maaari kitang bigyan
321 ng
<a href=
"?file=cvs.html">CVS
322 write access sa Moodle source code
</a> para direkta mong
323 mamentina ang mga file.
</p>
327 <h3><a name=
"database" id=
"database"></a>Mga Schema ng Database
330 <p>Kung may gumaganang database ka na may nadefine nang mga table,
331 ang sinadyang simpleng SQL na ginamit sa Moodle ay inaasahang gagana
332 nang maayos sa iba't-ibang klase ng database brand.
335 <p>May problema sa
<strong>awtomatikong paglikha
</strong> ng mga
336 bagong table sa isang database, na siyang tinatangkang gawin ng Moodle
337 sa unang pagkakataon na iinstol ito. Dahil magkakaiba ang mga
338 database, walang paraan para gawin ito nang hiwalay sa plataporma. Para
339 masuportahan ang automation na ito sa bawat database, maaaring gumawa ng
340 mga schema na naglilista ng kinakailangang SQL para malikha ang mga
341 Moodle table sa isang partikular na database. Ang mga file na ito ay
342 nasa
<strong>lib/db
</strong> at sa loob ng
<strong>db
</strong>
343 subdirektoryo ng bawat module.
346 <p>Sa kasalukuyan, tanging ang MySQL at PostgreSQL ang ganap na
347 nasusuportahan sa paraang ito (wala pang nagsusulat ng schema para sa
351 <p>Gagamit ang Moodle
1.2 ng bagong paraan ng
352 independiyente-sa-database na XML schema para hindi na kailanganin ang
353 pagsusulat ng schema para sa bawat klase ng database.
357 <h3><a name=
"courseformats" id=
"courseformats"></a>Mga Format ng
358 Kurso
</h3> <blockquote>
359 <p>Sinusuportahan sa kasalukuyan ng Moodle ang tatlong klase ng
360 format ng kurso: linguhan, paksaan at panlipunan.
362 <p>Mas nakaugnay ito sa iba pang code (kaya, mas mahirap gawing
363 "plugagable
") pero madali pa ring magdagdag ng mga bago.
365 <p>Kung may ideya kayo para sa naiibang format na kailangan ninyo o
366 gusto ninyong makita, kontakin ninyo ako at pipilitin kong isama ito sa
367 mga release sa hinaharap.
371 <h3><a name=
"doc" id=
"doc"></a>Dokumentasyon at mga artikulo
</h3>
373 <p>Kung gusto mong magsulat ng tyutoryal, artikulo o akademikong
374 papel o anumang bagay hinggil sa Moodle, sige lang!
376 <p>Ilagay ito sa web at tiyaking samahan ng mga link sa
377 <a target=
"_top" href=
"http://moodle.org/">http://moodle.org/
381 <h3><a name=
"bugs" id=
"bugs"></a>Paglahok sa bug tracker
</h3>
383 <p>Bilang panghuli, nais ko kayong anyayahang magrehistro sa
384 "bug tracker
" sa
<a target=
"_top"
385 href=
"http://moodle.org/bugs/">http://moodle.org/bugs
</a>
386 para maiulat mo ang anumang bug na matagpuan mo at marahil ay makalahok
387 sa pagtalakay at paglutas ng mga ito.
389 <p>Ang mga
"bug
" ay hindi lamang mga software bug sa
390 kasalukuyang bersiyon ng Moodle, kundi kasama rin ang mga bagong ideya,
391 hinihiling na bagong feature at kahit konstruktibong puna sa mga
392 kasalukuyang feature. Ang kaigihan ng open source ay puwede ang lahat
393 na lumahok sa anumang paraan upang tumulong sa paglikha ng mas mahusay
394 na produkto na masisiyahan tayong lahat. Sa proyektong ito, ang input
395 mo ay gusto naming marinig!
404 <p align=
"center">Salamat sa paggamit ng Moodle!
<br />
406 <a target=
"_top" href=
"http://dougiamas.com/">Martin Dougiamas
</a>, Lead
416 <p align=
"center"><font size=
"1"><a href=
"." target=
"_top">
417 Dokumentasyon ng Moodle
</a></font></p>
418 <p align=
"center"><font size=
"1">Version: $Id$
</font></p>