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�����ĵ�: �����д��</title>
6
<link rel="stylesheet" href="docstyles.css" type="TEXT/CSS" />
7
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
9
<body bgcolor="#FFFFFF">
10
<h1>Moodle������</h1>
11
<p class="normaltext">�κκ�������Ŀ����Ҫһ���Ժ��ȶ��Բ��ܱ�������ǿ׳��</p>
12
<p class="normaltext">��д��Щ���Ŀ����Ϊ���е�Moodle�����ṩһ��Ŭ����Ŀ�ꡣ��һЩ�Ƚ��ϵ��Ѿ����ڵĴ����ڼ��ٵķ�����δ��꣬���������ս��ᱻ�����������µĴ��붼���뾡���ܵ�������Щ��</p>
14
<ol class="normaltext">
15
<li class="spaced">���д����ļ�Ӧ��ʹ�� .php ��Ϊ��չ����</li>
16
<li class="spaced">����ģ���ļ�Ӧ��ʹ�� .html ��Ϊ��չ����</li>
17
<li class="spaced">�����ı��ļ�Ӧ��ʹ��Unix�����ı���ʽ(�������ı��༭���������ѡ��)��</li>
18
<li class="spaced">����php��Ƕ������ǡ���������ǣ�Ʃ��<font color="#339900"><?php ?></font> ... ��������<font color="#339900"><? ?></font>�ġ��̡���ǡ�
20
<li class="spaced">�����Ѿ����ڵİ�Ȩ����Ӧ��������������б�Ҫ�������Լ����Լ��ġ�</li>
21
<li class="spaced">ÿ���ļ���Ӧ��������config.php�ļ���</li>
22
<li class="spaced">ÿ���ļ���Ӧ������û��������Ƿ���ȷ������ʹ�ú���require_login()��isadmin()��isteacher()��iscreator()����isstudent()��</li>
23
<li class="spaced">���з������ݿ�IJ�����Ӧ��ʹ��lib/datalib.php�еĺ����D�D�������Լ��ݸ�������ݿ�����������е����鶼Ӧ���ǿ�������Щ��������ɵģ������������ҪдSQL�������������ס��Щ����Ӧ���ǿ�ƽ̨�ģ��ҽ������������е��ض�����(ͨ����һ��lib.php�ļ���)��Ч���Ҵ�������ע�ͽ�����ȷ˵����</li>
24
<li class="spaced">��Ҫ������ʹ�ñ�ȫ�ֱ���$CFG��$SESSION��$THEME��$USER֮���ȫ�ֱ�����</li>
25
<li class="spaced">���б�����Ӧ������ʼ������������ʹ��ǰ��isset()��empty()�Ⱥ������м�⡣</li>
26
<li class="spaced">�����ַ�����Ӧ���ɷ���D�D��"lang/en"Ŀ¼�д����µ��ı��ļ����ַ���Ӧ��ʹ�ü���Ӣ��Сд���ƣ���ͨ������get_string()��print_string()��ȡ�á�</li>
27
<li class="spaced">���а����ļ�Ӧ���ɷ���D�D��"en/help"Ŀ¼�д����ı��ļ�����ͨ��helpbutton()�������������ǡ�
28
<p>�����Ҫ�ϴ�һ�������ļ���</p>
30
<li>����С���ģ��ɵķ����ļ���Ȼ���Լ���ʹ��ʱ������ֱ�ӽ����ģ�����Ӧ��֪ͨtranslation@moodle.org</li>
31
<li>���ڴ���ģ�Ӧ�������µ��ļ������ļ����ļ�������ԭ�ļ�����ĩβ����һ�����֣������Ժ�������(��filename2.html)������������Ա�Ϳ��Է����֪���ļ�����һ���µİ汾������Ȼ���µĴ���Ͱ��������ļ�����������ָ���°汾���ļ���</li>
34
<li class="spaced">���������������Ϣ(��GET��POST��ʽ����)��Ӧ����magic_quotes(����PHP���������)�����ֱ�ӽ����Dz��뵽���ݿ����ǰ�ȫ�ġ�����������ԭʼ����(�����ļ������ݿ��)�������ڲ������ݿ�ǰʹ��<font color="#339900">addslashes()</font>����Ԥ������</li>
35
<li class="spaced">��Ҫ�ģ�Moodle�����е��ı����ر����û��ṩ���ı���������ʹ��format_text()����������������Ϳ���ȷ���ı��Ѿ���ȷ�ع��ˡ�</li>
39
<p class="normaltext">��֪����������Ѿ�ϰ����һ�ֱ��������ȴ�����ı�������һ������ģ����Ƚ϶��ԣ�����պ������˶���Ҫȥ�����Ϸ���Moodle����Ҫ��һЩ����������ʹ�õ��κα������кܶ�֧�ֺͷ��Ե����������������ʹ�õķ��<strong>�Ѿ�����</strong>�ˣ����������ȥ��</p>
40
<ol class="normaltext">
41
<li class="spaced"><strong>����</strong>Ӧ����4�������Ŀո��Բ�Ҫʹ���Ʊ�����</li>
42
<li class="spaced"><strong>������</strong>Ӧ�����������⡢�к����СдӢ�ĵ��ʡ����ȷʵ��Ҫ���������ϵĵ��ʣ������������һ�𣬵�Ҫ�������ƾ����̡ܶ��������������ʹ�ø������ơ�
43
<p class="examplecode"><font color="#006600">�õ�: $quiz<br />
44
�õ�: $errorstring<br />
45
�õ�: $assignments (��������)<br />
46
�õ�: $i (������С��ѭ��)<br />
49
����: $aReallyLongVariableNameWithoutAGoodReason<br />
50
����: $error_string</font></p>
52
<li class="spaced"><strong>����</strong>Ӧ�����Ǵ�д�ģ���������ģ���������Ϊǰ������֮��Ӧ�����»��߷ָ���
53
<p class="examplecode"><font color="#006600">define("FORUM_MODE_FLATOLDEST",
56
<li class="spaced"><strong>��������</strong>Ӧ���Ǽ�Ӣ��Сд���ʣ���������ģ������Ϊǰ�Է�ֹģ��֮��ij�ͻ������֮�����»��߷ָ��������������Ӧ�����к�����ȱʡֵ��ע���ں���������������֮��û�пո�<br />
57
<p class="examplecode"> <font color="#007700">function </font><font color="#0000BB">forum_set_display_mode</font><font color="#007700">(</font><font color="#0000BB">$mode</font><font color="#007700">=</font><font color="#0000BB">0</font><font color="#007700">)
59
global </font><font color="#0000BB">$USER</font><font color="#007700">,
60
</font><font color="#0000BB">$CFG</font><font color="#007700">;<br />
62
if (</font><font color="#0000BB">$mode</font><font color="#007700">)
64
</font><font color="#0000BB">$USER</font><font color="#007700">-></font><font color="#0000BB">mode
65
</font><font color="#007700">= </font><font color="#0000BB">$mode</font><font color="#007700">;<br />
66
} else if (empty(</font><font color="#0000BB">$USER</font><font color="#007700">-></font><font color="#0000BB">mode</font><font color="#007700">))
68
</font><font color="#0000BB">$USER</font><font color="#007700">-></font><font color="#0000BB">mode
69
</font><font color="#007700">= </font><font color="#0000BB">$CFG</font><font color="#007700">-></font><font color="#0000BB">forum_displaymode</font><font color="#007700">;<br />
70
}<br />
73
<li class="spaced"><strong>����</strong>��������ʹ�ô�����(������ֻ��һ��)��Moodleʹ�����·��:
74
<p class="examplecode"> <font color="#006600">if (</font><font color="#0000CC">$quiz</font><font color="#006600">-></font><font color="#0000CC">attempts</font><font color="#006600">)
76
if (</font><font color="#0000CC">$numattempts </font><font color="#006600">>
77
</font><font color="#0000CC">$quiz</font><font color="#006600">-></font><font color="#0000CC">attempts</font><font color="#006600">)
79
</font><font color="#0000CC">error</font><font color="#006600">(</font><font color="#0000BB">$strtoomanyattempts</font><font color="#006600">,
80
</font><font color="#CC0000">"view.php?id=$cm</font><font color="#006600">-></font><font color="#CC0000">id"</font><font color="#006600">);<br />
81
}<br />
84
<li class="spaced"><strong>�ַ���</strong>Ӧ���������õ����Ŷ���������ٶȡ�<br />
85
<p class="examplecode"> <font color="#006600">$var = 'some text without any
87
$var = "with special characters like a new line n";<br />
88
$var = 'a very, very long string with a '.$single.' variable in it';<br />
89
$var = "some $text with $many variables $within it"; </font></p>
91
<li class="spaced">ʵ�õ�<strong>ע��</strong>Ӧ����������д�����Խ��ʹ������̺ͺ���������Ĺ��ܡ�
93
<li>ÿ���������Ӧ��ʹ�����е�<a target="_blank" href="http://www.phpdoc.org/">phpDoc��ʽ</a>��д���Ա��Զ����ɴ����ĵ���</li>
94
<li>��Ƕע��Ӧʹ�� // ��������벼�֣�ʹ������������в��ʹ�����롣
98
<p class="examplecode"><font color="#FF8000">
100
* The description should be first, with asterisks laid out exactly<br />
101
* like this example. If you want to refer to a another function,<br />
102
* do it like this: {@link clean_param()}. Then, add descriptions <br />
103
* for each parameter as follows.<br />
105
* @param int $postid The PHP type is followed by the variable name<br />
106
* @param array $scale The PHP type is followed by the variable name<br />
107
* @param array $ratings The PHP type is followed by the variable name<br />
108
* @return mixed<br />
110
<font color="#006600">function </font><font color="#0000BB">forum_get_ratings_mean</font><font color="#007700">(</font><font color="#0000BB">$postid</font><font color="#007700">,
111
</font><font color="#0000BB">$scale</font><font color="#007700">, </font><font color="#0000BB">$ratings</font><font color="#007700">=</font><font color="#0000BB">NULL</font><font color="#007700">)
113
<font color="#007700">if (!</font><font color="#0000BB">$ratings</font><font color="#007700">)
115
</font><font color="#0000BB">$ratings
116
</font><font color="#007700">= array(); </font><font color="#FF8000">//
117
Initialize the empty array</font><font color="#007700"><br />
118
if (</font><font color="#0000BB">$rates
119
</font><font color="#007700">= </font><font color="#0000BB">get_records</font><font color="#007700">(</font><font color="#DD0000">"forum_ratings"</font><font color="#007700">,
120
</font><font color="#DD0000">"post"</font><font color="#007700">, </font><font color="#0000BB">$postid</font><font color="#007700">))
122
</font><font color="#FF8000">//
123
Process each rating in turn</font><font color="#007700"><br />
124
foreach
125
(</font><font color="#0000BB">$rates </font><font color="#007700">as </font><font color="#0000BB">$rate</font><font color="#007700">)
130
<li class="spaced"><strong>����</strong>���Ա���ʹ�á����Ѷ�����ɢ����������Ƚ������һ������£��ڻ����ź���ͨ����֮��Ӧ����һ�����з������ڻ����źͱ�������֮�����û�л��з�:<br />
131
<p class="examplecode"> <font color="#007700">foreach (</font><font color="#0000BB">$objects
132
</font><font color="#007700">as </font><font color="#0000BB">$key </font><font color="#007700">=></font><font color="#0000BB">
133
$thing</font><font color="#007700">)</font><font color="#006600"> {<br />
134
</font><font color="#007700"> </font><font color="#0000BB">process($thing);</font><font color="#006600">
138
</font><font color="#007700">if (</font><font color="#0000BB">$x </font><font color="#007700">==
139
</font><font color="#0000BB">$y</font><font color="#007700">)</font><font color="#006600">
141
</font><font color="#007700"> </font><font color="#0000BB">$a
142
</font><font color="#007700">= </font><font color="#0000BB">$b</font><font color="#007700">;</font><font color="#006600"><br />
143
} else if (</font><font color="#0000BB">$x </font><font color="#007700">==
144
</font><font color="#0000BB">$z</font><font color="#006600">) {<br />
145
</font><font color="#007700"> </font><font color="#0000BB">$a
146
</font><font color="#007700">= </font><font color="#0000BB">$c</font><font color="#007700">;</font><font color="#006600"><br />
148
</font><font color="#007700"> </font><font color="#0000BB">$a
149
</font><font color="#007700">= </font><font color="#0000BB">$d</font><font color="#007700">;</font><font color="#006600"><br />
155
<ol class="normaltext">
156
<li class="spaced">ÿ����������һ��������<strong>id</strong>�ֶ�(INT10)��Ϊ������</li>
157
<li class="spaced">������ģ��������ʵ��������������ģ��ͬ��(Ʃ��<strong>widget</strong>)���������ٰ��������ֶ�:
159
<li><strong>id</strong> - ����һ������</li>
160
<li><strong>course</strong> - ÿ��ʵ�������Ŀγ�id</li>
161
<li><strong>name</strong> - ÿ��ʵ������������</li>
164
<li class="spaced">��ģ����ص�������������������ǣ��������������Ϣ�ǹ��ڡ�things���ģ�����������Ӧ����<strong>widget_things</strong>(ע����ø�����ʽ)��</li>
165
<li class="spaced">�ֶ�����Ӧ����̣���������Ĺ�����ͬ��</li>
166
<li class="spaced">�ڿ��ܵ�����£������Ŷ���������(��<strong>widget</strong>)���õ��ֶ�Ӧ������Ϊ<strong>widgetid</strong>��(ע�����Ǹ���Լ������һЩ�ϵı���δ����)</li>
167
<li class="spaced">�����ֶ�Ӧ��ʹ��С��������(��INT4)���洢Ϊ0��1�������Ϳ�������Ҫʱ��չ����</li>
168
<li class="spaced">�����ı���Ӧ����һ��<strong>timemodified</strong>�ֶ�(INT10)������PHP��<strong>time</strong>()����ȡ�õĵ�ǰʱ�������������</li>
172
<h2>��ȫ���⣨����������URL���ݣ�</h2>
173
<ol class="normaltext">
174
<li class="spaced">��Ҫ������register_globals����<strong>ÿ��</strong>����������<strong>ÿ��</strong>Դ�ļ�����ȷ��ʼ������������Դ�����Զ���</li>
175
<li class="spaced">��ʼ�����е�����Ͷ���ʹ���ǿյġ�<code>$a = array()</code>��<code>$obj = new stdClass();</code>��</li>
176
<li class="spaced">��Ҫʹ��<code>optional_variable()</code>������ʹ��<code>optional_param()</code>�����������������������ѡ����ȷ��PARAM_XXXXֵ��ʹ��<code>set_default()</code>�����������ñ����Ŀ�ѡֵ��</li>
177
<li class="spaced">��Ҫʹ��<code>require_variable()</code>������ʹ��<code>required_param()</code>�������������������ѡ����ȷ��PARAM_XXXXֵ��</li>
178
<li class="spaced">��Ҫʹ��<code>$_GET</code>��<code>$_POST</code>��<code>$_REQUEST</code>������������Ҫʹ�ø����ʵ�<code>required_param()</code>��<code>optional_param()</code></li>
179
<li class="spaced">���һ������ʱ����Ҫʹ����<code>if (isset($_GET['something']))</code>�����Ĵ��롣����ʹ�����磺<code>$something = optional_param( 'something','',PARAM_ALPHA )</code>��������<code>empty()</code>��������</li>
180
<li class="spaced">���κο��ܵ�����£��������е�<code>required_param()</code>��<code>optional_param()</code>�������ı�����ʼ��һ�����ÿ���ļ��Ŀ�ͷ���������ǻ�����ױ��ҵ���</li>
181
<li class="spaced">ʹ�á�sesskey�����Ʊ������������������������������ɱ�����ʱ��Ҫ����<code><input type="hidden" name="sesskey" value="<?php echo sesskey(); ?>" /></code>��ʹ�ñ���ʱ��<code>if (!confirm_sesskey()) {error('Bad Session Key');}</code>��顣</li>
182
<li class="spaced">�����ļ���������<code>clean_filename()</code>���������ˡ���������Ѿ��ʵ���ʹ��<code>required_param()</code>��<code>optional_param()���˴�����������</code>
184
<li class="spaced">�ٰ��κδ����ݿ����������д��֮ǰ����������<code>addslashes()</code>������һ���������ݶ��������<code>addslashes_object()</code>һ������ȫ������ϡ�</li>
185
<li class="spaced">���κο��ܵ�����£��������ݿ�����ݱ�������<code>POST</code>���ݣ�Ҳ�������Ա��������ݣ�������������<code>GET</code>���ݣ�Ҳ��������URL�����ݣ���</li>
186
<li class="spaced">����ܱ���Ļ�����Ҫʹ������<code>$_SERVER</code>�����ݡ��������ֲ�Դ�������</li>
187
<li class="spaced">�������ط�û����������£�ȷ������д�����ݿ�������Ѿ���<code>clean_param</code> ������������������������ͣ�ʹ����ǡ����PARAM_XXXX��</li>
188
<li class="spaced">�������д���Զ����SQL���룬��ȷ��������ȷ�ġ�����С������ֵ��Χ��Ҫ��ʧ���ţ�����ܻ����SQL��ע�롱©����</li>
189
<li class="spaced">��<strong>ÿһ</strong>ҳ������е����ݣ�������д�����ݿ�����ݣ�����Ҫ���λ����������ط��Ѿ�����ˡ�</li>
191
<p align="CENTER"><font size="1"><a href="." target="_top">Moodle�ĵ�</a></font></p>
192
<p align="center"><font size="1">Version: $Id$</font></p>