Compare commits
528 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5946a43ee9 | |||
| cb62c00ad2 | |||
| 960a79887b | |||
| 67f0b4ccb0 | |||
| a8afb411a0 | |||
| c585fa1707 | |||
| 211ee674b3 | |||
| 0ee8d9203e | |||
| 2138dcf29d | |||
| 153cc356cb | |||
| 86c5e69a36 | |||
| 690b1941fc | |||
| e6874d9ff6 | |||
| 95e143f4cc | |||
| 7beb45d8a0 | |||
| bd823371c9 | |||
| e11c24bc0e | |||
| 256d0b7b47 | |||
| 6c506ca744 | |||
| 87a2fa0338 | |||
| f690562f81 | |||
| 3260de6780 | |||
| 4a91f52161 | |||
| 1ea355a851 | |||
| ed4ed0939b | |||
| 2be8b28f3d | |||
| 255f2cc06e | |||
| 4313922f65 | |||
| e7b7951c0a | |||
| 23877f9407 | |||
| 6673b085a9 | |||
| 3d27c2c201 | |||
| f6b502d246 | |||
| eb8eb6abc5 | |||
| cef08a3a99 | |||
| e870c78bfc | |||
| 72c578ca4d | |||
| cc3b8c75de | |||
| cbb8979fa9 | |||
| e7311a0a56 | |||
| 3bd87406ba | |||
| e4814d7f63 | |||
| 6fad164f96 | |||
| f6f0e53de0 | |||
| ffc5a2c03a | |||
| cd63d77e08 | |||
| 377f3c9ee4 | |||
| f31edeeb88 | |||
| e331eb06fd | |||
| 5ecb135644 | |||
| 6d86b5dc16 | |||
| ff99ff634e | |||
| ede685a73e | |||
| 66197f51cc | |||
| e1c91df09b | |||
| 34a4dfee10 | |||
| 2383cadbab | |||
| 38f03e5a5c | |||
| 20a3006529 | |||
| 466a69bc42 | |||
| e909c8d090 | |||
| 305ce2b33c | |||
| 840aaba179 | |||
| 2a3cda192e | |||
| f166d2e295 | |||
| 36df40d60e | |||
| 4db9d14dad | |||
| caadf00909 | |||
| fa452aa6f0 | |||
| 15657235ef | |||
| 2ad604fe3c | |||
| 8e44daa729 | |||
| 912c058651 | |||
| be025399d8 | |||
| 629e937352 | |||
| 09a4ce320c | |||
| 4168490e17 | |||
| 7bcb78cee3 | |||
| 51cc244d12 | |||
| e5dfd0f31f | |||
| 2ee53d15ff | |||
| f38aa1ef23 | |||
| f1edd1922f | |||
| 3bf89042f5 | |||
| b55a466b60 | |||
| c74a0ca5c2 | |||
| f9a9499a62 | |||
| 60f49825a5 | |||
| 16c0beb00b | |||
| 4b9b2f0fe4 | |||
| 8db3eaddb2 | |||
| c1d5710174 | |||
| 9b21d119c0 | |||
| 7b1593f040 | |||
| 7e67441553 | |||
| 0be05df068 | |||
| 958aafe2b4 | |||
| 9f7fd360dd | |||
| aef47af493 | |||
| 291febf79c | |||
| 18a322490d | |||
| cf094bd4b4 | |||
| 02a72a36f1 | |||
| 2166bb5d7a | |||
| d2e186ed71 | |||
| 3fe3851d57 | |||
| a0bac19d81 | |||
| 57243ffe02 | |||
| 177e50ed98 | |||
| 369622db97 | |||
| 08beb3327b | |||
| e757af1662 | |||
| f9ef3d77d1 | |||
| 11a3c89a8f | |||
| b0e999e646 | |||
| 92674bf8bb | |||
| 3a5a667386 | |||
| 242ee0175f | |||
| 6c3e8758c6 | |||
| 3d58a8b50b | |||
| 4282d7dde2 | |||
| 2a439ba7f6 | |||
| e1ac42728d | |||
| 269eed6448 | |||
| 952489e16c | |||
| 417e6821bd | |||
| 6e770b179c | |||
| da19305885 | |||
| 9809249838 | |||
| e34d323730 | |||
| 858deff0b4 | |||
| d0ac6bc236 | |||
| 3486b7bee5 | |||
| 19c4f55c43 | |||
| 5f652ac38e | |||
| c5e900c8aa | |||
| 90892fd130 | |||
| a8a372ccf7 | |||
| 735715779b | |||
| d6aa0e227e | |||
| 18de986eb1 | |||
| 8bff8ad835 | |||
| b425749fc3 | |||
| 7ce20f09cb | |||
| df2898fe3b | |||
| 09aebc9468 | |||
| 92a3c884f5 | |||
| 7520988bb3 | |||
| 0a7994a0ba | |||
| ab9d6d1e0e | |||
| 55c2620784 | |||
| 6b069ecef1 | |||
| 49dcdd1800 | |||
| d197118510 | |||
| 8d94f5a08e | |||
| 2a2c9725bb | |||
| 2834cce0d9 | |||
| 31e7516eb5 | |||
| d0030cf051 | |||
| 109613b290 | |||
| ff80e012b0 | |||
| edecd16dd2 | |||
| 10b9291c92 | |||
| 7bd1aa1d64 | |||
| 6a952ce7a0 | |||
| 2eaa2e2861 | |||
| 579ddad5ef | |||
| 5c0ee23cc3 | |||
| a5e1f35c66 | |||
| 5a84640bd1 | |||
| 3df49694a9 | |||
| 901f9f74e1 | |||
| e1947876ec | |||
| aed0b713fe | |||
| b2a5ee1822 | |||
| 87aa027831 | |||
| a5a5a129b7 | |||
| 66dc0c39d0 | |||
| 1a072208ce | |||
| 75096957ca | |||
| d86cdde20b | |||
| 0c074a4f2e | |||
| 2ec69fce6a | |||
| 1581d9b1d8 | |||
| 696f751f7a | |||
| c828070ac9 | |||
| cd68ebfaef | |||
| 84f98bc8a9 | |||
| c9dda99059 | |||
| d2aad0a838 | |||
| c0f4f066c2 | |||
| 113bb2a26b | |||
| a9ff3d4cdf | |||
| 541117b6cb | |||
| 4b9318947c | |||
| 213e8cc67d | |||
| c4a4cae062 | |||
| da061bb457 | |||
| 73bb08357c | |||
| d2fce839b6 | |||
| 0095d5cd3c | |||
| fa7d70c8c1 | |||
| de909d238d | |||
| bc0750aaae | |||
| 0bdce31166 | |||
| b54cd88f34 | |||
| b1f2587a65 | |||
| 80f4bff33e | |||
| 2cfd9e4dc9 | |||
| 66ea86f3b8 | |||
| f3632647e7 | |||
| 8e7ad7283b | |||
| f8e4809a03 | |||
| 14d8c0b409 | |||
| 55c0c75c03 | |||
| 36658798dc | |||
| 3a506ca299 | |||
| 765814def3 | |||
| f01826ee39 | |||
| c0d6bcc508 | |||
| 31f0900c61 | |||
| e858f9da96 | |||
| 2a86e7a1a5 | |||
| 730fd187c8 | |||
| 518d37151d | |||
| b2a82ad65c | |||
| 7d3e684292 | |||
| 75ebf527c9 | |||
| a08db54a84 | |||
| 68605943ae | |||
| fcad13730e | |||
| abf59b15bd | |||
| 70c476a79e | |||
| 7d95ed97c7 | |||
| 8dbed6be60 | |||
| 05d09aa1f9 | |||
| a168bd029f | |||
| 7b5baeb7de | |||
| 4b76aa52d0 | |||
| 5251893741 | |||
| 5c958cabcc | |||
| 168fe1427a | |||
| 3eb4b24fed | |||
| 59857bd7a8 | |||
| 3763e302ff | |||
| 0cb8bf3bcd | |||
| 3a178d04d1 | |||
| 4bfa92e714 | |||
| 53e61ab906 | |||
| 0ebe961a18 | |||
| a1122760d0 | |||
| 39df7c9774 | |||
| 2e60a1ace3 | |||
| b4ab71a6db | |||
| 7fbd6b1c0b | |||
| e99af4408f | |||
| cc300ceb39 | |||
| 8dcea3963a | |||
| dfb6e4ac3e | |||
| 0d399dc585 | |||
| cd1c4d2321 | |||
| 555bdfc813 | |||
| d51c583d3c | |||
| ebf2e54dd6 | |||
| 5ea4745d18 | |||
| 077f9a67d0 | |||
| 34a0cda676 | |||
| b35f948b97 | |||
| 2802ac6ec7 | |||
| 2a691b9439 | |||
| 91ac0405fa | |||
| 3ef909ca58 | |||
| b362b85e99 | |||
| 004db95014 | |||
| f1f901c3ea | |||
| 9450cef212 | |||
| f25f1e1b66 | |||
| 57f3a4a564 | |||
| 41e1986cdc | |||
| 8f1cba2858 | |||
| faebaf0f40 | |||
| ab998e5d07 | |||
| 43dc944611 | |||
| ef5e5d87dc | |||
| 4c2bcc7a1b | |||
| 9d389960e6 | |||
| d7ea4a225d | |||
| 96dad0de43 | |||
| 7104dfc9ef | |||
| b839163528 | |||
| d66ee54d8d | |||
| 04ad372d93 | |||
| 632d640751 | |||
| 4c701e6f54 | |||
| 38ff0e9f1f | |||
| 9ec9ff5dc5 | |||
| 89e71738b5 | |||
| 9806ae9403 | |||
| d68c814679 | |||
| d0b12add53 | |||
| cb011cfd0a | |||
| f74a4a79f2 | |||
| 6321ab8df6 | |||
| 3f5331eb19 | |||
| 49f5bb0527 | |||
| ed4567d69d | |||
| 74ed07ac86 | |||
| 3182314d5c | |||
| 17b365f829 | |||
| 3d98b29d51 | |||
| 83e9a09e34 | |||
| 8cea3a3974 | |||
| a28af1fe74 | |||
| b3ac9d9b85 | |||
| fd8dfb5a88 | |||
| 1e22462d01 | |||
| 7fd6bb7cf6 | |||
| 380871ace1 | |||
| a46b910e00 | |||
| 43afb07b98 | |||
| 3e8540f4fe | |||
| 2b6277bc51 | |||
| affb83a226 | |||
| 1fdaab8d76 | |||
| a58977a2a0 | |||
| adcb3ac53d | |||
| 7c3cf7f3ef | |||
| 096dc19f3b | |||
| 8538258121 | |||
| 66c95f3224 | |||
| 6968fd6656 | |||
| 45aa6d563c | |||
| 274f62e6d5 | |||
| b4ead712f2 | |||
| d578afc883 | |||
| 7684ce4b32 | |||
| 1d3ff0711f | |||
| 3446205d44 | |||
| 88491cacba | |||
| bbe3efd8e1 | |||
| 66ea15f3cc | |||
| 7bca79576f | |||
| a30cfe1685 | |||
| 54634efcba | |||
| a2b71b6d71 | |||
| 03af47eee3 | |||
| 3bf90da5f6 | |||
| 01a086c3dd | |||
| ae2e0dddad | |||
| bb09fb1157 | |||
| 3869a2ac3d | |||
| 20aa2257dc | |||
| 93e0f85d6c | |||
| a16c2180d0 | |||
| 562bbe9074 | |||
| a5a4cd60cb | |||
| 5319c6adf6 | |||
| bcf7ee7a97 | |||
| 94cfe58b19 | |||
| 1774e33325 | |||
| 13fb5ec074 | |||
| effbcca27c | |||
| b92ea9450c | |||
| c69ce08b49 | |||
| 25fa226dac | |||
| 32b4b9746a | |||
| 3f63219688 | |||
| e6b9ee042d | |||
| dccd16712a | |||
| c07daf5bbc | |||
| 6b281f1fec | |||
| 7a702c34ea | |||
| 6abee98964 | |||
| 1e4d8ed1d2 | |||
| 08056730fa | |||
| ae7aafeb53 | |||
| 1be8717562 | |||
| 4d0dde9159 | |||
| 74944b734d | |||
| e80e60a6b2 | |||
| 76dbe04f4a | |||
| 7ff602b225 | |||
| a9858957e1 | |||
| 7185779262 | |||
| af90e74e59 | |||
| 37e9df195f | |||
| c94e1535f8 | |||
| 7b5271354b | |||
| a7b9e8bc9f | |||
| 1a72314d0f | |||
| c46df33643 | |||
| 73761dc9be | |||
| ddd9a8969b | |||
| 7ef459ebed | |||
| e31309ed79 | |||
| 91d5dbf3eb | |||
| 122cffc938 | |||
| 0c6561819b | |||
| 4ea0fc0f1a | |||
| a789fb73f4 | |||
| ceb7ea7550 | |||
| 99b5e56207 | |||
| 45c58cb7ad | |||
| 8e652a3660 | |||
| db95b60308 | |||
| 0a26320532 | |||
| ba2e5d7347 | |||
| 7aa0bb8886 | |||
| d6935726ed | |||
| 782e7594ec | |||
| e5c2a9e441 | |||
| bc44a3a0ad | |||
| 503eced327 | |||
| 8f66d49a77 | |||
| 28e1e8b912 | |||
| cdf6a3ca28 | |||
| cd3fccff00 | |||
| 2415d953f0 | |||
| d037d3a28a | |||
| 59a7100ccf | |||
| 2c26c98575 | |||
| 09442e5067 | |||
| 5b54db6ee4 | |||
| c2bc0a4573 | |||
| 40a1d986f9 | |||
| b4d7002e66 | |||
| 774ab66002 | |||
| 7fb8331432 | |||
| fa8e1a34ec | |||
| 601212b8d2 | |||
| a48bf3ecd4 | |||
| 12bace2439 | |||
| d21fef3a02 | |||
| c646b70d66 | |||
| 7c6addde73 | |||
| 09ba0c8a32 | |||
| c5e66fc9da | |||
| 19505e1333 | |||
| 19967d6c3d | |||
| 55b8ac3107 | |||
| e2d8972553 | |||
| 45f21575aa | |||
| f5e88127d8 | |||
| f6ab73667e | |||
| e98e09150e | |||
| 403bb50d7b | |||
| 97ea24e307 | |||
| a3cbb7539d | |||
| a0376793c2 | |||
| 1903dd11d8 | |||
| ef9955b081 | |||
| 5e391d346d | |||
| 90ebcad978 | |||
| 31410e9a16 | |||
| cf38360f58 | |||
| 42389890d5 | |||
| f08cc8bbfe | |||
| e45e8d26da | |||
| 5be2f47cf4 | |||
| 0eae8049a0 | |||
| cffbaff2dc | |||
| d8e69c5c6d | |||
| 9febf87563 | |||
| d3fcd70b3d | |||
| 8aed46c7eb | |||
| e92ea3d85f | |||
| 5a83a0a84e | |||
| e181f6ab00 | |||
| 0c71c9ae0e | |||
| a3f0817b28 | |||
| 7f6689e4e0 | |||
| e6e769a9ea | |||
| 6621349c31 | |||
| 088a2b71fb | |||
| f144c3054a | |||
| 44e2d2bb42 | |||
| fedc147ef7 | |||
| 7b1c0ce35c | |||
| 2f4de5e353 | |||
| 26114038cc | |||
| 54824c737d | |||
| 0c377177ed | |||
| 2560d13338 | |||
| f06c1d62dc | |||
| c21c671d74 | |||
| 6e4c09db98 | |||
| 718deefdc8 | |||
| 293eae6863 | |||
| 5a34779307 | |||
| ca4f8eb868 | |||
| 4ea53d802f | |||
| ee1ddef672 | |||
| 915d17bb1e | |||
| 670fddf176 | |||
| 9ab327d6f7 | |||
| 5021d6acef | |||
| 6e83bc8ea8 | |||
| 40b13d9ff4 | |||
| 248e837d24 | |||
| 3f8247c2ea | |||
| ef4743b9bf | |||
| 57fa46e2a2 | |||
| 9268aa19ec | |||
| 8865d49d19 | |||
| ebea4e27cc | |||
| 1864143c38 | |||
| 3335f6fbc6 | |||
| 6f5db3b457 | |||
| 19a55d6776 | |||
| b0cb5e2297 | |||
| 7b3be1b12d | |||
| 0ab851127f | |||
| 729be1ab37 | |||
| 793f20b885 | |||
| bd2ad32fba | |||
| a628dad3a9 | |||
| 882408f3be | |||
| 4a62a65900 | |||
| 28b1e3ecec | |||
| ab24749566 | |||
| 55e078c0fa | |||
| 7363ff911f | |||
| babab0e100 | |||
| 4b3c8ea7c4 | |||
| 407a39277c | |||
| 55dd0d3021 | |||
| ee23de06c1 | |||
| fec6290385 |
@@ -30,3 +30,4 @@ in the "doc" directory or found at http://moodle.com/doc/.
|
||||
|
||||
Cheers!
|
||||
Martin Dougiamas
|
||||
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
<H3> Release notes for Moodle 1.0.6</H3>
|
||||
|
||||
<P> Major changes in this release (since 1.0.5): </P>
|
||||
|
||||
<UL><DL>
|
||||
<DT> New feature - WYSIWYG Text editing!
|
||||
<DD> A WYSIWYG text editor has been added to many of the forms in Moodle. These are currently
|
||||
only visible when using Microsoft Internet Explorer 5.5 or later - other browsers see the
|
||||
normal forms exactly as before.<BR><BR>
|
||||
|
||||
<DT> New feature - Quiz module!
|
||||
<DD> Finally, the most requested new module is here! Multiple choice, short answer, and true-false
|
||||
questions with automatic marking, multiple attempts, teacher regrading and many other features.
|
||||
Questions are stored in a categorised database, and may be "published" to other courses.<BR><BR>
|
||||
|
||||
<DT> New feature - Grade manager!
|
||||
<DD> A new tool has been added for teachers to see all grades for a course on one page.
|
||||
You can also download/export grades as a tab-separated text file or an Excel
|
||||
Spreadsheet. In future more features will be added to this page like sorting, manual
|
||||
columns and calculations, but it's still pretty useful right now.<BR><BR>
|
||||
|
||||
<DT> New feature - LDAP authentication!
|
||||
<DD> Moodle can now authenticate against external directories that use the
|
||||
LDAP protocol (including Novell etc). Many thanks to Petri Asikainen for
|
||||
developing this authentication plug-in!<BR><BR>
|
||||
|
||||
<DT> New feature - New smilies
|
||||
<DD> Many new smilies have been added, and are now also accessible using a GUI in the text editor.<BR><BR>
|
||||
|
||||
<DT> Improved text editing
|
||||
<DD> You can now include all major HTML tags in all texts. This is now safe because
|
||||
of newly added functionality that strips all Javascript and faulty tags from texts
|
||||
before they can cause security or display problems.<BR><BR>
|
||||
|
||||
<DT> Languages
|
||||
<DD> German and Italian have been added! Many thanks to the translators (see the credits).<BR><BR>
|
||||
|
||||
<DT> Reading module => Resource module
|
||||
<DD> After much thought and a vote of support (21 "yes" to 6 "no") on the "Using Moodle"
|
||||
web site I changed the name of the "reading" module to "resource" (at the code level
|
||||
and also the language packs). It was better to do this earlier than later.
|
||||
This more generic name will be more meaningful to more people and opens the way to
|
||||
some real development on a resource library.
|
||||
But I don't want to ever change a module name again! :-)
|
||||
If you have any hard-coded URLs pointing to readings that you don't want to break,
|
||||
you can add a line like this to your Apache httpd.conf to redirect them:
|
||||
<B><CODE>Redirect /mod/reading http://yourserver.com/mod/resource</CODE></B><BR><BR>
|
||||
<FONT COLOR=RED>Note: if upgrading to 1.0.6 you may have some "reading" errors in "Recent activity" ... logging
|
||||
out and then logging in again will fix this</FONT><BR><BR>
|
||||
|
||||
<DT> Other additions
|
||||
<DD> An admin script to totally delete the Moodle data directory has been included (admin/delete.php)
|
||||
for people who need to tear down a Moodle installation but don't have root access on their
|
||||
server.<BR><BR>
|
||||
|
||||
<DT> Miscellaneous
|
||||
<DD> Many small improvements have been made to the interface, and many small bugs have been fixed.
|
||||
Some examples:
|
||||
<UL>
|
||||
<LI> Big "Edit this page" buttons at the top of pages (replacing the tiny icon)
|
||||
<LI> LDAP authentication module (thanks to Petri)
|
||||
<LI> Authentication from external sources can now import any fields
|
||||
<LI> Student assignment list now shows submission status properly
|
||||
<LI> Default language for users is now the site language
|
||||
<LI> Users have a 'Change Password' button on their profile page
|
||||
<LI> Journals that need teacher feedback are highlighted
|
||||
<LI> More documentation and more context help buttons
|
||||
<LI> Database-specific upgrade code
|
||||
<LI> Uses character-set codes to make the browser do the right thing
|
||||
<LI> User's name in footer is now a link
|
||||
<LI> News and social forums are now editable
|
||||
<LI> Forums that don't allow posting don't have uneccessary "discuss" links
|
||||
<LI> Improved algorithm for shortening posts in forum listings
|
||||
<LI> Choice module now allows up to six choices
|
||||
</UL>
|
||||
|
||||
</DL></UL>
|
||||
|
||||
+66
-20
@@ -9,34 +9,80 @@ information in files called version.php. There is
|
||||
one of these for the main tables (in this directory)
|
||||
and one for each module.
|
||||
|
||||
When upgrading from any previous version of Moodle,
|
||||
all you normally will need to do is this:
|
||||
In the following instructions I will include some
|
||||
sample Unix shell commands - there are obviously
|
||||
graphical ways to do the same things.
|
||||
|
||||
1) Make a backup of your current Moodle installation
|
||||
in the unlikely case that something goes wrong and
|
||||
you need to restore the older version.
|
||||
|
||||
2a) If you are using CVS, just go the root directory
|
||||
and type "cvs update -d" (or whatever the equivalent
|
||||
is on your non-Unix server).
|
||||
Before the upgrade
|
||||
------------------
|
||||
|
||||
OR
|
||||
Before upgrading any version of Moodle, I recommend
|
||||
making a backup copy of the moodle directory, your
|
||||
data directory and your database, to guard against
|
||||
the very unlikely event that something in the upgrade
|
||||
goes wrong.
|
||||
|
||||
2b) Remove the current installation, and then unpack
|
||||
the new tar or zip file in the same location.
|
||||
Make sure you copy the config.php file from your
|
||||
old installion to the new installation (or make a
|
||||
new one by editing config-dist.php).
|
||||
At the very least, make a copy of your config.php file
|
||||
and any languages, custom themes or plug-ins you have
|
||||
added to Moodle.
|
||||
|
||||
|
||||
Upgrading the files using CVS
|
||||
--------------------------------
|
||||
|
||||
If you are using CVS, just go to the Moodle root
|
||||
directory and update the files:
|
||||
|
||||
cvs update -dP
|
||||
|
||||
If you have been editing Moodle files watch the
|
||||
messages very closely for possible conflicts
|
||||
(and consider sending your fixes in to me as patches :)
|
||||
|
||||
|
||||
Upgrading the files using a downloaded archive
|
||||
-------------------------------------------------
|
||||
|
||||
Rename the current installation directory (as backup)
|
||||
|
||||
mv moodle moodle.backup
|
||||
|
||||
and then unpack the new tar or zip file into the old
|
||||
location. DO NOT OVERWRITE AN OLD INSTALLATION
|
||||
unless you know what you are doing - sometimes old
|
||||
files can cause problems in new installations.
|
||||
|
||||
tar xvzf moodle-1.0.6.tgz
|
||||
|
||||
Next, copy the config.php file from your old installation
|
||||
into the new installation (or make a new one by editing
|
||||
config-dist.php). If you have created new themes or
|
||||
other plug-ins then make sure you copy those back too.
|
||||
|
||||
cp moodle.backup/config.php moodle
|
||||
cp -pr moodle.backup/theme/mytheme moodle/theme/mytheme
|
||||
|
||||
|
||||
Finishing the upgrade
|
||||
---------------------
|
||||
|
||||
Visit the admin page of your installation to complete
|
||||
the upgrade (eg http://example.com/moodle/admin).
|
||||
|
||||
It doesn't matter if you are logged in as admin or not.
|
||||
|
||||
Moodle will automatically detect the new version
|
||||
and perform any database or filesystem upgrades that
|
||||
might be necessary.
|
||||
|
||||
If all goes well (no error messages) then you can just
|
||||
go on using the new version!
|
||||
|
||||
3) Visit the home page of your installation. Moodle
|
||||
will automatically detect the new version and perform
|
||||
any database upgrades that might be necessary.
|
||||
|
||||
If all goes well (no error messages) then you can just
|
||||
go on using Moodle normally.
|
||||
|
||||
If you have problems with this procedure, let me know.
|
||||
|
||||
Cheers,
|
||||
Cheers, and have fun!
|
||||
Martin
|
||||
|
||||
|
||||
@@ -0,0 +1,196 @@
|
||||
<FORM METHOD="post" action="config.php" NAME="form">
|
||||
|
||||
<TABLE cellpadding=9 cellspacing=0 >
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>auth:</TD>
|
||||
<TD>
|
||||
<? $modules = get_list_of_plugins("auth");
|
||||
foreach ($modules as $module) {
|
||||
$options[$module] = $module;
|
||||
}
|
||||
choose_from_menu ($options, "auth", $config->auth, "", "", "");
|
||||
formerr($err["auth"]);
|
||||
unset($options);
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configauth") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>lang:</TD>
|
||||
<TD>
|
||||
<? choose_from_menu (get_list_of_languages(), "lang", $config->lang, "", "", "");
|
||||
formerr($err["lang"]);
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configlang") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>langdir:</TD>
|
||||
<TD>
|
||||
<? unset($options);
|
||||
$options["LTR"] = get_string("langltr");
|
||||
$options["RTL"] = get_string("langrtl");
|
||||
|
||||
choose_from_menu ($options, "langdir", $config->langdir, "", "", "");
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configlangdir") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>locale:</TD>
|
||||
<TD>
|
||||
<INPUT NAME=locale TYPE=text SIZE=10 VALUE="<?=$config->locale?>">
|
||||
<? formerr($err["locale"]); ?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configlocale") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>smtphosts:</TD>
|
||||
<TD>
|
||||
<INPUT NAME=smtphosts TYPE=text SIZE=30 VALUE="<?=$config->smtphosts?>">
|
||||
<? formerr($err["smtphosts"]); ?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configsmtphosts") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>gdversion:</TD>
|
||||
<TD>
|
||||
<? unset($options);
|
||||
$options[0] = get_string("gdnot");
|
||||
$options[1] = get_string("gd1");
|
||||
$options[2] = get_string("gd2");
|
||||
|
||||
$installed = check_gd_version();
|
||||
|
||||
choose_from_menu ($options, "gdversion", $installed, "", "", "");
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configgdversion") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>htmleditor:</TD>
|
||||
<TD>
|
||||
<? unset($options);
|
||||
$options[0] = get_string("allownot");
|
||||
$options[1] = get_string("allow");
|
||||
choose_from_menu ($options, "htmleditor", $config->htmleditor, "", "", "");
|
||||
formerr($err["htmleditor"]);
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("confightmleditor") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>maxeditingtime:</TD>
|
||||
<TD>
|
||||
<? $options[3600] = get_string("numminutes", "", 60);
|
||||
$options[2700] = get_string("numminutes", "", 45);
|
||||
$options[1800] = get_string("numminutes", "", 30);
|
||||
$options[900] = get_string("numminutes", "", 15);
|
||||
$options[300] = get_string("numminutes", "", 5);
|
||||
$options[60] = get_string("numminutes", "", 1);
|
||||
|
||||
choose_from_menu ($options, "maxeditingtime", $config->maxeditingtime, "", "", "");
|
||||
unset($options);
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configmaxeditingtime") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>longtimenosee:</TD>
|
||||
<TD>
|
||||
<? $options[1000] = get_string("numdays", "", 1000);
|
||||
$options[365] = get_string("numdays", "", 365);
|
||||
$options[180] = get_string("numdays", "", 180);
|
||||
$options[150] = get_string("numdays", "", 150);
|
||||
$options[120] = get_string("numdays", "", 120);
|
||||
$options[90] = get_string("numdays", "", 90);
|
||||
$options[60] = get_string("numdays", "", 60);
|
||||
$options[30] = get_string("numdays", "", 30);
|
||||
$options[7] = get_string("numdays", "", 7);
|
||||
|
||||
choose_from_menu ($options, "longtimenosee", $config->longtimenosee, "", "", "");
|
||||
unset($options);
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configlongtimenosee") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>zip:</TD>
|
||||
<TD>
|
||||
<INPUT name=zip TYPE=text SIZE=30 VALUE="<?=$config->zip?>">
|
||||
<? formerr($err["zip"]); ?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configzip") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>unzip:</TD>
|
||||
<TD>
|
||||
<INPUT name=unzip TYPE=text SIZE=30 VALUE="<?=$config->unzip?>">
|
||||
<? formerr($err["unzip"]); ?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configunzip") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>slasharguments:</TD>
|
||||
<TD>
|
||||
<? $options[0] = "file.php?file=/pic.jpg";
|
||||
$options[1] = "file.php/pic.jpg";
|
||||
|
||||
$installed = check_gd_version();
|
||||
|
||||
choose_from_menu ($options, "slasharguments", $config->slasharguments, "", "", "");
|
||||
unset($options);
|
||||
?>
|
||||
</TD>
|
||||
<TD>
|
||||
<? print_string("configslasharguments") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>proxyhost:</TD>
|
||||
<TD>
|
||||
<INPUT name=proxyhost TYPE=text SIZE=30 VALUE="<?=$config->proxyhost?>">
|
||||
<? formerr($err["proxyhost"]); ?>
|
||||
</TD>
|
||||
<TD ROWSPAN=2>
|
||||
<? print_string("configproxyhost") ?>
|
||||
</TD>
|
||||
</TR>
|
||||
<TR VALIGN=TOP>
|
||||
<TD ALIGN=RIGHT><P>proxyport:</TD>
|
||||
<TD>
|
||||
<INPUT name=proxyport TYPE=text SIZE=5 VALUE="<?=$config->proxyport?>">
|
||||
<? formerr($err["proxyport"]); ?>
|
||||
</TD>
|
||||
</TR>
|
||||
|
||||
|
||||
<TR>
|
||||
<TD COLSPAN=3 ALIGN=CENTER>
|
||||
<INPUT TYPE="submit" VALUE="<? print_string("savechanges") ?>"></TD>
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
</FORM>
|
||||
@@ -0,0 +1,110 @@
|
||||
<?PHP // $Id$
|
||||
// config.php - allows admin to edit all configuration variables
|
||||
|
||||
include("../config.php");
|
||||
|
||||
if (isset($phpinfo)) { // For debugging purposes, protected by password
|
||||
if (md5($phpinfo) == "caf9b6b99962bf5c2264824231d7a40c") {
|
||||
if ($site = get_site()) {
|
||||
print_heading("$site->fullname");
|
||||
}
|
||||
phpinfo();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($config)) { // For debugging purposes, protected by password
|
||||
if (md5($config) == "caf9b6b99962bf5c2264824231d7a40c") {
|
||||
if ($site = get_site()) {
|
||||
print_heading("$site->fullname");
|
||||
}
|
||||
$TEMPCFG = $CFG;
|
||||
unset($TEMPCFG->dbuser);
|
||||
unset($TEMPCFG->dbpass);
|
||||
print_object($TEMPCFG);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
if ($site = get_site()) { // If false then this is a new installation
|
||||
require_login();
|
||||
if (!isadmin()) {
|
||||
error("Only the admin can use this page");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// If data submitted, then process and store.
|
||||
|
||||
if (match_referer() && isset($HTTP_POST_VARS)) {
|
||||
|
||||
$config = (object)$HTTP_POST_VARS;
|
||||
|
||||
validate_form($config, $err);
|
||||
|
||||
if (count($err) == 0) {
|
||||
print_header();
|
||||
foreach ($config as $name => $value) {
|
||||
unset($conf);
|
||||
$conf->name = $name;
|
||||
$conf->value = $value;
|
||||
if ($current = get_record("config", "name", $name)) {
|
||||
$conf->id = $current->id;
|
||||
if (! update_record("config", $conf)) {
|
||||
notify("Could not update $name to $value");
|
||||
}
|
||||
} else {
|
||||
if (! insert_record("config", $conf)) {
|
||||
notify("Error: could not add new variable $name !");
|
||||
}
|
||||
}
|
||||
}
|
||||
redirect("index.php", get_string("changessaved"), 1);
|
||||
exit;
|
||||
|
||||
} else {
|
||||
foreach ($err as $key => $value) {
|
||||
$focus = "form.$key";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// Otherwise fill and print the form.
|
||||
|
||||
if (!isset($config)) {
|
||||
$config = $CFG;
|
||||
}
|
||||
|
||||
$stradmin = get_string("administration");
|
||||
$strconfigvariables = get_string("configvariables");
|
||||
|
||||
if ($site) {
|
||||
print_header("$site->shortname: $strconfigvariables", "$site->fullname",
|
||||
"<A HREF=\"index.php\">$stradmin</A> -> $strconfigvariables", "$focus");
|
||||
print_heading($strconfigvariables);
|
||||
} else {
|
||||
print_header();
|
||||
print_heading($strconfigvariables);
|
||||
print_simple_box(get_string("configintro"), "center");
|
||||
echo "<BR>";
|
||||
}
|
||||
|
||||
print_simple_box_start("center", "", "$THEME->cellheading");
|
||||
include("config.html");
|
||||
print_simple_box_end();
|
||||
print_footer();
|
||||
|
||||
exit;
|
||||
|
||||
/// Functions /////////////////////////////////////////////////////////////////
|
||||
|
||||
function validate_form(&$form, &$err) {
|
||||
|
||||
// if (empty($form->fullname))
|
||||
// $err["fullname"] = get_string("missingsitename");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
+2
-6
@@ -43,14 +43,10 @@
|
||||
$cutofftime = $timenow - ($CFG->longtimenosee * 3600 * 24);
|
||||
if ($users = get_records_sql("SELECT u.* FROM user u, user_students s
|
||||
WHERE lastaccess > '0' AND
|
||||
lastaccess < '$cutofftime'
|
||||
lastaccess < '$cutofftime' AND
|
||||
u.id = s.user GROUP BY u.id")) {
|
||||
foreach ($users as $user) {
|
||||
if (delete_records("user_students", "user", $user->id)) {
|
||||
|
||||
// Delete other things ... this should be modular than it is right now:
|
||||
delete_records("forum_subscriptions", "user", $user->id);
|
||||
|
||||
if (unenrol_student($user->id)) {
|
||||
echo "Deleted student enrolment for $user->firstname $user->lastname ($user->id)\n";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
<?PHP //$Id$
|
||||
|
||||
// Deletes the moodledata directory, COMPLETELY!!
|
||||
// BE VERY CAREFUL USING THIS!
|
||||
|
||||
include("../config.php");
|
||||
|
||||
require_login();
|
||||
|
||||
if (!isadmin()) {
|
||||
error("You must be admin to use this script!");
|
||||
}
|
||||
|
||||
$deletedir = $CFG->dataroot; // The directory to delete!
|
||||
|
||||
if (!$sure) {
|
||||
notice_yesno ("Are you completely sure you want to delete everything inside the directory $deletedir ?", "delete.php?sure=yes", "index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!$reallysure) {
|
||||
notice_yesno ("Are you REALLY REALLY completely sure you want to delete everything inside the directory $deletedir (this includes all user images, and any other course files that have been created) ?", "delete.php?sure=yes&reallysure=yes", "index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
/// OK, here goes ...
|
||||
|
||||
delete_subdirectories($deletedir);
|
||||
|
||||
echo "<H1 align=center>Done!</H1>";
|
||||
print_continue($CFG->wwwroot);
|
||||
exit;
|
||||
|
||||
|
||||
function delete_subdirectories($rootdir) {
|
||||
|
||||
$dir = opendir($rootdir);
|
||||
|
||||
while ($file = readdir($dir)) {
|
||||
if ($file != "." and $file != "..") {
|
||||
$fullfile = "$rootdir/$file";
|
||||
if (filetype($fullfile) == "dir") {
|
||||
delete_subdirectories($fullfile);
|
||||
echo "Deleting $fullfile ... ";
|
||||
if (rmdir($fullfile)) {
|
||||
echo "Done.<BR>";
|
||||
} else {
|
||||
echo "FAILED.<BR>";
|
||||
}
|
||||
} else {
|
||||
echo "Deleting $fullfile ... ";
|
||||
if (unlink("$fullfile")) {
|
||||
echo "Done.<BR>";
|
||||
} else {
|
||||
echo "FAILED.<BR>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
closedir($dir);
|
||||
}
|
||||
|
||||
?>
|
||||
+90
-29
@@ -3,11 +3,21 @@
|
||||
require("../config.php");
|
||||
|
||||
|
||||
/// Check that PHP is of a sufficient version
|
||||
|
||||
if ( ! check_php_version("4.1.0") ) {
|
||||
$version = phpversion();
|
||||
print_heading("Sorry, Moodle requires PHP 4.1.0 or later (currently using version $version)");
|
||||
die;
|
||||
}
|
||||
|
||||
/// Check that config.php has been edited
|
||||
|
||||
if ($CFG->wwwroot == "http://example.com/moodle") {
|
||||
error("Moodle has not been configured yet. You need to to edit config.php first.");
|
||||
}
|
||||
|
||||
// Check databases and modules and install as needed.
|
||||
/// Check databases and modules and install as needed.
|
||||
if (! $db->Metatables() ) {
|
||||
|
||||
if (!$agreelicence) {
|
||||
@@ -43,25 +53,26 @@
|
||||
die;
|
||||
}
|
||||
|
||||
// Check version of Moodle code on disk compared with database
|
||||
// and upgrade if possible.
|
||||
/// Check version of Moodle code on disk compared with database
|
||||
/// and upgrade if possible.
|
||||
|
||||
include_once("$CFG->dirroot/version.php"); # defines $version and upgrades
|
||||
include_once("$CFG->dirroot/version.php"); # defines $version
|
||||
include_once("$CFG->dirroot/lib/db/$CFG->dbtype.php"); # defines upgrades
|
||||
|
||||
if ($dversion = get_field("config", "value", "name", "version")) {
|
||||
if ($version > $dversion) { // upgrade
|
||||
$a->oldversion = $dversion;
|
||||
if ($CFG->version) {
|
||||
if ($version > $CFG->version) { // upgrade
|
||||
$a->oldversion = $CFG->version;
|
||||
$a->newversion = $version;
|
||||
$strdatabasechecking = get_string("databasechecking", "", $a);
|
||||
$strdatabasesuccess = get_string("databasesuccess");
|
||||
print_header($strdatabaseupgrades, $strdatabaseupgrades, $strdatabaseupgrades);
|
||||
print_header($strdatabasechecking, $strdatabasechecking, $strdatabasechecking);
|
||||
notify($strdatabasechecking);
|
||||
$db->debug=true;
|
||||
if (upgrade_moodle($dversion)) {
|
||||
if (main_upgrade($CFG->version)) {
|
||||
$db->debug=false;
|
||||
if (set_field("config", "value", "$version", "name", "version")) {
|
||||
if (set_config("version", $version)) {
|
||||
notify($strdatabasesuccess);
|
||||
print_continue("$CFG->wwwroot");
|
||||
print_continue("index.php");
|
||||
die;
|
||||
} else {
|
||||
notify("Upgrade failed! (Could not update version in config table)");
|
||||
@@ -70,22 +81,21 @@
|
||||
$db->debug=false;
|
||||
notify("Upgrade failed! See /version.php");
|
||||
}
|
||||
} else if ($version < $dversion) {
|
||||
} else if ($version < $CFG->version) {
|
||||
notify("WARNING!!! The code you are using is OLDER than the version that made these databases!");
|
||||
}
|
||||
|
||||
} else {
|
||||
$dversion->name = "version";
|
||||
$dversion->value = $version;
|
||||
$strdatabaseupgrades = get_string("databaseupgrades");
|
||||
print_header($strdatabaseupgrades, $strdatabaseupgrades, $strdatabaseupgrades);
|
||||
if (insert_record("config", $dversion)) {
|
||||
notify("You are currently using Moodle version $version");
|
||||
|
||||
if (set_config("version", $version)) {
|
||||
notify("You are currently using Moodle version $version (Release $release)");
|
||||
print_continue("index.php");
|
||||
die;
|
||||
} else {
|
||||
$db->debug=true;
|
||||
if (upgrade_moodle(0)) {
|
||||
if (main_upgrade(0)) {
|
||||
print_continue("index.php");
|
||||
} else {
|
||||
error("A problem occurred inserting current version into databases");
|
||||
@@ -94,10 +104,26 @@
|
||||
}
|
||||
}
|
||||
|
||||
/// Updated human-readable release version if necessary
|
||||
|
||||
// Find and check all modules and load them up or upgrade them if necessary
|
||||
if ($release <> $CFG->release) { // Update the release version
|
||||
$strdatabaseupgrades = get_string("databaseupgrades");
|
||||
print_header($strdatabaseupgrades, $strdatabaseupgrades, $strdatabaseupgrades);
|
||||
print_heading($release);
|
||||
if (!set_config("release", $release)) {
|
||||
notify("ERROR: Could not update release version in database!!");
|
||||
}
|
||||
print_continue("index.php");
|
||||
print_simple_box_start("CENTER");
|
||||
include("$CFG->dirroot/RELEASE.html");
|
||||
print_simple_box_end();
|
||||
print_continue("index.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
/// Find and check all modules and load them up or upgrade them if necessary
|
||||
|
||||
if (!$mods = get_list_of_plugins("mod") ) {
|
||||
error("No modules installed!");
|
||||
}
|
||||
@@ -108,6 +134,7 @@
|
||||
unset($module);
|
||||
|
||||
include_once("$fullmod/version.php"); # defines $module with version etc
|
||||
include_once("$fullmod/db/$CFG->dbtype.php"); # defines upgrading function
|
||||
|
||||
if (!isset($module)) {
|
||||
continue;
|
||||
@@ -166,38 +193,72 @@
|
||||
die;
|
||||
}
|
||||
|
||||
// Set up the overall site name etc.
|
||||
|
||||
/// Insert default values for any important configuration variables
|
||||
|
||||
include_once("$CFG->dirroot/lib/defaults.php");
|
||||
|
||||
$CFG = (array)$CFG;
|
||||
foreach ($defaults as $name => $value) {
|
||||
if (!isset($CFG[$name])) {
|
||||
$config->name = $name;
|
||||
$config->value = $CFG[$name] = $value;
|
||||
insert_record("config", $config);
|
||||
$configchange = true;
|
||||
}
|
||||
}
|
||||
$CFG = (object)$CFG;
|
||||
|
||||
/// If any new configurations were found then send to the config page to check
|
||||
|
||||
if ($configchange) {
|
||||
redirect("config.php");
|
||||
}
|
||||
|
||||
/// Set up the overall site name etc.
|
||||
if (! $site = get_site()) {
|
||||
redirect("site.php");
|
||||
}
|
||||
|
||||
/// Set up the admin user
|
||||
if (! record_exists_sql("SELECT * FROM user_admins")) { // No admin user yet
|
||||
redirect("user.php");
|
||||
}
|
||||
|
||||
/// Check for valid admin user
|
||||
if (!isadmin()) {
|
||||
if (! record_exists_sql("SELECT * FROM user_admins")) {
|
||||
redirect("user.php");
|
||||
}
|
||||
error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/");
|
||||
error("You need to be an admin user to use this page.", "$CFG->wwwroot/login/index.php");
|
||||
}
|
||||
|
||||
|
||||
// At this point, the databases exist, and the user is an admin
|
||||
/// At this point everything is set up and the user is an admin, so print menu
|
||||
|
||||
$stradministration = get_string("administration");
|
||||
print_header("$site->fullname: $stradministration","$site->fullname: $stradministration", "$stradministration");
|
||||
print_header("$site->shortname: $stradministration","$site->fullname: $stradministration", "$stradministration");
|
||||
|
||||
$table->head = array (get_string("site"), get_string("courses"), get_string("users"));
|
||||
$table->align = array ("CENTER", "CENTER", "CENTER");
|
||||
$table->data[0][0] = "<P><A HREF=\"site.php\">".get_string("sitesettings")."</A></P>".
|
||||
$table->data[0][0] = "<P><A HREF=\"config.php\">".get_string("configvariables")."</A></P>".
|
||||
"<P><A HREF=\"site.php\">".get_string("sitesettings")."</A></P>".
|
||||
"<P><A HREF=\"../course/log.php?id=$site->id\">".get_string("sitelogs")."</A></P>".
|
||||
"<P><A HREF=\"../theme/index.php\">".get_string("choosetheme")."</A></P>";
|
||||
"<P><A HREF=\"../theme/index.php\">".get_string("choosetheme")."</A></P>".
|
||||
"<P><A HREF=\"lang.php\">".get_string("checklanguage")."</A></P>";
|
||||
if (file_exists("$CFG->dirroot/admin/$CFG->dbtype")) {
|
||||
$table->data[0][0] .= "<P><A HREF=\"$CFG->dbtype/\">".get_string("managedatabase")."</A></P>";
|
||||
}
|
||||
$table->data[0][1] = "<P><A HREF=\"../course/edit.php\">".get_string("addnewcourse")."</A></P>".
|
||||
"<P><A HREF=\"../course/teacher.php\">".get_string("assignteachers")."</A></P>".
|
||||
"<P><A HREF=\"../course/delete.php\">".get_string("deletecourse")."</A></P>";
|
||||
"<P><A HREF=\"../course/delete.php\">".get_string("deletecourse")."</A></P>".
|
||||
"<P><A HREF=\"../course/categories.php\">".get_string("categories")."</A></P>";
|
||||
$table->data[0][2] = "<P><A HREF=\"user.php?newuser=true\">".get_string("addnewuser")."</A></P>".
|
||||
"<P><A HREF=\"user.php\">".get_string("edituser")."</A></P>";
|
||||
|
||||
print_table($table);
|
||||
|
||||
print_footer();
|
||||
print_heading("Moodle $CFG->release ($CFG->version)", "CENTER", 1);
|
||||
|
||||
print_footer($site);
|
||||
|
||||
?>
|
||||
|
||||
|
||||
|
||||
+273
@@ -0,0 +1,273 @@
|
||||
<?PHP // $Id$
|
||||
|
||||
require("../config.php");
|
||||
|
||||
optional_variable($mode, "");
|
||||
|
||||
require_login();
|
||||
|
||||
if (!isadmin()) {
|
||||
error("You need to be admin to edit this page");
|
||||
}
|
||||
|
||||
if (! $site = get_site()) {
|
||||
error("Site not defined!");
|
||||
}
|
||||
|
||||
$stradministration = get_string("administration");
|
||||
$strchecklanguage = get_string("checklanguage");
|
||||
$strcurrentlanguage = get_string("currentlanguage");
|
||||
$strmissingstrings = get_string("missingstrings");
|
||||
$strcomparelanguage = get_string("comparelanguage");
|
||||
$strthislanguage = get_string("thislanguage");
|
||||
|
||||
switch ($mode) {
|
||||
case "missing":
|
||||
$navigation = "<A HREF=\"lang.php\">$strchecklanguage</A> -> $strmissingstrings";
|
||||
$title = $strmissingstrings;
|
||||
break;
|
||||
case "compare":
|
||||
$navigation = "<A HREF=\"lang.php\">$strchecklanguage</A> -> $strcomparelanguage";
|
||||
$title = $strcomparelanguage;
|
||||
break;
|
||||
default:
|
||||
$title = $strchecklanguage;
|
||||
$navigation = $strchecklanguage;
|
||||
break;
|
||||
}
|
||||
|
||||
if ($USER->lang) {
|
||||
$currentlang = $USER->lang;
|
||||
} else {
|
||||
$currentlang = $CFG->lang;
|
||||
}
|
||||
|
||||
print_header("$site->shortname: $title", "$site->fullname",
|
||||
"<A HREF=\"index.php\">$stradministration</A> -> $navigation");
|
||||
|
||||
if (!$mode) {
|
||||
print_heading("$strcurrentlanguage: $currentlang - ".get_string("thislanguage"));
|
||||
print_heading("<A HREF=\"lang.php?mode=missing\">$strmissingstrings</A>");
|
||||
print_heading("<A HREF=\"lang.php?mode=compare\">$strcomparelanguage</A>");
|
||||
print_footer();
|
||||
exit;
|
||||
}
|
||||
|
||||
// Get a list of all the root files in the English directory
|
||||
|
||||
$langdir = "$CFG->dirroot/lang/$currentlang";
|
||||
$enlangdir = "$CFG->dirroot/lang/en";
|
||||
|
||||
if (! $stringfiles = get_directory_list($enlangdir, "", false)) {
|
||||
error("Could not find English language pack!");
|
||||
}
|
||||
|
||||
foreach ($stringfiles as $key => $file) {
|
||||
if ($file == "README" or $file == "help" or $file == "docs") {
|
||||
unset($stringfiles[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($mode == "missing") {
|
||||
// For each file, check that a counterpart exists, then check all the strings
|
||||
|
||||
foreach ($stringfiles as $file) {
|
||||
if (!file_exists("$langdir/$file")) {
|
||||
echo "<P><FONT COLOR=red>".get_string("filemissing", "", "$langdir/$file")."</FONT></P>";
|
||||
continue;
|
||||
}
|
||||
|
||||
unset($string);
|
||||
include("$enlangdir/$file");
|
||||
$enstring = $string;
|
||||
|
||||
unset($string);
|
||||
include("$langdir/$file");
|
||||
|
||||
$first = true;
|
||||
foreach ($enstring as $key => $value) {
|
||||
if (!isset($string[$key])) {
|
||||
$value = htmlentities($value);
|
||||
$value = str_replace("$"."a", "\\$"."a", $value);
|
||||
if ($first) {
|
||||
echo "</PRE><HR><P><B>".get_string("stringsnotset","","$langdir/$file")."</B></P><PRE>";
|
||||
$first = false;
|
||||
$somethingfound = true;
|
||||
}
|
||||
echo "$"."string[$key] = \"$value\";<BR>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! $files = get_directory_list("$CFG->dirroot/lang/en/help", "CVS")) {
|
||||
error("Could not find English language help files!");
|
||||
}
|
||||
|
||||
foreach ($files as $filekey => $file) { // check all the help files.
|
||||
if (!file_exists("$langdir/help/$file")) {
|
||||
echo "<P><FONT COLOR=red>".get_string("filemissing", "", "$langdir/help/$file")."</FONT></P>";
|
||||
$somethingfound = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $files = get_directory_list("$CFG->dirroot/lang/en/docs", "CVS")) {
|
||||
error("Could not find English language docs files!");
|
||||
}
|
||||
foreach ($files as $filekey => $file) { // check all the docs files.
|
||||
if (!file_exists("$langdir/docs/$file")) {
|
||||
echo "<P><FONT COLOR=red>".get_string("filemissing", "", "$langdir/docs/$file")."</FONT></P>";
|
||||
$somethingfound = true;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if ($somethingfound) {
|
||||
print_continue("lang.php");
|
||||
} else {
|
||||
notice(get_string("languagegood"), "lang.php");
|
||||
}
|
||||
|
||||
} else if ($mode == "compare") {
|
||||
|
||||
if (isset($HTTP_POST_VARS['file'])){ // Save a file
|
||||
$newstrings = $HTTP_POST_VARS;
|
||||
$file = $newstrings['file'];
|
||||
unset($newstrings['file']);
|
||||
if (lang_save_file($langdir, $file, $newstrings)) {
|
||||
notify(get_string("changessaved")." ($langdir/$file)");
|
||||
} else {
|
||||
error("Could not save the file '$file'!", "lang.php?mode=compare");
|
||||
}
|
||||
}
|
||||
|
||||
print_heading($strcomparelanguage);
|
||||
echo "<CENTER>";
|
||||
helpbutton("langedit",$strcomparelanguage);
|
||||
echo "</CENTER>";
|
||||
|
||||
foreach ($stringfiles as $file) {
|
||||
|
||||
print_heading("$file", "LEFT", 4);
|
||||
|
||||
if (!file_exists("$langdir/$file")) {
|
||||
echo "<P><FONT COLOR=red>".get_string("filemissing", "", "$langdir/$file")."</FONT></P>";
|
||||
continue;
|
||||
}
|
||||
|
||||
error_reporting(0);
|
||||
if ($f = fopen("$langdir/$file","r+")) {
|
||||
$editable = true;
|
||||
fclose($f);
|
||||
} else {
|
||||
$editable = false;
|
||||
echo "<P><FONT SIZE=1>".get_string("makeeditable", "", "$langdir/$file")."</FONT></P>";
|
||||
}
|
||||
error_reporting(7);
|
||||
|
||||
|
||||
unset($string);
|
||||
include("$enlangdir/$file");
|
||||
$enstring = $string;
|
||||
ksort($enstring);
|
||||
|
||||
unset($string);
|
||||
include("$langdir/$file");
|
||||
|
||||
if ($editable) {
|
||||
echo "<FORM NAME=\"$file\" ACTION=\"lang.php\" METHOD=\"POST\">";
|
||||
}
|
||||
echo "<TABLE WIDTH=\"100%\" CELLPADDING=2 CELLSPACING=3 BORDER=0>";
|
||||
foreach ($enstring as $key => $envalue) {
|
||||
$envalue = nl2br(htmlentities($envalue));
|
||||
$envalue = str_replace("\$a","<B>\$a</B>", $envalue); // Make variables bold
|
||||
// TODO: It would be nice if all the $a->something variables were bold too
|
||||
|
||||
echo "<TR>";
|
||||
echo "<TD WIDTH=20% BGCOLOR=\"$THEME->cellheading\" NOWRAP VALIGN=TOP>$key</TD>";
|
||||
echo "<TD WIDTH=40% BGCOLOR=\"$THEME->cellheading\" VALIGN=TOP>$envalue</TD>";
|
||||
|
||||
$value = str_replace("\\","",$string[$key]); // Delete all slashes
|
||||
$value = htmlentities($value);
|
||||
if ($editable) {
|
||||
echo "<TD WIDTH=40% VALIGN=TOP>";
|
||||
if (isset($string[$key])) {
|
||||
$valuelen = strlen($value);
|
||||
} else {
|
||||
$valuelen = strlen($envalue);
|
||||
}
|
||||
$cols=50;
|
||||
if (strstr($value, "\r") or strstr($value, "\n") or $valuelen > $cols) {
|
||||
$rows = ceil($valuelen / $cols);
|
||||
echo "<TEXTAREA NAME=\"string-$key\" cols=\"$cols\" rows=\"$rows\">$value</TEXTAREA>";
|
||||
} else {
|
||||
$cols = $valuelen + 2;
|
||||
echo "<INPUT TYPE=\"TEXT\" NAME=\"string-$key\" VALUE=\"$value\" SIZE=\"$cols\"></TD>";
|
||||
}
|
||||
echo "</TD>";
|
||||
|
||||
} else {
|
||||
if (isset($string[$key])) {
|
||||
echo "<TD WIDTH=40% BGCOLOR=white VALIGN=TOP>$value</TD>";
|
||||
} else {
|
||||
echo "<TD WIDTH=40% BGCOLOR=white ALIGN=CENTER VALIGN=TOP>-</TD>";
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($editable) {
|
||||
echo "<TR><TD COLSPAN=2> <TD>";
|
||||
echo " <INPUT TYPE=\"hidden\" NAME=\"file\" VALUE=\"$file\">";
|
||||
echo " <INPUT TYPE=\"hidden\" NAME=\"mode\" VALUE=\"compare\">";
|
||||
echo " <INPUT TYPE=\"submit\" NAME=\"update\" VALUE=\"".get_string("savechanges").": $file\">";
|
||||
echo "</TD></TR>";
|
||||
}
|
||||
echo "</TABLE>";
|
||||
echo "</FORM>";
|
||||
}
|
||||
|
||||
print_continue("lang.php");
|
||||
|
||||
}
|
||||
|
||||
print_footer();
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
function lang_save_file($path, $file, $strings) {
|
||||
// Thanks to Petri Asikainen for the original version of code
|
||||
// used to save language files.
|
||||
//
|
||||
// $path is a full pathname to the file
|
||||
// $file is the file to overwrite.
|
||||
// $strings is an array of strings to write
|
||||
|
||||
global $CFG;
|
||||
|
||||
error_reporting(0);
|
||||
if (!$f = fopen("$path/$file","w")) {
|
||||
return false;
|
||||
}
|
||||
error_reporting(7);
|
||||
|
||||
|
||||
fwrite($f, "<?PHP // \$Id\$ \n");
|
||||
fwrite($f, " // $file - created with Moodle $CFG->release ($CFG->version)\n\n\n");
|
||||
|
||||
ksort($strings);
|
||||
|
||||
foreach ($strings as $key => $value) {
|
||||
list($id, $stringname) = explode("-",$key);
|
||||
$value = str_replace("\\","",$value); // Delete all slashes
|
||||
$value = str_replace("$"."a", "\\$"."a", $value); // Add slashes for $a
|
||||
$value = str_replace("\"", "\\\"", $value); // Add slashes for "
|
||||
if ($id == "string"){
|
||||
fwrite($f,"\$string['$stringname'] = \"$value\";\n");
|
||||
}
|
||||
}
|
||||
fwrite($f,"\n?>\n");
|
||||
fclose($f);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
?>
|
||||
+7
-7
@@ -23,17 +23,17 @@
|
||||
|
||||
if ($form->id) {
|
||||
if (update_record("course", $form)) {
|
||||
redirect("$CFG->wwwroot/admin/", "Changes saved");
|
||||
redirect("index.php", get_string("changessaved"));
|
||||
} else {
|
||||
error("Serious Error! Could not update the site record! (id = $form->id)");
|
||||
}
|
||||
} else {
|
||||
if ($newid = insert_record("course", $form)) {
|
||||
$cat->name = "General";
|
||||
$cat->name = get_string("miscellaneous");
|
||||
if (insert_record("course_categories", $cat)) {
|
||||
redirect("$CFG->wwwroot/admin/", "Changes saved", "1");
|
||||
redirect("index.php", get_string("changessaved"), "1");
|
||||
} else {
|
||||
error("Serious Error! Could not set up the default categories!");
|
||||
error("Serious Error! Could not set up a default course category!");
|
||||
}
|
||||
} else {
|
||||
error("Serious Error! Could not set up the site!");
|
||||
@@ -61,11 +61,11 @@
|
||||
$stradmin = get_string("administration");
|
||||
$strsitesettings = get_string("sitesettings");
|
||||
|
||||
print_header("$site->fullname", "$site->fullname",
|
||||
"<A HREF=\"$CFG->wwwroot/admin/\">$stradmin</A> -> $strsitesettings", "$focus");
|
||||
print_header("$site->shortname: $strsitesettings", "$site->fullname",
|
||||
"<A HREF=\"index.php\">$stradmin</A> -> $strsitesettings", "$focus");
|
||||
|
||||
print_heading($strsitesettings);
|
||||
print_simple_box_start("center", "", "$THEME->cellheading");
|
||||
print_heading("Editing site settings");
|
||||
include("site.html");
|
||||
print_simple_box_end();
|
||||
print_footer();
|
||||
|
||||
+103
-17
@@ -4,13 +4,21 @@
|
||||
require("../user/lib.php");
|
||||
require("../lib/countries.php");
|
||||
|
||||
if (! record_exists_sql("SELECT * FROM user_admins")) {
|
||||
optional_variable($newuser, "");
|
||||
optional_variable($delete, "");
|
||||
optional_variable($confirm, "");
|
||||
optional_variable($sort, "name");
|
||||
optional_variable($dir, "ASC");
|
||||
|
||||
if (! record_exists_sql("SELECT * FROM user_admins")) { // No admin user yet
|
||||
$user->firstname = "Admin";
|
||||
$user->lastname = "User";
|
||||
$user->username = "admin";
|
||||
$user->password = "";
|
||||
$user->password = md5("admin");
|
||||
$user->email = "root@localhost";
|
||||
$user->confirmed = 1;
|
||||
$user->lang = $CFG->lang;
|
||||
$user->maildisplay = 1;
|
||||
$user->timemodified = time();
|
||||
|
||||
if (! $user->id = insert_record("user", $user)) {
|
||||
@@ -40,6 +48,7 @@
|
||||
|
||||
$USER = $user;
|
||||
$USER->loggedin = true;
|
||||
$USER->site = $CFG->wwwroot;
|
||||
$USER->admin = true;
|
||||
$USER->teacher["$site->id"] = true;
|
||||
save_session("USER");
|
||||
@@ -59,12 +68,12 @@
|
||||
}
|
||||
|
||||
if ($newuser) { // Create a new user
|
||||
|
||||
$user->firstname = "";
|
||||
$user->lastname = "";
|
||||
$user->username = "changeme";
|
||||
$user->password = "";
|
||||
$user->email = "";
|
||||
$user->lang = $CFG->lang;
|
||||
$user->confirmed = 1;
|
||||
$user->timemodified = time();
|
||||
|
||||
@@ -78,26 +87,103 @@
|
||||
|
||||
} else { // List all users for editing
|
||||
|
||||
if ($users = get_records_sql("SELECT * from user WHERE username <> 'guest' ORDER BY firstname")) {
|
||||
$stredituser = get_string("edituser");
|
||||
$stradministration = get_string("administration");
|
||||
$stredit = get_string("edit");
|
||||
$strdelete = get_string("delete");
|
||||
$stredituser = get_string("edituser");
|
||||
$stradministration = get_string("administration");
|
||||
$stredit = get_string("edit");
|
||||
$strdelete = get_string("delete");
|
||||
$strdeletecheck = get_string("deletecheck");
|
||||
|
||||
print_header("$site->fullname : $stredituser", $site->fullname,
|
||||
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> -> $stredituser");
|
||||
print_header("$site->shortname: $stredituser", $site->fullname,
|
||||
"<A HREF=\"index.php\">$stradministration</A> -> $stredituser");
|
||||
|
||||
if ($delete) { // Delete a selected user, after confirmation
|
||||
if (!$user = get_record("user", "id", "$delete")) {
|
||||
error("No such user!");
|
||||
}
|
||||
if ($confirm != md5($delete)) {
|
||||
notice_yesno(get_string("deletecheckfull", "", "'$user->firstname $user->lastname'"),
|
||||
"user.php?delete=$delete&confirm=".md5($delete), "user.php");
|
||||
|
||||
exit;
|
||||
} else if (!$user->deleted) {
|
||||
$user->deleted = "1";
|
||||
$user->username = $user->email; // Remember it just in case
|
||||
$user->email = ""; // Clear this field to free it up
|
||||
$user->timemodified = time();
|
||||
if (update_record("user", $user)) {
|
||||
unenrol_student($user->id); // From all courses
|
||||
remove_teacher($user->id); // From all courses
|
||||
remove_admin($user->id);
|
||||
notify(get_string("deletedactivity", "", "$user->firstname $user->lastname"));
|
||||
} else {
|
||||
notify(get_string("deletednot", "", "$user->firstname $user->lastname"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Carry on with the user listing
|
||||
|
||||
$columns = array("name", "email", "city", "country", "lastaccess");
|
||||
|
||||
foreach ($columns as $column) {
|
||||
$string[$column] = get_string("$column");
|
||||
$columnsort = "$column";
|
||||
if ($column == "lastaccess") {
|
||||
$columndir = "DESC";
|
||||
} else {
|
||||
$columndir = "ASC";
|
||||
}
|
||||
if ($columnsort == $sort) {
|
||||
$$column = $string[$column];
|
||||
} else {
|
||||
$$column = "<A HREF=\"user.php?sort=$columnsort&dir=$columndir\">".$string[$column]."</A>";
|
||||
}
|
||||
}
|
||||
|
||||
if ($sort == "name") {
|
||||
$sort = "firstname";
|
||||
}
|
||||
|
||||
if ($users = get_records_sql("SELECT * from user WHERE username <> 'guest'
|
||||
AND deleted <> '1' ORDER BY $sort $dir")) {
|
||||
|
||||
foreach ($users as $key => $user) {
|
||||
$users[$key]->country = $COUNTRIES[$user->country];
|
||||
}
|
||||
if ($sort == "country") { // Need to resort by full country name, not code
|
||||
foreach ($users as $user) {
|
||||
$susers[$user->id] = $user->country;
|
||||
}
|
||||
asort($susers);
|
||||
foreach ($susers as $key => $value) {
|
||||
$nusers[] = $users[$key];
|
||||
}
|
||||
$users = $nusers;
|
||||
}
|
||||
|
||||
print_heading(get_string("chooseuser"));
|
||||
|
||||
$table->head = array (get_string("fullname"), get_string("email"), get_string("city"),
|
||||
get_string("country"), " ");
|
||||
$table->align = array ("LEFT", "LEFT", "CENTER", "CENTER", "CENTER", "CENTER");
|
||||
$table->head = array ($name, $email, $city, $country, $lastaccess, "", "");
|
||||
$table->align = array ("LEFT", "LEFT", "LEFT", "LEFT", "LEFT", "CENTER", "CENTER");
|
||||
$table->width = "95%";
|
||||
foreach ($users as $user) {
|
||||
if ($user->id == $USER->id or $user->username == "changeme") {
|
||||
$deletebutton = "";
|
||||
} else {
|
||||
$deletebutton = "<A HREF=\"user.php?delete=$user->id\" TARGET=\"$strdeletecheck\">$strdelete</A>";
|
||||
}
|
||||
if ($user->lastaccess) {
|
||||
$strlastaccess = format_time(time() - $user->lastaccess);
|
||||
} else {
|
||||
$strlastaccess = get_string("never");
|
||||
}
|
||||
$table->data[] = array ("<A HREF=\"../user/view.php?id=$user->id&course=$site->id\">$user->firstname $user->lastname</A>",
|
||||
"$user->email",
|
||||
"$user->city",
|
||||
$COUNTRIES[$user->country],
|
||||
"<A HREF=\"../user/edit.php?id=$user->id&course=$site->id\">$stredit</A>");
|
||||
"$user->email",
|
||||
"$user->city",
|
||||
"$user->country",
|
||||
$strlastaccess,
|
||||
"<A HREF=\"../user/edit.php?id=$user->id&course=$site->id\">$stredit</A>",
|
||||
$deletebutton);
|
||||
}
|
||||
print_table($table);
|
||||
|
||||
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
This directory contains authentication modules.
|
||||
|
||||
Each of these modules describes a different way to
|
||||
check that a user has provided a correct
|
||||
|
||||
- username, and
|
||||
- password.
|
||||
|
||||
Even when external forms of authentication are being
|
||||
used, Moodle still maintains the internal "user" table
|
||||
with all the associated information about that user such
|
||||
as name, email address and so on.
|
||||
|
||||
The active method is set by the admin on the Configuration page.
|
||||
|
||||
|
||||
email - authentication by email (DEFAULT METHOD)
|
||||
|
||||
- user fills out form with email address
|
||||
- email sent to user with link
|
||||
- user clicks on link in email to confirm
|
||||
- user account is created
|
||||
- user can log in
|
||||
|
||||
|
||||
none - no authentication at all .. very insecure!!
|
||||
|
||||
- user logs in using ANY username and password
|
||||
- if the username doesn't already exist then
|
||||
a new account is created
|
||||
- when user tries to access a course they
|
||||
are forced to set up their account details
|
||||
|
||||
|
||||
ldap - Uses an external LDAP server
|
||||
|
||||
- user logs in using username and password
|
||||
- these are checked against an LDAP server
|
||||
- if correct, user is logged in
|
||||
- optionally, info is copied from the LDAP
|
||||
database to the Moodle user database
|
||||
|
||||
(see the ldap/README for more details on config etc...)
|
||||
@@ -0,0 +1,19 @@
|
||||
<?PHP // $Id$
|
||||
// Standard authentication function
|
||||
|
||||
function auth_user_login ($username, $password) {
|
||||
// Returns true if the username and password work
|
||||
// and false if they don't
|
||||
|
||||
global $CFG;
|
||||
|
||||
if (! $user = get_user_info_from_db("username", $username)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return ($user->password == md5($password));
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,38 @@
|
||||
LDAP-module README
|
||||
07.10.2002 Version 0.1, Petri Asikainen <paca@sci.fi>
|
||||
|
||||
Ldap-authetication module is work in progress.
|
||||
Right now we are building config-interface to use also with all other auth-modules,
|
||||
but it will take sometime.
|
||||
|
||||
If you like to try ldap-authentication now , create following $CFG->variables to
|
||||
/moodle/config.php or directly to config-table and activate ldap authentication
|
||||
from admin-configuration page.
|
||||
|
||||
Variable Description
|
||||
$CFG->ldap_bind_dn "If your like to use bind-user to search
|
||||
users, specify it here. Something like
|
||||
'cn=ldapuser,ou=public,o=org'"
|
||||
$CFG->ldap_bind_pw "Password for bind-user."
|
||||
$CFG->ldap_contexts "List of contexts where users are located.
|
||||
Separate different contexts with ';'.
|
||||
Something like
|
||||
'ou=users,o=org; ou=other,o=org'"
|
||||
$CFG->ldap_host_url "Specify LDAP host in URL-form, like
|
||||
'ldap://ldap.myorg.com/' or
|
||||
'ldaps//ldap.myorg.com/' "
|
||||
$CFG->ldap_search_sub "Put value <> 0 if you like to
|
||||
search users from subcontexts.
|
||||
(Subsearching is sometimes slow)"
|
||||
$CFG->ldap_user_attribute "What attribute is used to name/search
|
||||
users. Usually 'cn' when using
|
||||
Novell e-directory
|
||||
|
||||
And if you like to _very_ experimental:
|
||||
Edit /auth/ldap/lib.php function auth_get_userinfo() attribute-mappings and
|
||||
set $CFG->auth_update_userinfo = 1
|
||||
Then moodle will get user first-, lastname and other information from ldap
|
||||
when user is login first time.
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
<?PHP
|
||||
//CHANGELOG:
|
||||
//03.10.2002 First version to CVS
|
||||
//29.09.2002 Clean up and splitted code to functions v. 0.02
|
||||
//29.09.2002 LDAP authentication functions v. 0.01
|
||||
//Distributed under GPL (c)Petri Asikainen 2002
|
||||
|
||||
|
||||
|
||||
|
||||
function auth_user_login ($username, $password) {
|
||||
// Returns true if the username and password work
|
||||
// and false if they don't
|
||||
|
||||
global $CFG;
|
||||
|
||||
$ldap_connection = auth_ldap_connect();
|
||||
if($ldap_connection) {
|
||||
|
||||
$ldap_user_dn = auth_ldap_find_userdn($ldap_connection, $username);
|
||||
|
||||
//if ldap_user_dn is empty, user does not exist
|
||||
if(!$ldap_user_dn){
|
||||
return false;
|
||||
}
|
||||
|
||||
// Try to bind with current username and password
|
||||
$ldap_login = @ldap_bind($ldap_connection, $ldap_user_dn, $password);
|
||||
if ($ldap_login) {
|
||||
ldap_close($ldap_connection);
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
@ldap_close($ldap_connection);
|
||||
error("LDAP-module cannot connect to server: $CFG->ldap_host_url");
|
||||
return false ;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function auth_get_userinfo($username){
|
||||
global $CFG;
|
||||
//reads userinformation from ldap and return it in array()
|
||||
|
||||
$result = array();
|
||||
$ldap_connection=auth_ldap_connect();
|
||||
|
||||
$moodleattributes = array();
|
||||
//atribute mappings between moodle and ldap
|
||||
|
||||
$moodleattributes['firstname'] ='givenname';
|
||||
$moodleattributes['lastname'] ='sn';
|
||||
$moodleattributes['email'] ='mail';
|
||||
$moodleattributes['phone1'] ='telephonenumber';
|
||||
//$moodleattributes['phone2'] ='facsimiletelephonenumber';
|
||||
//$moodleattributes['institution'] ='institution';
|
||||
$moodleattributes['department'] ='ou';
|
||||
$moodleattributes['address'] ='street';
|
||||
$moodleattributes['city'] ='physicaldeliveryofficename';
|
||||
//$moodleattributes['country'] ='country';
|
||||
$moodleattributes['description'] ='description';
|
||||
|
||||
$search_attribs = array();
|
||||
foreach ($moodleattributes as $key=>$value) {
|
||||
array_push($search_attribs, $value);
|
||||
}
|
||||
|
||||
$user_dn = auth_ldap_find_userdn($ldap_connection, $username);
|
||||
$user_info_result = ldap_read($ldap_connection,$user_dn,"objectClass=*", $search_attribs);
|
||||
if ($user_info_result) {
|
||||
$user_entry = ldap_get_entries($ldap_connection, $user_info_result);
|
||||
foreach ($moodleattributes as $key=>$value){
|
||||
if(isset($user_entry[0][$value][0])){
|
||||
$result[$key]=$user_entry[0][$value][0];
|
||||
}
|
||||
}
|
||||
}
|
||||
@ldap_close($ldap_connection);
|
||||
|
||||
//Hardcoded defaults
|
||||
if(! isset($result['description'])) {
|
||||
$result['description'] = "Description";
|
||||
}
|
||||
$result['country']='FI';
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
function auth_ldap_connect(){
|
||||
//connects to ldap-server
|
||||
global $CFG;
|
||||
$result = ldap_connect($CFG->ldap_host_url);
|
||||
if ($result) {
|
||||
return $result;
|
||||
} else {
|
||||
error("LDAP-module cannot connect to server: $CFG->ldap_host_url");
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
function auth_ldap_bind($ldap_connection){
|
||||
//makes bind to ldap for searching users
|
||||
//uses ldap_bind_dn or anonymous bind
|
||||
global $CFG;
|
||||
if ($CFG->ldap_bind_dn){
|
||||
//bind with search-user
|
||||
if (!ldap_bind($ldap_connection, $CFG->ldap_bind_dn,$CFG->ldap_bind_pw)){
|
||||
error("Error: could not bind ldap with ldap_bind_dn/pw");
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
//bind anonymously
|
||||
if ( !ldap_bind($ldap_connection)){
|
||||
error("Error: could not bind ldap anonymously");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
function auth_ldap_find_userdn ($ldap_connection, $username){
|
||||
//return dn of username
|
||||
//like: cn=username,ou=suborg,o=org
|
||||
//or false if username not found
|
||||
global $CFG;
|
||||
//default return value
|
||||
$ldap_user_dn = FALSE;
|
||||
|
||||
auth_ldap_bind($ldap_connection);
|
||||
|
||||
//get all contexts and look for first matching user
|
||||
$ldap_contexts = explode(";",$CFG->ldap_contexts);
|
||||
|
||||
foreach($ldap_contexts as $context) {
|
||||
$context == trim($context);
|
||||
if($CFG->ldap_search_sub){
|
||||
//use ldap_search to find first user from subtree
|
||||
$ldap_result = ldap_search($ldap_connection, $context, "(".$CFG->ldap_user_attribute."=".$username.")");
|
||||
} else {
|
||||
//search only in this context
|
||||
$ldap_result = ldap_list($ldap_connection, $context, "(".$CFG->ldap_user_attribute."=".$username.")");
|
||||
}
|
||||
|
||||
$entry = ldap_first_entry($ldap_connection,$ldap_result);
|
||||
if ($entry){
|
||||
|
||||
$ldap_user_dn = ldap_get_dn($ldap_connection, $entry);
|
||||
break ;
|
||||
|
||||
}
|
||||
}
|
||||
return $ldap_user_dn;
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?PHP // $Id$
|
||||
// No authentication at all. This method approves everything!
|
||||
|
||||
function auth_user_login ($username, $password) {
|
||||
// Returns true if the username doesn't exist yet
|
||||
// Returns true if the username and password work
|
||||
|
||||
if (! $user = get_user_info_from_db("username", $username)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return ($user->password == md5($password));
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
+51
-86
@@ -1,111 +1,76 @@
|
||||
<?PHP // $Id$
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Moodle configuration file
|
||||
//
|
||||
// This file should be located in the top-level directory.
|
||||
//
|
||||
// //
|
||||
// Moodle configuration file //
|
||||
// //
|
||||
// This file should be renamed "config.php" in the top-level directory //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// NOTICE OF COPYRIGHT //
|
||||
// //
|
||||
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
|
||||
// http://moodle.com //
|
||||
// //
|
||||
// Copyright (C) 2001-2002 Martin Dougiamas http://dougiamas.com //
|
||||
// //
|
||||
// This program is free software; you can redistribute it and/or modify //
|
||||
// it under the terms of the GNU General Public License as published by //
|
||||
// the Free Software Foundation; either version 2 of the License, or //
|
||||
// (at your option) any later version. //
|
||||
// //
|
||||
// This program is distributed in the hope that it will be useful, //
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
||||
// GNU General Public License for more details: //
|
||||
// //
|
||||
// http://www.gnu.org/copyleft/gpl.html //
|
||||
// //
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// NOTICE OF COPYRIGHT
|
||||
//
|
||||
// Moodle - Modular Object-Oriented Dynamic Learning Environment
|
||||
// http://moodle.com
|
||||
//
|
||||
// Copyright (C) 2001 Martin Dougiamas http://dougiamas.com
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details:
|
||||
//
|
||||
// http://www.gnu.org/copyleft/gpl.html
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Site configuration variables are all stored in the CFG object.
|
||||
|
||||
// First, you need to configure the database where all Moodle data
|
||||
// will be stored. This database must already have been created
|
||||
// and a username/password created to access it. See doc/INSTALL.
|
||||
|
||||
$CFG->dbtype = "mysql"; // eg mysql (postgres7, oracle, access etc coming soon)
|
||||
$CFG->dbhost = "localhost"; // eg localhost
|
||||
$CFG->dbname = "moodle"; // eg moodle
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// First, you need to configure the database where all Moodle data //
|
||||
// will be stored. This database must already have been created //
|
||||
// and a username/password created to access it. If you specify mysql //
|
||||
// then Moodle can set up all your tables for you. If you try to use //
|
||||
// a different database you will need to set up all your tables by hand //
|
||||
// which could be a big job. See doc/install.html //
|
||||
|
||||
$CFG->dbtype = "mysql"; // eg mysql (postgres7, oracle, access etc)
|
||||
$CFG->dbhost = "localhost"; // eg localhost
|
||||
$CFG->dbname = "moodle"; // eg moodle
|
||||
$CFG->dbuser = "username";
|
||||
$CFG->dbpass = "password";
|
||||
|
||||
|
||||
// Next you need to tell Moodle where it is located.
|
||||
// Specify the full URL that moodle has been installed in:
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Now you need to tell Moodle where it is located. Specify the full
|
||||
// web address where moodle has been installed (without trailing slash)
|
||||
|
||||
$CFG->wwwroot = "http://example.com/moodle";
|
||||
|
||||
|
||||
// and now the full OS directory path to this same location:
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Next, specify the full OS directory path to this same location
|
||||
// For Windows this might be something like "C:\apache\htdocs\moodle"
|
||||
|
||||
$CFG->dirroot = "/web/moodle";
|
||||
|
||||
|
||||
// Now you need a place where Moodle can save uploaded files. This directory
|
||||
// should be writeable by the web server user (usually 'nobody' or 'apache'),
|
||||
// but it should not be accessible directly via the web.
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// Now you need a place where Moodle can save uploaded files. This
|
||||
// directory should be writeable by the web server user (usually 'nobody'
|
||||
// or 'apache'), but it should not be accessible directly via the web.
|
||||
|
||||
$CFG->dataroot = "/home/moodledata";
|
||||
|
||||
|
||||
// Choose a sitewide language - this will affect text, buttons etc
|
||||
// See lib/languages.php for a full list of standard language codes.
|
||||
|
||||
$CFG->lang = "en"; // Currently the only option
|
||||
|
||||
|
||||
// Choose a sitewide locale - this will affect the display of dates
|
||||
// You need to have this locale data installed on your operating
|
||||
// system. If you don't know what to choose try using the same
|
||||
// string as the language.
|
||||
|
||||
$CFG->locale = "en";
|
||||
|
||||
|
||||
// Give the full names of local SMTP servers that Moodle should use to
|
||||
// send mail (eg "mail.a.com" or "mail.a.com;mail.b.com").
|
||||
// If this is left empty (eg "") then Moodle will attempt to use PHP mail.
|
||||
|
||||
$CFG->smtphosts = "";
|
||||
|
||||
|
||||
// There is no way, currently, for PHP to automatically tell whether the
|
||||
// graphic library GD is version 1.* or 2.*. Specify here (either 1 or 2).
|
||||
|
||||
$CFG->gdversion = 1;
|
||||
|
||||
|
||||
// If students haven't logged in for a very long time, then they are
|
||||
// automatically unsubscribed from courses. This parameter specifies
|
||||
// that time limit, in DAYS.
|
||||
|
||||
$CFG->longtimenosee = 100;
|
||||
|
||||
|
||||
// These programs are used by the file management code to zip and unzip
|
||||
// uploaded files. This only works on Unix systems right now.
|
||||
|
||||
$CFG->zip = "/usr/bin/zip";
|
||||
$CFG->unzip = "/usr/bin/unzip";
|
||||
|
||||
|
||||
// You should not need to change anything else. To continue setting up
|
||||
// Moodle, use your web browser to go to the moodle/admin web page.
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
// To continue the setup, use your web browser to go to your Moodle page //
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
$CFG->libdir = "$CFG->dirroot/lib";
|
||||
|
||||
require("$CFG->libdir/setup.php"); // Sets up all libraries, sessions etc
|
||||
$CFG->libdir = "$CFG->dirroot/lib"; // Do not change this
|
||||
require("$CFG->libdir/setup.php"); // Do not change this
|
||||
|
||||
?>
|
||||
|
||||
@@ -0,0 +1,123 @@
|
||||
<?PHP // $Id$
|
||||
// Allows the admin to create, delete and rename course categories
|
||||
|
||||
require("../config.php");
|
||||
require("lib.php");
|
||||
|
||||
if (!isadmin()) {
|
||||
error("Only administrators can use this course!");
|
||||
}
|
||||
|
||||
if (!$site = get_site()) {
|
||||
error("Site isn't defined!");
|
||||
}
|
||||
|
||||
|
||||
/// Print headings
|
||||
|
||||
$stradministration = get_string("administration");
|
||||
$strcategories = get_string("categories");
|
||||
$strcategory = get_string("category");
|
||||
$strcourses = get_string("courses");
|
||||
$stredit = get_string("edit");
|
||||
$strdelete = get_string("delete");
|
||||
$straction = get_string("action");
|
||||
$stradd = get_string("add");
|
||||
|
||||
print_header("$site->shortname: $strcategories", "$site->fullname",
|
||||
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> -> $strcategories");
|
||||
|
||||
print_heading($strcategories);
|
||||
|
||||
/// If data submitted, then process and store.
|
||||
|
||||
if (match_referer() && isset($HTTP_POST_VARS)) {
|
||||
|
||||
$categories = array();
|
||||
|
||||
// Peel out all the data from variable names.
|
||||
foreach ($HTTP_POST_VARS as $key => $val) {
|
||||
if ($key == "new" and $val != "") {
|
||||
$cat->name = $val;
|
||||
if (!insert_record("course_categories", $cat)) {
|
||||
error("Could not insert the new category '$val'");
|
||||
} else {
|
||||
notify(get_string("categoryadded", "", $val));
|
||||
}
|
||||
|
||||
} else {
|
||||
$cat->id = substr($key,1);
|
||||
$cat->name = $val;
|
||||
if (!update_record("course_categories", $cat)) {
|
||||
error("Could not update the category '$val'");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// Get the existing categories
|
||||
if (!$categories = get_all_categories()) {
|
||||
// Try and make one
|
||||
$cat->name = get_string("miscellaneous");
|
||||
if ($cat->id = insert_record("course_categories", $cat)) {
|
||||
$categories[$cat->id] = $cat;
|
||||
} else {
|
||||
error("Serious error: Could not create a default category!");
|
||||
}
|
||||
}
|
||||
|
||||
/// Delete category if the user wants to delete it
|
||||
if (isset($delete)) {
|
||||
if (delete_records("course_categories", "id", $delete)) {
|
||||
notify(get_string("categorydeleted", "", $categories[$delete]->name));
|
||||
unset($categories[$delete]);
|
||||
} else {
|
||||
error("An error occurred while trying to delete a category");
|
||||
}
|
||||
}
|
||||
|
||||
/// Find lowest ID category - this is the default category
|
||||
$default = 99999;
|
||||
foreach ($categories as $category) {
|
||||
if ($category->id < $default) {
|
||||
$default = $category->id;
|
||||
}
|
||||
}
|
||||
|
||||
/// Find any orphan courses that don't yet have a valid category and set to default
|
||||
if ($courses = get_records_sql("SELECT * FROM course WHERE category > 0")) {
|
||||
foreach ($courses as $course) {
|
||||
if (!isset( $categories[$course->category] )) {
|
||||
set_field("course", "category", $default, "id", $course->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// Print the table of all categories
|
||||
$table->head = array ($strcategory, $strcourses, $straction);
|
||||
$table->align = array ("LEFT", "CENTER", "CENTER");
|
||||
$table->size = array ("50", "20", "20");
|
||||
$table->width = 100;
|
||||
|
||||
echo "<FORM ACTION=categories.php METHOD=post>";
|
||||
foreach ($categories as $category) {
|
||||
$count = count_records("course", "category", $category->id);
|
||||
if ($category->id == $default) {
|
||||
$delete = ""; // Can't delete default category
|
||||
} else {
|
||||
$delete = "<A HREF=\"categories.php?delete=$category->id\">$strdelete</A>";
|
||||
}
|
||||
$table->data[] = array ("<INPUT TYPE=text NAME=\"c$category->id\" VALUE=\"$category->name\" SIZE=30>",
|
||||
"<A HREF=\"index.php?category=$category->id\">$count</A>", $delete);
|
||||
}
|
||||
$table->data[] = array ("<INPUT TYPE=text NAME=\"new\" VALUE=\"\" SIZE=30>", "", "$stradd");
|
||||
print_table($table);
|
||||
echo "<CENTER><BR><INPUT TYPE=submit VALUE=\"".get_string("savechanges")."\"> ";
|
||||
echo "</CENTER>";
|
||||
echo "</FORM>";
|
||||
|
||||
print_footer();
|
||||
|
||||
?>
|
||||
+3
-3
@@ -20,7 +20,7 @@
|
||||
$stradministration = get_string("administration");
|
||||
|
||||
if (!$id) {
|
||||
print_header("$site->fullname : $strdeletecourse", $site->fullname,
|
||||
print_header("$site->shortname: $strdeletecourse", $site->fullname,
|
||||
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> -> $strdeletecourse");
|
||||
|
||||
if ($courses = get_records_sql("SELECT * from course WHERE category > 0 ORDER BY fullname")) {
|
||||
@@ -45,7 +45,7 @@
|
||||
if (! $delete) {
|
||||
$strdeletecheck = get_string("deletecheck", "", $course->shortname);
|
||||
$strdeletecoursecheck = get_string("deletecoursecheck");
|
||||
print_header("$site->fullname : $strdeletecheck", $site->fullname,
|
||||
print_header("$site->shortname: $strdeletecheck", $site->fullname,
|
||||
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> ->
|
||||
<A HREF=\"delete.php\">$strdeletecourse</A> -> $strdeletecheck");
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
// OK checks done, delete the course now.
|
||||
$strdeletingcourse = get_string("deletingcourse", "", $course->shortname);
|
||||
|
||||
print_header("$site->fullname : $strdeletingcourse", $site->fullname,
|
||||
print_header("$site->shortname: $strdeletingcourse", $site->fullname,
|
||||
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> ->
|
||||
<A HREF=\"delete.php\">$strdeletecourse</A> -> $strdeletingcourse");
|
||||
|
||||
|
||||
+14
-1
@@ -33,6 +33,7 @@
|
||||
<td><?
|
||||
$choices["0"] = get_string("guestsno");
|
||||
$choices["1"] = get_string("guestsyes");
|
||||
$choices["2"] = get_string("guestskey");
|
||||
choose_from_menu ($choices, "guest", $form->guest, "");
|
||||
helpbutton("guestaccess", get_string("opentoguests")); ?>
|
||||
</td>
|
||||
@@ -89,7 +90,7 @@
|
||||
<tr valign=top>
|
||||
<td><P><? print_string("numberweeks") ?>:</td>
|
||||
<td><?
|
||||
for ($i=1; $i<=20; $i++) {
|
||||
for ($i=1; $i<=52; $i++) {
|
||||
$sectionmenu[$i] = "$i";
|
||||
}
|
||||
choose_from_menu ($sectionmenu, "numsections", "$form->numsections");
|
||||
@@ -103,12 +104,24 @@
|
||||
(<? print_string("wordforteachereg") ?>) <? formerr($err["teacher"]) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><P><? print_string("wordforteachers") ?>:</td>
|
||||
<td><input type="text" name="teachers" size=25 value="<? p($form->teachers) ?>">
|
||||
(<? print_string("wordforteacherseg") ?>) <? formerr($err["teachers"]) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><P><? print_string("wordforstudent") ?>:</td>
|
||||
<td><input type="text" name="student" size=25 value="<? p($form->student) ?>">
|
||||
(<? print_string("wordforstudenteg") ?>) <? formerr($err["student"]) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><P><? print_string("wordforstudents") ?>:</td>
|
||||
<td><input type="text" name="students" size=25 value="<? p($form->students) ?>">
|
||||
(<? print_string("wordforstudentseg") ?>) <? formerr($err["students"]) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" value="<? print_string("savechanges") ?>"></td>
|
||||
|
||||
+4
-2
@@ -84,7 +84,9 @@
|
||||
$form->fullname = get_string("defaultcoursefullname");
|
||||
$form->shortname = get_string("defaultcourseshortname");
|
||||
$form->teacher = get_string("defaultcourseteacher");
|
||||
$form->teachers = get_string("defaultcourseteachers");
|
||||
$form->student = get_string("defaultcoursestudent");
|
||||
$form->students = get_string("defaultcoursestudents");
|
||||
$form->summary = get_string("defaultcoursesummary");
|
||||
$form->format = "weeks";
|
||||
$form->numsections = 10;
|
||||
@@ -110,13 +112,13 @@
|
||||
"<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A>
|
||||
-> $streditcoursesettings", $focus);
|
||||
} else {
|
||||
print_header("$site->shortname : $straddnewcourse", "$site->fullname",
|
||||
print_header("$site->shortname: $straddnewcourse", "$site->fullname",
|
||||
"<A HREF=\"$CFG->wwwroot/admin/\">$stradministration</A>
|
||||
-> $straddnewcourse", $focus);
|
||||
}
|
||||
|
||||
print_simple_box_start("center", "", "$THEME->cellheading");
|
||||
print_heading($streditcoursesettings);
|
||||
print_simple_box_start("center", "", "$THEME->cellheading");
|
||||
include("edit.html");
|
||||
print_simple_box_end();
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
<FORM name="form" method="post" action="editsection.php">
|
||||
<P><B><? print_string("summaryof", "", "$sectionname $form->section") ?></B></P>
|
||||
<TEXTAREA NAME=summary COLS=60 ROWS=4 WRAP=virtual><?=$form->summary ?></TEXTAREA>
|
||||
<BR><FONT SIZE=1>(<? print_string("maximumchars", "", "255") ?>)</FONT>
|
||||
<P>
|
||||
<INPUT type="hidden" name=id value="<?=$form->id ?>">
|
||||
<INPUT type="submit" value="<? print_string("savechanges") ?>">
|
||||
|
||||
+1
-1
@@ -30,7 +30,7 @@
|
||||
<td width=50%>
|
||||
<table cellpadding=1 cellspacing=0><tr>
|
||||
<td><input type=submit value="<? print_string("login") ?>"></form></td>
|
||||
<td><form action="<?=$CFG->wwwroot?>/" method=post>
|
||||
<td><form action="<?=$CFG->wwwroot?>/index.php" method=post>
|
||||
<input type=submit value="<? print_string("cancel") ?>"></form></td>
|
||||
</tr></table>
|
||||
|
||||
|
||||
+2
-2
@@ -19,7 +19,7 @@
|
||||
add_to_log($course->id, "course", "guest", "view.php?id=$course->id", "$REMOTE_ADDR, $REMOTE_HOST");
|
||||
|
||||
} else {
|
||||
if (! enrol_student_in_course($USER->id, $course->id)) {
|
||||
if (! enrol_student($USER->id, $course->id)) {
|
||||
error("An error occurred while trying to enrol you.");
|
||||
}
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
if (isguest()) {
|
||||
add_to_log($course->id, "course", "guest", "view.php?id=$course->id", "$USER->id");
|
||||
} else {
|
||||
if (! enrol_student_in_course($USER->id, $course->id)) {
|
||||
if (! enrol_student($USER->id, $course->id)) {
|
||||
error("An error occurred while trying to enrol you.");
|
||||
}
|
||||
add_to_log($course->id, "course", "enrol", "view.php?id=$course->id", "$USER->id");
|
||||
|
||||
@@ -0,0 +1,209 @@
|
||||
<?PHP // $Id$
|
||||
// Displays all grades for a course
|
||||
|
||||
require("../config.php");
|
||||
require("lib.php");
|
||||
require("$CFG->libdir/psxlsgen.php");
|
||||
|
||||
|
||||
|
||||
require_variable($id); // course id
|
||||
optional_variable($download, ""); // to download data
|
||||
|
||||
if (! $course = get_record("course", "id", $id)) {
|
||||
error("Course ID was incorrect");
|
||||
}
|
||||
|
||||
require_login($course->id);
|
||||
|
||||
if (!isteacher($course->id)) {
|
||||
error("Only teachers can use this page!");
|
||||
}
|
||||
|
||||
$strgrades = get_string("grades");
|
||||
$strgrade = get_string("grade");
|
||||
$strmax = get_string("maximumshort");
|
||||
$stractivityreport = get_string("activityreport");
|
||||
|
||||
|
||||
/// Get a list of all students
|
||||
|
||||
if (!$students = get_course_students($course->id)) {
|
||||
print_heading(get_string("nostudentsyet"));
|
||||
print_footer($course);
|
||||
exit;
|
||||
}
|
||||
|
||||
foreach ($students as $student) {
|
||||
$grades[$student->id] = array(); // Collect all grades in this array
|
||||
$totals[$student->id] = array(); // Collect all totals in this array
|
||||
}
|
||||
$columns = array(); // Accumulate column names in this array.
|
||||
$columnhtml = array(); // Accumulate column html in this array.
|
||||
|
||||
|
||||
/// Collect modules data
|
||||
get_all_mods($course->id, $mods, $modnames, $modnamesplural, $modnamesused, $modsectioncounts);
|
||||
|
||||
|
||||
/// Search through all the modules, pulling out grade data
|
||||
$sections = get_all_sections($course->id); // Sort everything the same as the course
|
||||
for ($i=0; $i<=$course->numsections; $i++) {
|
||||
if (isset($sections[$i])) { // should always be true
|
||||
$section = $sections[$i];
|
||||
if ($section->sequence) {
|
||||
$sectionmods = explode(",", $section->sequence);
|
||||
foreach ($sectionmods as $sectionmod) {
|
||||
$mod = $mods[$sectionmod];
|
||||
$instance = get_record("$mod->modname", "id", "$mod->instance");
|
||||
$libfile = "$CFG->dirroot/mod/$mod->modname/lib.php";
|
||||
if (file_exists($libfile)) {
|
||||
require_once($libfile);
|
||||
$gradefunction = $mod->modname."_grades";
|
||||
if (function_exists($gradefunction)) { // Skip modules without grade function
|
||||
if ($modgrades = $gradefunction($mod->instance)) {
|
||||
|
||||
if ($modgrades->maxgrade) {
|
||||
$maxgrade = "<BR>$strmax: $modgrades->maxgrade";
|
||||
} else {
|
||||
$maxgrade = "";
|
||||
}
|
||||
|
||||
$image = "<A HREF=\"$CFG->wwwroot/mod/$mod->modname/view.php?id=$mod->id\"".
|
||||
" TITLE=\"$mod->modfullname\">".
|
||||
"<IMG BORDER=0 VALIGN=absmiddle SRC=\"../mod/$mod->modname/icon.gif\" ".
|
||||
"HEIGHT=16 WIDTH=16 ALT=\"$mod->modfullname\"></A>";
|
||||
$columnhtml[] = "$image ".
|
||||
"<A HREF=\"$CFG->wwwroot/mod/$mod->modname/view.php?id=$mod->id\">".
|
||||
"$instance->name".
|
||||
"</A>$maxgrade";
|
||||
$columns[] = "$mod->modfullname: $instance->name - $modgrades->maxgrade";
|
||||
|
||||
foreach ($students as $student) {
|
||||
$grades[$student->id][] = $modgrades->grades[$student->id]; // may be empty, that's ok
|
||||
if ($modgrades->maxgrade) {
|
||||
$totals[$student->id] = (float)($totals[$student->id]) + (float)($modgrades->grades[$student->id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} // a new Moodle nesting record? ;-)
|
||||
|
||||
|
||||
/// OK, we have all the data, now present it to the user
|
||||
|
||||
if ($download == "xls") {
|
||||
|
||||
$myxls = new PhpSimpleXlsGen();
|
||||
$myxls->totalcol = count($columns) + 5;
|
||||
|
||||
/// Print names of all the fields
|
||||
|
||||
$myxls->ChangePos(0,0);
|
||||
$myxls->InsertText(get_string("firstname"));
|
||||
$myxls->InsertText(get_string("lastname"));
|
||||
foreach ($columns as $column) {
|
||||
$myxls->InsertText($column);
|
||||
}
|
||||
$myxls->InsertText(get_string("total"));
|
||||
|
||||
|
||||
/// Print all the lines of data.
|
||||
|
||||
$i = 0;
|
||||
foreach ($grades as $studentid => $studentgrades) {
|
||||
$i++;
|
||||
$student = $students[$studentid];
|
||||
|
||||
$myxls->ChangePos($i,0);
|
||||
$myxls->InsertText($student->firstname);
|
||||
$myxls->InsertText($student->lastname);
|
||||
|
||||
foreach ($studentgrades as $grade) {
|
||||
$myxls->InsertText($grade);
|
||||
}
|
||||
$myxls->InsertNumber($totals[$student->id]);
|
||||
}
|
||||
|
||||
$myxls->SendFile("$course->shortname $strgrades");
|
||||
|
||||
exit;
|
||||
|
||||
|
||||
} else if ($download == "txt") {
|
||||
|
||||
/// Print header to force download
|
||||
|
||||
header("Content-Type: application/download\n");
|
||||
header("Content-Disposition: attachment; filename=\"$course->shortname $strgrades.txt\"");
|
||||
|
||||
/// Print names of all the fields
|
||||
|
||||
echo get_string("firstname")."\t".get_string("lastname");
|
||||
foreach ($columns as $column) {
|
||||
echo "\t$column";
|
||||
}
|
||||
echo "\t".get_string("total")."\n";
|
||||
|
||||
/// Print all the lines of data.
|
||||
|
||||
foreach ($grades as $studentid => $studentgrades) {
|
||||
$student = $students[$studentid];
|
||||
echo "$student->firstname\t$student->lastname";
|
||||
foreach ($studentgrades as $grade) {
|
||||
echo "\t$grade";
|
||||
}
|
||||
echo "\t".$totals[$student->id];
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
|
||||
} else { // Just print the web page
|
||||
|
||||
print_header("$course->shortname: $strgrades", "$course->fullname",
|
||||
"<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A>
|
||||
-> $strgrades");
|
||||
|
||||
print_heading($strgrades);
|
||||
|
||||
$table->head = array_merge(array ("", get_string("name")), $columnhtml, get_string("total"));
|
||||
$table->width = array(35, "");
|
||||
$table->align = array("LEFT", "LEFT");
|
||||
foreach ($columns as $column) {
|
||||
$table->width[] = "";
|
||||
$table->align[] = "CENTER";
|
||||
}
|
||||
$table->width[] = "";
|
||||
$table->align[] = "CENTER";
|
||||
|
||||
foreach ($grades as $studentid => $studentgrades) {
|
||||
$student = $students[$studentid];
|
||||
$picture = print_user_picture($student->id, $course->id, $student->picture, false, true);
|
||||
$name = array ("$picture", "<A TITLE=\"$stractivityreport\" HREF=\"user.php?id=$course->id&user=$student->id\">$student->firstname $student->lastname</A>");
|
||||
$total = array ($totals[$student->id]);
|
||||
|
||||
$table->data[] = array_merge($name, $studentgrades, $total);
|
||||
}
|
||||
|
||||
print_table($table);
|
||||
|
||||
echo "<TABLE BORDER=0 ALIGN=CENTER><TR>";
|
||||
echo "<TD>";
|
||||
$options["id"] = "$course->id";
|
||||
$options["download"] = "xls";
|
||||
print_single_button("grades.php", $options, get_string("downloadexcel"));
|
||||
echo "<TD>";
|
||||
$options["download"] = "txt";
|
||||
print_single_button("grades.php", $options, get_string("downloadtext"));
|
||||
echo "</TABLE>";
|
||||
|
||||
print_footer($course);
|
||||
}
|
||||
|
||||
?>
|
||||
+42
-5
@@ -4,15 +4,52 @@
|
||||
require("../config.php");
|
||||
require("lib.php");
|
||||
|
||||
$title = get_string("courses");
|
||||
optional_variable($category, "");
|
||||
|
||||
print_header($title, $title, $title, "");
|
||||
$strcourses = get_string("courses");
|
||||
$strcategories = get_string("categories");
|
||||
$strmycourses = get_string("mycourses");
|
||||
$strfulllistofcourses = get_string("fulllistofcourses");
|
||||
|
||||
optional_variable($cat, 1);
|
||||
if (!$categories = get_all_categories()) {
|
||||
error("Could not find any course categories!");
|
||||
}
|
||||
|
||||
echo "<TABLE WIDTH=80% ALIGN=CENTER><TR><TD>";
|
||||
if ($category == "all") {
|
||||
$title = $strfulllistofcourses;
|
||||
$navigation = "<A HREF=\"index.php\">$strcourses</A> -> $title";
|
||||
} else if ($category == "my") {
|
||||
$title = $strmycourses;
|
||||
$navigation = "<A HREF=\"index.php\">$strcourses</A> -> $title";
|
||||
} else if (isset($categories[$category])) {
|
||||
$title = $categories[$category]->name;
|
||||
$navigation = "<A HREF=\"index.php\">$strcourses</A> -> $title";
|
||||
} else {
|
||||
$navigation = $strcourses;
|
||||
}
|
||||
|
||||
print_all_courses($cat);
|
||||
print_header($strcourses, $strcourses, $navigation);
|
||||
|
||||
$showcategories = (count($categories) > 1);
|
||||
if ($showcategories) {
|
||||
echo "<TABLE WIDTH=\"100%\" CELLPADDING=10 BORDER=0>";
|
||||
echo "<TR><TD WIDTH=180 VALIGN=TOP>";
|
||||
print_simple_box($strcategories, "CENTER", 180, $THEME->cellheading);
|
||||
print_course_categories($categories, $category, 180);
|
||||
echo "</TD><TD WIDTH=\"100%\" VALIGN=TOP>";
|
||||
} else {
|
||||
echo "<TABLE WIDTH=80% ALIGN=CENTER><TR><TD VALIGN=top>";
|
||||
$category="all";
|
||||
unset($title);
|
||||
}
|
||||
|
||||
if ($category) {
|
||||
if (isset($title)) {
|
||||
print_simple_box($title, "CENTER", "100%", $THEME->cellheading);
|
||||
}
|
||||
echo "<BR>";
|
||||
print_all_courses($category);
|
||||
}
|
||||
|
||||
echo "</TD></TR></TABLE>";
|
||||
|
||||
|
||||
+176
-143
@@ -31,6 +31,9 @@ function print_log_selector_form($course, $selecteduser=0, $selecteddate="today"
|
||||
$users["$teacher->id"] = "$teacher->firstname $teacher->lastname";
|
||||
}
|
||||
}
|
||||
if ($guest = get_user_info_from_db("username", "guest")) {
|
||||
$users["$guest->id"] = "$guest->firstname $guest->lastname";
|
||||
}
|
||||
}
|
||||
|
||||
if (isadmin()) {
|
||||
@@ -158,7 +161,9 @@ function print_log($course, $user=0, $date=0, $order="ORDER BY l.time ASC") {
|
||||
}
|
||||
echo "<TD NOWRAP ALIGN=right><FONT SIZE=2>".userdate($log->time, "%A")."</TD>";
|
||||
echo "<TD NOWRAP><FONT SIZE=2>".userdate($log->time, "%e %B %Y, %I:%M %p")."</TD>";
|
||||
echo "<TD NOWRAP><FONT SIZE=2>$log->ip</TD>";
|
||||
echo "<TD NOWRAP><FONT SIZE=2>";
|
||||
link_to_popup_window("$CFG->wwwroot/lib/ipatlas/plot.php?address=$log->ip&user=$log->user", "ipatlas","$log->ip", 400, 700);
|
||||
echo "</TD>";
|
||||
echo "<TD NOWRAP><FONT SIZE=2><A HREF=\"../user/view.php?id=$log->user&course=$log->course\"><B>$log->firstname $log->lastname</B></TD>";
|
||||
echo "<TD NOWRAP><FONT SIZE=2>";
|
||||
link_to_popup_window( make_log_url($log->module,$log->url), "fromloglive","$log->module $log->action", 400, 600);
|
||||
@@ -170,10 +175,28 @@ function print_log($course, $user=0, $date=0, $order="ORDER BY l.time ASC") {
|
||||
}
|
||||
|
||||
|
||||
function print_all_courses($cat=1, $style="full", $maxcount=999) {
|
||||
global $CFG;
|
||||
function print_all_courses($category="all", $style="full", $maxcount=999) {
|
||||
global $CFG, $USER;
|
||||
|
||||
if ($courses = get_records("course", "category", $cat, "fullname ASC")) {
|
||||
if ($category == "all") {
|
||||
$courses = get_records_sql("SELECT * FROM course WHERE category > 0 ORDER BY fullname ASC");
|
||||
|
||||
} else if ($category == "my") {
|
||||
if (isset($USER->id)) {
|
||||
if ($courses = get_records_sql("SELECT * FROM course WHERE category > 0 ORDER BY fullname ASC")) {
|
||||
foreach ($courses as $key => $course) {
|
||||
if (!isteacher($course->id) and !isstudent($course->id)) {
|
||||
unset($courses[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
$courses = get_records("course", "category", $category, "fullname ASC");
|
||||
}
|
||||
|
||||
if ($courses) {
|
||||
if ($style == "minimal") {
|
||||
$count = 0;
|
||||
$icon = "<IMG SRC=\"pix/i/course.gif\" HEIGHT=16 WIDTH=16 ALT=\"".get_string("course")."\">";
|
||||
@@ -195,7 +218,7 @@ function print_all_courses($cat=1, $style="full", $maxcount=999) {
|
||||
}
|
||||
|
||||
} else {
|
||||
echo "<H3>No courses have been defined yet</H3>";
|
||||
echo "<H3>".get_string("nocoursesyet")."</H3>";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -215,17 +238,19 @@ function print_course($course) {
|
||||
echo "<TD VALIGN=top WIDTH=50%>";
|
||||
echo "<P><FONT SIZE=3><B><A TITLE=\"".get_string("entercourse")."\"
|
||||
HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->fullname</A></B></FONT></P>";
|
||||
if ($teachers = get_records_sql("SELECT u.* FROM user u, user_teachers t
|
||||
WHERE u.id = t.user AND t.course = '$course->id'
|
||||
ORDER BY t.authority ASC")) {
|
||||
|
||||
if ($teachers = get_course_teachers($course->id)) {
|
||||
echo "<P><FONT SIZE=1>\n";
|
||||
foreach ($teachers as $teacher) {
|
||||
echo "$course->teacher: <A HREF=\"$CFG->wwwroot/user/view.php?id=$teacher->id&course=$site->id\">$teacher->firstname $teacher->lastname</A><BR>";
|
||||
if ($teacher->authority > 0) {
|
||||
if (!$teacher->role) {
|
||||
$teacher->role = $course->teacher;
|
||||
}
|
||||
echo "$teacher->role: <A HREF=\"$CFG->wwwroot/user/view.php?id=$teacher->id&course=$site->id\">$teacher->firstname $teacher->lastname</A><BR>";
|
||||
}
|
||||
}
|
||||
echo "</FONT></P>";
|
||||
}
|
||||
if ($course->guest or ($course->password == "")) {
|
||||
if ($course->guest) {
|
||||
echo "<A TITLE=\"".get_string("allowguests")."\" HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">";
|
||||
echo "<IMG VSPACE=4 ALT=\"\" HEIGHT=16 WIDTH=16 BORDER=0 SRC=\"$CFG->wwwroot/user/user.gif\"></A> ";
|
||||
}
|
||||
@@ -283,7 +308,9 @@ function print_recent_activity($course) {
|
||||
$content = true;
|
||||
}
|
||||
$user = get_record("user", "id", $log->info);
|
||||
echo "<P><FONT SIZE=1><A HREF=\"../user/view.php?id=$user->id&course=$course->id\">$user->firstname $user->lastname</A></FONT></P>";
|
||||
if (isstudent($course->id, $user->id)) {
|
||||
echo "<P><FONT SIZE=1><A HREF=\"../user/view.php?id=$user->id&course=$course->id\">$user->firstname $user->lastname</A></FONT></P>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -335,85 +362,28 @@ function print_recent_activity($course) {
|
||||
}
|
||||
|
||||
|
||||
// Now all we need to know are the new posts.
|
||||
// Now display new things from each module
|
||||
|
||||
$heading = false;
|
||||
foreach ($logs as $log) {
|
||||
|
||||
if ($log->module == "forum") {
|
||||
$post = NULL;
|
||||
$mods = get_list_of_plugins("mod");
|
||||
|
||||
if ($log->action == "add post") {
|
||||
$post = get_record_sql("SELECT p.*, d.forum, u.firstname, u.lastname,
|
||||
u.email, u.picture, u.id as userid
|
||||
FROM forum_discussions d, forum_posts p, user u
|
||||
WHERE p.id = '$log->info' AND d.id = p.discussion AND p.user = u.id");
|
||||
|
||||
} else if ($log->action == "add discussion") {
|
||||
$post = get_record_sql("SELECT p.*, d.forum, u.firstname, u.lastname,
|
||||
u.email, u.picture, u.id as userid
|
||||
FROM forum_discussions d, forum_posts p, user u
|
||||
WHERE d.id = '$log->info' AND d.firstpost = p.id AND p.user = u.id");
|
||||
foreach ($mods as $mod) {
|
||||
include_once("$CFG->dirroot/mod/$mod/lib.php");
|
||||
$print_recent_activity = $mod."_print_recent_activity";
|
||||
if (function_exists($print_recent_activity)) {
|
||||
$modcontent = $print_recent_activity($logs, isteacher($course->id));
|
||||
if ($modcontent) {
|
||||
$content = true;
|
||||
}
|
||||
|
||||
if ($post) {
|
||||
|
||||
$teacherpost = "";
|
||||
if ($forum = get_record("forum", "id", $post->forum) ) {
|
||||
if ($forum->type == "teacher") {
|
||||
if (!isteacher($course->id)) {
|
||||
continue;
|
||||
} else {
|
||||
$teacherpost = "COLOR=$COURSE_TEACHER_COLOR";
|
||||
}
|
||||
}
|
||||
}
|
||||
if (! $heading) {
|
||||
print_headline(get_string("newforumposts").":");
|
||||
$heading = true;
|
||||
$content = true;
|
||||
}
|
||||
$date = userdate($post->modified, "%e %b, %H:%M");
|
||||
echo "<P><FONT SIZE=1 $teacherpost>$date - $post->firstname $post->lastname<BR>";
|
||||
echo "\"<A HREF=\"$CFG->wwwroot/mod/forum/$log->url\">";
|
||||
if ($log->action == "add") {
|
||||
echo "<B>$post->subject</B>";
|
||||
} else {
|
||||
echo "$post->subject";
|
||||
}
|
||||
echo "</A>\"</FONT></P>";
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (! $content) {
|
||||
echo "<FONT SIZE=2>".get_string("nothingnew")."</FONT>";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function unenrol_student_in_course($user, $course) {
|
||||
global $db;
|
||||
|
||||
return $db->Execute("DELETE FROM user_students WHERE user = '$user' AND course = '$course'");
|
||||
}
|
||||
|
||||
|
||||
|
||||
function enrol_student_in_course($user, $course) {
|
||||
global $db;
|
||||
|
||||
$timenow = time();
|
||||
|
||||
$rs = $db->Execute("INSERT INTO user_students (user, course, start, end, time)
|
||||
VALUES ($user, $course, 0, 0, $timenow)");
|
||||
if ($rs) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function get_all_mods($courseid, &$mods, &$modnames, &$modnamesplural, &$modnamesused) {
|
||||
// Returns a number of useful structures for course displays
|
||||
@@ -455,11 +425,15 @@ function get_all_sections($courseid) {
|
||||
ORDER BY section");
|
||||
}
|
||||
|
||||
function print_section($courseid, $section, $mods, $modnamesused, $absolute=false) {
|
||||
function get_all_categories() {
|
||||
return get_records_sql("SELECT * FROM course_categories ORDER by name");
|
||||
}
|
||||
|
||||
function print_section($courseid, $section, $mods, $modnamesused, $absolute=false, $width="100%") {
|
||||
global $CFG;
|
||||
|
||||
|
||||
echo "<TABLE WIDTH=100%><TR><TD>\n";
|
||||
echo "<TABLE WIDTH=\"$width\"><TR><TD>\n";
|
||||
if ($section->sequence) {
|
||||
|
||||
$sectionmods = explode(",", $section->sequence);
|
||||
@@ -479,9 +453,9 @@ function print_section($courseid, $section, $mods, $modnamesused, $absolute=fals
|
||||
echo "</TD></TR></TABLE><BR>\n\n";
|
||||
}
|
||||
|
||||
function print_side_block($heading="", $list=NULL, $footer="", $icons=NULL) {
|
||||
function print_side_block($heading="", $list=NULL, $footer="", $icons=NULL, $width=180) {
|
||||
|
||||
echo "<TABLE WIDTH=100%>\n";
|
||||
echo "<TABLE WIDTH=\"$width\">\n";
|
||||
echo "<TR><TD COLSPAN=2><P><B><FONT SIZE=2>$heading</TD></TR>\n";
|
||||
if ($list) {
|
||||
foreach($list as $key => $string) {
|
||||
@@ -502,61 +476,145 @@ function print_side_block($heading="", $list=NULL, $footer="", $icons=NULL) {
|
||||
echo "</TABLE><BR>\n\n";
|
||||
}
|
||||
|
||||
function print_admin_links ($siteid) {
|
||||
function print_admin_links ($siteid, $width=180) {
|
||||
global $THEME, $CFG;
|
||||
|
||||
print_simple_box(get_string("administration"), $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_simple_box(get_string("administration"), $align="CENTER", $width, $color="$THEME->cellheading");
|
||||
$icon = "<IMG SRC=\"$CFG->wwwroot/pix/i/settings.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/course/log.php?id=$siteid\">".get_string("sitelogs")."</A>";
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/admin/config.php\">".get_string("configvariables")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/admin/site.php\">".get_string("sitesettings")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/course/log.php?id=$siteid\">".get_string("sitelogs")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/theme/index.php\">".get_string("choosetheme")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/admin/lang.php\">".get_string("checklanguage")."</A>";
|
||||
$modicon[]=$icon;
|
||||
if (file_exists("$CFG->dirroot/admin/$CFG->dbtype")) {
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/admin/$CFG->dbtype/\">".get_string("managedatabase")."</A>";
|
||||
$modicon[]=$icon;
|
||||
}
|
||||
$moddata[]="<HR>";
|
||||
$modicon[]="";
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/course/edit.php\">".get_string("addnewcourse")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/course/categories.php\">".get_string("categories")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/course/teacher.php\">".get_string("assignteachers")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/course/delete.php\">".get_string("deletecourse")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<HR>";
|
||||
$modicon[]="";
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/admin/user.php?newuser=true\">".get_string("addnewuser")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$moddata[]="<A HREF=\"$CFG->wwwroot/admin/user.php\">".get_string("edituser")."</A>";
|
||||
$modicon[]=$icon;
|
||||
$fulladmin = "<P><A HREF=\"$CFG->wwwroot/admin/\">".get_string("admin")."</A>...";
|
||||
print_side_block("", $moddata, "$fulladmin", $modicon);
|
||||
echo "<IMG SRC=\"$CFG->wwwroot/pix/spacer.gif\" WIDTH=200 HEIGHT=0><BR>";
|
||||
print_side_block("", $moddata, "$fulladmin", $modicon, $width);
|
||||
echo "<IMG SRC=\"$CFG->wwwroot/pix/spacer.gif\" WIDTH=\"$width\" HEIGHT=1><BR>";
|
||||
}
|
||||
|
||||
function print_course_admin_links($courseid) {
|
||||
function print_course_admin_links($course, $width=180) {
|
||||
global $THEME, $CFG;
|
||||
|
||||
echo "<BR>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/pix/i/edit.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
if (isediting($courseid)) {
|
||||
$admindata[]="<A HREF=\"view.php?id=$courseid&edit=off\">".get_string("turneditingoff")."</A>";
|
||||
if (isediting($course->id)) {
|
||||
$admindata[]="<A HREF=\"view.php?id=$course->id&edit=off\">".get_string("turneditingoff")."</A>";
|
||||
} else {
|
||||
$admindata[]="<A HREF=\"view.php?id=$courseid&edit=on\">".get_string("turneditingon")."</A>";
|
||||
$admindata[]="<A HREF=\"view.php?id=$course->id&edit=on\">".get_string("turneditingon")."</A>";
|
||||
}
|
||||
$admindata[]="<A HREF=\"edit.php?id=$courseid\">".get_string("settings")."...</A>";
|
||||
$admindata[]="<A HREF=\"edit.php?id=$course->id\">".get_string("settings")."...</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/pix/i/settings.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
$admindata[]="<A HREF=\"log.php?id=$courseid\">".get_string("logs")."...</A>";
|
||||
if (!$course->teachers) {
|
||||
$course->teachers = get_string("defaultcourseteachers");
|
||||
}
|
||||
$admindata[]="<A HREF=\"teachers.php?id=$course->id\">$course->teachers...</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/pix/i/settings.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
|
||||
$admindata[]="<A HREF=\"grades.php?id=$course->id\">".get_string("grades")."...</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/pix/i/grades.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
|
||||
$admindata[]="<A HREF=\"log.php?id=$course->id\">".get_string("logs")."...</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/pix/i/log.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
$admindata[]="<A HREF=\"$CFG->wwwroot/files/index.php?id=$courseid\">".get_string("files")."...</A>";
|
||||
$admindata[]="<A HREF=\"$CFG->wwwroot/files/index.php?id=$course->id\">".get_string("files")."...</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/files/pix/files.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
|
||||
$admindata[]="<A HREF=\"$CFG->wwwroot/doc/view.php?id=$courseid&file=teacher.html\">".get_string("help")."...</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/mod/reading/icon.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
$admindata[]="<A HREF=\"$CFG->wwwroot/doc/view.php?id=$course->id&file=teacher.html\">".get_string("help")."...</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/mod/resource/icon.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
|
||||
if ($teacherforum = forum_get_course_forum($courseid, "teacher")) {
|
||||
$admindata[]="<A HREF=\"$CFG->wwwroot/mod/forum/view.php?f=$teacherforum->id\">".get_string("teacherforum")."</A>";
|
||||
|
||||
if ($teacherforum = forum_get_course_forum($course->id, "teacher")) {
|
||||
$admindata[]="<A HREF=\"$CFG->wwwroot/mod/forum/view.php?f=$teacherforum->id\">".get_string("nameteacher", "forum")."</A>";
|
||||
$adminicon[]="<IMG SRC=\"$CFG->wwwroot/mod/forum/icon.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
}
|
||||
|
||||
print_simple_box(get_string("administration"), $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_side_block("", $admindata, "", $adminicon);
|
||||
print_simple_box(get_string("administration"), $align="CENTER", $width, $color="$THEME->cellheading");
|
||||
print_side_block("", $admindata, "", $adminicon, $width);
|
||||
}
|
||||
|
||||
function print_course_categories($categories, $selected="none", $width=180) {
|
||||
global $CFG, $THEME, $USER;
|
||||
|
||||
if ($selected == "index") { // Print comprehensive index of categories with courses
|
||||
if ($courses = get_records_sql("SELECT * FROM course WHERE category > 0 ORDER BY shortname")) {
|
||||
if (isset($USER->id) and !isadmin()) {
|
||||
print_simple_box_start("LEFT", "100%");
|
||||
print_heading("<A HREF=\"course/index.php?category=my\">".get_string("mycourses")."</A>", "LEFT");
|
||||
$some = false;
|
||||
echo "<UL>";
|
||||
foreach ($courses as $key => $course) {
|
||||
if (isteacher($course->id) or isstudent($course->id)) {
|
||||
echo "<IMG SRC=\"$CFG->wwwroot/pix/i/course.gif\" HEIGHT=16 WIDTH=16> <A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ";
|
||||
$some = true;
|
||||
}
|
||||
}
|
||||
if (!$some) {
|
||||
print_string("nocoursesyet");
|
||||
}
|
||||
echo "</UL>";
|
||||
print_simple_box_end();
|
||||
print_spacer(8,1);
|
||||
}
|
||||
foreach ($categories as $category) {
|
||||
print_simple_box_start("CENTER", "100%");
|
||||
print_heading("<A HREF=\"course/index.php?category=$category->id\">$category->name</A>", "LEFT");
|
||||
$some = false;
|
||||
echo "<UL>";
|
||||
foreach ($courses as $key => $course) {
|
||||
if ($course->category == $category->id) {
|
||||
echo "<IMG SRC=\"$CFG->wwwroot/pix/i/course.gif\" HEIGHT=16 WIDTH=16> <A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A> ";
|
||||
unset($courses[$key]);
|
||||
$some = true;
|
||||
}
|
||||
}
|
||||
if (!$some) {
|
||||
print_string("nocoursesyet");
|
||||
}
|
||||
echo "</UL>";
|
||||
print_simple_box_end();
|
||||
print_spacer(8,1);
|
||||
}
|
||||
}
|
||||
|
||||
} else { // Print short list of categories only
|
||||
foreach ($categories as $cat) {
|
||||
$caticon[]="<IMG SRC=\"$CFG->wwwroot/pix/i/course.gif\" HEIGHT=16 WIDTH=16>";
|
||||
if ($cat->id == $selected) {
|
||||
$catdata[]="$cat->name";
|
||||
} else {
|
||||
$catdata[]="<A HREF=\"$CFG->wwwroot/course/index.php?category=$cat->id\">$cat->name</A>";
|
||||
}
|
||||
}
|
||||
$catdata[] = "<A HREF=\"$CFG->wwwroot/course/index.php?category=all\">".get_string("fulllistofcourses")."</A>";
|
||||
if (isset($USER->id)) {
|
||||
$catdata[] = "<A HREF=\"$CFG->wwwroot/course/index.php?category=my\">".get_string("mycourses")."</A>";
|
||||
}
|
||||
print_side_block("", $catdata, $showall.$mine, $caticon, $width);
|
||||
}
|
||||
}
|
||||
|
||||
function print_log_graph($course, $userid=0, $type="course.png", $date=0) {
|
||||
global $CFG;
|
||||
@@ -570,60 +628,35 @@ function print_log_graph($course, $userid=0, $type="course.png", $date=0) {
|
||||
function add_course_module($mod) {
|
||||
GLOBAL $db;
|
||||
|
||||
$timenow = time();
|
||||
|
||||
if (!$rs = $db->Execute("INSERT into course_modules
|
||||
SET course = '$mod->course',
|
||||
module = '$mod->module',
|
||||
instance = '$mod->instance',
|
||||
section = '$mod->section',
|
||||
added = '$timenow' ")) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Get it out again - this is the most compatible way to determine the ID
|
||||
if ($rs = $db->Execute("SELECT id FROM course_modules
|
||||
WHERE module = $mod->module AND added = $timenow")) {
|
||||
return $rs->fields[0];
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
$mod->added = time();
|
||||
|
||||
return insert_record("course_modules", $mod);
|
||||
}
|
||||
|
||||
function add_mod_to_section($mod) {
|
||||
// Returns the course_sections ID where the mod is inserted
|
||||
GLOBAL $db;
|
||||
|
||||
if ($cw = get_record_sql("SELECT * FROM course_sections
|
||||
WHERE course = '$mod->course' AND section = '$mod->section'") ) {
|
||||
if ($section = get_record_sql("SELECT * FROM course_sections
|
||||
WHERE course = '$mod->course' AND section = '$mod->section'") ) {
|
||||
|
||||
if ($cw->sequence) {
|
||||
$newsequence = "$cw->sequence,$mod->coursemodule";
|
||||
if ($section->sequence) {
|
||||
$newsequence = "$section->sequence,$mod->coursemodule";
|
||||
} else {
|
||||
$newsequence = "$mod->coursemodule";
|
||||
}
|
||||
if (!$rs = $db->Execute("UPDATE course_sections SET sequence = '$newsequence' WHERE id = '$cw->id'")) {
|
||||
return 0;
|
||||
if (set_field("course_sections", "sequence", $newsequence, "id", $section->id)) {
|
||||
return $section->id; // Return course_sections ID that was used.
|
||||
} else {
|
||||
return $cw->id; // Return course_sections ID that was used.
|
||||
return 0;
|
||||
}
|
||||
|
||||
} else { // Insert a new record
|
||||
if (!$rs = $db->Execute("INSERT into course_sections
|
||||
SET course = '$mod->course',
|
||||
section = '$mod->section',
|
||||
summary = '',
|
||||
sequence = '$mod->coursemodule' ")) {
|
||||
return 0;
|
||||
}
|
||||
// Get it out again - this is the most compatible way to determine the ID
|
||||
if ($rs = $db->Execute("SELECT id FROM course_sections
|
||||
WHERE course = '$mod->course' AND section = '$mod->section'")) {
|
||||
return $rs->fields[0];
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
$section->course = $mod->course;
|
||||
$section->section = $mod->section;
|
||||
$section->summary = "";
|
||||
$section->sequence = $mod->coursemodule;
|
||||
return insert_record("course_sections", $section);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -634,14 +667,14 @@ function delete_course_module($mod) {
|
||||
function delete_mod_from_section($mod, $section) {
|
||||
GLOBAL $db;
|
||||
|
||||
if ($cw = get_record("course_sections", "id", "$section") ) {
|
||||
if ($section = get_record("course_sections", "id", "$section") ) {
|
||||
|
||||
$modarray = explode(",", $cw->sequence);
|
||||
$modarray = explode(",", $section->sequence);
|
||||
|
||||
if ($key = array_keys ($modarray, $mod)) {
|
||||
array_splice($modarray, $key[0], 1);
|
||||
$newsequence = implode(",", $modarray);
|
||||
return set_field("course_sections", "sequence", $newsequence, "id", $cw->id);
|
||||
return set_field("course_sections", "sequence", $newsequence, "id", $section->id);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
+35
-22
@@ -38,21 +38,28 @@
|
||||
if ($timenow - $course->startdate > $COURSE_MAX_LOG_DISPLAY) {
|
||||
$course->startdate = $timenow - $COURSE_MAX_LOG_DISPLAY;
|
||||
}
|
||||
$timestart = usergetmidnight($course->startdate);
|
||||
$timestart = $coursestart = usergetmidnight($course->startdate);
|
||||
|
||||
$i = 0;
|
||||
while ($timestart < $timenow) {
|
||||
$timefinish = $timestart + (3600 * 24);
|
||||
if (! $logcount = get_record_sql("SELECT COUNT(*) as count FROM log
|
||||
WHERE user = '$user->id' AND course = '$course->id'
|
||||
AND `time` > '$timestart' AND `time` < '$timefinish'")) {
|
||||
$logs[$i] = 0;
|
||||
}
|
||||
$logs[$i] = $logcount->count;
|
||||
$timefinish = $timestart + 86400;
|
||||
$days[$i] = userdate($timestart, "%a %e %b");
|
||||
$logs[$i] = 0;
|
||||
$i++;
|
||||
$timestart = $timefinish;
|
||||
}
|
||||
|
||||
if ($rawlogs = get_records_sql("SELECT floor((`time` - $coursestart)/86400) as day,
|
||||
count(*) as num FROM log
|
||||
WHERE user = '$user->id'
|
||||
AND course = '$course->id'
|
||||
AND `time` > '$coursestart'
|
||||
GROUP BY day ")) {
|
||||
foreach ($rawlogs as $rawlog) {
|
||||
$logs[$rawlog->day] = $rawlog->num;
|
||||
}
|
||||
}
|
||||
|
||||
$maxlogs = max($logs);
|
||||
|
||||
|
||||
@@ -62,7 +69,7 @@
|
||||
$graph->x_data = $days;
|
||||
|
||||
$graph->y_data['logs'] = $logs;
|
||||
$graph->y_format['logs'] = array('colour' => 'blue','bar' => 'fill','legend' =>'actual','bar_size' => 0.9);
|
||||
$graph->y_format['logs'] = array('colour' => 'blue','line' => 'line');
|
||||
$graph->y_label_left = "Hits";
|
||||
$graph->label_size = "6";
|
||||
|
||||
@@ -78,22 +85,28 @@
|
||||
case "userday.png":
|
||||
|
||||
if ($date) {
|
||||
$timestart = usergetmidnight($date);
|
||||
$daystart = usergetmidnight($date);
|
||||
} else {
|
||||
$timestart = usergetmidnight(time());
|
||||
$daystart = usergetmidnight(time());
|
||||
}
|
||||
while ($timestart < $timenow) {
|
||||
$timefinish = $timestart + 3600;
|
||||
if (! $logcount = get_record_sql("SELECT COUNT(*) as count FROM log
|
||||
WHERE user = '$user->id' AND course = '$course->id'
|
||||
AND `time` > '$timestart' AND `time` < '$timefinish'")) {
|
||||
$logs[$i] = 0;
|
||||
$dayfinish = $daystart + 86400;
|
||||
|
||||
for ($i=0; $i<=23; $i++) {
|
||||
$logs[$i] = 0;
|
||||
$hour = $daystart + $i * 3600;
|
||||
$hh = (int)userdate($hour, "%I");
|
||||
$hours[$i] = userdate($hour, "$hh %p");
|
||||
}
|
||||
|
||||
if ($rawlogs = get_records_sql("SELECT floor((`time` - $daystart)/3600) as hour,
|
||||
count(*) as num FROM log
|
||||
WHERE user = '$user->id'
|
||||
AND course = '$course->id'
|
||||
AND `time` > '$daystart'
|
||||
GROUP BY hour ")) {
|
||||
foreach ($rawlogs as $rawlog) {
|
||||
$logs[$rawlog->hour] = $rawlog->num;
|
||||
}
|
||||
$logs[$i] = $logcount->count;
|
||||
$hh = (int)userdate($timestart, "%I");
|
||||
$hours[$i] = userdate($timestart, "$hh %p");
|
||||
$i++;
|
||||
$timestart = $timefinish;
|
||||
}
|
||||
|
||||
$maxlogs = max($logs);
|
||||
|
||||
@@ -28,6 +28,7 @@
|
||||
|
||||
$USER = get_user_info_from_db("id", $user);
|
||||
$USER->loggedin = true;
|
||||
$USER->site = $CFG->wwwroot;
|
||||
$USER->realuser = $teacher_id;
|
||||
save_session("USER");
|
||||
|
||||
|
||||
+28
-5
@@ -5,8 +5,27 @@
|
||||
require("../config.php");
|
||||
require("lib.php");
|
||||
|
||||
if (isset($cancel)) {
|
||||
if ($SESSION->returnpage) {
|
||||
$return = $SESSION->returnpage;
|
||||
unset($SESSION->returnpage);
|
||||
save_session("SESSION");
|
||||
redirect($return);
|
||||
} else {
|
||||
redirect("view.php?id=$mod->course");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (isset($course) && isset($HTTP_POST_VARS)) { // add or update form submitted
|
||||
$mod = (object)$HTTP_POST_VARS;
|
||||
|
||||
if (isset($SESSION->modform)) { // Variables are stored in the session
|
||||
$mod = $SESSION->modform;
|
||||
unset($SESSION->modform);
|
||||
save_session("SESSION");
|
||||
} else {
|
||||
$mod = (object)$HTTP_POST_VARS;
|
||||
}
|
||||
|
||||
require_login($mod->course);
|
||||
|
||||
@@ -78,10 +97,6 @@
|
||||
exit;
|
||||
}
|
||||
|
||||
if (isset($return)) {
|
||||
$SESSION->returnpage = $HTTP_REFERER;
|
||||
save_session("SESSION");
|
||||
}
|
||||
|
||||
if (isset($move)) {
|
||||
|
||||
@@ -161,6 +176,11 @@
|
||||
error("This course section doesn't exist");
|
||||
}
|
||||
|
||||
if (isset($return)) {
|
||||
$SESSION->returnpage = "$CFG->wwwroot/mod/$module->name/view.php?id=$cm->id";
|
||||
save_session("SESSION");
|
||||
}
|
||||
|
||||
$form->coursemodule = $cm->id;
|
||||
$form->section = $cm->section; // The section ID
|
||||
$form->course = $course->id;
|
||||
@@ -238,6 +258,9 @@
|
||||
"$streditinga", "form.name", "", false);
|
||||
}
|
||||
|
||||
unset($SESSION->modform); // Clear any old ones that may be hanging around.
|
||||
save_session("SESSION");
|
||||
|
||||
$modform = "../mod/$module->name/mod.html";
|
||||
|
||||
if (file_exists($modform)) {
|
||||
|
||||
+8
-10
@@ -2,18 +2,18 @@
|
||||
// social.php - course format featuring social forum
|
||||
// included from view.php
|
||||
|
||||
include("../mod/forum/lib.php");
|
||||
include("../mod/reading/lib.php");
|
||||
include_once("$CFG->dirroot/mod/forum/lib.php");
|
||||
include_once("$CFG->dirroot/mod/resource/lib.php");
|
||||
?>
|
||||
|
||||
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
|
||||
<TR>
|
||||
<TD WIDTH="15%" VALIGN="TOP">
|
||||
<TD WIDTH="200" VALIGN="TOP">
|
||||
<?
|
||||
print_simple_box(get_string("people"), $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
$moddata[]="<A HREF=\"../user/index.php?id=$course->id\">".get_string("listofallpeople")."</A>";
|
||||
$moddata[]="<A TITLE=\"".get_string("listofallpeople")."\" HREF=\"../user/index.php?id=$course->id\">".get_string("participants")."</A>";
|
||||
$modicon[]="<IMG SRC=\"../user/users.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
$editmyprofile = "<A HREF=\"../user/view.php?id=$USER->id&course=$course->id\">".
|
||||
$editmyprofile = "<A TITLE=\"$USER->firstname $USER->lastname\" HREF=\"../user/view.php?id=$USER->id&course=$course->id\">".
|
||||
get_string("editmyprofile")."</A>";
|
||||
if ($USER->description) {
|
||||
$moddata[]= $editmyprofile;
|
||||
@@ -32,7 +32,7 @@
|
||||
if (isediting($site->id)) {
|
||||
echo "<DIV ALIGN=right>";
|
||||
popup_form("$CFG->wwwroot/course/mod.php?id=$course->id§ion=0&add=",
|
||||
$modnames, "section0", "", get_string("add")."...");
|
||||
$modnames, "section0", "", get_string("add")."...", "mods", get_string("activities"));
|
||||
echo "</DIV>";
|
||||
}
|
||||
|
||||
@@ -51,12 +51,12 @@
|
||||
|
||||
// Admin links and controls
|
||||
if (isteacher($course->id)) {
|
||||
print_course_admin_links($course->id);
|
||||
print_course_admin_links($course, "100%");
|
||||
}
|
||||
|
||||
echo "</TD>";
|
||||
|
||||
echo "<TD WIDTH=\"55%\" VALIGN=\"TOP\">";
|
||||
echo "<TD WIDTH=\"100%\" VALIGN=\"TOP\">";
|
||||
if ($social = forum_get_course_forum($course->id, "social")) {
|
||||
if (forum_is_subscribed($USER->id, $social->id)) {
|
||||
$subtext = get_string("unsubscribe", "forum");
|
||||
@@ -68,8 +68,6 @@
|
||||
echo "<IMG ALT=\"\" HEIGHT=7 SRC=\"../pix/spacer.gif\"><BR>";
|
||||
|
||||
forum_print_latest_discussions($social->id, 10, "plain", "DESC", false);
|
||||
$SESSION->fromdiscussion = "$CFG->wwwroot/course/view.php?id=$course->id";
|
||||
save_session("SESSION");
|
||||
|
||||
} else {
|
||||
notify("Could not find or create a social forum here");
|
||||
|
||||
+29
-27
@@ -18,14 +18,23 @@
|
||||
|
||||
$strassignteachers = get_string("assignteachers");
|
||||
$stradministration = get_string("administration");
|
||||
$strexistingteachers = get_string("existingteachers");
|
||||
$strnoexistingteachers = get_string("noexistingteachers");
|
||||
$strpotentialteachers = get_string("potentialteachers");
|
||||
$strnopotentialteachers = get_string("nopotentialteachers");
|
||||
$straddteacher = get_string("addteacher");
|
||||
$strremoveteacher = get_string("removeteacher");
|
||||
$strsearch = get_string("search");
|
||||
$strsearchagain = get_string("searchagain");
|
||||
$strtoomanytoshow = get_string("toomanytoshow");
|
||||
|
||||
if (!$id) {
|
||||
print_header("$site->fullname: $strassignteachers", "$site->fullname",
|
||||
print_header("$site->shortname: $strassignteachers", "$site->fullname",
|
||||
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> -> $strassignteachers");
|
||||
|
||||
if ($courses = get_records_sql("SELECT * from course WHERE category > 0 ORDER BY fullname")) {
|
||||
|
||||
print_heading("Choose a course to add teachers to");
|
||||
print_heading(get_string("choosecourse"));
|
||||
print_simple_box_start("CENTER");
|
||||
foreach ($courses as $course) {
|
||||
echo "<A HREF=\"teacher.php?id=$course->id\">$course->fullname</A><BR>";
|
||||
@@ -44,19 +53,16 @@
|
||||
}
|
||||
|
||||
|
||||
print_header("$site->fullname: $course->shortname: $strassignteachers",
|
||||
print_header("$site->shortname: $course->shortname: $strassignteachers",
|
||||
"$site->fullname",
|
||||
"<A HREF=\"$CFG->wwwroot/admin\">$stradministration</A> ->
|
||||
<A HREF=\"teacher.php\">$strassignteachers</A> ->
|
||||
$course->shortname", "");
|
||||
print_heading($course->fullname);
|
||||
print_heading("<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->fullname</A>");
|
||||
|
||||
|
||||
/// Get all existing teachers for this course.
|
||||
$teachers = get_records_sql("SELECT u.*,t.authority,t.id as teachid FROM user u, user_teachers t
|
||||
WHERE t.course = '$course->id'
|
||||
AND t.user = u.id
|
||||
ORDER BY t.authority ASC");
|
||||
$teachers = get_course_teachers($course->id);
|
||||
|
||||
/// Add a teacher if one is specified
|
||||
|
||||
@@ -84,7 +90,6 @@
|
||||
if (! $teacher->id) {
|
||||
error("Could not add that teacher to this course!");
|
||||
}
|
||||
$user->authority = $teacher->authority;
|
||||
$teachers[] = $user;
|
||||
}
|
||||
|
||||
@@ -95,33 +100,30 @@
|
||||
error("That teacher (id = $remove) doesn't exist", "teacher.php?id=$course->id");
|
||||
}
|
||||
if ($teachers) {
|
||||
foreach ($teachers as $tt) {
|
||||
foreach ($teachers as $key => $tt) {
|
||||
if ($tt->id == $user->id) {
|
||||
delete_records("user_teachers", "id", "$tt->teachid");
|
||||
remove_teacher($user->id, $course->id);
|
||||
unset($teachers[$key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
$teachers = get_records_sql("SELECT u.*,t.authority,t.id as teachid FROM user u, user_teachers t
|
||||
WHERE t.course = '$course->id'
|
||||
AND t.user = u.id
|
||||
ORDER BY t.authority ASC");
|
||||
}
|
||||
|
||||
|
||||
/// Print the lists of existing and potential teachers
|
||||
|
||||
echo "<TABLE CELLPADDING=2 CELLSPACING=10 ALIGN=CENTER>";
|
||||
echo "<TR><TH WIDTH=50%>Existing Teachers</TH><TH WIDTH=50%>Potential Teachers</TH></TR>";
|
||||
echo "<TR><TH WIDTH=50%>$strexistingteachers</TH><TH WIDTH=50%>$strpotentialteachers</TH></TR>";
|
||||
echo "<TR><TD WIDTH=50% NOWRAP VALIGN=TOP>";
|
||||
|
||||
/// First, show existing teachers for this course
|
||||
|
||||
if (! $teachers) {
|
||||
echo "<P ALIGN=CENTER>No existing teachers</A>";
|
||||
echo "<P ALIGN=CENTER>$strnoexistingteachers</A>";
|
||||
|
||||
} else {
|
||||
foreach ($teachers as $teacher) {
|
||||
echo "<P ALIGN=right>$teacher->firstname $teacher->lastname, $teacher->email <A HREF=\"teacher.php?id=$course->id&remove=$teacher->id\" TITLE=\"Remove teacher\"><IMG SRC=\"../pix/t/right.gif\" BORDER=0></A></P>";
|
||||
echo "<P ALIGN=right>$teacher->firstname $teacher->lastname, $teacher->email <A HREF=\"teacher.php?id=$course->id&remove=$teacher->id\" TITLE=\"$strremoveteacher\"><IMG SRC=\"../pix/t/right.gif\" BORDER=0></A></P>";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,14 +132,14 @@
|
||||
/// Print list of potential teachers
|
||||
|
||||
if ($search) {
|
||||
$users = get_records_sql("SELECT * from user WHERE confirmed = 1
|
||||
$users = get_records_sql("SELECT * from user WHERE confirmed = 1 AND deleted = 0
|
||||
AND (firstname LIKE '%$search%' OR
|
||||
lastname LIKE '%$search%' OR
|
||||
email LIKE '%$search%')
|
||||
AND username <> 'guest'");
|
||||
AND username <> 'guest' AND username <> 'changeme'");
|
||||
} else {
|
||||
$users = get_records_sql("SELECT * from user WHERE confirmed = 1
|
||||
AND username <> 'guest'");
|
||||
$users = get_records_sql("SELECT * from user WHERE confirmed = 1 AND deleted = 0
|
||||
AND username <> 'guest' AND username <> 'changeme'");
|
||||
}
|
||||
|
||||
|
||||
@@ -155,22 +157,22 @@
|
||||
}
|
||||
|
||||
if (! $potential) {
|
||||
echo "<P ALIGN=CENTER>No potential teachers</A>";
|
||||
echo "<P ALIGN=CENTER>$strnopotentialteachers</A>";
|
||||
if ($search) {
|
||||
echo "<FORM ACTION=teacher.php METHOD=GET>";
|
||||
echo "<INPUT TYPE=hidden NAME=id VALUE=\"$course->id\">";
|
||||
echo "<INPUT TYPE=text NAME=search SIZE=20>";
|
||||
echo "<INPUT TYPE=submit VALUE=\"Search again\">";
|
||||
echo "<INPUT TYPE=submit VALUE=\"$strsearchagain\">";
|
||||
echo "</FORM>";
|
||||
}
|
||||
|
||||
} else {
|
||||
if ($search) {
|
||||
echo "<P ALIGN=CENTER>(Search results)</P>";
|
||||
echo "<P ALIGN=CENTER>($strsearchresults)</P>";
|
||||
}
|
||||
if (count($potential) <= 20) {
|
||||
foreach ($potential as $user) {
|
||||
echo "<P ALIGN=LEFT><A HREF=\"teacher.php?id=$course->id&add=$user->id\" TITLE=\"Add teacher\"><IMG SRC=\"../pix/t/left.gif\" BORDER=0></A> $user->firstname $user->lastname, $user->email";
|
||||
echo "<P ALIGN=LEFT><A HREF=\"teacher.php?id=$course->id&add=$user->id\" TITLE=\"$straddteacher\"><IMG SRC=\"../pix/t/left.gif\" BORDER=0></A> $user->firstname $user->lastname, $user->email";
|
||||
}
|
||||
} else {
|
||||
echo "<P ALIGN=CENTER>There are too many users to show.<BR>";
|
||||
@@ -178,7 +180,7 @@
|
||||
echo "<FORM ACTION=teacher.php METHOD=GET>";
|
||||
echo "<INPUT TYPE=hidden NAME=id VALUE=\"$course->id\">";
|
||||
echo "<INPUT TYPE=text NAME=search SIZE=20>";
|
||||
echo "<INPUT TYPE=submit VALUE=Search>";
|
||||
echo "<INPUT TYPE=submit VALUE=\"$strsearch\">";
|
||||
echo "</FORM>";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
<?PHP // $Id$
|
||||
// Allows a teacher to edit teacher order and roles for a course
|
||||
|
||||
require("../config.php");
|
||||
require("lib.php");
|
||||
|
||||
require_variable($id); // course id
|
||||
|
||||
if (! $course = get_record("course", "id", $id)) {
|
||||
error("Course ID was incorrect");
|
||||
}
|
||||
|
||||
require_login($course->id);
|
||||
|
||||
if (!isteacher($course->id)) {
|
||||
error("Only teachers can edit the course!");
|
||||
}
|
||||
|
||||
|
||||
/// If data submitted, then process and store.
|
||||
|
||||
if (match_referer() && isset($HTTP_POST_VARS)) {
|
||||
|
||||
$rank = array();
|
||||
|
||||
// Peel out all the data from variable names.
|
||||
foreach ($HTTP_POST_VARS as $key => $val) {
|
||||
if ($key <> "id") {
|
||||
$type = substr($key,0,1);
|
||||
$num = substr($key,1);
|
||||
$rank[$num][$type] = $val;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($rank as $num => $vals) {
|
||||
if (! $teacher = get_record_sql("SELECT * FROM user_teachers WHERE course='$course->id' and user='$num'")) {
|
||||
error("No such teacher in course $course->shortname with user id $num");
|
||||
}
|
||||
$teacher->role = $vals[r];
|
||||
$teacher->authority = $vals[a];
|
||||
if (!update_record("user_teachers", $teacher)) {
|
||||
error("Could not update teacher entry id = $teacher->id");
|
||||
}
|
||||
}
|
||||
redirect("teachers.php?id=$course->id", get_string("changessaved"));
|
||||
}
|
||||
|
||||
/// Otherwise fill and print the form.
|
||||
|
||||
print_header("$course->shortname: $course->teachers", "$course->fullname",
|
||||
"<A HREF=\"$CFG->wwwroot/course/view.php?id=$course->id\">$course->shortname</A>
|
||||
-> $course->teachers");
|
||||
|
||||
if (!$teachers = get_course_teachers($course->id)) {
|
||||
error("No teachers found in this course!");
|
||||
}
|
||||
|
||||
print_heading($course->teachers);
|
||||
|
||||
$table->head = array ("", get_string("name"), get_string("order"), get_string("role"));
|
||||
$table->align = array ("RIGHT", "LEFT", "CENTER", "CENTER");
|
||||
$table->size = array ("35", "", "", "");
|
||||
|
||||
$option[0] = get_string("hide");
|
||||
for ($i=1; $i<=8; $i++) {
|
||||
$option[$i] = $i;
|
||||
}
|
||||
|
||||
echo "<FORM ACTION=teachers.php METHOD=post>";
|
||||
foreach ($teachers as $teacher) {
|
||||
|
||||
$picture = print_user_picture($teacher->id, $course->id, $teacher->picture, false, true);
|
||||
|
||||
$authority = choose_from_menu ($option, "a$teacher->id", $teacher->authority, "", "", "", true);
|
||||
|
||||
if (!$teacher->role) {
|
||||
$teacher->role = $course->teacher;
|
||||
}
|
||||
|
||||
$table->data[] = array ($picture, "$teacher->firstname $teacher->lastname", $authority,
|
||||
"<INPUT TYPE=text NAME=\"r$teacher->id\" VALUE=\"$teacher->role\" SIZE=30>");
|
||||
}
|
||||
print_table($table);
|
||||
echo "<INPUT TYPE=hidden NAME=id VALUE=\"$course->id\">";
|
||||
echo "<CENTER><BR><INPUT TYPE=submit VALUE=\"".get_string("savechanges")."\"> ";
|
||||
helpbutton("teachers", $course->teachers);
|
||||
echo "</CENTER>";
|
||||
echo "</FORM>";
|
||||
|
||||
print_footer($course);
|
||||
|
||||
?>
|
||||
+6
-6
@@ -6,7 +6,7 @@
|
||||
// courses that aren't so rigidly defined by time.
|
||||
// Included from "view.php"
|
||||
|
||||
include("../mod/forum/lib.php");
|
||||
include_once("$CFG->dirroot/mod/forum/lib.php");
|
||||
|
||||
if (! $sections = get_all_sections($course->id) ) {
|
||||
$section->course = $course->id; // Create a default section.
|
||||
@@ -46,9 +46,9 @@
|
||||
$blinker = " <BLINK>*</BLINK>";
|
||||
|
||||
print_simple_box(get_string("people"), $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
$moddata[]="<A HREF=\"../user/index.php?id=$course->id\">".get_string("listofallpeople")."</A>";
|
||||
$moddata[]="<A TITLE=\"".get_string("listofallpeople")."\" HREF=\"../user/index.php?id=$course->id\">".get_string("participants")."</A>";
|
||||
$modicon[]="<IMG SRC=\"../user/users.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
$editmyprofile = "<A HREF=\"../user/view.php?id=$USER->id&course=$course->id\">".get_string("editmyprofile")."</A>";
|
||||
$editmyprofile = "<A TITLE=\"$USER->firstname $USER->lastname\" HREF=\"../user/view.php?id=$USER->id&course=$course->id\">".get_string("editmyprofile")."</A>";
|
||||
if ($USER->description) {
|
||||
$moddata[]= $editmyprofile;
|
||||
} else {
|
||||
@@ -68,7 +68,7 @@
|
||||
$modicon[] = "<IMG SRC=\"../mod/$modname/icon.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
}
|
||||
}
|
||||
print_simple_box("Activities", $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_simple_box(get_string("activities"), $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
print_side_block("", $moddata, "", $modicon);
|
||||
|
||||
// Print a form to search forums
|
||||
@@ -79,7 +79,7 @@
|
||||
|
||||
// Admin links and controls
|
||||
if (isteacher($course->id)) {
|
||||
print_course_admin_links($course->id);
|
||||
print_course_admin_links($course);
|
||||
}
|
||||
|
||||
// Start main column
|
||||
@@ -141,7 +141,7 @@
|
||||
if (isediting($course->id)) {
|
||||
echo "<DIV ALIGN=right>";
|
||||
popup_form("$CFG->wwwroot/course/mod.php?id=$course->id§ion=$section&add=",
|
||||
$modnames, "section$section", "", "$stradd...");
|
||||
$modnames, "section$section", "", "$stradd...", "mods", get_string("activities"));
|
||||
echo "</DIV>";
|
||||
}
|
||||
|
||||
|
||||
+1
-4
@@ -26,13 +26,10 @@
|
||||
|
||||
if (isset($confirm)) {
|
||||
|
||||
if (! unenrol_student_in_course($user->id, $course->id)) {
|
||||
if (! unenrol_student($user->id, $course->id)) {
|
||||
error("An error occurred while trying to unenrol you.");
|
||||
}
|
||||
|
||||
// remove some other things
|
||||
delete_records("forum_subscriptions", "user", $user->id);
|
||||
|
||||
add_to_log($course->id, "course", "unenrol", "view.php?id=$course->id", "$user->id");
|
||||
|
||||
if ($user->id == $USER->id) {
|
||||
|
||||
+6
-3
@@ -38,13 +38,16 @@
|
||||
} else if ($help == "off") {
|
||||
$USER->help = false;
|
||||
}
|
||||
|
||||
save_session("USER");
|
||||
|
||||
$SESSION->fromdiscussion = "$CFG->wwwroot/course/view.php?id=$course->id";
|
||||
save_session("SESSION");
|
||||
|
||||
if (! $course->category) { // This course is not a real course.
|
||||
redirect("$CFG->wwwroot");
|
||||
redirect("$CFG->wwwroot/");
|
||||
}
|
||||
|
||||
|
||||
$courseword = get_string("course");
|
||||
|
||||
print_header("$courseword: $course->fullname", "$course->fullname", "$course->shortname", "search.search", "", true,
|
||||
@@ -67,6 +70,6 @@
|
||||
error("Course format not defined yet!");
|
||||
}
|
||||
|
||||
print_footer($course);
|
||||
print_footer();
|
||||
|
||||
?>
|
||||
|
||||
+9
-7
@@ -2,7 +2,7 @@
|
||||
// Display the whole course as "weeks" made of of modules
|
||||
// Included from "view.php"
|
||||
|
||||
include("../mod/forum/lib.php");
|
||||
include_once("$CFG->dirroot/mod/forum/lib.php");
|
||||
|
||||
if (! $sections = get_all_sections($course->id)) {
|
||||
$section->course = $course->id; // Create a default section.
|
||||
@@ -33,9 +33,9 @@
|
||||
// Links to people
|
||||
|
||||
print_simple_box(get_string("people"), $align="CENTER", $width="100%", $color="$THEME->cellheading");
|
||||
$moddata[]="<A HREF=\"../user/index.php?id=$course->id\">".get_string("listofallpeople")."</A>";
|
||||
$moddata[]="<A TITLE=\"".get_string("listofallpeople")."\" HREF=\"../user/index.php?id=$course->id\">".get_string("participants")."</A>";
|
||||
$modicon[]="<IMG SRC=\"../user/users.gif\" HEIGHT=16 WIDTH=16 ALT=\"\">";
|
||||
$editmyprofile = "<A HREF=\"../user/view.php?id=$USER->id&course=$course->id\">".get_string("editmyprofile")."</A>";
|
||||
$editmyprofile = "<A TITLE=\"$USER->firstname $USER->lastname\" HREF=\"../user/view.php?id=$USER->id&course=$course->id\">".get_string("editmyprofile")."</A>";
|
||||
if ($USER->description) {
|
||||
$moddata[]= $editmyprofile;
|
||||
} else {
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
// Admin links and controls
|
||||
if (isteacher($course->id)) {
|
||||
print_course_admin_links($course->id);
|
||||
print_course_admin_links($course);
|
||||
}
|
||||
|
||||
// Start main column
|
||||
@@ -99,8 +99,8 @@
|
||||
|
||||
$thisweek = (($weekdate <= $timenow) && ($timenow < $nextweekdate));
|
||||
|
||||
$weekday = date("j F", $weekdate);
|
||||
$endweekday = date("j F", $weekdate+(6*24*3600));
|
||||
$weekday = userdate($weekdate, "%e %B");
|
||||
$endweekday = userdate($weekdate+518400, "%e %B");
|
||||
|
||||
if ($thisweek) {
|
||||
$highlightcolor = $THEME->cellheading2;
|
||||
@@ -136,7 +136,7 @@
|
||||
if (isediting($course->id)) {
|
||||
echo "<DIV ALIGN=right>";
|
||||
popup_form("$CFG->wwwroot/course/mod.php?id=$course->id§ion=$week&add=",
|
||||
$modnames, "section$week", "", "$stradd...");
|
||||
$modnames, "section$week", "", "$stradd...", "mods", get_string("activities"));
|
||||
echo "</DIV>";
|
||||
}
|
||||
|
||||
@@ -182,6 +182,8 @@
|
||||
print_recent_activity($course);
|
||||
print_simple_box_end();
|
||||
|
||||
echo "<BR><IMG SRC=\"../pix/spacer.gif\" WIDTH=210 HEIGHT=1>";
|
||||
|
||||
echo "</TD></TR></TABLE>\n";
|
||||
|
||||
?>
|
||||
|
||||
+92
-25
@@ -8,27 +8,65 @@
|
||||
|
||||
<H2>Credits</H2>
|
||||
|
||||
<P><B>Moodle </B>itself is Copyright © 2001-2002, <A HREF="http://dougiamas.com/">
|
||||
<P><B>Moodle </B>itself is Copyright © 2001-2002, <A TARGET=_top HREF="http://dougiamas.com/">
|
||||
Martin Dougiamas</A>. It is distributed under the <A HREF="licence.html">
|
||||
GNU Public License</A>.</P>
|
||||
|
||||
|
||||
|
||||
<H3>Other contributors</H3>
|
||||
|
||||
<H3><BR>Special thanks</H3>
|
||||
<UL>
|
||||
<LI><B>Dr Peter Taylor</B>, at Curtin University of Technology, for working
|
||||
with the prototype and making many useful suggestions</LI>
|
||||
|
||||
<LI><B><A TARGET=_top HREF="http://pctaylor.com">Dr Peter C. Taylor</A></B>, at Curtin University of Technology in Perth, Australia, for working
|
||||
with the prototypes and making many useful suggestions along the way
|
||||
|
||||
<LI><B>Art Lader</B>, at Aiken High School, SC, USA for many good deeds.
|
||||
|
||||
</UL>
|
||||
<BR>
|
||||
|
||||
|
||||
|
||||
<H3><BR>Translations</H3>
|
||||
<BLOCKQUOTE>
|
||||
<P>Many thanks to these people - each translation takes many hours of work.
|
||||
<UL>
|
||||
<LI><B>br - Portuguese (Brazilian)</B>, by Fabricio Valadares (webdesigner@unincor.br).
|
||||
<LI><B>fi - Finnish</B>, by Petri Asikainen (paca@sci.fi), Jaana Tolvanen <jaanat@cedunet.com>
|
||||
<LI><B>fr - French</B>, by Sebastien Nameche (seb@gaia.anet.fr)
|
||||
<LI><B>de - German</B>, by Holger Schadeck (Holger.Schadeck@webdesign-forum.de)
|
||||
<LI><B>it - Italian</B>, by Davide Suraci (icarused@tiscalinet.it)
|
||||
</UL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
|
||||
<H3><BR>Other contributors</H3>
|
||||
<BLOCKQUOTE>
|
||||
<P>Thanks to all of you contributing ideas and code, including:
|
||||
<UL>
|
||||
<LI>Petri Asikainen,
|
||||
<LI>Matt Hope,
|
||||
<LI>James Miller,
|
||||
<LI>Tom Murdock,
|
||||
<LI>Sebastien Nameche,
|
||||
<LI>Dustin Rue,
|
||||
<LI>Giovanni Tummarello,
|
||||
</UL>
|
||||
... and also:</P>
|
||||
<UL>
|
||||
<LI>anyone else who has made donations <A TARGET=_top HREF="http://moodle.com/donations">Donations page</A>, and
|
||||
<LI>everyone else who contributes <A TARGET=_top HREF="http://bugs.moodle.com">bug tracker</A>, and
|
||||
<LI>everyone enrolled in the "<A TARGET=_top HREF="http://moodle.com/course/">Using Moodle</A>" course at moodle.com</A>
|
||||
</UL>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
<P></P>
|
||||
|
||||
<H3>Moodle libraries</H3>
|
||||
<H3><BR>Moodle libraries</H3>
|
||||
|
||||
<BLOCKQUOTE>
|
||||
<P>Some of Moodle's libraries were written by other people, and are being
|
||||
redistributed as part of Moodle under the LGPL. Copyright information
|
||||
from this software is included below:</P>
|
||||
redistributed as part of Moodle under the LGPL. My thanks go out to the
|
||||
authors of all these excellent products - without them Moodle would be missing
|
||||
important functionality. Copyright information for this software is included below:</P>
|
||||
|
||||
<P><B>ADOdb </B>- lib/adodb<BR>
|
||||
</P>
|
||||
@@ -50,11 +88,23 @@ Interbase, Foxpro, Access, ADO, Sybase, DB2 and ODBC.</P>
|
||||
<P>Class to draw line, point, bar, and area graphs, including numeric
|
||||
x-axis and double y-axis.</P>
|
||||
|
||||
<P> Version: 1.6.3<BR>
|
||||
<P> Version: 1.6.3 (with modifications)<BR>
|
||||
Copyright © 2000 Herman Veluwenkamp, hermanV@mindless.com<BR>
|
||||
License: LGPL<BR>
|
||||
</P>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
<P><B>IP-Atlas</B> - lib/ipatlas</P>
|
||||
|
||||
<BLOCKQUOTE>PHP scripts to show the location of an IP address on a map.<BR>
|
||||
<BR>
|
||||
Version: 1.0 (with modifications)<BR>
|
||||
Copyright © 2002 Ivan Kozik<BR>
|
||||
License: GNU GPL<BR>
|
||||
URL: <A HREF="http://www.xpenguin.com/ip-atlas.php" TARGET="newpage">http://www.xpenguin.com/ip-atlas.php</A><BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
<P><B>PHP mailer</B> - lib/class.phpmailer.php<BR>
|
||||
</P>
|
||||
@@ -68,6 +118,34 @@ or SMTP. Methods are based upon the standard AspEmail(tm) classes.<BR>
|
||||
URL: <A HREF="http://phpmailer.sourceforge.net" TARGET="newpage">http://phpmailer.sourceforge.net</A><BR>
|
||||
<BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
|
||||
<P><B>PHP Simple Excel File Generator</B> - lib/psxlsgen.php</P>
|
||||
|
||||
<BLOCKQUOTE>Class to generate very simple MS Excel files (xls)
|
||||
via PHP.<BR>
|
||||
<BR>
|
||||
Version: 0.3b<BR>
|
||||
Copyright © 2001 Erol Ozcan <eozcan@superonline.com><BR>
|
||||
License: GNU LGPL<BR>
|
||||
URL: <A HREF="http://psxlsgen.sourceforge.net" TARGET="newpage">http://psxlsgen.sourceforge.net</A><BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<P><B>Richtext Editor</B> - lib/rte</P>
|
||||
|
||||
<BLOCKQUOTE>HTML text editor for embedding in web pages.<BR>
|
||||
<BR>
|
||||
Version: 0.30 beta 1 (plus modifications)<BR>
|
||||
Copyright © 2001 Ramesys (Contracting Services) Limited <Austin.France@Ramesys.com>
|
||||
License: GNU LGPL<BR>
|
||||
URL: <A HREF="http://richtext.sourceforge.net" TARGET="newpage">http://richtext.sourceforge.net</A><BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
<P><B>SMTP class </B>- lib/class.smtp.php<BR>
|
||||
</P>
|
||||
@@ -81,18 +159,7 @@ or SMTP. Methods are based upon the standard AspEmail(tm) classes.<BR>
|
||||
<BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
<P><B>PHP Simple Excel File Generator</B> - lib/psxlsgen.php</P>
|
||||
|
||||
<BLOCKQUOTE>Class to generate very simple MS Excel files (xls)
|
||||
via PHP.<BR>
|
||||
<BR>
|
||||
Version: 0.3b<BR>
|
||||
Copyright © 2001 Erol Ozcan <eozcan@superonline.com><BR>
|
||||
License: GNU LGPL<BR>
|
||||
URL: <A HREF="http://psxlsgen.sourceforge.net">http://psxlsgen.sourceforge.net</A><BR>
|
||||
</BLOCKQUOTE>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
<BLOCKQUOTE><BR>
|
||||
</BLOCKQUOTE>
|
||||
|
||||
|
||||
+8
-7
@@ -34,7 +34,7 @@
|
||||
which means Moodle can use <a href="http://php.weblogs.com/ADOdb_manual#drivers">more
|
||||
than ten different brands of database</a> (unfortunately, though, it can not
|
||||
yet <em><strong>set up tables</strong></em> in all these databases - more
|
||||
on this later). <br>
|
||||
on this later). <br><br>
|
||||
</li>
|
||||
<li><strong>Moodle should be easy to install, learn and modify</strong><br>
|
||||
<br>
|
||||
@@ -49,7 +49,7 @@
|
||||
libraries of clearly-named functions and consistent layout of script files.
|
||||
PHP is also easy to install (binaries are available for every platform) and
|
||||
is widely available to the point that most web hosting services provide it
|
||||
as standard.<br>
|
||||
as standard.<br><br>
|
||||
</li>
|
||||
<li><strong>It should be easy to upgrade from one version to the next</strong><br>
|
||||
<br>
|
||||
@@ -57,14 +57,14 @@
|
||||
and a mechanism has been built-in so that Moodle can properly upgrade itself
|
||||
to new versions (for example it can rename database tables or add new fields).
|
||||
If using CVS in Unix for example, one can just do a "cvs update -d"
|
||||
and then visit the site home page to complete an upgrade.<br>
|
||||
and then visit the site home page to complete an upgrade.<br><br>
|
||||
</li>
|
||||
<li><strong>It should be modular to allow for growth</strong><br>
|
||||
<br>
|
||||
Moodle has a number of features that are modular, including themes, activities,
|
||||
interface languages, database schemas and course formats. This allows anyone
|
||||
to add features to the main codebase or to even distribute them separately.
|
||||
More on this below in the next section.<br>
|
||||
More on this below in the next section.<br><br>
|
||||
</li>
|
||||
<li><strong>It should be able to be used in conjunction with other systems</strong><br>
|
||||
<br>
|
||||
@@ -84,7 +84,7 @@
|
||||
<P><strong><a name="activities" id="activities"></a>Learning Activities</strong></P>
|
||||
<blockquote>
|
||||
<p>These are by far the most important modules, and reside in the 'mod' directory.
|
||||
There are six default modules: assignment, choice, forum, journal, reading,
|
||||
There are seven default modules: assignment, choice, forum, journal, quiz, resource,
|
||||
and survey. Each module is in a separate subdirectory and consists of the
|
||||
following mandatory elements (plus extra scripts unique to each module):</p>
|
||||
<ul>
|
||||
@@ -140,8 +140,9 @@
|
||||
<li>choice.php - strings for choice module</li>
|
||||
<li>forum.php - strings for forum module</li>
|
||||
<li>journal.php - strings for journal module </li>
|
||||
<li>reading.php - strings for reading module</li>
|
||||
<li>survey.php - strings for reading module</li>
|
||||
<li>quiz.php - strings for quiz module</li>
|
||||
<li>resource.php - strings for resource module</li>
|
||||
<li>survey.php - strings for survey module</li>
|
||||
<li>.... plus other modules if any.<br>
|
||||
<br>
|
||||
A string is called from these files using the <strong><em>get_string()</em></strong><em>
|
||||
|
||||
+95
-12
@@ -8,22 +8,105 @@
|
||||
|
||||
<H2>Features</H2>
|
||||
|
||||
Here is a big list of some of the features in Moodle 1.0:
|
||||
<UL><LI>Supports a social constructionist pedagogy (collaboration, activities, critical reflection, etc)</LI><LI>Suitable for 100% online classes as well as supplementing face-to-face learning<LI>Simple, lightweight, browser-compatible interface</LI><LI>Plug-in "themes" allow you to customise the colours, fonts, layout etc</LI><LI>Easy to install on most platforms</LI><LI>Easy administration - students can create their own accounts. Email addresses are verified.</LI><LI>One account works for the whole server</LI><LI>Security - teachers can add an "enrolment key" to their courses to keep out non-students. They can give out this key face-to-face or via personal email etc</LI><LI>Students are encouraged to build an online profile including photos, description etc</LI><LI>Every user can specify their own timezone, and every date in Moodle is translated to that timezone (eg posting dates, assignment due dates etc)</LI><LI>Choice of course formats such as by week, by topic or a discussion-focussed social format</LI><LI>Flexible array of course modules - Forums, Journals, Readings, Choices, Surveys, Assignments.</LI><LI>New modules can be written and plugged in to existing Moodle installations</LI><LI>The code is clearly-written PHP under a GPL license - easy to modify and localise</LI><LI>Full database abstraction supports all major brands of database (except for initial table definition)</LI><LI>Ready for internationalisation - supports plug-in languages and locale-based date formats etc</LI><LI>Mail integration - copies of forum posts, teacher feedback etc can be mailed in HTML or plain text.</LI><LI>Recent changes to the course since the last login are displayed on the course home page</LI><LI>Full user logging and tracking - activity reports for each student are available with graphs and details about each module (last access, number of times read) as well as a detailed "story" of each students involvement including postings, journal entries etc on one page.</LI>
|
||||
Here is a big list of some of the features in Moodle:
|
||||
<UL>
|
||||
<LI>Supports a social constructionist pedagogy (collaboration, activities, critical
|
||||
reflection, etc)</LI>
|
||||
<LI>Suitable for 100% online classes as well as supplementing face-to-face learning
|
||||
<LI>Simple, lightweight, browser-compatible interface</LI>
|
||||
<LI>Plug-in "themes" allow you to customise the colours, fonts, layout etc</LI>
|
||||
<LI>Easy to install on most platforms</LI>
|
||||
<LI>Easy administration - students can create their own accounts. Email addresses
|
||||
are verified.</LI>
|
||||
<LI>Plug-in authentication modules are supported (eg LDAP) for integration with
|
||||
existing user databases</LI>
|
||||
<LI>One account works for all courses on a server</LI>
|
||||
<LI>Security - teachers can add an "enrolment key" to their courses to keep
|
||||
out non-students. They can give out this key face-to-face or via personal
|
||||
email etc</LI>
|
||||
<LI>Students are encouraged to build an online profile including photos, description
|
||||
etc</LI>
|
||||
<LI>Every user can specify their own timezone, and every date in Moodle is translated
|
||||
to that timezone (eg posting dates, assignment due dates etc)</LI>
|
||||
<LI>Choice of course formats such as by week, by topic or a discussion-focussed
|
||||
social format</LI>
|
||||
<LI>Flexible array of course modules - Forums, Journals, Quizzes, Resources,
|
||||
Choices, Surveys, Assignments.</LI>
|
||||
<LI>Most text entry areas (resources, forum postings, journal entries etc) can
|
||||
be edited using an embedded WYSIWYG HTML editor</LI>
|
||||
<LI>All grades for Forums, Journals, Quizzes and Assignments can be viewed on
|
||||
one page (and downloaded as a spreadsheet file)</LI>
|
||||
<LI>New modules can be written and plugged in to existing Moodle installations</LI>
|
||||
<LI>The code is clearly-written PHP under a GPL license - easy to modify and
|
||||
localise</LI>
|
||||
<LI>Moodle code uses encryption, data validation and careful design to be as
|
||||
secure from hackers as possible</LI>
|
||||
<LI>Full database abstraction supports all major brands of database (except
|
||||
for initial table definition)</LI>
|
||||
<LI>Ready for internationalisation - supports plug-in languages and locale-based
|
||||
date formats etc</LI>
|
||||
<LI>Mail integration - copies of forum posts, teacher feedback etc can be mailed
|
||||
in HTML or plain text.</LI>
|
||||
<LI>Recent changes to the course since the last login are displayed on the course
|
||||
home page</LI>
|
||||
<LI>Full user logging and tracking - activity reports for each student are available
|
||||
with graphs and details about each module (last access, number of times read)
|
||||
as well as a detailed "story" of each students involvement including postings,
|
||||
journal entries etc on one page.</LI>
|
||||
</UL>
|
||||
<B>Forum Module</B>
|
||||
<B>Assignment Module</B>
|
||||
<UL>
|
||||
<LI>Assignments can be specified with a due date and a maximum grade.</LI>
|
||||
<LI>Students can upload their assignments (any file format) to the server -
|
||||
they are date-stamped.</LI>
|
||||
<LI>Late assignments are allowed, but the amount of lateness is shown clearly
|
||||
to the teacher</LI>
|
||||
<LI>For each particular assignment, the whole class can be assessed (grade and
|
||||
comment) on one page in one form.</LI>
|
||||
<LI>Teacher feedback is appended to the assignment page for each student, and
|
||||
notification is mailed out.</LI>
|
||||
</UL>
|
||||
<P><B>Choice Module</B> </P>
|
||||
<UL>
|
||||
<LI>Like a poll. Can either be used to vote on something, or to get feedback
|
||||
from every student (eg research consent)</LI>
|
||||
</UL>
|
||||
<B></B>
|
||||
<P><B>Forum Module</B> </P>
|
||||
<UL><LI>Different types of forums are available, such as teacher-only, course news, open-to-all, and one-thread-per-user.</LI><LI>All postings have the authors photo attached.</LI><LI>Discussions can be viewed nested, flat or threaded, oldest or newest first.</LI><LI>Individual forums can be subscribed to by each person so that copies are forwarded via email, or the teacher can force subscription for all</LI>
|
||||
</UL>
|
||||
<B>Survey Module</B>
|
||||
<B>Journal Module</B>
|
||||
<UL>
|
||||
<LI>Journals are private between student and teacher.</LI>
|
||||
<LI>Each journal entry can be directed by an open question.</LI>
|
||||
<LI>For each particular journal entry, the whole class can be assessed on one
|
||||
page in one form.</LI>
|
||||
<LI>Teacher feedback is appended to the journal entry page, and notification
|
||||
is mailed out.</LI>
|
||||
</UL>
|
||||
<P><B>Quiz Module</B> </P>
|
||||
<UL>
|
||||
<LI>Teachers can define a database of questions for re-use in different quizzes</LI>
|
||||
<LI>Quizzes are automatically graded, and can be re-graded if questions are
|
||||
modified </LI>
|
||||
<LI>Quizzes can have a limited time window outside of which they are not available</LI>
|
||||
<LI>At the teacher's option, quizzes can be attempted multiple times, and can
|
||||
show feedback and correct answers</LI>
|
||||
<LI>Questions allow HTML and images</LI>
|
||||
<LI>Multiple-choice questions supporting single or multiple answers</LI>
|
||||
<LI>Short Answer questions (words or phrases)</LI>
|
||||
<LI>True-False questions </LI>
|
||||
</UL>
|
||||
<P><B>Resource Module</B> </P>
|
||||
<UL>
|
||||
<LI>Supports display of any electronic content</LI>
|
||||
<LI>Files can be uploaded and managed on the server, or created on the fly using
|
||||
web forms (text or HTML)</LI>
|
||||
<LI>External content on the web can be linked to or seamlessly included within
|
||||
the course interface.</LI>
|
||||
</UL>
|
||||
<B></B><B>Survey Module</B>
|
||||
<UL><LI>Built-in surveys (COLLES, ATTLS) have been proven as instruments for analysing online classes</LI><LI>Online survey reports always available, including many graphs. Data is downloadable as an Excel spreadsheet or CSV text file.</LI><LI>Survey interface prevents partly-finished surveys.</LI><LI>Feedback is provided to the student of their results compared to the class averages</UL>
|
||||
<B>Readings Module</B>
|
||||
<UL><LI>Supports display of any electronic content</LI><LI>Files can be uploaded and managed on the server, or created on the fly using web forms (text or HTML)</LI><LI>External content on the web can be linked to or seamlessly included within the course interface.</LI></UL>
|
||||
<B>Choice Module</B>
|
||||
<UL><LI>Like a poll. Can either be used to vote on something, or to get feedback from every student (eg research consent)</LI></UL>
|
||||
<B>Journal Module</B>
|
||||
<UL><LI>Journals are private between student and teacher.</LI><LI>Each journal entry can be directed by an open question.</LI><LI>For each particular journal entry, the whole class can be assessed on one page in one form.</LI><LI>Teacher feedback is appended to the journal entry page, and notification is mailed out.</LI></UL>
|
||||
<B>Assignment Module</B>
|
||||
<UL><LI>Assignments can be specified with a due date and a maximum grade.</LI><LI>Students can upload their assignments (any file format) to the server - they are date-stamped.</LI><LI>Late assignments are allowed, but the amount of lateness is shown clearly to the teacher</LI><LI>For each particular assignment, the whole class can be assessed (grade and comment) on one page in one form.</LI><LI>Teacher feedback is appended to the assignment page for each student, and notification is mailed out.</LI></UL>
|
||||
<P> </P>
|
||||
|
||||
<P ALIGN="CENTER"><FONT SIZE="1"><A HREF="index.html" TARGET="_top">Moodle Documentation</A></FONT></P>
|
||||
|
||||
+22
-1
@@ -10,15 +10,36 @@
|
||||
I have a deeply-held belief in the importance of unrestricted education and
|
||||
empowered teaching, and Moodle is the main way I can contribute to the realisation
|
||||
of these ideals.
|
||||
|
||||
<P>As Moodle gains in maturity, I hope its directions are influenced by the community
|
||||
of developers and users. A dynamic database of proposed features and their status
|
||||
can be found at <A TARGET=_top HREF="http://bugs.moodle.org/">bugs.moodle.org</A>.
|
||||
Your <a href="developer.html">contributions</a> in the form of ideas, code,
|
||||
feedback and promotion are all very welcome.
|
||||
<P>Now that 1.0 has been released, most of my efforts will concentrate on the
|
||||
|
||||
<P>Now that 1.0.1 has been released, most of my efforts will concentrate on the
|
||||
macro level (supporting larger classes and integrating into larger institutions)
|
||||
and the micro level (improving support for decisions and processes, for both
|
||||
teachers and learners).
|
||||
|
||||
<P>The next 6 months or so I will have to slow down my own development a little
|
||||
(because I have a PhD thesis to finish). During this time there'll be a number
|
||||
of small upgrades 1.0.2, 1.0.3 etc that I expect will contain minor new features
|
||||
and polishing. I'll also be working with people adding new plugins (support for
|
||||
more databases, new modules and new themes).
|
||||
|
||||
<P>Sometime in the first half of 2003 you can expect a major release (1.1, maybe 1.5) that has
|
||||
new features like:
|
||||
|
||||
<UL>
|
||||
<LI>Full user account management (eg connection to external databases, import/export etc)
|
||||
<LI>Full grade management
|
||||
<LI>Ability to define groups and group work
|
||||
<LI>Automatic linking in texts to uploaded resources (like Wiki)
|
||||
<LI>Online support for teachers to design and maintain classes
|
||||
<LI>Online support for students in collaboration processes
|
||||
</UL>
|
||||
|
||||
<P ALIGN="CENTER"> </P>
|
||||
<P ALIGN="CENTER"><FONT SIZE="1"><A HREF="index.html" TARGET="_top">Moodle Documentation</A></FONT></P>
|
||||
<P ALIGN="CENTER"><FONT SIZE="1">Version: $Id$</FONT></P>
|
||||
|
||||
+260
-195
@@ -4,7 +4,6 @@
|
||||
</HEAD>
|
||||
|
||||
<BODY BGCOLOR="#FFFFFF">
|
||||
|
||||
<H2>Installing Moodle</H2>
|
||||
<P>This guide explains how to install Moodle for the first time.</P>
|
||||
<P>Sections in this document:</P>
|
||||
@@ -14,81 +13,97 @@
|
||||
<LI><A HREF="#site">Site structure</A></LI>
|
||||
<LI><A HREF="#data">Create a data directory</A></LI>
|
||||
<LI><A HREF="#database">Create a database</A></LI>
|
||||
<LI><A HREF="#webserver">Check web server settings</A></LI>
|
||||
<LI><A HREF="#config">Edit config.php</A></LI>
|
||||
<LI><A HREF="#admin">Go to the admin page</A></LI>
|
||||
<LI><A HREF="#cron">Set up cron</A></LI>
|
||||
<LI><A HREF="#course">Create a new course</A></LI>
|
||||
</OL>
|
||||
<H3><A NAME="requirements"></A>Requirements</H3>
|
||||
<P>Moodle is primarily developed in Linux using PHP, Apache and MySQL, and regularly
|
||||
tested under Windows XP and Mac OS X environments.</P>
|
||||
<P>All you should need are:</P>
|
||||
<UL>
|
||||
<LI>a working installation of <A HREF="http://www.php.net/">PHP</A> (version
|
||||
4.1.0 or better), including the <A HREF="http://www.boutell.com/gd/">GD</A>
|
||||
library for manipulating images.</LI>
|
||||
<LI>a working database server (<A HREF="http://www.mysql.com/">MySQL</A> for
|
||||
now, but soon it will support PostgreSQL, MSSQL, Oracle, Interbase, Foxpro,
|
||||
Access, ADO, Sybase, DB2 or ODBC).</LI>
|
||||
</UL>
|
||||
<P>On a Windows platform, the quickest way to satisfy these requirements is to
|
||||
download <A HREF="http://www.phpgeek.com/">PHPTriad</A>, <A HREF="http://www.foxserv.net/">FoxServ</A>,
|
||||
or <A HREF="http://www.easyphp.org/">EasyPHP</A>
|
||||
which will install Apache, PHP, and MySQL for you. Make sure you enable the
|
||||
GD module so Moodle can process images - you may have to edit php.ini and remove
|
||||
the comment (;) from this line: 'extension=php_gd.dll'.</P>
|
||||
<P>On Mac OS X I highly recommend the <a href="http://fink.sourceforge.net/">fink</a>
|
||||
project.</P>
|
||||
<H3><A NAME="requirements"></A>1. Requirements</H3>
|
||||
<blockquote>
|
||||
<p>Moodle is primarily developed in Linux using PHP, Apache and MySQL, and regularly
|
||||
tested under Windows XP and Mac OS X environments.</p>
|
||||
<p>All you should need are:</p>
|
||||
<ul>
|
||||
<li>a working installation of <A HREF="http://www.php.net/">PHP</A> (version
|
||||
4.1.0 or later), with the following features enabled (most PHP installations
|
||||
these days will have all of these):
|
||||
<ul>
|
||||
<LI>JPEG and/or PNG image editing support via the <A HREF="http://www.boutell.com/gd/">GD library</A></li>
|
||||
<LI>Sessions support
|
||||
<LI>File uploading
|
||||
</UL>
|
||||
<li>a working database server (<A HREF="http://www.mysql.com/">MySQL</A> for
|
||||
now, but soon it will support PostgreSQL, MSSQL, Oracle, Interbase, Foxpro,
|
||||
Access, ADO, Sybase, DB2 or ODBC).</li>
|
||||
</ul>
|
||||
<p>On a Windows platform, the quickest way to satisfy these requirements is
|
||||
to download <A HREF="http://www.phpgeek.com/">PHPTriad</A>, <A HREF="http://www.foxserv.net/">FoxServ</A>,
|
||||
or <A HREF="http://www.easyphp.org/">EasyPHP</A> which will install Apache,
|
||||
PHP, and MySQL for you. Make sure you enable the GD module so Moodle can process
|
||||
images - you may have to edit php.ini and remove the comment (;) from this
|
||||
line: 'extension=php_gd.dll'.</p>
|
||||
<p>On Mac OS X I highly recommend the <a href="http://fink.sourceforge.net/">fink</a>
|
||||
project.</p>
|
||||
</blockquote>
|
||||
<P> </P>
|
||||
<H3><A NAME="downloading"></A>Download</H3>
|
||||
<P>There are two ways to get Moodle, as a compressed package and via CVS. These
|
||||
are explained in detail on the download page on <A HREF="http://moodle.com/">http://moodle.com/</A></P>
|
||||
<P>After downloading and unpacking the archive, or checking out the files via
|
||||
CVS, you will be left with a directory called "moodle", containing
|
||||
a number of files and folders. </P>
|
||||
<P>You can either place the whole folder in your web server documents directory,
|
||||
in which case the site will be located at <B>http://yourwebserver.com/moodle</B>,
|
||||
or you can copy all the contents straight into the main web server documents
|
||||
directory, in which case the site will be simply <B>http://yourwebserver.com</B>.</P>
|
||||
<H3><A NAME="downloading"></A>2. Download</H3>
|
||||
<blockquote>
|
||||
<p>There are two ways to get Moodle, as a compressed package and via CVS. These
|
||||
are explained in detail on the download page on <A HREF="http://moodle.com/">http://moodle.com/</A></p>
|
||||
<p>After downloading and unpacking the archive, or checking out the files via
|
||||
CVS, you will be left with a directory called "moodle", containing
|
||||
a number of files and folders. </p>
|
||||
<p>You can either place the whole folder in your web server documents directory,
|
||||
in which case the site will be located at <B>http://yourwebserver.com/moodle</B>,
|
||||
or you can copy all the contents straight into the main web server documents
|
||||
directory, in which case the site will be simply <B>http://yourwebserver.com</B>.</p>
|
||||
</blockquote>
|
||||
<P> </P>
|
||||
<H3><A NAME="site"></A>Site structure</H3>
|
||||
<P>Here is a quick summary of the contents of the Moodle folder, to help get you
|
||||
oriented:</P>
|
||||
<BLOCKQUOTE>
|
||||
<P>config.php - the only file you need to edit to get started<br>
|
||||
version.php - defines the current version of Moodle code<BR>
|
||||
index.php - the front page of the site</P>
|
||||
<UL>
|
||||
<LI>admin/ - code to administrate the whole server </LI>
|
||||
<LI>course/ - code to display and manage courses </LI>
|
||||
<LI>doc/ - help documentation for Moodle (eg this page)</LI>
|
||||
<LI>files/ - code to display and manage uploaded files</LI>
|
||||
<LI>lang/ - texts in different languages, one directory per language </LI>
|
||||
<LI>lib/ - libraries of core Moodle code </LI>
|
||||
<LI>login/ - code to handle login and account creation </LI>
|
||||
<LI>mod/ - all Moodle course modules</LI>
|
||||
<LI>pix/ - generic site graphics</LI>
|
||||
<LI>theme/ - theme packs/skins to change the look of the site.</LI>
|
||||
<LI>user/ - code to display and manage users</LI>
|
||||
</UL>
|
||||
<P> </P>
|
||||
<H3><A NAME="site"></A>3. Site structure</H3>
|
||||
<BLOCKQUOTE>
|
||||
<p>Here is a quick summary of the contents of the Moodle folder, to help get
|
||||
you oriented:</p>
|
||||
<blockquote>
|
||||
<p>config.php - the only file you need to edit to get started<br>
|
||||
version.php - defines the current version of Moodle code<BR>
|
||||
index.php - the front page of the site</p>
|
||||
<ul>
|
||||
<li>admin/ - code to administrate the whole server </li>
|
||||
<li>auth/ - plugin modules to authenticate users </li>
|
||||
<li>course/ - code to display and manage courses </li>
|
||||
<li>doc/ - help documentation for Moodle (eg this page)</li>
|
||||
<li>files/ - code to display and manage uploaded files</li>
|
||||
<li>lang/ - texts in different languages, one directory per language </li>
|
||||
<li>lib/ - libraries of core Moodle code </li>
|
||||
<li>login/ - code to handle login and account creation </li>
|
||||
<li>mod/ - all Moodle course modules</li>
|
||||
<li>pix/ - generic site graphics</li>
|
||||
<li>theme/ - theme packs/skins to change the look of the site.</li>
|
||||
<li>user/ - code to display and manage users</li>
|
||||
</ul>
|
||||
<p> </p>
|
||||
</blockquote>
|
||||
</BLOCKQUOTE>
|
||||
<H3><A NAME="data"></A>Create a data directory</H3>
|
||||
<P>Moodle will also need some space on your hard disk to store uploaded files,
|
||||
such as course documents and user pictures.</P>
|
||||
<P>Create a directory for this purpose somewhere <B>away</B> from the web server
|
||||
documents directory (we don't want these files to be directly accessible from
|
||||
the web), and ensure that the web server software has permission to write to
|
||||
this directory. On Unix machines, this means setting the owner of the directory
|
||||
to be something like "nobody" or "apache".</P>
|
||||
<H3><A NAME="data"></A>4. Create a data directory</H3>
|
||||
<blockquote>
|
||||
<p>Moodle will also need some space on your hard disk to store uploaded files,
|
||||
such as course documents and user pictures.</p>
|
||||
<p>Create a directory for this purpose somewhere <B>away</B> from the web server
|
||||
documents directory (we don't want these files to be directly accessible from
|
||||
the web), and ensure that the web server software has permission to write
|
||||
to this directory. On Unix machines, this means setting the owner of the directory
|
||||
to be something like "nobody" or "apache".</p>
|
||||
</blockquote>
|
||||
<P> </P>
|
||||
<H3><A NAME="database"></A>Create a database</H3>
|
||||
<P>You need to create an empty database (eg "moodle") in your database system
|
||||
along with a special user (eg "moodleuser") that has access to that database
|
||||
(and that database only. For example, don't use the "root" user for the moodle
|
||||
database in a production system - it's a security hazard). </P>
|
||||
<P>eg for MySQL: </P>
|
||||
<PRE>
|
||||
<H3><A NAME="database"></A>5. Create a database</H3>
|
||||
<blockquote>
|
||||
<p>You need to create an empty database (eg "moodle") in your database system
|
||||
along with a special user (eg "moodleuser") that has access to that database
|
||||
(and that database only. For example, don't use the "root" user for the moodle
|
||||
database in a production system - it's a security hazard). </p>
|
||||
<p>eg for MySQL: </p>
|
||||
<PRE>
|
||||
# mysql -u root -p
|
||||
> CREATE DATABASE moodle;
|
||||
> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,INDEX,ALTER ON moodle.*
|
||||
@@ -96,107 +111,164 @@
|
||||
> quit
|
||||
# mysqladmin -p reload
|
||||
</PRE>
|
||||
<p>(For MySQL I highly recommend the use of <a href="http://phpmyadmin.sourceforge.net/">phpMyAdmin</a>
|
||||
to manage your databases).</p>
|
||||
</blockquote>
|
||||
<P> </P>
|
||||
<H3><A NAME="webserver" id="webserver"></A>6. Check your web server settings</H3>
|
||||
<blockquote>
|
||||
<p>Firstly, make sure that your web server is set up to use index.php as a default
|
||||
page (perhaps in addition to index.html, default.htm and so on).</p>
|
||||
<p>In Apache, this is done using a DirectoryIndex parameter in your httpd.conf
|
||||
file. Mine usually looks like this:</p>
|
||||
<blockquote>
|
||||
<pre><strong>DirectoryIndex</strong> index.php index.html index.htm </pre>
|
||||
</blockquote>
|
||||
<p>Just make sure index.php is in the list (and preferably towards the start
|
||||
of the list, for efficiency).</p>
|
||||
<p>Secondly, check your PHP configuration file (usually called php.ini) and
|
||||
make sure uploading has been turned on:</p>
|
||||
<blockquote>
|
||||
<pre>file_uploads = On</pre>
|
||||
</blockquote>
|
||||
<p>Most distributions of PHP have this turned on by default, but you may want
|
||||
to check it anyway. </p>
|
||||
<p>If you don't have access to httpd.conf or php.ini on your server, another
|
||||
way you can set both of the above settings (and more) is to put definitions in a
|
||||
.htaccess file in Moodle's main directory. This only works on Apache servers
|
||||
and only when Overrides have been allowed. A sample .htaccess file
|
||||
is included with Moodle (called lib/htaccess) that includes further information.
|
||||
|
||||
<P>(For MySQL I highly recommend the use of <a href="http://phpmyadmin.sourceforge.net/">phpMyAdmin</a>
|
||||
to manage your databases).</P>
|
||||
<H3><A NAME="config"></A>Edit config.php</H3>
|
||||
<P>Now you can edit the configuration file, <strong>config.php</strong>. This
|
||||
file is used by all other files in Moodle.</P>
|
||||
<P>To start with, make a copy of config-dist.php and call it config.php. We do
|
||||
this so that your config.php won't be overwritten in case you upgrade Moodle
|
||||
later on.
|
||||
<P>Edit config.php to specify the database details that you just defined, as well as the
|
||||
site address, file system directory, data directory and so on. The config file
|
||||
has detailed directions.</P>
|
||||
<P>For the rest of this installation document we will assume your site is at:
|
||||
http://example.com/moodle</P>
|
||||
</blockquote>
|
||||
<p> </p>
|
||||
<H3><A NAME="config"></A>7. Edit config.php</H3>
|
||||
<blockquote>
|
||||
<p>Now you can edit the configuration file, <strong>config.php</strong>, using a
|
||||
text editor. This file is used by all other files in Moodle.</p>
|
||||
<p>To start with, make a copy of config-dist.php and call it config.php. We
|
||||
do this so that your config.php won't be overwritten in case you upgrade Moodle
|
||||
later on. </p>
|
||||
<p>Edit config.php to specify the database details that you just defined, as
|
||||
well as the site address, file system directory and data directory.
|
||||
The config file has detailed directions.</p>
|
||||
<p>For the rest of this installation document we will assume your site is at:
|
||||
<u>http://example.com/moodle</u></p>
|
||||
</blockquote>
|
||||
<P> </P>
|
||||
<H3><A NAME="admin"></A>Go to the admin page</H3>
|
||||
<P>The admin page should now be working at: http://example.com/moodle/admin</P>
|
||||
<P>If you try and access the front page of your site you'll be taken there automatically
|
||||
anyway. </P>
|
||||
<P>The first time you access this page, Moodle will set up your database and prompt
|
||||
you for more information.</P>
|
||||
<P>Firstly, the main database tables are created. You should see a number of SQL
|
||||
statements followed by status messages (in green or red) that look like this:</P>
|
||||
<BLOCKQUOTE>
|
||||
<P>CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category
|
||||
int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default
|
||||
'', fullname varchar(254) NOT NULL default '', shortname varchar(15) NOT NULL
|
||||
default '', summary text NOT NULL, format tinyint(4) NOT NULL default '1',
|
||||
teacher varchar(100) NOT NULL default 'Teacher', startdate int(10) unsigned
|
||||
NOT NULL default '0', enddate int(10) unsigned NOT NULL default '0', timemodified
|
||||
int(10) unsigned NOT NULL default '0', PRIMARY KEY (id)) TYPE=MyISAM</P>
|
||||
<P><FONT COLOR="#006600">SUCCESS</FONT></P>
|
||||
<P>...and so on, followed by: <FONT COLOR="#FF0000">Main databases set up successfully</FONT>.
|
||||
</P>
|
||||
</BLOCKQUOTE>
|
||||
<P>If you don't see these, then there must have been some problem with the database
|
||||
or the configuration settings you defined in config.php. Check that PHP isn't
|
||||
in a restricted "safe mode" (commercial web hosts often have safe mode turned
|
||||
on). You can check PHP variables by creating a little file containing <? phpinfo
|
||||
?> and looking at it through a browser. Check all these and try this page
|
||||
again.</P>
|
||||
<P>Scroll down the very bottom of the page and press the "Continue"
|
||||
link.</P>
|
||||
<P>Next you will see a similar page that sets up all the tables required by each
|
||||
Moodle module. As before, they should all be green, otherwise you may be a problem
|
||||
in the module code.</P>
|
||||
<P>Scroll down the very bottom of the page and press the "Continue"
|
||||
link.</P>
|
||||
<P>You should now see a form where you can define more parameters for your Moodle
|
||||
site, such as the name, the description shown on the front page, and so on.
|
||||
Fill this out (you can always go back and change these later) and then press
|
||||
"Update the site".</P>
|
||||
<P>Finally, you will then be asked to create a top-level administration user for
|
||||
future access to the admin pages. Fill out the details with your own name, email
|
||||
etc and then click "Update this user". You will be returned to the
|
||||
main admin page, which contain a number of links arranged in a menu (these items
|
||||
also appear on the home page when you are logged in as the admin user).</P>
|
||||
<P><strong>Make sure you remember the username and password you chose for the
|
||||
administration user, as they will be necessary to access the administration
|
||||
page in future.</strong></P>
|
||||
<P>All your further administration of Moodle can now be done using the administration
|
||||
menu, which includes tasks such as:</P>
|
||||
<UL>
|
||||
<LI>creating and deleting courses</LI>
|
||||
<LI>creating and editing user accounts</LI>
|
||||
<LI>administering teacher accounts</LI>
|
||||
<LI>changing site-wide settings</LI>
|
||||
</UL>
|
||||
<P> </P>
|
||||
<H3><A NAME="cron"></A>Set up cron</H3>
|
||||
<P>Some of Moodle's modules require continual checks to perform tasks. For example,
|
||||
Moodle needs to check the discussion forums so it can mail out copies of posts
|
||||
to people who have subscribed.</P>
|
||||
<P>The script that does all this is located in the admin directory, and is called
|
||||
cron.php. However, it can not run itself, so you need to set up a mechanism
|
||||
where this script is run regularly (eg every five minutes). This provides a
|
||||
"heartbeat" so that the script can perform functions at periods defined
|
||||
by each module.</P>
|
||||
<P>Test that the script works by running it directly from your browser:</P>
|
||||
<BLOCKQUOTE>
|
||||
<PRE>http://example.com/moodle/admin/cron.php</PRE>
|
||||
</BLOCKQUOTE>
|
||||
<P>Now, you need to set up some of way of running the script automatically and
|
||||
regularly. </P>
|
||||
<BLOCKQUOTE>
|
||||
<H4>Running the script from a command line</H4>
|
||||
<P>You can call the page from the command line just as you did in the example
|
||||
above. For example, you can use a Unix utility like 'wget':</P>
|
||||
<BLOCKQUOTE>
|
||||
<PRE>wget -q -O /dev/null http://example.com/moodle/admin/cron.php</PRE>
|
||||
</BLOCKQUOTE>
|
||||
<P>Note in this example that the output is thrown away (to /dev/null).</P>
|
||||
<P>The same thing using lynx:</P>
|
||||
<H3><A NAME="admin"></A>8. Go to the admin page</H3>
|
||||
<blockquote>
|
||||
<p>The admin page should now be working at: http://example.com/moodle/admin.
|
||||
If you try and access the front page of your site you'll be taken there automatically
|
||||
anyway. The first time you access this admin page, you will be presented with
|
||||
a GPL agreement with which you need to agree before you can continue with the setup.</p>
|
||||
<P>(Moodle will also try to set some cookies in your browser. If you have
|
||||
your browser set up to let you choose to accept cookies, then you <B>must</B>
|
||||
accept the Moodle cookies, or Moodle won't work properly.)
|
||||
<p>Now Moodle will start setting set up your database. Firstly, the main database
|
||||
tables are created. You should see a number of SQL statements followed by
|
||||
status messages (in green or red) that look like this:</p>
|
||||
<blockquote>
|
||||
<p>CREATE TABLE course ( id int(10) unsigned NOT NULL auto_increment, category
|
||||
int(10) unsigned NOT NULL default '0', password varchar(50) NOT NULL default
|
||||
'', fullname varchar(254) NOT NULL default '', shortname varchar(15) NOT
|
||||
NULL default '', summary text NOT NULL, format tinyint(4) NOT NULL default
|
||||
'1', teacher varchar(100) NOT NULL default 'Teacher', startdate int(10)
|
||||
unsigned NOT NULL default '0', enddate int(10) unsigned NOT NULL default
|
||||
'0', timemodified int(10) unsigned NOT NULL default '0', PRIMARY KEY (id))
|
||||
TYPE=MyISAM</p>
|
||||
<p><FONT COLOR="#006600">SUCCESS</FONT></p>
|
||||
<p>...and so on, followed by: <FONT COLOR="#FF0000">Main databases set up
|
||||
successfully</FONT>. </p>
|
||||
</blockquote>
|
||||
<p>If you don't see these, then there must have been some problem with the database
|
||||
or the configuration settings you defined in config.php. Check that PHP isn't
|
||||
in a restricted "safe mode" (commercial web hosts often have safe mode turned
|
||||
on). You can check PHP variables by creating a little file containing <?
|
||||
phpinfo() ?> and looking at it through a browser. Check all these and try
|
||||
this page again.</p>
|
||||
<p>Scroll down the very bottom of the page and press the "Continue"
|
||||
link.</p>
|
||||
<p>Next you will see a similar page that sets up all the tables required by
|
||||
each Moodle module. As before, they should all be green, otherwise you may
|
||||
be a problem in the module code.</p>
|
||||
|
||||
<p>Scroll down the very bottom of the page and press the "Continue"
|
||||
link.</p>
|
||||
|
||||
<p>You should now see a form where you can define more configuration variables
|
||||
for your installation, such as the default language, SMTP hosts and so on.
|
||||
Don't worry too much about getting everything right just now - you can always
|
||||
come back and edit these later on using the admin interface. Scroll down
|
||||
to the bottom and click "Save changes".</p>
|
||||
|
||||
<p>Next is a form where you can define parameters for your Moodle site and the
|
||||
front page, such as the name, format, description and so on.
|
||||
|
||||
Fill this out (you can always go back and change these later) and then press
|
||||
"Save changes".</p>
|
||||
|
||||
<p>Finally, you will then be asked to create a top-level administration user
|
||||
for future access to the admin pages. Fill out the details with your own name,
|
||||
email etc and then click "Save changes". Not all the fields are
|
||||
required, but if you miss any important fields you'll be re-prompted for them.
|
||||
</p>
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<blockquote>
|
||||
<p><strong>Make sure you remember the username and password you chose
|
||||
for the administration user account, as they will be necessary to
|
||||
access the administration page in future.</strong></p>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
</blockquote>
|
||||
<p>Once successful, you will be returned to the main admin page, which contain
|
||||
a number of links arranged in a menu (these items also appear on the home
|
||||
page when you are logged in as the admin user). All your further administration
|
||||
of Moodle can now be done using this menu, such as:</p>
|
||||
<ul>
|
||||
<li>creating and deleting courses</li>
|
||||
<li>creating and editing user accounts</li>
|
||||
<li>administering teacher accounts</li>
|
||||
<li>changing site-wide settings like themes etc</li>
|
||||
</ul>
|
||||
</blockquote>
|
||||
<P> </P>
|
||||
<H3><A NAME="cron"></A>9. Set up cron</H3>
|
||||
<blockquote>
|
||||
<p>Some of Moodle's modules require continual checks to perform tasks. For example,
|
||||
Moodle needs to check the discussion forums so it can mail out copies of posts
|
||||
to people who have subscribed.</p>
|
||||
<p>The script that does all this is located in the admin directory, and is called
|
||||
cron.php. However, it can not run itself, so you need to set up a mechanism
|
||||
where this script is run regularly (eg every five minutes). This provides
|
||||
a "heartbeat" so that the script can perform functions at periods
|
||||
defined by each module.</p>
|
||||
<p>Test that the script works by running it directly from your browser:</p>
|
||||
<blockquote>
|
||||
<PRE>http://example.com/moodle/admin/cron.php</PRE>
|
||||
</blockquote>
|
||||
<p>Now, you need to set up some of way of running the script automatically and
|
||||
regularly. </p>
|
||||
<H4> Running the script from a command line</H4>
|
||||
<p>You can call the page from the command line just as you did in the example
|
||||
above. For example, you can use a Unix utility like 'wget':</p>
|
||||
<blockquote>
|
||||
<PRE>wget -q -O /dev/null http://example.com/moodle/admin/cron.php</PRE>
|
||||
</blockquote>
|
||||
<p>Note in this example that the output is thrown away (to /dev/null).</p>
|
||||
<p>The same thing using lynx:</p>
|
||||
<blockquote>
|
||||
<pre>lynx -dump http://example.com/moodle/admin/cron.php > /dev/null</pre>
|
||||
</blockquote>
|
||||
<P>Alternatively you could use a standalone version of PHP, compiled to be run
|
||||
<p>Alternatively you could use a standalone version of PHP, compiled to be run
|
||||
on the command line. The advantage with doing this is that your web server
|
||||
logs aren't filled with constant requests to cron.php. The disadvantage is
|
||||
that you need to have access to a command-line version of php.</P>
|
||||
<blockquote>
|
||||
that you need to have access to a command-line version of php.</p>
|
||||
<blockquote>
|
||||
<PRE>/opt/bin/php /web/moodle/admin/cron.php
|
||||
|
||||
|
||||
@@ -205,42 +277,35 @@
|
||||
</PRE>
|
||||
</blockquote>
|
||||
<h4>Automatically running the script every 5 minutes</h4>
|
||||
<P>On Unix systems: Use <B>cron</B>. Edit your cron settings from the commandline
|
||||
using "crontab -e" and add a line like:</P>
|
||||
<BLOCKQUOTE>
|
||||
<p>On Unix systems: Use <B>cron</B>. Edit your cron settings from the commandline
|
||||
using "crontab -e" and add a line like:</p>
|
||||
<blockquote>
|
||||
<PRE>*/5 * * * * wget -q -O /dev/null http://example.com/moodle/admin/cron.php</PRE>
|
||||
</BLOCKQUOTE>
|
||||
<P>On Windows systems: The simplest way is to use my package <A TITLE="Click to download this package (150k)" HREF="http://moodle.com/download/moodle-cron-for-windows.zip">moodle-cron-for-windows.zip</A> which makes all this very easy.</P>
|
||||
<P>Other platforms: you will need to find another way to do this (please let
|
||||
</blockquote>
|
||||
<p>On Windows systems: The simplest way is to use my package <A TITLE="Click to download this package (150k)" HREF="http://moodle.com/download/moodle-cron-for-windows.zip">moodle-cron-for-windows.zip</A>
|
||||
which makes this whole thing very easy.</p>
|
||||
<p>Other platforms: you will need to find another way to do this (please let
|
||||
me know so I can update this documentation).<br>
|
||||
</P>
|
||||
</BLOCKQUOTE>
|
||||
<H3><A NAME="course"></A>Create a new course</H3>
|
||||
<P>Now that Moodle is running properly, you can create a course. </P>
|
||||
<P>Start on the admin page ( http://example.com/moodle/admin ) and select "Create
|
||||
a new course".</P>
|
||||
<P>Fill out the form, paying special attention to the course format.</P>
|
||||
<P>If you choose a "<strong>weekly</strong>" format, then course modules
|
||||
will be arranged in sections called "weeks". The weeks in your course
|
||||
are defined by the start date and the number of weeks you choose on this form.
|
||||
The idea is that the next time you run this course, you can just change the
|
||||
dates and keep the essential course format.</P>
|
||||
<P>The "<strong>topics</strong>" format is pretty much the same, except
|
||||
it doesn't use "weeks". Useful when you arrange a course into different-sized
|
||||
chunks of time. The start date will not be used on the main course display.</P>
|
||||
<P>The "<strong>social</strong>" format is for courses that don't have
|
||||
a start or finish. It is basically arranged around one big forum and works a
|
||||
nice replacement to standard mailing lists. Again the start date will not affect
|
||||
the operation of the course - it will only affect the display of logs.</P>
|
||||
<P>Press "Update this course", and you will be taken to a new form where
|
||||
you can assign teachers to the course. You can only add existing user accounts
|
||||
from this form - if you want to create a new teacher account then either ask
|
||||
the teacher to create one for themselves (see the login page), or create one
|
||||
for them using the "Add a new user" on the Admin page.</P>
|
||||
<P>Once done, your course is ready to customise, and is accessible via the "Courses"
|
||||
link on the home page.</P>
|
||||
<P>See the "<A HREF="teacher.html">Teacher Manual</A>" for more details
|
||||
on course-building.</P>
|
||||
</p>
|
||||
</blockquote>
|
||||
<H3><A NAME="course"></A>10. Create a new course</H3>
|
||||
<blockquote>
|
||||
<p>Now that Moodle is running properly, you can create a course. </p>
|
||||
<p>Select "Create a new course" from the Admin page (or the admin
|
||||
links on the home page).</p>
|
||||
<p>Fill out the form, paying special attention to the course format. You don't
|
||||
have to worry about the details too much at this stage, as everything can
|
||||
be changed later by the teacher.</p>
|
||||
<p>Press "Save changes", and you will be taken to a new form where
|
||||
you can assign teachers to the course. You can only add existing user accounts
|
||||
from this form - if you want to create a new teacher account then either ask
|
||||
the teacher to create one for themselves (see the login page), or create one
|
||||
for them using the "Add a new user" on the Admin page.</p>
|
||||
<p>Once done, the course is ready to customise, and is accessible via the "Courses"
|
||||
link on the home page.</p>
|
||||
<p>See the "<A HREF="teacher.html">Teacher Manual</A>" for more details
|
||||
on course-building.</p>
|
||||
</blockquote>
|
||||
<P> </P>
|
||||
<P ALIGN="CENTER"><FONT SIZE="1"><A HREF="index.html" TARGET="_top">Moodle Documentation</A></FONT></P>
|
||||
<P ALIGN="CENTER"><FONT SIZE="1">Version: $Id$</FONT></P>
|
||||
|
||||
+16
-5
@@ -92,7 +92,7 @@
|
||||
<p align="center"><img src="pix/files.jpg" width="400" height="347"></p>
|
||||
<p> </p>
|
||||
<p>This interface is only available to teachers - it is not accessible by students.
|
||||
Individual files are made available to students later on (as "Readings"
|
||||
Individual files are made available to students later on (as "Resources"
|
||||
- see the next section).</p>
|
||||
<p>As you can see in the screenshot, files are listed alongside subdirectories.
|
||||
You can create any number of subdirectories to organise your files and move
|
||||
@@ -109,7 +109,7 @@
|
||||
with the same name as an existing file it will automatically be overwritten.</p>
|
||||
<p>A final note: if your content resides out on the web then you don't need
|
||||
to upload the files at all - you can link directly to them from inside the
|
||||
course (see the Readings module and the next section).</p>
|
||||
course (see the Resources module and the next section).</p>
|
||||
<HR>
|
||||
</blockquote>
|
||||
<H3><A NAME="activities"></A>Setting up activities</H3>
|
||||
@@ -135,7 +135,7 @@
|
||||
<BR>
|
||||
<dt><strong>Choice</strong></dt>
|
||||
<dd>A choice activity is very simple - you ask a question and specify a choice
|
||||
of responses (currently only two). Students can make that choice, and you
|
||||
of responses. Students can make their choice, and you
|
||||
have a report screen where you can see the results. I use it to gather research
|
||||
consent from my students, but you could use it for quick polls or class
|
||||
votes.</dd>
|
||||
@@ -158,13 +158,24 @@
|
||||
and students will receive an automatic email informing them of your feedback.</dd>
|
||||
<BR>
|
||||
<BR>
|
||||
<dt><strong>Reading</strong></dt>
|
||||
<dd>Readings are the content of your course. Each reading can be any file
|
||||
<dt><strong>Resource</strong></dt>
|
||||
<dd>Resources are the content of your course. Each resource can be any file
|
||||
you have uploaded or can point to using a URL. You can also maintain simple text-based pages by typing them
|
||||
directly into a form.</dd>
|
||||
<BR>
|
||||
<BR>
|
||||
<dt><strong>Survey</strong></dt>
|
||||
<dd>This module allows you to design and set quiz tests, consisting of
|
||||
multiple choice, true-false, and short answer questions. These
|
||||
questions are kept in a categorised database, and can be re-used
|
||||
within courses and even between courses. Quizzes can allow
|
||||
multiple attempts. Each attempt is automatically marked, and the
|
||||
teacher can choose whether to give feedback or to show correct answers.
|
||||
This module includes grading facilities.
|
||||
</dd>
|
||||
<BR>
|
||||
<BR>
|
||||
<dt><strong>Survey</strong></dt>
|
||||
<dd>The survey module provides a number of predefined survey instruments that are useful in
|
||||
evaluating and understanding your class. Currently they include the COLLES and the ATTLS instruments.
|
||||
They can be given to students early in the course as a diagnostic tool and at the end of the
|
||||
|
||||
+5
-3
@@ -12,10 +12,12 @@
|
||||
redirect("$CFG->wwwroot/course/", "Message sent, thanks", 3);
|
||||
die;
|
||||
}
|
||||
|
||||
print_header("$CFG->sitename:Error", "$CFG->sitename: Error 404", "", "form.text");
|
||||
|
||||
print_simple_box("An unusual error occurred (tried to reach a page that doesn't exist).<P align=center>$REQUEST_URI", "center", "", "$THEME->cellheading");
|
||||
$site = get_site();
|
||||
|
||||
print_header("$site->fullname:Error", "$site->fullname: Error 404", "", "form.text");
|
||||
|
||||
print_simple_box("An unusual error occurred (tried to reach a page that doesn't exist).<P align=center>$REDIRECT_URL", "center", "", "$THEME->cellheading");
|
||||
|
||||
?>
|
||||
|
||||
|
||||
@@ -7,11 +7,18 @@
|
||||
|
||||
$lifetime = 86400;
|
||||
|
||||
if (!$PATH_INFO) {
|
||||
error("This script DEPENDS on $PATH_INFO being available. Read the README.");
|
||||
if (isset($file)) { // workaround for situations where / syntax doesn't work
|
||||
$PATH_INFO = $file;
|
||||
}
|
||||
|
||||
if (!$PATH_INFO) {
|
||||
error("This script DEPENDS on PATH_INFO being available. Read the README.");
|
||||
}
|
||||
|
||||
if (! $args = get_slash_arguments()) {
|
||||
error("No valid arguments supplied");
|
||||
}
|
||||
|
||||
$args = get_slash_arguments();
|
||||
$numargs = count($args);
|
||||
$courseid = (integer)$args[0];
|
||||
|
||||
@@ -35,7 +42,8 @@
|
||||
header("Expires: " . gmdate("D, d M Y H:i:s", time() + $lifetime) . " GMT");
|
||||
header("Cache-control: max_age = $lifetime"); // a day
|
||||
header("Pragma: ");
|
||||
header("Content-Length: ".filesize($pathname));
|
||||
header("Content-disposition: inline; filename=$filename");
|
||||
header("Content-length: ".filesize($pathname));
|
||||
header("Content-type: $mimetype");
|
||||
readfile("$pathname");
|
||||
} else {
|
||||
|
||||
+78
-67
@@ -35,13 +35,29 @@
|
||||
print_footer($course);
|
||||
}
|
||||
|
||||
function html_header($formfield=""){
|
||||
global $course;
|
||||
function html_header($course, $wdir, $formfield=""){
|
||||
|
||||
$strfiles = get_string("files");
|
||||
|
||||
print_header("$course->shortname: $strfiles", "$course->fullname",
|
||||
"<A HREF=\"../course/view.php?id=$course->id\">$course->shortname</A> -> $strfiles", $formfield);
|
||||
if ($wdir == "/") {
|
||||
print_header("$course->shortname: $strfiles", "$course->fullname",
|
||||
"<A HREF=\"../course/view.php?id=$course->id\">$course->shortname</A>
|
||||
-> $strfiles", $formfield);
|
||||
} else {
|
||||
$dirs = explode("/", $wdir);
|
||||
$numdirs = count($dirs);
|
||||
$link = "";
|
||||
$navigation = "";
|
||||
for ($i=1; $i<$numdirs; $i++) {
|
||||
$navigation .= " -> ";
|
||||
$link .= "/".urlencode($dirs[$i]);
|
||||
$navigation .= "<A HREF=\"index.php?id=$course->id&wdir=$link\">".$dirs[$i]."</A>";
|
||||
}
|
||||
|
||||
print_header("$course->shortname: $strfiles", "$course->fullname",
|
||||
"<A HREF=\"../course/view.php?id=$course->id\">$course->shortname</A> ->
|
||||
<A HREF=\"index.php?id=$course->id&wdir=/\">$strfiles</A> $navigation", $formfield);
|
||||
}
|
||||
echo "<table border=0 align=center cellspacing=3 cellpadding=3 width=640>";
|
||||
echo "<tr>";
|
||||
echo "<td colspan=\"2\">";
|
||||
@@ -80,7 +96,7 @@
|
||||
switch ($action) {
|
||||
|
||||
case "upload":
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
if ($save) {
|
||||
if (!is_uploaded_file($userfile['tmp_name']) and $userfile['size'] > 0) {
|
||||
echo "<P>Error: That was not a valid file.";
|
||||
@@ -99,10 +115,8 @@
|
||||
displaydir($wdir);
|
||||
|
||||
} else {
|
||||
if (! $filesize = ini_get("upload_max_filesize")) {
|
||||
$filesize = "5M";
|
||||
}
|
||||
$upload_max_filesize = get_real_size($filesize);
|
||||
$upload_max_filesize = get_max_upload_file_size();
|
||||
$filesize = display_size($upload_max_filesize);
|
||||
|
||||
echo "<P>Upload a file (maximum size $filesize) into <B>$wdir</B>:";
|
||||
echo "<TABLE><TR><TD COLSPAN=2>";
|
||||
@@ -129,7 +143,7 @@
|
||||
|
||||
case "delete":
|
||||
if ($confirm) {
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
foreach ($USER->filelist as $file) {
|
||||
$fullfile = $basedir.$file;
|
||||
if (! fulldelete($fullfile)) {
|
||||
@@ -141,7 +155,7 @@
|
||||
html_footer();
|
||||
|
||||
} else {
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
if (setfilelist($HTTP_POST_VARS)) {
|
||||
echo "<P ALIGN=CENTER>You are about to delete:</P>";
|
||||
print_simple_box_start("center");
|
||||
@@ -159,7 +173,7 @@
|
||||
break;
|
||||
|
||||
case "move":
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
if ($count = setfilelist($HTTP_POST_VARS)) {
|
||||
$USER->fileop = $action;
|
||||
$USER->filesource = $wdir;
|
||||
@@ -171,7 +185,7 @@
|
||||
break;
|
||||
|
||||
case "paste":
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
if ($USER->fileop == "move") {
|
||||
foreach ($USER->filelist as $file) {
|
||||
$shortfile = basename($file);
|
||||
@@ -189,7 +203,7 @@
|
||||
|
||||
case "rename":
|
||||
if ($name) {
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
$name = clean_filename($name);
|
||||
if (file_exists($basedir.$wdir."/".$name)) {
|
||||
echo "Error: $name already exists!";
|
||||
@@ -199,7 +213,7 @@
|
||||
displaydir($wdir);
|
||||
|
||||
} else {
|
||||
html_header("form.name");
|
||||
html_header($course, $wdir, "form.name");
|
||||
echo "<P>Rename <B>$file</B> to:";
|
||||
echo "<TABLE><TR><TD>";
|
||||
echo "<FORM ACTION=index.php METHOD=post NAME=form>";
|
||||
@@ -224,7 +238,7 @@
|
||||
|
||||
case "mkdir":
|
||||
if ($name) {
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
$name = clean_filename($name);
|
||||
if (file_exists($basedir.$wdir."/".$name)) {
|
||||
echo "Error: $name already exists!";
|
||||
@@ -234,7 +248,7 @@
|
||||
displaydir($wdir);
|
||||
|
||||
} else {
|
||||
html_header("form.name");
|
||||
html_header($course, $wdir, "form.name");
|
||||
echo "<P>Create folder in $wdir:";
|
||||
echo "<TABLE><TR><TD>";
|
||||
echo "<FORM ACTION=index.php METHOD=post NAME=form>";
|
||||
@@ -257,7 +271,7 @@
|
||||
break;
|
||||
|
||||
case "edit":
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
if (isset($text)) {
|
||||
$fileptr = fopen($basedir.$file,"w");
|
||||
fputs($fileptr, stripslashes($text));
|
||||
@@ -280,14 +294,14 @@
|
||||
echo htmlspecialchars($contents);
|
||||
echo "</TEXTAREA>";
|
||||
echo "</TD></TR><TR><TD>";
|
||||
echo " <INPUT TYPE=submit VALUE=\"Save changes\">";
|
||||
echo " <INPUT TYPE=submit VALUE=\"".get_string("savechanges")."\">";
|
||||
echo "</FORM>";
|
||||
echo "</TD><TD>";
|
||||
echo "<FORM ACTION=index.php METHOD=get>";
|
||||
echo " <INPUT TYPE=hidden NAME=id VALUE=$id>";
|
||||
echo " <INPUT TYPE=hidden NAME=wdir VALUE=$wdir>";
|
||||
echo " <INPUT TYPE=hidden NAME=action VALUE=cancel>";
|
||||
echo " <INPUT TYPE=submit VALUE=\"Cancel\">";
|
||||
echo " <INPUT TYPE=submit VALUE=\"".get_string("cancel")."\">";
|
||||
echo "</FORM>";
|
||||
echo "</TD></TR></TABLE>";
|
||||
}
|
||||
@@ -296,7 +310,7 @@
|
||||
|
||||
case "zip":
|
||||
if ($name) {
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
$name = clean_filename($name);
|
||||
$files = "";
|
||||
foreach ($USER->filelist as $file) {
|
||||
@@ -309,7 +323,7 @@
|
||||
displaydir($wdir);
|
||||
|
||||
} else {
|
||||
html_header("form.name");
|
||||
html_header($course, $wdir, "form.name");
|
||||
if (setfilelist($HTTP_POST_VARS)) {
|
||||
echo "<P ALIGN=CENTER>You are about create a zip file containing:</P>";
|
||||
print_simple_box_start("center");
|
||||
@@ -342,7 +356,7 @@
|
||||
break;
|
||||
|
||||
case "unzip":
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
if ($file) {
|
||||
echo "<P ALIGN=CENTER>Unzipping $file:</P>";
|
||||
print_simple_box_start("center");
|
||||
@@ -369,7 +383,7 @@
|
||||
clearfilelist();
|
||||
|
||||
default:
|
||||
html_header();
|
||||
html_header($course, $wdir);
|
||||
displaydir($wdir);
|
||||
html_footer();
|
||||
break;
|
||||
@@ -460,21 +474,6 @@ function printfilelist($filelist) {
|
||||
}
|
||||
|
||||
|
||||
function display_size($file) {
|
||||
$file_size = filesize($file);
|
||||
if ($file_size >= 1073741824) {
|
||||
$file_size = round($file_size / 1073741824 * 100) / 100 . "g";
|
||||
} else if ($file_size >= 1048576) {
|
||||
$file_size = round($file_size / 1048576 * 100) / 100 . "m";
|
||||
} else if ($file_size >= 1024) {
|
||||
$file_size = round($file_size / 1024 * 100) / 100 . "k";
|
||||
} else {
|
||||
$file_size = $file_size . "b";
|
||||
}
|
||||
return $file_size;
|
||||
}
|
||||
|
||||
|
||||
function print_cell($alignment="center", $text=" ") {
|
||||
echo "<TD ALIGN=\"$alignment\" NOWRAP>";
|
||||
echo "<FONT SIZE=\"-1\" FACE=\"Arial, Helvetica\">";
|
||||
@@ -488,7 +487,7 @@ function displaydir ($wdir) {
|
||||
|
||||
global $basedir;
|
||||
global $id;
|
||||
global $USER;
|
||||
global $USER, $CFG;
|
||||
|
||||
$fullpath = $basedir.$wdir;
|
||||
|
||||
@@ -506,30 +505,37 @@ function displaydir ($wdir) {
|
||||
}
|
||||
closedir($directory);
|
||||
|
||||
$strname = get_string("name");
|
||||
$strsize = get_string("size");
|
||||
$strmodified = get_string("modified");
|
||||
$straction = get_string("action");
|
||||
$strmakeafolder = get_string("makeafolder");
|
||||
$struploadafile = get_string("uploadafile");
|
||||
$strwithchosenfiles = get_string("withchosenfiles");
|
||||
$strmovetoanotherfolder = get_string("movetoanotherfolder");
|
||||
$strmovefilestohere = get_string("movefilestohere");
|
||||
$strdeletecompletely = get_string("deletecompletely");
|
||||
$strcreateziparchive = get_string("createziparchive");
|
||||
$strrename = get_string("rename");
|
||||
$stredit = get_string("edit");
|
||||
$strunzip = get_string("unzip");
|
||||
|
||||
|
||||
echo "<FORM ACTION=\"index.php\" METHOD=post NAME=dirform>";
|
||||
echo "<HR WIDTH=640 ALIGN=CENTER NOSHADE SIZE=1>";
|
||||
echo "<TABLE BORDER=0 cellspacing=2 cellpadding=2 width=640>";
|
||||
echo "<TR><TD> </TD><TD COLSPAN=5><P><B>Current folder: $wdir</B></P>";
|
||||
echo "<TR>";
|
||||
echo "<TH WIDTH=5></TH>";
|
||||
echo "<TH ALIGN=left>Name</TH>";
|
||||
echo "<TH ALIGN=right>Size</TH>";
|
||||
echo "<TH ALIGN=right>Modified</TH>";
|
||||
echo "<TH ALIGN=right>Action</TH>";
|
||||
echo "<TH ALIGN=left>$strname</TH>";
|
||||
echo "<TH ALIGN=right>$strsize</TH>";
|
||||
echo "<TH ALIGN=right>$strmodified</TH>";
|
||||
echo "<TH ALIGN=right>$straction</TH>";
|
||||
echo "</TR>\n";
|
||||
|
||||
if ($wdir == "/") {
|
||||
$wdir = "";
|
||||
} else {
|
||||
$updir = dirname($wdir);
|
||||
echo "<TR>";
|
||||
print_cell("center", "");
|
||||
print_cell("left", "<A HREF=\"index.php?id=$id&wdir=$updir\"><IMG SRC=\"pix/parent.gif\" HEIGHT=16 WIDTH=16 BORDER=0 ALT=\"Parent folder\"></A> <A HREF=\"index.php?id=$id&wdir=$updir\">Up to $updir</A>");
|
||||
echo "</TR>\n";
|
||||
}
|
||||
|
||||
|
||||
$count = 0;
|
||||
|
||||
if ($dirlist) {
|
||||
@@ -549,7 +555,7 @@ function displaydir ($wdir) {
|
||||
print_cell("left", "<A HREF=\"index.php?id=$id&wdir=$fileurl\"><IMG SRC=\"pix/folder.gif\" HEIGHT=16 WIDTH=16 BORDER=0 ALT=\"Folder\"></A> <A HREF=\"index.php?id=$id&wdir=$fileurl\">".htmlspecialchars($dir)."</A>");
|
||||
print_cell("right", "-");
|
||||
print_cell("right", $filedate);
|
||||
print_cell("right", "<A HREF=\"index.php?id=$id&wdir=$wdir&file=$filesafe&action=rename\">rename</A>");
|
||||
print_cell("right", "<A HREF=\"index.php?id=$id&wdir=$wdir&file=$filesafe&action=rename\">$strrename</A>");
|
||||
|
||||
echo "</TR>";
|
||||
}
|
||||
@@ -573,25 +579,31 @@ function displaydir ($wdir) {
|
||||
|
||||
print_cell("center", "<INPUT TYPE=checkbox NAME=\"file$count\" VALUE=\"$fileurl\">");
|
||||
echo "<TD ALIGN=left NOWRAP>";
|
||||
link_to_popup_window ("/file.php/$id$fileurl", "display",
|
||||
if ($CFG->slasharguments) {
|
||||
$ffurl = "/file.php/$id$fileurl";
|
||||
} else {
|
||||
$ffurl = "/file.php?file=/$id$fileurl";
|
||||
}
|
||||
link_to_popup_window ($ffurl, "display",
|
||||
"<IMG SRC=\"pix/$icon\" HEIGHT=16 WIDTH=16 BORDER=0 ALT=\"File\">",
|
||||
480, 640);
|
||||
echo "<FONT SIZE=\"-1\" FACE=\"Arial, Helvetica\">";
|
||||
link_to_popup_window ("/file.php/$id$fileurl", "display",
|
||||
link_to_popup_window ($ffurl, "display",
|
||||
htmlspecialchars($file),
|
||||
480, 640);
|
||||
echo "</FONT></TD>";
|
||||
|
||||
print_cell("right", display_size($filename));
|
||||
$file_size = filesize($filename);
|
||||
print_cell("right", display_size($file_size));
|
||||
print_cell("right", $filedate);
|
||||
if ($icon == "text.gif" || $icon == "html.gif") {
|
||||
$edittext = "<A HREF=\"index.php?id=$id&wdir=$wdir&file=$fileurl&action=edit\">edit</A>";
|
||||
$edittext = "<A HREF=\"index.php?id=$id&wdir=$wdir&file=$fileurl&action=edit\">$stredit</A>";
|
||||
} else if ($icon == "zip.gif") {
|
||||
$edittext = "<A HREF=\"index.php?id=$id&wdir=$wdir&file=$fileurl&action=unzip\">unzip</A>";
|
||||
$edittext = "<A HREF=\"index.php?id=$id&wdir=$wdir&file=$fileurl&action=unzip\">$strunzip</A>";
|
||||
} else {
|
||||
$edittext = "";
|
||||
}
|
||||
print_cell("right", "$edittext <A HREF=\"index.php?id=$id&wdir=$wdir&file=$filesafe&action=rename\">rename</A>");
|
||||
print_cell("right", "$edittext <A HREF=\"index.php?id=$id&wdir=$wdir&file=$filesafe&action=rename\">$strrename</A>");
|
||||
|
||||
echo "</TR>";
|
||||
}
|
||||
@@ -608,13 +620,12 @@ function displaydir ($wdir) {
|
||||
echo "<INPUT TYPE=hidden NAME=id VALUE=\"$id\">";
|
||||
echo "<INPUT TYPE=hidden NAME=wdir VALUE=\"$wdir\"> ";
|
||||
$options = array (
|
||||
"move" => "Move to another folder",
|
||||
"delete" => "Delete completely",
|
||||
"zip" => "Create zip archive"
|
||||
"move" => "$strmovetoanotherfolder",
|
||||
"delete" => "$strdeletecompletely",
|
||||
"zip" => "$strcreateziparchive"
|
||||
);
|
||||
if ($count) {
|
||||
choose_from_menu ($options, "action", "", $nothing="With chosen files...", "javascript:document.dirform.submit()");
|
||||
//echo "<INPUT TYPE=submit VALUE=Go>";
|
||||
choose_from_menu ($options, "action", "", "$strwithchosenfiles...", "javascript:document.dirform.submit()");
|
||||
}
|
||||
|
||||
echo "</FORM>";
|
||||
@@ -624,7 +635,7 @@ function displaydir ($wdir) {
|
||||
echo " <INPUT TYPE=hidden NAME=id VALUE=$id>";
|
||||
echo " <INPUT TYPE=hidden NAME=wdir VALUE=\"$wdir\">";
|
||||
echo " <INPUT TYPE=hidden NAME=action VALUE=paste>";
|
||||
echo " <INPUT TYPE=submit VALUE=\"Move files to here\">";
|
||||
echo " <INPUT TYPE=submit VALUE=\"$strmovefilestohere\">";
|
||||
echo "</FORM>";
|
||||
}
|
||||
echo "<TD ALIGN=right>";
|
||||
@@ -632,7 +643,7 @@ function displaydir ($wdir) {
|
||||
echo " <INPUT TYPE=hidden NAME=id VALUE=$id>";
|
||||
echo " <INPUT TYPE=hidden NAME=wdir VALUE=\"$wdir\">";
|
||||
echo " <INPUT TYPE=hidden NAME=action VALUE=mkdir>";
|
||||
echo " <INPUT TYPE=submit VALUE=\"Make a folder\">";
|
||||
echo " <INPUT TYPE=submit VALUE=\"$strmakeafolder\">";
|
||||
echo "</FORM>";
|
||||
echo "</TD>";
|
||||
echo "<TD ALIGN=right>";
|
||||
@@ -640,7 +651,7 @@ function displaydir ($wdir) {
|
||||
echo " <INPUT TYPE=hidden NAME=id VALUE=$id>";
|
||||
echo " <INPUT TYPE=hidden NAME=wdir VALUE=\"$wdir\">";
|
||||
echo " <INPUT TYPE=hidden NAME=action VALUE=upload>";
|
||||
echo " <INPUT TYPE=submit VALUE=\"Upload a file\">";
|
||||
echo " <INPUT TYPE=submit VALUE=\"$struploadafile\">";
|
||||
echo "</FORM>";
|
||||
echo "</TD></TR>";
|
||||
echo "</TABLE>";
|
||||
|
||||
@@ -18,6 +18,7 @@ function mimeinfo($element, $filename) {
|
||||
"swf" => array ("type"=>"application/x-shockwave-flash", "icon"=>"image.gif"),
|
||||
"pdf" => array ("type"=>"application/pdf", "icon"=>"pdf.gif"),
|
||||
"doc" => array ("type"=>"application/msword", "icon"=>"word.gif"),
|
||||
"ppt" => array ("type"=>"application/vnd.ms-powerpoint", "icon"=>"powerpoint.gif"),
|
||||
"xls" => array ("type"=>"application/vnd.ms-excel", "icon"=>"excel.gif")
|
||||
);
|
||||
|
||||
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 245 B |
@@ -10,6 +10,8 @@
|
||||
optional_variable($text, "No text to display");
|
||||
optional_variable($module, "moodle");
|
||||
|
||||
$lang = current_language();
|
||||
|
||||
print_header();
|
||||
|
||||
if (ereg("\\.\\.", $file)) {
|
||||
@@ -18,9 +20,9 @@
|
||||
|
||||
if ($file) {
|
||||
if ($module == "moodle") {
|
||||
$filepath = "$CFG->dirroot/lang/$CFG->lang/help/$file";
|
||||
$filepath = "$CFG->dirroot/lang/$lang/help/$file";
|
||||
} else {
|
||||
$filepath = "$CFG->dirroot/lang/$CFG->lang/help/$module/$file";
|
||||
$filepath = "$CFG->dirroot/lang/$lang/help/$module/$file";
|
||||
}
|
||||
|
||||
if (file_exists("$filepath")) {
|
||||
@@ -45,6 +47,8 @@
|
||||
echo $text;
|
||||
echo "</P>";
|
||||
}
|
||||
|
||||
close_window_button();
|
||||
?>
|
||||
</BODY>
|
||||
</HTML>
|
||||
|
||||
@@ -3,116 +3,135 @@
|
||||
|
||||
require("config.php");
|
||||
include("course/lib.php");
|
||||
include("mod/reading/lib.php");
|
||||
include("mod/resource/lib.php");
|
||||
include("mod/forum/lib.php");
|
||||
|
||||
if (! $site = get_site()) {
|
||||
redirect("$CFG->wwwroot/admin/");
|
||||
redirect("$CFG->wwwroot/admin/index.php");
|
||||
}
|
||||
|
||||
if (isadmin()) {
|
||||
if (moodle_needs_upgrading()) {
|
||||
redirect("$CFG->wwwroot/admin/");
|
||||
redirect("$CFG->wwwroot/admin/index.php");
|
||||
}
|
||||
$headerbutton = update_course_icon($site->id);
|
||||
} else {
|
||||
if (isset($USER->id)) {
|
||||
$headerbutton = "<FONT SIZE=2><A HREF=\"$CFG->wwwroot/login/logout.php\">".get_string("logout")."</A></FONT>";
|
||||
} else {
|
||||
$headerbutton = "<FONT SIZE=2><A HREF=\"$CFG->wwwroot/login\">".get_string("login")."</A></FONT>";
|
||||
$headerbutton = "<FONT SIZE=2><A HREF=\"$CFG->wwwroot/login/index.php\">".get_string("login")."</A></FONT>";
|
||||
}
|
||||
}
|
||||
print_header("$site->fullname", "$site->fullname", "", "",
|
||||
print_header("$site->fullname", "$site->fullname", "home", "",
|
||||
"<META NAME=\"Description\" CONTENT=\"".stripslashes(strip_tags($site->summary))."\">",
|
||||
true, $headerbutton);
|
||||
|
||||
$side = 180;
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<TABLE WIDTH="100%" BORDER="0" CELLSPACING="5" CELLPADDING="5">
|
||||
<TR>
|
||||
<TD VALIGN="TOP" NOWRAP>
|
||||
<?
|
||||
<?
|
||||
$sections = get_all_sections($site->id);
|
||||
|
||||
if ($site->newsitems > 0 or $sections[0]->sequence or isediting($site->id)) {
|
||||
|
||||
$sections = get_all_sections($site->id);
|
||||
|
||||
if ($site->newsitems > 0 or $sections[0]->sequence or isediting($site->id)) {
|
||||
|
||||
if ($sections[0]->sequence or isediting($site->id)) {
|
||||
get_all_mods($site->id, $mods, $modnames, $modnamesplural, $modnamesused);
|
||||
print_simple_box(get_string("mainmenu"), "CENTER", "100%", "$THEME->cellheading");
|
||||
}
|
||||
echo "<TD WIDTH=\"$side\" VALIGN=TOP NOWRAP>"; $firstcolumn=true;
|
||||
|
||||
if ($sections[0]->sequence or isediting($site->id)) {
|
||||
get_all_mods($site->id, $mods, $modnames, $modnamesplural, $modnamesused);
|
||||
print_simple_box(get_string("mainmenu"), "CENTER", $side, "$THEME->cellheading");
|
||||
}
|
||||
|
||||
if ($sections[0]->sequence) {
|
||||
print_section($site->id, $sections[0], $mods, $modnamesused, true);
|
||||
}
|
||||
|
||||
if (isediting($site->id)) {
|
||||
echo "<DIV ALIGN=right>";
|
||||
popup_form("$CFG->wwwroot/course/mod.php?id=$site->id§ion=0&add=",
|
||||
$modnames, "section0", "", "Add...");
|
||||
echo "</DIV>";
|
||||
}
|
||||
|
||||
if ($site->newsitems > 0 ) {
|
||||
print_simple_box(get_string("courses"), "CENTER", "100%", "$THEME->cellheading");
|
||||
print_all_courses($cat=1, "minimal", 10);
|
||||
}
|
||||
echo "<IMG SRC=\"pix/spacer.gif\" WIDTH=200 HEIGHT=0><BR>";
|
||||
if ($sections[0]->sequence) {
|
||||
print_section($site->id, $sections[0], $mods, $modnamesused, true, $side);
|
||||
}
|
||||
|
||||
if (isadmin()) {
|
||||
print_admin_links($site->id);
|
||||
}
|
||||
?>
|
||||
|
||||
</TD>
|
||||
|
||||
<TD WIDTH="70%" VALIGN="TOP">
|
||||
<? if ($site->newsitems == 0 ) {
|
||||
print_simple_box(get_string("availablecourses"), "CENTER", "100%", "$THEME->cellheading");
|
||||
echo "<IMG HEIGHT=8 SRC=\"pix/spacer.gif\" ALT=\"\"><BR>";
|
||||
print_all_courses();
|
||||
|
||||
} else {
|
||||
if (! $newsforum = forum_get_course_forum($site->id, "news")) {
|
||||
error("Could not find or create a main news forum for the site");
|
||||
}
|
||||
|
||||
if (isset($USER->id)) {
|
||||
$SESSION->fromdiscussion = "$CFG->wwwroot";
|
||||
save_session("SESSION");
|
||||
if (forum_is_subscribed($USER->id, $newsforum->id)) {
|
||||
$subtext = get_string("unsubscribe", "forum");
|
||||
} else {
|
||||
$subtext = get_string("subscribe", "forum");
|
||||
}
|
||||
$headertext = "<TABLE BORDER=0 WIDTH=100% CELLPADDING=0 CELLSPACING=0><TR>
|
||||
<TD>".get_string("sitenews")."</TD>
|
||||
<TD ALIGN=RIGHT><FONT SIZE=1>
|
||||
<A HREF=\"mod/forum/subscribe.php?id=$newsforum->id\">$subtext</A>
|
||||
</TD></TR></TABLE>";
|
||||
} else {
|
||||
$headertext = get_string("sitenews");
|
||||
}
|
||||
print_simple_box($headertext, "CENTER", "100%", $THEME->cellheading);
|
||||
echo "<IMG HEIGHT=8 SRC=\"pix/spacer.gif\" ALT=\"\"><BR>";
|
||||
forum_print_latest_discussions($newsforum->id, $site->newsitems);
|
||||
}
|
||||
?>
|
||||
|
||||
</TD>
|
||||
<TD WIDTH="30%" VALIGN="TOP">
|
||||
<?
|
||||
if (isediting($site->id)) {
|
||||
$site->summary .= "<BR><CENTER><A HREF=\"admin/site.php\"><IMG SRC=\"pix/i/edit.gif\" BORDER=0></A>";
|
||||
echo "<DIV ALIGN=right>";
|
||||
popup_form("$CFG->wwwroot/course/mod.php?id=$site->id§ion=0&add=",
|
||||
$modnames, "section0", "", get_string("add")."...");
|
||||
echo "</DIV>";
|
||||
}
|
||||
print_simple_box($site->summary, "", "100%", $THEME->cellheading);
|
||||
?>
|
||||
</TD>
|
||||
|
||||
if ($site->newsitems > 0 ) {
|
||||
$categories = get_all_categories();
|
||||
if (count($categories) > 1) {
|
||||
print_simple_box(get_string("categories"), "CENTER", $side, "$THEME->cellheading");
|
||||
print_course_categories($categories, "none", $side);
|
||||
} else {
|
||||
print_simple_box(get_string("courses"), "CENTER", $side, "$THEME->cellheading");
|
||||
$category = array_shift($categories);
|
||||
print_all_courses($category->id, "minimal", 10);
|
||||
}
|
||||
}
|
||||
print_spacer(1,$side);
|
||||
}
|
||||
|
||||
if (isadmin()) {
|
||||
if (!$firstcolumn) {
|
||||
echo "<TD WIDTH=\"$side\" VALIGN=TOP NOWRAP>"; $firstcolumn=true;
|
||||
}
|
||||
print_admin_links($site->id, $side);
|
||||
}
|
||||
|
||||
if ($firstcolumn) {
|
||||
echo "</TD>";
|
||||
}
|
||||
echo "<TD WIDTH=70% VALIGN=TOP>";
|
||||
|
||||
if ($site->newsitems == 0 ) {
|
||||
print_simple_box(get_string("availablecourses"), "CENTER", "100%", "$THEME->cellheading");
|
||||
print_spacer(8,1);
|
||||
$categories = get_all_categories();
|
||||
if (count($categories) > 1) {
|
||||
print_course_categories($categories, "index");
|
||||
} else {
|
||||
print_all_courses("all");
|
||||
}
|
||||
|
||||
} else {
|
||||
if (! $newsforum = forum_get_course_forum($site->id, "news")) {
|
||||
error("Could not find or create a main news forum for the site");
|
||||
}
|
||||
|
||||
if (isset($USER->id)) {
|
||||
$SESSION->fromdiscussion = "$CFG->wwwroot";
|
||||
save_session("SESSION");
|
||||
if (forum_is_subscribed($USER->id, $newsforum->id)) {
|
||||
$subtext = get_string("unsubscribe", "forum");
|
||||
} else {
|
||||
$subtext = get_string("subscribe", "forum");
|
||||
}
|
||||
$headertext = "<TABLE BORDER=0 WIDTH=100% CELLPADDING=0 CELLSPACING=0><TR>
|
||||
<TD>".get_string("sitenews")."</TD>
|
||||
<TD ALIGN=RIGHT><FONT SIZE=1>
|
||||
<A HREF=\"mod/forum/subscribe.php?id=$newsforum->id\">$subtext</A>
|
||||
</TD></TR></TABLE>";
|
||||
} else {
|
||||
$headertext = get_string("sitenews");
|
||||
}
|
||||
print_simple_box($headertext, "CENTER", "100%", $THEME->cellheading);
|
||||
print_spacer(8,1);
|
||||
forum_print_latest_discussions($newsforum->id, $site->newsitems);
|
||||
}
|
||||
|
||||
echo "</TD>";
|
||||
echo "<TD WIDTH=30% VALIGN=TOP>";
|
||||
|
||||
if (isediting($site->id)) {
|
||||
$site->summary .= "<BR><CENTER><A HREF=\"admin/site.php\"><IMG SRC=\"pix/i/edit.gif\" BORDER=0></A>";
|
||||
}
|
||||
|
||||
print_simple_box($site->summary, "", "100%", $THEME->cellheading);
|
||||
print_spacer(1,$side);
|
||||
echo "</TD>";
|
||||
?>
|
||||
|
||||
</TR>
|
||||
</TABLE>
|
||||
|
||||
<? print_footer("home") ?>
|
||||
<? print_footer("home"); // Please do not modify this line ?>
|
||||
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
README FOR LANGUAGE PLUGIN
|
||||
--------------------------
|
||||
|
||||
This directory contains all the strings and texts needed
|
||||
to render a Moodle site in a particular language.
|
||||
|
||||
The default language is English. If a string is missing
|
||||
for any reason from another language, then the English
|
||||
version will be used.
|
||||
|
||||
Note that each installed module should have a file here,
|
||||
as well as the main file which is called "moodle.php".
|
||||
|
||||
The "help" directory contains whole pages written in HTML,
|
||||
and the "docs" directory contains other miscellaneous
|
||||
documents.
|
||||
|
||||
If you are thinking of translating Moodle to another language,
|
||||
please contact me so I can help you!
|
||||
|
||||
Cheers,
|
||||
Martin martin@dougiamas.com
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
<?PHP // $Id$
|
||||
// assignment.php - created with Moodle 1.0.6 dev (2002101001)
|
||||
|
||||
|
||||
$string['assignmentdetails'] = "Aufgabendetails";
|
||||
$string['assignmentname'] = "Aufgabenname";
|
||||
$string['assignmenttype'] = "Aufgabentyp";
|
||||
$string['description'] = "Beschreibung ";
|
||||
$string['duedate'] = "Abgabefrist";
|
||||
$string['early'] = "\$a früh";
|
||||
$string['failedupdatefeedback'] = "Keine Aktualisierung der Eintragsmeldung für Benutzer \$a";
|
||||
$string['feedbackupdated'] = "Eintragsmeldung aktualisiert für \$a Leute ";
|
||||
$string['late'] = "\$a spät ";
|
||||
$string['maximumgrade'] = "Höchster Grad ";
|
||||
$string['maximumsize'] = "Maximale Größe";
|
||||
$string['modulename'] = "Aufgabe";
|
||||
$string['modulenameplural'] = "Aufgaben";
|
||||
$string['newsubmissions'] = "Aufgaben eingetragen";
|
||||
$string['notsubmittedyet'] = "Noch nicht eingetragen";
|
||||
$string['overwritewarning'] = "Hinweis: erneutes Hochladen ERSETZT Ihren gegenwärtigen Eintrag ";
|
||||
$string['submissionfeedback'] = "Eintragsmeldung";
|
||||
$string['submissions'] = "Einträge";
|
||||
$string['submitassignment'] = "Tragen Sie Ihre Aufgabe ein unter Verwendung dieses Formulars";
|
||||
$string['submitted'] = "Eingetragen";
|
||||
$string['typeuploadsingle'] = "Laden Sie einzige Datei hoch, Wert zwischen 0 - 100 Punkten";
|
||||
$string['uploadedfiles'] = "hochgeladene Dateien";
|
||||
$string['viewsubmissions'] = "Zeige \$a eingetragen Aufgaben ";
|
||||
$string['yoursubmission'] = "Ihre Eintrag";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,17 @@
|
||||
<?PHP // $Id$
|
||||
// choice.php - created with Moodle 1.0.6 dev (2002100200)
|
||||
|
||||
|
||||
$string['answered'] = "Beantwortet";
|
||||
$string['choice'] = "Wahl \$a";
|
||||
$string['choicename'] = "Wahlname";
|
||||
$string['choicetext'] = "Wahltext";
|
||||
$string['modulename'] = "Wahl ";
|
||||
$string['modulenameplural'] = "Wahlen ";
|
||||
$string['notanswered'] = "Noch nicht beantwortet";
|
||||
$string['responses'] = "Antworten ";
|
||||
$string['responsesto'] = "Antworten zu \$a";
|
||||
$string['savemychoice'] = "Meine Wahl speichern";
|
||||
$string['viewallresponses'] = "Zeige \$a Antworten";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,18 @@
|
||||
ABOUT THIS DIRECTORY
|
||||
--------------------
|
||||
|
||||
DO NOT CHANGE, RENAME OR MOVE ANY OF THE FILES
|
||||
IN THIS DIRECTORY unless you REALLY know what
|
||||
you are doing.
|
||||
|
||||
Changing these files could mess up your course.
|
||||
|
||||
This directory contains files uploaded to your
|
||||
course within particular modules (mostly by
|
||||
students), such as assignment submissions and
|
||||
forum attachments.
|
||||
|
||||
The names of the directories and files within
|
||||
this directory are very specific and are
|
||||
automatically maintained by Moodle.
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
<?PHP // $Id$
|
||||
// forum.php - created with Moodle 1.0.6 dev (2002100200)
|
||||
|
||||
|
||||
$string['addanewdiscussion'] = "Ein neues Diskussion-Thema hinzufügen";
|
||||
$string['allowchoice'] = "Jeder darf auswählen";
|
||||
$string['allowdiscussions'] = "Darf ein \$a in dieses Forum schreiben? ";
|
||||
$string['allowratings'] = "Dürfen Einträge bewertet werden?";
|
||||
$string['allowsdiscussions'] = "Jeder darf in diesem Forum ein Diskussion-Thema beginnen.";
|
||||
$string['anyfile'] = "Jede Datei";
|
||||
$string['attachment'] = "Anhang";
|
||||
$string['bynameondate'] = "durch \$a->name - \$a->date ";
|
||||
$string['couldnotadd'] = "Eintrag konnte aufgrund eines unbekannten Fehlers nicht hinzugefügt werden.";
|
||||
$string['couldnotdeleteratings'] = "Das kann nicht gelöscht werden, weil es schon bewertet wurde .";
|
||||
$string['couldnotdeletereplies'] = "Das kann nicht gelöscht werden, weil es schon beantwortet wurde .";
|
||||
$string['couldnotupdate'] = "Der Eintrags konnte aufgrund eines unbekannten Fehlers nicht übernommen werden.";
|
||||
$string['delete'] = "Löschen";
|
||||
$string['deleteddiscussion'] = "Das Diskussion Thema ist gelöscht worden ";
|
||||
$string['deletedpost'] = "Der Eintrag wurde gelöscht";
|
||||
$string['deletesure'] = "Möchten Sie diesen Eintrag wirklich löschen?";
|
||||
$string['discussion'] = "Diskussion";
|
||||
$string['discussions'] = "Diskussionen";
|
||||
$string['discussionsstartedby'] = "Diskussionen starteten am \$a";
|
||||
$string['discussthistopic'] = "Diesen Eintrag diskutieren";
|
||||
$string['eachuserforum'] = "Jeder trägt eine Diskussion ein.";
|
||||
$string['edit'] = "Bearbeiten";
|
||||
$string['editing'] = "Bearbeitung";
|
||||
$string['emptymessage'] = "Fehler in Ihrem Eintrag. Vielleicht haben Sie keinen Text eingegeben oder der Anhang war zu gross. Ihre Änderungen wurden NICHT gespeichert.";
|
||||
$string['everyonecanchoose'] = "Jeder kann sich eintragen";
|
||||
$string['everyoneissubscribed'] = "Jeder ist in diesem Forum eingetragen";
|
||||
$string['forcesubscribe'] = "Jeder ist zwingend in diesem Forum eingetragen";
|
||||
$string['forcesubscribeq'] = "Jeder ist in zwingend diesem Forum eingetragen?";
|
||||
$string['forum'] = "Forum";
|
||||
$string['forumintro'] = "Einführung ins Forum";
|
||||
$string['forumname'] = "Name des Forums";
|
||||
$string['forums'] = "Foren";
|
||||
$string['forumtype'] = "Forentyp";
|
||||
$string['generalforum'] = "Standard Forum zur allgemeinen Nutzung";
|
||||
$string['generalforums'] = "Allgemeines Forum";
|
||||
$string['inforum'] = "in \$a";
|
||||
$string['intronews'] = "Allgemeine Nachrichten und Ankündigungen";
|
||||
$string['introsocial'] = "Ein offenes Forum, um über alles zu Plaudern";
|
||||
$string['introteacher'] = "Ein Forum ausschliesslich für Anmerkungen und Diskussionen der Lehrer";
|
||||
$string['learningforums'] = "Lernforum";
|
||||
$string['maxtimehaspassed'] = "Die Höchstdauer für die Bearbeitung diesen Eintrag (\$a) ist überschritten!";
|
||||
$string['message'] = "Mitteilung";
|
||||
$string['modeflatnewestfirst'] = "Anzeige der Antworten flach, aktuellste zuerst";
|
||||
$string['modeflatoldestfirst'] = "Anzeige der Antworten flach, älteste zuerst";
|
||||
$string['modenested'] = "Anzeige der Antworten geschachtelt";
|
||||
$string['modethreaded'] = "Anzeige der Antworten geschachtelt hierarchisch";
|
||||
$string['modulename'] = "Forum";
|
||||
$string['modulenameplural'] = "Foren";
|
||||
$string['more'] = "mehr";
|
||||
$string['namenews'] = "Nachrichtenforum";
|
||||
$string['namesocial'] = "Soziales Forum";
|
||||
$string['nameteacher'] = "Lehrer-Forum";
|
||||
$string['newforumposts'] = "Neue Foren-Beiträge";
|
||||
$string['nodiscussions'] = "Es befindet sich noch kein Diskussionsthema in diesem Forum";
|
||||
$string['noguestpost'] = "Gäste dürfen hier nicht eintragen";
|
||||
$string['noposts'] = "Keine Beiträge";
|
||||
$string['nosubscribers'] = "Momentan gibt es keine Teilnehmer in diesem Forum";
|
||||
$string['nownotsubscribed'] = "\$a->name wird keine Kopien von '\$a->forum' per Email erhalten";
|
||||
$string['nowsubscribed'] = "\$a->name wird Kopien von '\$a->forum' per Email erhalten";
|
||||
$string['numposts'] = "\$a Beiträge";
|
||||
$string['olderdiscussions'] = "Ältere Diskussionen";
|
||||
$string['openmode0'] = "Keine Diskussionen, keine Antworten";
|
||||
$string['openmode1'] = "Keine Diskussionen, aber Atworten erlaubt";
|
||||
$string['openmode2'] = "Discussions and replies are allowed";
|
||||
$string['parentofthispost'] = "Verfasser dieses Beitrags";
|
||||
$string['postadded'] = "Ihr Eintrag wurde erfolgreich hinzugefügt. <P>Sie haben \$a zu bearbeiten, sofern Sie Änderungen machen möchten.";
|
||||
$string['postingtip'] = "<B>Eintragstipps
|
||||
für Antworten
|
||||
<UL>
|
||||
<LI>lesen Sie Ihre aufmerksam durch
|
||||
<LI>achten sie auf Dinge, die Sie kommentieren
|
||||
</UL>
|
||||
|
||||
Beim Schreiben
|
||||
<UL>
|
||||
<LI>verfassen Sie Ihren Beitrag kurz und themenbezogen
|
||||
<LI>drücken Sie sich klar aus
|
||||
<LI>überlegen Sie sich Fragen die Sie stellen können
|
||||
</UL>";
|
||||
$string['postmailinfo'] = "Hiermit erhalten Sie die Kopie einer Mitteilung, die auf der internet-Seite \$a eingetragen wurde.
|
||||
Um auf diese zu antworten, folgen Sie bitte diesem Link:";
|
||||
$string['postrating1'] = "Durchaus differrnziertes Wissen";
|
||||
$string['postrating2'] = "Durchaus diffenziert und fundiert";
|
||||
$string['postrating3'] = "Zeigt meistens fundiertes Wissen";
|
||||
$string['postupdated'] = "Ihr Beitrag wurde aktualisiert";
|
||||
$string['processingpost'] = "Bearbeite Beitrag \$a";
|
||||
$string['rate'] = "Bewerte";
|
||||
$string['ratings'] = "Bewertung";
|
||||
$string['re'] = "Re:";
|
||||
$string['readtherest'] = "Lesen Sie den Rest des Themas";
|
||||
$string['repliesmany'] = "\$a Antworten bis jetzt";
|
||||
$string['repliesone'] = "\$a Antwort bis jetzt";
|
||||
$string['reply'] = "Antwort";
|
||||
$string['search'] = "Suche";
|
||||
$string['searchforums'] = "Durchsuche Foren";
|
||||
$string['sendinratings'] = "Aktuelle Bewertung senden";
|
||||
$string['showsubscribers'] = "Teilnehmer anzeigen";
|
||||
$string['singleforum'] = "Eine einzelne, einfache Diskussion";
|
||||
$string['subject'] = "Betreff";
|
||||
$string['subscribe'] = "In diesem Forum anmelden";
|
||||
$string['subscribed'] = "Angemeldet";
|
||||
$string['subscribers'] = "Teilnehmer";
|
||||
$string['subscribersto'] = "Teilnehmer für '\$a'";
|
||||
$string['unsubscribe'] = "Von diesem Forum abmelden";
|
||||
$string['youratedthis'] = "Ihre Bewertung";
|
||||
$string['yournewtopic'] = "Ihr neues Diskussionsthema";
|
||||
$string['yourreply'] = "Ihre Antwort";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,7 @@
|
||||
<P ALIGN=CENTER><B>Choice options</B></P>
|
||||
|
||||
<P>Here is where you specify the options that participants
|
||||
have to choose from.
|
||||
|
||||
<P>You can fill in any number of these: it's OK to leave some blank
|
||||
if you don't need the full 6 options.
|
||||
@@ -0,0 +1,3 @@
|
||||
<P ALIGN=CENTER> <B>Kurs-Rubriken</B> </P>
|
||||
<P> Ihr <SPAN ID=UNKNOWNWORD><FONT COLOR="#ff00ff">sel@ction</FONT></SPAN> Der Verwalter kann mehrere Kurs-Rubriken angelegt haben.<P> Zum Beispiel, "Wissenschaft", "Geisteswissenschaften", "Gesundheitswesen" etc.<P> Die passende für Ihren Kurs wählen. Diese Auswahl bestimmt, wo Ihr Kurs auf der aufgelistet wird und es erleichtert den Teilnehmern, den richtigen Kurrs zu finden.
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<P ALIGN=CENTER><B>Moodle course formats</B></P>
|
||||
|
||||
<P><B>Weekly format</B></P>
|
||||
<UL>
|
||||
The course is organised week by week, with a clear start date and a finish date.
|
||||
Each week consists of activities. Some of them, like journals, may have
|
||||
"open windows" of, say, two weeks after which they become unavailable.
|
||||
</UL>
|
||||
|
||||
<P><B>Topics format</B></P>
|
||||
<UL>
|
||||
Very similar to the weekly format, except that each "week" is called a topic.
|
||||
A "topic" is not restricted to any time limit. You don't need to specify any
|
||||
dates.
|
||||
</UL>
|
||||
|
||||
<P><B>Social format</B></P>
|
||||
<UL>
|
||||
This format is oriented around one main forum, the Social forum, which appears
|
||||
listed on the main page. It is useful for situations that are more freeform.
|
||||
They may not even be courses. For example, it could be used as a departmental
|
||||
notice board.
|
||||
</UL>
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
<P ALIGN=CENTER><B>Course Full name</B></P>
|
||||
|
||||
<P>The full name of the course is displayed at the top of the screen and in the course listings.</P>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
<P ALIGN=CENTER><B>Course News Items</B></P>
|
||||
|
||||
<P>A special forum called "News" appears in the
|
||||
"weekly" and "topics" course formats. It's
|
||||
a good place to post notices for all students
|
||||
to see. (By default, all students are subscribed
|
||||
to this forum, and will receive your notices by
|
||||
email.)
|
||||
|
||||
<P>This setting determines how many recent items
|
||||
appear on your course home page, in a news box
|
||||
down the right-hand side.
|
||||
|
||||
<P>If you set it to "0 news items" then the news
|
||||
box won't even appear.
|
||||
@@ -0,0 +1,14 @@
|
||||
<P ALIGN=CENTER><B>Course Number of Weeks/Topics</B></P>
|
||||
|
||||
<P>This setting is only used by the 'weekly' and 'topics'
|
||||
course formats.
|
||||
|
||||
<P>In the 'weekly' format, it specifies the number of weeks
|
||||
that the course will run for, starting from the
|
||||
course starting date.
|
||||
|
||||
<P>In the 'topics' format, it specifies the number of topics
|
||||
in the course.
|
||||
|
||||
<P>Both of these translate to the number of "boxes" down the
|
||||
middle of the course page.
|
||||
@@ -0,0 +1,7 @@
|
||||
<P ALIGN=CENTER><B>Course short name</B></P>
|
||||
|
||||
<P>Many institutions have a shorthand way of referring to a course, such as
|
||||
BP102 or COMMS. Even you don't already have such a name for your course,
|
||||
make one up here. It will be used in several places where the long name
|
||||
isn't appropriate (such us in the subject line of email).</P>
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<P ALIGN=CENTER><B>Course Start Date</B></P>
|
||||
|
||||
<P>This is where you specify the starting time of the
|
||||
course (in your own timezone).
|
||||
|
||||
<P>If you are using a 'weekly' course format, this will
|
||||
affect the display of the weeks. The first week will
|
||||
start on the date you set here.
|
||||
|
||||
<P>This setting will not affect courses using the
|
||||
'social' or 'topics' formats.
|
||||
|
||||
<P>However, one place this setting will be affect is
|
||||
the display of logs, which use this date as the earliest
|
||||
possible date you can display.
|
||||
|
||||
<P>In general, if your course does have a real starting date
|
||||
then it makes sense to set this date to that, no matter
|
||||
what course formats you are using.
|
||||
@@ -0,0 +1,23 @@
|
||||
<P ALIGN=CENTER><B>Course Enrolment Key</B></P>
|
||||
|
||||
<P>A course enrolment key is what keeps unwanted people
|
||||
out of your course.
|
||||
|
||||
<P>If you leave this blank, then anyone who has created
|
||||
a Moodle username on this site will be able to enrol
|
||||
in your course simply by going in to it.
|
||||
|
||||
<P>If you put something here, then students who are trying
|
||||
to get in for the FIRST TIME ONLY will be asked to supply
|
||||
this word or phrase.
|
||||
|
||||
<P>The idea is that you will supply the key to authorised
|
||||
people using another means like private email, snail mail,
|
||||
on the phone or even verbally in a face to face class.
|
||||
|
||||
<P>If this password "gets out" and you have unwanted people
|
||||
enrolling, you can unenrol them (see their user profile page)
|
||||
and change this key. Any legitimate students who have already
|
||||
enrolled will not be affected, but the unwanted people won't be
|
||||
able to get back in.
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<P ALIGN=CENTER><B>Allowing new posts</B></P>
|
||||
|
||||
<P>This option allows you to restrict students from posting
|
||||
new content in this forum.
|
||||
|
||||
<P>For most forums you will want to leave students unrestricted
|
||||
and choose the first option to allow them to start new discussion
|
||||
topics (threads), and also to post replies within those threads.
|
||||
|
||||
<P>Sometimes, however, you will want to disable this ability. For
|
||||
example, this is useful for the News forum when you only want
|
||||
teachers to post new items that appear on the course main page.
|
||||
In this case you might choose the third option "No discussions, no replies".
|
||||
|
||||
<P>Sometimes you might want to only allow teachers to start new
|
||||
discussions, but still allow students to reply within those
|
||||
threads (for example within the news forum on the site home page).
|
||||
In this case you would choose the second option, "No discussions, but
|
||||
replies are allowed".
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<P ALIGN=CENTER><B>Attachments for posts</B></P>
|
||||
|
||||
<P>You can optionally attach ONE file from your own computer
|
||||
to any post in the forums. This file is uploaded to the
|
||||
server and stored with your post.
|
||||
|
||||
<P>This is useful when you want to share a picture, for example,
|
||||
or a Word document.
|
||||
|
||||
<P>This file can be of any type, however it is highly recommended
|
||||
that the file is named using standard 3-letter internet
|
||||
suffixes such as .doc for a Word document, .jpg or .png
|
||||
for an image, and so on. This will make it easier for others
|
||||
to download and view your attachment in their browsers.
|
||||
|
||||
<P>If you re-edit a posting and attach a new file, then any
|
||||
previous attached files for that post will be replaced.
|
||||
|
||||
<P>If you re-edit a posting with an attachment and leave
|
||||
this space blank, then the original attachment will be
|
||||
retained.
|
||||
@@ -0,0 +1,16 @@
|
||||
<P ALIGN=CENTER><B>Forum Types</B></P>
|
||||
|
||||
<P>There are several different types of forum to choose from:
|
||||
|
||||
<P><B>A single simple discussion</B> - is just a single topic, all on one page.
|
||||
Useful for short, focussed discussions.
|
||||
|
||||
<P><B>Standard forum for general use</B> - is an open forum where any one can
|
||||
start a new topic at any time. This is the best general-purpose forum.
|
||||
|
||||
<P><B>Each person posts one discussion</B> - Each person can post exactly one
|
||||
new discussion topic (everyone can reply to them though). This is useful when
|
||||
you want each student to start a discussion about, say, their reflections on
|
||||
the week's topic, and everyone else responds to these.
|
||||
|
||||
<P>(More development to come in future versions of Moodle)
|
||||
@@ -0,0 +1,70 @@
|
||||
<P ALIGN=CENTER><B>Forum Ratings</B></P>
|
||||
|
||||
|
||||
|
||||
<P>Individual posts can be rated using a scale based on the theory of
|
||||
|
||||
<strong>separate and connected knowing</strong>.
|
||||
|
||||
|
||||
|
||||
<p>This theory may help you to look at human interactions
|
||||
|
||||
in a new way. It describes two different ways that we can evaluate and learn
|
||||
|
||||
about the things we see and hear.
|
||||
|
||||
|
||||
|
||||
<p>Although each of us may use these two methods in different amounts at different
|
||||
|
||||
times, it may be useful to imagine two people as examples, one who is a mostly
|
||||
|
||||
separate knower (Jim) and the other a mostly connected knower (Mary).</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>Jim likes to remain as 'objective' as possible without including his feelings
|
||||
|
||||
and emotions. When in a discussion with other people who may have different
|
||||
|
||||
ideas, he likes to defend his own ideas, using logic to find holes in his
|
||||
|
||||
opponent's ideas. He is critical of new ideas unless they are proven facts
|
||||
|
||||
from reputable sources such as textbooks, respected teachers or his own direct
|
||||
|
||||
experience. Jim is a very <strong>separate knower</strong>.<br><br>
|
||||
|
||||
</li>
|
||||
|
||||
<li>Mary is more sensitive to other people. She is skilled at empathy and tends
|
||||
|
||||
to listen and ask questions until she feels she can connect and "understand
|
||||
|
||||
things from their point of view". She learns by trying to share the experiences
|
||||
|
||||
that led to the knowledge she finds in other people. When talking to others,
|
||||
|
||||
she avoids confrontation and will often try to help the other person if she
|
||||
|
||||
can see a way to do so, using logical suggestions. Mary is a very <strong>connected
|
||||
|
||||
knower</strong>.</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<p>Did you notice in these examples that the separate knower is male and the connected
|
||||
|
||||
knower is female? Some studies have shown that statistically this tends to be
|
||||
|
||||
the case, however individual people can be anywhere in the spectrum between
|
||||
|
||||
these two extremes. </p>
|
||||
|
||||
<p>For a collaborative and effective group of learners it may be best if everyone
|
||||
|
||||
were able to use BOTH ways of knowing.</p>
|
||||
|
||||
<p>In a particular situation like an online forum, a single post by a person may
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<P ALIGN=CENTER><B>Forum Subscription</B></P>
|
||||
|
||||
<P>When a person is subscribed to a forum it means that
|
||||
they will be sent email copies of every post in that forum
|
||||
(posts are sent about 30 minutes after the post was first
|
||||
written).
|
||||
|
||||
<P>People can usually choose whether or not they want to be
|
||||
subscribed to each forum.
|
||||
|
||||
<P>However, if a teacher forces subscription on a particular forum
|
||||
then this choice is taken away and everyone in the class will get
|
||||
email copies.
|
||||
|
||||
<P>This is especially useful in the News forum and in forums
|
||||
towards the beginning of the course (before everyone has
|
||||
worked out that they can subscribe to these emails themselves).
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<P ALIGN=CENTER><B>Guest Access</B></P>
|
||||
|
||||
|
||||
|
||||
<P>You have the choice of allowing "guests" into your course.
|
||||
|
||||
|
||||
|
||||
<P>People can log in as guests using the "Login as a guest" button
|
||||
|
||||
on the login screen.
|
||||
|
||||
|
||||
|
||||
<P>Guests ALWAYS have "read-only" access - meaning they can't leave
|
||||
|
||||
any posts or otherwise mess up the course for real students.
|
||||
|
||||
|
||||
|
||||
<P>This can be handy when you want to let a colleague in to
|
||||
@@ -0,0 +1,13 @@
|
||||
<P ALIGN=CENTER><B>Help on writing html</B></P>
|
||||
|
||||
<P>When writing HTML in Moodle, you are free to use any HTML tags you like
|
||||
to produce the effect you want.
|
||||
|
||||
<P>Your code will normally be printed on the page within a table cell,
|
||||
so:
|
||||
|
||||
<UL>
|
||||
<LI>there is no need to use any <HEAD> or <BODY> tags
|
||||
<LI>be careful about unmatched </TABLE> tags that may mess up the display.
|
||||
</UL>
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
<P ALIGN=CENTER><B>Language Editing</B></P>
|
||||
|
||||
<P>To edit languages on this page the files need to be writable
|
||||
by the web server process.
|
||||
|
||||
<P>Within some of the strings you will notice <B>$a</B> and <B>$a->something</B>.
|
||||
|
||||
<P>These represent variables that will be replaced by names or other words from
|
||||
within Moodle.
|
||||
|
||||
<P>When there is only one variable, the $a form is used. When there are two or
|
||||
more variables, then each one has a name.
|
||||
@@ -0,0 +1,69 @@
|
||||
<P ALIGN=CENTER><B>Activity Modules</B></P>
|
||||
|
||||
<P>Moodle contains a wide range of activity modules that can be used to
|
||||
build up any type of course.</P>
|
||||
|
||||
<P><IMG VALIGN=absmiddle SRC="<?=$CFG->wwwroot?>/mod/forum/icon.gif"> <B>Forums</B></P>
|
||||
<UL>
|
||||
<P>This activity can be the most important - it is here that most discussion takes place.
|
||||
Forums can be structured in different ways, and can include peer rating of each posting.
|
||||
The postings can be viewed in a variety for formats, and can include attachments.
|
||||
By subscribing to a forum, participants will receive copies of each new posting
|
||||
in their email. A teacher can impose subscription on everyone if they want to.
|
||||
</UL>
|
||||
|
||||
<P><IMG VALIGN=absmiddle SRC="<?=$CFG->wwwroot?>/mod/journal/icon.gif"> <B>Journals</B></P>
|
||||
<UL>
|
||||
<P>This module is a very important reflective activity. The teacher
|
||||
asks the student to reflect on a particular topic, and the student can
|
||||
edit and refine their answer over time. This answer is private and
|
||||
can only be seen by the teacher, who can offer feedback and a grade
|
||||
on each journal entry. It's usually a good idea to have about one
|
||||
Journal activity per week.</P>
|
||||
</UL>
|
||||
|
||||
<P><IMG VALIGN=absmiddle SRC="<?=$CFG->wwwroot?>/mod/resource/icon.gif"> <B>Resources</B></P>
|
||||
<UL>
|
||||
<P>Resources are content: information the teacher wants to bring into the
|
||||
course. These can be prepared files uploaded to the course
|
||||
server; pages edited directly in Moodle; or external web pages
|
||||
made to appear part of this course.</P>
|
||||
</UL>
|
||||
|
||||
<P><IMG VALIGN=absmiddle SRC="<?=$CFG->wwwroot?>/mod/assignment/icon.gif"> <B>Assignments</B></P>
|
||||
<UL>
|
||||
<P>Assignments allow the teacher to specify a task that requires students
|
||||
to prepare digital content (any format) and submit it by uploading it
|
||||
to the server. Typical assignments include essays, projects, reports
|
||||
and so on. This module includes grading facilities.</P>
|
||||
</UL>
|
||||
|
||||
<P><IMG VALIGN=absmiddle SRC="<?=$CFG->wwwroot?>/mod/quiz/icon.gif"> <B>Quizzes</B></P>
|
||||
<UL>
|
||||
<P>This module allows the teacher to design and set quiz tests, consisting of
|
||||
multiple choice, true-false, and short answer questions. These
|
||||
questions are kept in a categorised database, and can be re-used
|
||||
within courses and even between courses. Quizzes can allow
|
||||
multiple attempts. Each attempt is automatically marked, and the
|
||||
teacher can choose whether to give feedback or to show correct answers.
|
||||
This module includes grading facilities.</P>
|
||||
</UL>
|
||||
|
||||
<P><IMG VALIGN=absmiddle SRC="<?=$CFG->wwwroot?>/mod/choice/icon.gif"> <B>Choices</B></P>
|
||||
<UL>
|
||||
<P>A choice activity is very simple - the teacher asks a question and specifies a
|
||||
choice of multiple responses. It can be useful as a quick poll to
|
||||
stimulate thinking about a topic; to allow the class to vote on
|
||||
a direction for the course; or to gather research consent.
|
||||
</UL>
|
||||
|
||||
<P><IMG VALIGN=absmiddle SRC="<?=$CFG->wwwroot?>/mod/survey/icon.gif"> <B>Surveys</B></P>
|
||||
<UL>
|
||||
<P>The Survey module provides a number of verified survey instruments that
|
||||
have been found useful in assessing and stimulating learning in
|
||||
online environments. Teachers can use these to gather data from their
|
||||
students that will help them learn about their class and reflect
|
||||
on their own teaching.</P>
|
||||
</UL>
|
||||
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<P ALIGN=CENTER><B>Uploading a picture</B></P>
|
||||
|
||||
<P>You can upload a picture from your computer to this server, and this picture will be used in various places to represent you.
|
||||
<P>For this reason, the best images to use are a close-up of your face, but you can use any image you like.
|
||||
<P>The picture must be in JPG or PNG format (ie the names will usually end in .jpg or .png).
|
||||
<P>You can get a picture file using one of four methods:
|
||||
|
||||
<OL>
|
||||
<LI>Using a digital camera, your photos will most likely already be on your computer in the right format.
|
||||
<LI>You can use a scanner to scan a printed photograph. Make sure you save it as JPG or PNG format.
|
||||
<LI>If you're artistic, you might draw a picture using a paint program.
|
||||
<LI>Lastly, you can "steal" images from the web. <A TARGET=google HREF="http://images.google.com/">http://images.google.com</A> is a superb place to search for images. Once you find one, you can "right-click" on them with the mouse and choose "Save this image..." from the menu (different computers may vary slightly).
|
||||
</OL>
|
||||
|
||||
<P>To upload the image, click the "Browse" button on this editing page, and select the image from your hard disk.
|
||||
<P>NOTE: Make sure that the file is not larger than the maximum size listed, or it will not be uploaded.
|
||||
<P>Then click "Update my Profile" at the bottom - the image file will be cropped to a square and resized down to 100x100 pixels.
|
||||
<P>When you are taken back to your profile page, the image might not appear to have changed. If this is so, just use the "Reload" button in your browser.
|
||||
@@ -0,0 +1,94 @@
|
||||
<h2>Asking questions</h2>
|
||||
|
||||
<p>Socratic questions are open-ended, probing questions designed to promote critical
|
||||
|
||||
evaluation of ideas, as well as encourage the creation of new ideas. Below are
|
||||
|
||||
some examples of such questions:</p>
|
||||
|
||||
<h3>Questions of Clarification</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>What do you mean by ____?</li>
|
||||
|
||||
<li>What is your main point?</li>
|
||||
|
||||
<li>How does _____ relate to _____?</li>
|
||||
|
||||
<li>Could you put that another way?</li>
|
||||
|
||||
<li>Is your basic point _____ or _____?</li>
|
||||
|
||||
<li>What do you think is the main issue here?</li>
|
||||
|
||||
<li>Let me see if I understand you; do you mean _____ or _____?</li>
|
||||
|
||||
<li>How does this relate to our problem/discussion/issue?</li>
|
||||
|
||||
<li>What do you, Mike, mean by this remark? What do you take Mike to mean by
|
||||
|
||||
his remark?</li>
|
||||
|
||||
<li>Jane, can you summarize in your own words what Richard said? . . . Richard,
|
||||
|
||||
is this what you meant?</li>
|
||||
|
||||
<li>Could you give me an example?</li>
|
||||
|
||||
<li>Would this be an example, . . .?</li>
|
||||
|
||||
<li>Could you explain this further?</li>
|
||||
|
||||
<li>Would you say more about that?</li>
|
||||
|
||||
<li>Why do you say that?</li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>Questions that probe assumptions</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>What are you assuming?</li>
|
||||
|
||||
<li>What is Jenny assuming?</li>
|
||||
|
||||
<li>What could we assume instead?</li>
|
||||
|
||||
<li>You seem to be assuming _____. Do I understand you correctly?</li>
|
||||
|
||||
<li>All of your reasoning depends on the idea that _____. Why have you based
|
||||
|
||||
your reasoning on _____ instead of _____?</li>
|
||||
|
||||
<li>You seem to be assuming _____. How do you justify taking that for granted?</li>
|
||||
|
||||
<li>Is that always the case? Why do you think the assumption holds here?</li>
|
||||
|
||||
<li>Why would someone make that assumption? </li>
|
||||
|
||||
</ul>
|
||||
|
||||
<h3>Questions that probe reasons and evidence</h3>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>What would be an example?</li>
|
||||
|
||||
<li>How do you know?</li>
|
||||
|
||||
<li>Why do you think that is true?</li>
|
||||
|
||||
<li>Do you have any evidence for that?</li>
|
||||
|
||||
<li>What difference does that make?</li>
|
||||
|
||||
<li>What are your reasons for saying that?</li>
|
||||
|
||||
<li>What other information do you need?</li>
|
||||
|
||||
<li>Could you explain your reasons to us?</li>
|
||||
|
||||
<li>Are these reasons adequate?</li>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<P ALIGN=CENTER><B>Quiz attempts</B></P>
|
||||
|
||||
<P>Students may be allowed to have multiple attempts at a quiz.
|
||||
|
||||
<P>This can help make the process of taking the quiz more of
|
||||
an educational activity rather than simply an assessment.
|
||||
@@ -0,0 +1,17 @@
|
||||
<P ALIGN=CENTER><B>Question categories</B></P>
|
||||
|
||||
<P>Rather than keeping all your questions in one big list,
|
||||
you can create categories to keep them in.
|
||||
|
||||
<P>Each category consists of a name and a short description.
|
||||
|
||||
<P>Each category can also be "published", which means
|
||||
that the category (and all questions in it) will be
|
||||
available to all courses on this server, so that
|
||||
other courses can use your questions in their quizzes.
|
||||
|
||||
<P>Categories can also be created or deleted at will.
|
||||
However, if you try to delete a category containing
|
||||
questions, then you will be asked to specify another
|
||||
category to move them to.
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<P ALIGN=CENTER><B>Show correct answers</B></P>
|
||||
|
||||
<P>If you enable correct answers, then the
|
||||
feedback will show also show the correct answer
|
||||
for each question (highlighted in a bright colour).
|
||||
</P>
|
||||
@@ -0,0 +1,5 @@
|
||||
<P ALIGN=CENTER><B>Feedback</B></P>
|
||||
|
||||
<P>If you enable quiz feedback, then students will receive
|
||||
question feedback on every answer (right or wrong).</P>
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
<P ALIGN=CENTER><B>Grading method</B></P>
|
||||
|
||||
<P>When multiple attempts are allowed, there are different ways
|
||||
you can use the grades to calculate the student's final
|
||||
grade for the quiz.
|
||||
|
||||
<P><B>Highest grade</B><P>
|
||||
<UL>
|
||||
<P>The final grade is the highest (best) grade in any attempt.
|
||||
</UL>
|
||||
|
||||
<P><B>Average grade</B><P>
|
||||
<UL>
|
||||
<P>The final grade is the average (simple mean) grade of all attempts.
|
||||
</UL>
|
||||
|
||||
<P><B>First grade</B><P>
|
||||
<UL>
|
||||
<P>The final grade is the grade gained on the first attempt (other attempts are ignored).
|
||||
</UL>
|
||||
|
||||
<P><B>Last grade</B><P>
|
||||
<UL>
|
||||
<P>The final grade is the grade gained on the most recent attempt only.
|
||||
</UL>
|
||||
@@ -0,0 +1,11 @@
|
||||
<P ALIGN=CENTER><B>Maximum grade</B></P>
|
||||
|
||||
<P>The maximum grade you set for a quiz is what all grades
|
||||
are scaled to.
|
||||
|
||||
<P>For example, you might set the max grade to 20, because the
|
||||
quiz is worth 20% of the whole course.
|
||||
|
||||
<P>Even though you might have 10 questions in your quiz
|
||||
worth a total of 50 marks, all grades out of 50 will be
|
||||
"scaled down" to the quiz max grade of 20.
|
||||
@@ -0,0 +1,19 @@
|
||||
<P ALIGN=CENTER><B>Multiple Choice questions</B></P>
|
||||
|
||||
<P>In response to a question (that may include a image) the respondent
|
||||
chooses from multiple answers. There are two types of multiple choice
|
||||
questions - single answer and multiple answer.
|
||||
|
||||
<P>Single-answer questions allow one and only one answer to be chosen.
|
||||
Generally all the grades for such a question should be positive.
|
||||
|
||||
<P>Multiple-answer questions allow one or more answers to be chosen - each answer
|
||||
may carry a positive or negative grade, so that choosing ALL the options
|
||||
will not necessarily result in good grade. If the total grade is negative
|
||||
then the total grade for this question will be zero. Careful, it is
|
||||
possible to create questions that have scores greater than 100%.
|
||||
|
||||
<P>Finally, each answer (right or wrong) should include feedback - this feedback
|
||||
will be shown to the respondent next to each of their answers (if the quiz
|
||||
itself is configured to show feedback).
|
||||
</P>
|
||||
@@ -0,0 +1,37 @@
|
||||
<P ALIGN=CENTER><B>Creating a new question</B></P>
|
||||
|
||||
<P>You can add a variety of different types of questions to a category:</P>
|
||||
|
||||
<P><B>Multiple Choice</B></P>
|
||||
<UL>
|
||||
<P>In response to a question (that may include a image) the respondent
|
||||
chooses from multiple answers. There are two types of multiple choice
|
||||
questions - single answer and multiple answer.
|
||||
<P>More info: <? helpbutton("multichoice", "", "quiz") ?></P>
|
||||
</UL>
|
||||
|
||||
<P><B>Short Answer</B></P>
|
||||
<UL>
|
||||
<P>In response to a question (that may include a image), the respondent
|
||||
types a word or phrase. There may several possible correct answers,
|
||||
with different grades. Answers may or may not be sensitive to case.
|
||||
</P>
|
||||
<P>More info: <? helpbutton("shortanswer", "", "quiz") ?></P>
|
||||
</UL>
|
||||
|
||||
<P><B>True/False</B></P>
|
||||
<UL>
|
||||
<P>In response to a question (that may include a image), the respondent
|
||||
selects from two options: True or False.
|
||||
</P>
|
||||
<P>More info: <? helpbutton("truefalse", "", "quiz") ?></P>
|
||||
</UL>
|
||||
|
||||
<P><B>Random</B></P>
|
||||
<UL>
|
||||
<P>(Not yet implemented) Allows you to select a number of other questions from
|
||||
which one gets randomly selected each time a student attempts the quiz.
|
||||
</P>
|
||||
<P>More info: <? helpbutton("random", "", "quiz") ?></P>
|
||||
</UL>
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
<P ALIGN=CENTER><B>Random question</B></P>
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
<P ALIGN=CENTER><B>Short Answer questions</B></P>
|
||||
|
||||
<P>In response to a question (that may include a image) the respondent
|
||||
types a word or short phrase.
|
||||
|
||||
<P>There may be several possible correct answers, each with a different
|
||||
grade. If the "Case sensitive" option is selected, then you can
|
||||
have different scores for "Word" or "word".
|
||||
|
||||
<P>Answers are compared exactly, so be careful with your spelling!
|
||||
@@ -0,0 +1,5 @@
|
||||
<P ALIGN=CENTER><B>Opening and closing the quiz</B></P>
|
||||
|
||||
<P>You can specify times when the quiz is accessible for people to make attempts.
|
||||
|
||||
<P>Before the opening time, and after the closing time, the quiz will be unavailable.
|
||||
@@ -0,0 +1,11 @@
|
||||
<P ALIGN=CENTER><B>True/False questions</B></P>
|
||||
|
||||
|
||||
<P>In response to a question (that may include a image) the respondent
|
||||
chooses from True or False.
|
||||
|
||||
<P>If feedback is enabled, then the appropriate feedback message is
|
||||
shown to the respondent after answering the quiz. For example,
|
||||
if the correct answer is "False", but they answer "True" (getting
|
||||
it wrong) then the "True" feedback is shown.
|
||||
</P>
|
||||
@@ -0,0 +1,23 @@
|
||||
<P ALIGN=CENTER><B>Resource Type</B></P>
|
||||
|
||||
<P>Resources are any content you can dream up. These are the
|
||||
different types, which mostly specify how the content is
|
||||
to be accessed:
|
||||
|
||||
<P><B>Plain text</B> - the easiest type. You can just type (edit) the page into a form
|
||||
on the following page. Some things you type will be automatically formatted, just like
|
||||
forum postings. See help on typing text: <? helpbutton("text", get_string("helptext")) ?>
|
||||
|
||||
<P><B>HTML text</B> - for more advanced users. No automatic formatting is performed,
|
||||
you need to do it all manually using HTML codes.
|
||||
|
||||
<P><B>Reference</B> - a scholarly reference to a journal or book.
|
||||
|
||||
<P><B>Uploaded file</B> - displays any file you have uploaded into the course. See the 'Files' section.
|
||||
|
||||
<P><B>Web link</B> - A URL to somewhere on the web. When anyone clicks on this resource
|
||||
activity they will be taken out of the course (the page you've specified will fill the browser window).
|
||||
|
||||
<P><B>Web page</B> - A URL to somewhere on the web. Like the previous type, this
|
||||
will display a web page. Unlike the previous type, though, the page will displayed
|
||||
within a frame, as if it is integrated within the course.
|
||||
@@ -0,0 +1,8 @@
|
||||
<P ALIGN=CENTER><B>Reading Summary</B></P>
|
||||
|
||||
<P>The summary is a very short description of the resource.
|
||||
|
||||
<P>Do not be tempted to write too much here, or to include the
|
||||
resource itself!
|
||||
|
||||
<P>You'll get a chance to specify the content on the next page.
|
||||
@@ -0,0 +1,149 @@
|
||||
<P ALIGN=CENTER><B>About the Rich Text HTML editor</B></P>
|
||||
|
||||
<P>The Rich Text editor is currently only available when using Microsoft Internet Explorer 5.5 or later.
|
||||
|
||||
<P>It provides a word-processor interface embedded in your web page to allow you to edit text in an intuitive way, and produces normal HTML code.
|
||||
|
||||
<P>In addition to formatting text, this editor provides a number of extra features you may find useful.
|
||||
|
||||
<P><B>Paste text in from other Applications</B></P>
|
||||
<UL>
|
||||
<P>You can cut and paste rich text from other Windows applications such as Microsoft Word
|
||||
straight into this editor, and your formatting will be preserved. Just use the normal cut and paste
|
||||
menus in your web browser (or Control-C and Control-V).
|
||||
</UL>
|
||||
|
||||
<P><B>Inserting images <img border="0" hspace="10" src="lib/rte/images/icon_ins_image.gif"></B></P>
|
||||
<UL>
|
||||
<P>If you have images that are already published on a web site and accessible via a URL, you can include these images in your texts using the "Insert Image" button.
|
||||
</UL>
|
||||
|
||||
<P><B>Inserting Tables <img border="0" hspace="10" src="lib/rte/images/icon_ins_table.gif"></B></P>
|
||||
<UL>
|
||||
<P>To add layout to your texts, you can use the "Insert Tables" button in the toolbar.
|
||||
</UL>
|
||||
|
||||
<P><B>Inserting Links <img border="0" hspace="10" src="lib/rte/images/icon_ins_link.gif"></B></P>
|
||||
<UL>
|
||||
<P>To make a new link, first type the text that you want to be a link. Then select it and click the link button in the toolbar. Type the URL you want to link to and it's done!
|
||||
</UL>
|
||||
|
||||
|
||||
<P><B>Inserting smilies (emoticons) <img border="0" hspace="10" src="pix/s/smiley.gif" width="15" height="15"></B></P>
|
||||
<UL>
|
||||
<P>To embed these small icons in your text, click on the smiley icon in the toolbar. A dialog will pop up that allows you to select from the following smiley icons. (Alternatively, you can just type the corresponding code straight into your text and it will be converted later when your text is displayed).
|
||||
|
||||
<table border="1">
|
||||
<tr valign="top">
|
||||
<td>
|
||||
<table border="0" align="center" cellpadding="10">
|
||||
<tr>
|
||||
<td><img border="0" hspace="10" src="pix/s/smiley.gif" width="15" height="15"></td>
|
||||
<td>smile</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:-)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/biggrin.gif" width="15" height="15"></td>
|
||||
<td>big grin</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:-D</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/wink.gif" width="15" height="15"></td>
|
||||
<td>wink</td>
|
||||
<td NOWRAP><FONT FACE=Courier>;-)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/mixed.gif" width="15" height="15"></td>
|
||||
<td>mixed</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:-/</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/thoughtful.gif" width="15" height="15"></td>
|
||||
<td>thoughtful</td>
|
||||
<td NOWRAP><FONT FACE=Courier>V-.</FONT></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/tongueout.gif" width="15" height="15"></td>
|
||||
<td>tongue out</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:-P</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/cool.gif" width="15" height="15"></td>
|
||||
<td>cool</td>
|
||||
<td NOWRAP><FONT FACE=Courier>B-)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/approve.gif" width="15" height="15"></td>
|
||||
<td>approve</td>
|
||||
<td NOWRAP><FONT FACE=Courier>^-)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/wideeyes.gif" width="15" height="15"></td>
|
||||
<td>wide eyes</td>
|
||||
<td NOWRAP><FONT FACE=Courier>8-)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/surprise.gif" width="15" height="15"></td>
|
||||
<td>surprise</td>
|
||||
<td NOWRAP><FONT FACE=Courier>8-o</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
<td>
|
||||
<table border="0" align="center" cellpadding="10">
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/sad.gif" width="15" height="15"></td>
|
||||
<td>sad</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:-(</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/shy.gif" width="15" height="15"></td>
|
||||
<td>shy</td>
|
||||
<td NOWRAP><FONT FACE=Courier>8-.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/blush.gif" width="15" height="15"></td>
|
||||
<td>blush</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:-I</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/kiss.gif" width="15" height="15"></td>
|
||||
<td>kisses</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:-X</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/clown.gif" width="15" height="15"></td>
|
||||
<td>clown</td>
|
||||
<td NOWRAP><FONT FACE=Courier>:o)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/blackeye.gif" width="15" height="15"></td>
|
||||
<td>black eye</td>
|
||||
<td NOWRAP><FONT FACE=Courier>P-|</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/angry.gif" width="15" height="15"></td>
|
||||
<td>angry</td>
|
||||
<td NOWRAP><FONT FACE=Courier>8-[</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/dead.gif" width="15" height="15"></td>
|
||||
<td>dead</td>
|
||||
<td NOWRAP><FONT FACE=Courier>xx-P</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/sleepy.gif" width="15" height="15"></td>
|
||||
<td>sleepy</td>
|
||||
<td NOWRAP><FONT FACE=Courier>|-.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><img alt border="0" hspace="10" src="pix/s/evil.gif" width="15" height="15"></td>
|
||||
<td>evil</td>
|
||||
<td NOWRAP><FONT FACE=Courier>}-]</td>
|
||||
</tr>
|
||||
</table>
|
||||
</table>
|
||||
|
||||
</UL>
|
||||
|
||||
|
||||
@@ -0,0 +1,99 @@
|
||||
<P ALIGN=CENTER><B>Available surveys</B></P>
|
||||
|
||||
<P>Currently, Moodle only offers specific types of surveys (future versions
|
||||
will enable you to create your own).</P>
|
||||
|
||||
<P>The available surveys have been chosen as being particularly useful for
|
||||
evaluating online learning environments that use a constructivist pedagogy.
|
||||
They are useful to identify certain trends that may be happening among
|
||||
your participants.
|
||||
|
||||
(To see a paper where these are used in a detailed analysis, see:
|
||||
<A TARGET=paper HREF="http://dougiamas.com/writing/herdsa2002">http://dougiamas.com/writing/herdsa2002</A>)</P>
|
||||
|
||||
<HR>
|
||||
<P><B>COLLES - Constructivist On-Line Learning Environment Survey</B></P>
|
||||
<UL>
|
||||
<p>The COLLES comprises an economical 24 statements grouped into six scales,
|
||||
each of which helps us address a key question about the quality of the on-line
|
||||
learning environment: </p>
|
||||
|
||||
<table BORDER="0" CELLSPACING="10" CELLPADDING="10">
|
||||
<tr>
|
||||
<td valign=top>Relevance</td>
|
||||
<td>How relevant is on-line learning to students' professional practices?
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>Reflection </td>
|
||||
|
||||
<td>Does on-line learning stimulate students' critical reflective thinking?
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>Interactivity </td>
|
||||
<td>To what extent do students engage on-line in rich educative dialogue?
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>Tutor Support</td>
|
||||
|
||||
<td>How well do tutors enable students to participate in on-line learning?
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>Peer Support </td>
|
||||
<td>Is sensitive and encouraging support provided on-line by fellow students?
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign=top>Interpretation </td>
|
||||
|
||||
<td>Do students and tutors make good sense of each other's on-line communications?</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p>Underpinning the dynamic view of learning is a new theory of knowing: social
|
||||
constructivism, which portrays the learner as an active conceptualiser within
|
||||
a socially interactive learning environment. Social constructivism is an epistemology,
|
||||
or way of knowing, in which learners collaborate reflectively to co-construct
|
||||
new understandings, especially in the context of mutual inquiry grounded in
|
||||
their personal experience. </p>
|
||||
|
||||
<p>Central to this collaboration is the development of students' communicative
|
||||
competence, that is, the ability to engage in open and critical discourse
|
||||
with both the teacher and peers. This discourse is characterised by an empathic
|
||||
orientation to constructing reciprocal understanding, and a critical attitude
|
||||
towards examining underlying assumptions. </p>
|
||||
|
||||
<p>The COLLES has been designed to enable you
|
||||
to monitor the extent to which you are able to exploit the interactive capacity
|
||||
of the World Wide Web for engaging students in dynamic learning practices. </p>
|
||||
|
||||
<P>
|
||||
(This information has been adapted from the COLLES page. You can find out more about
|
||||
COLLES and the authors of it at:
|
||||
<A TARGET=paper HREF="http://surveylearning.com/colles/">http://surveylearning.com/colles/</A>)</P>
|
||||
</UL>
|
||||
|
||||
|
||||
<HR>
|
||||
<P><B>ATTLS - Attitudes to Thinking and Learning Survey</B></P>
|
||||
<UL>
|
||||
|
||||
<P>The theory of 'ways of knowing', originally from the field of gender research (Belenky et al., 1986) provides us with a survey tool to examine the quality of discourse within a collaborative environment.
|
||||
|
||||
<P>The Attitudes Towards Thinking and Learning Survey (ATTLS) is an instrument developed by Galotti et al. (1999) to measure the extent to which a person is a 'connected knower' (CK) or a 'separate knower' (SK).
|
||||
|
||||
<P>People with higher CK scores tend to find learning more enjoyable, and are often more cooperative, congenial and more willing to build on the ideas of others, while those with higher SK scores tend to take a more critical and argumentative stance to learning.
|
||||
|
||||
<P>Studies have shown that these two learning styles are independent of each other (Galotti et al., 1999; Galotti et al., 2001). Additionally, they are only a reflection of learning attitudes, not learning capacities or intellectual power.
|
||||
|
||||
<P><I>Belenky, M. F., Clinchy, B. M., Goldberger, N. R., & Tarule, J. M. (1986). Women's Ways of Knowing: The Development of Self, Voice, and Mind. New York: Basic Books, Inc. </I></P>
|
||||
|
||||
<P><I>Galotti, K. M., Clinchy, B. M., Ainsworth, K., Lavin, B., & Mansfield, A. F. (1999). A New Way of Assessing Ways of Knowing: The Attitudes Towards Thinking and Learning Survey (ATTLS). Sex Roles, 40(9/10), 745-766.</I></P>
|
||||
|
||||
<P><I>Galotti, K. M., Reimer, R. L., & Drebus, D. W. (2001). Ways of knowing as learning styles: Learning MAGIC with a partner. Sex Roles, 44(7/8), 419-436.</I></P>
|
||||
|
||||
|
||||
</UL>
|
||||
@@ -0,0 +1,22 @@
|
||||
<P ALIGN=CENTER><B>Teachers</B></P>
|
||||
|
||||
<P>This page shows the list of people who are assigned to be
|
||||
"teachers" in this course (by the system administrator).
|
||||
|
||||
<P>You can use this form to assign a role (title) to each person
|
||||
such as "Professor", "Tutor", "Assistant" and so on. These
|
||||
will appear on the site's course listing and also on the
|
||||
list of participants for your course. If you leave the
|
||||
role empty then the default word for teacher will be used
|
||||
(the one you set in the Course Settings page).
|
||||
|
||||
<P>You can also order this list (to put the main teacher at the
|
||||
top, for example). Simply select numbers from the menus
|
||||
in the "Order" column. After pressing "Save changes" you will
|
||||
see the new order.
|
||||
|
||||
<P><B>NOTE:</B> A special case occurs if you use select "Hide"
|
||||
for a teacher. In this case, the teacher will
|
||||
NOT BE SHOWN on the course listings or the list of
|
||||
participants. They will be "hidden" from students
|
||||
(unless they post messages to the forums etc)
|
||||
@@ -0,0 +1,43 @@
|
||||
<P ALIGN=CENTER><B>Help on writing text</B></P>
|
||||
|
||||
Writing text in Moodle works pretty much the way you would expect, but you also have the ability to include "smilies", "URL addresses" and some HTML tags in your text.
|
||||
|
||||
<P><B>Smilies (emoticons)</B></P>
|
||||
<UL>
|
||||
<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=5>
|
||||
<TR><TH>Name <TH>Picture <TH>You type</TR>
|
||||
<TR><TD>smile <TD ALIGN=CENTER><img ALT=smile SRC="<?=$CFG->wwwroot?>/pix/s/smiley.gif"><TD ALIGN=CENTER> :-) </TD></TR>
|
||||
<TR><TD>sad <TD ALIGN=CENTER><img ALT=sad SRC="<?=$CFG->wwwroot?>/pix/s/sad.gif"><TD ALIGN=CENTER> :-( </TD></TR>
|
||||
<TR><TD>grin <TD ALIGN=CENTER><img ALT=grin SRC="<?=$CFG->wwwroot?>/pix/s/biggrin.gif"><TD ALIGN=CENTER> :-D </TD></TR>
|
||||
<TR><TD>wink <TD ALIGN=CENTER><img ALT=wink SRC="<?=$CFG->wwwroot?>/pix/s/wink.gif"><TD ALIGN=CENTER> ;-) </TD></TR>
|
||||
<TR><TD>mixed <TD ALIGN=CENTER><img ALT=mixed SRC="<?=$CFG->wwwroot?>/pix/s/mixed.gif"><TD ALIGN=CENTER> :-/ </TD></TR>
|
||||
<TR><TD>wide-eyed <TD ALIGN=CENTER><img ALT=wide-eyed SRC="<?=$CFG->wwwroot?>/pix/s/wideeyes.gif"><TD ALIGN=CENTER> 8-) </TD></TR>
|
||||
<TR><TD>tongue-out <TD ALIGN=CENTER><img ALT=tongue-out SRC="<?=$CFG->wwwroot?>/pix/s/tongueout.gif"><TD ALIGN=CENTER> :-P </TD></TR>
|
||||
<TR><TD>surprise <TD ALIGN=CENTER><img ALT=surprised SRC="<?=$CFG->wwwroot?>/pix/s/surprise.gif"><TD ALIGN=CENTER> :-o </TD></TR>
|
||||
<TR><TD>cool <TD ALIGN=CENTER><img ALT=cool SRC="<?=$CFG->wwwroot?>/pix/s/cool.gif"><TD ALIGN=CENTER> B-) </TD></TR>
|
||||
</TABLE>
|
||||
</UL>
|
||||
|
||||
<P><B>URLs</B></P>
|
||||
<UL>
|
||||
<P>Any "word" starting with <B>www.</B> or <B>http://</B> will automatically be turned into a clickable link.
|
||||
<P>For example: <A HREF="http://www.yahoo.com">www.yahoo.com</A> or <A HREF="http://curtin.edu">http://curtin.edu</A>
|
||||
</UL>
|
||||
|
||||
<P><B>HTML tags</B></P>
|
||||
<UL>
|
||||
<P>You can use a limited subset of HTML tags to add emphasis to your texts.
|
||||
<TABLE BORDER=0 CELLPADDING=5 CELLSPACING=5>
|
||||
<TR><TH>HTML tags<TH>Produces</TR>
|
||||
<TR><TD><B> bold </B> <TD> <B>bold text</B> </TR>
|
||||
<TR><TD><I> italic </I> <TD> <I>italic text</I> </TR>
|
||||
<TR><TD><U> underline </U> <TD> <U>underlined text</U> </TR>
|
||||
<TR><TD><FONT SIZE=1> small </FONT> <TD> <FONT SIZE=1>small</FONT> </TR>
|
||||
<TR><TD><FONT SIZE=4> large </FONT> <TD> <FONT SIZE=4>large</FONT> </TR>
|
||||
<TR><TD><FONT COLOR=green> example </FONT> <TD> <FONT color=green>example</FONT> </TR>
|
||||
<TR><TD valign=top><UL><LI>one <LI>two </UL> <TD valign=top> <UL><LI>one<LI>two</UL> </TR>
|
||||
<TR><TD><HR><TD> <HR> </TR>
|
||||
</TABLE>
|
||||
</UL>
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
<P ALIGN=CENTER><B>Formatting text</B></P>
|
||||
|
||||
<P>When writing text in Moodle there are currently two formats you can choose
|
||||
to produce your text, depending on your expertise and the type of browser
|
||||
you are using.
|
||||
|
||||
<P><B>Usually you can just leave this setting alone and things should
|
||||
work as you expect</B>.
|
||||
|
||||
<P><B>1. Moodle auto-format</B></P>
|
||||
|
||||
<UL>
|
||||
<P>This format is best for when you are using normal web forms for entry
|
||||
(instead of the Richtext HTML editor). Just type text normally, as if you
|
||||
were sending an email.
|
||||
|
||||
<P>When you save your text, Moodle will do a number of things to automatically
|
||||
format your text for you.
|
||||
<P>For example, URLs such as
|
||||
<A HREF="http://yahoo.com/">http://yahoo.com</A> or even
|
||||
<A HREF="http://www.yahoo.com/">www.yahoo.com</A> will be turned into links.
|
||||
<P>Your line breaks will be retained, and blank lines will start new paragraphs.
|
||||
<P>Smiley characters such as :-) will automatically become their graphical equivalents.
|
||||
<P>You can even embed HTML code if you want to and it will be retained.
|
||||
<P ALIGN=RIGHT><? helpbutton("text", get_string("helptext")) ?> More info about Moodle auto-formatting.</P>
|
||||
</UL>
|
||||
|
||||
<P><B>2. HTML format</B></P>
|
||||
|
||||
<UL>
|
||||
<P>This format assumes the text is pure HTML. If you are using the
|
||||
HTML editor to edit text then this is the default format - all
|
||||
the commands in the toolbar are producing HTML for you.
|
||||
|
||||
<P>Even if you are not using the Richtext HTML editor, you can use HTML code
|
||||
in your text and it should come out exactly as you intended.
|
||||
|
||||
<P>Unlike the Moodle auto-format, no automatic formatting is performed.
|
||||
<P ALIGN=RIGHT><? helpbutton("html", get_string("helphtml")) ?> More info about HTML</P>
|
||||
<P ALIGN=RIGHT><? helpbutton("richtext", get_string("helprichtext")) ?> More info about the Richtext HTML editor</P>
|
||||
</UL>
|
||||
@@ -0,0 +1,27 @@
|
||||
<?PHP // $Id$
|
||||
// journal.php - created with Moodle 1.0.6 dev (2002100200)
|
||||
|
||||
|
||||
$string['alwaysopen'] = "Immer offen";
|
||||
$string['blankentry'] = "Leerer Eintrag";
|
||||
$string['daysavailable'] = "Tage verfügbar";
|
||||
$string['editingended'] = "Bearbeitungszeitraum ist abgelaufen";
|
||||
$string['editingends'] = "Bearbeitungszeitraum endet";
|
||||
$string['journalname'] = "Name des Journals";
|
||||
$string['journalquestion'] = "Journal-Frage";
|
||||
$string['journalrating1'] = "nicht zufriedenstellend";
|
||||
$string['journalrating2'] = "zufriedenstellend";
|
||||
$string['journalrating3'] = "hervorragend";
|
||||
$string['modulename'] = "Journal";
|
||||
$string['modulenameplural'] = "Journale";
|
||||
$string['newjournalentries'] = "Neie Journal-Einträge";
|
||||
$string['noentry'] = "Kein Eintrag";
|
||||
$string['noratinggiven'] = "Keine Beurteilung abgegeben";
|
||||
$string['notopenuntil'] = "Diese Journal wird geschlossen sein bis";
|
||||
$string['notstarted'] = "Sie haben dieses Journal noch nicht begonnen";
|
||||
$string['overallrating'] = "Allgemeine Beurteilung";
|
||||
$string['rate'] = "Beutreilung";
|
||||
$string['startoredit'] = "Journal-Eintrag beginnen oder bearbeiten";
|
||||
$string['viewallentries'] = "Zeige \$a Journal-Einträge";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,484 @@
|
||||
<?PHP // $Id$
|
||||
// moodle.php - created with Moodle 1.0.6 dev 3 (2002102101)
|
||||
|
||||
|
||||
$string['action'] = "Aktion";
|
||||
$string['activities'] = "Aktivitäten";
|
||||
$string['activity'] = "Aktivität";
|
||||
$string['activityreport'] = "Übersicht der Aktivitäten";
|
||||
$string['add'] = "Hinzufügen";
|
||||
$string['added'] = "Hinzugefügt \$a";
|
||||
$string['addinganew'] = "Füge ein \$a";
|
||||
$string['addinganewto'] = "Füge \$a->what ein zu \$a->to";
|
||||
$string['addnewcourse'] = "Neuen Kurs anlegen";
|
||||
$string['addnewuser'] = "Neuen Benutzer anlegen";
|
||||
$string['address'] = "Addresse";
|
||||
$string['addteacher'] = "Lehrer anlegen";
|
||||
$string['admin'] = "Verwalter";
|
||||
$string['administration'] = "Verwaltung";
|
||||
$string['again'] = "nochmal";
|
||||
$string['all'] = "Alle";
|
||||
$string['alldays'] = "Jeden Tag";
|
||||
$string['allfieldsrequired'] = "Alle Felder sind zwingend";
|
||||
$string['alllogs'] = "Alle Statistiken";
|
||||
$string['allow'] = "Zulassen";
|
||||
$string['allowguests'] = "Diesen Kurs dürfen Gäste besuchen";
|
||||
$string['allownot'] = "Nicht zulassem";
|
||||
$string['allparticipants'] = "Alle Teilnehmer";
|
||||
$string['alphanumerical'] = "Kann nur Buchstaben und Zahlen haben";
|
||||
$string['alreadyconfirmed'] = "Die Registrierung wurde bereits bestätigt";
|
||||
$string['answer'] = "Antwort";
|
||||
$string['assessment'] = "Beurteilung";
|
||||
$string['assignteachers'] = "Lehrer zuweisen";
|
||||
$string['availablecourses'] = "Verfügbare Kurse";
|
||||
$string['cancel'] = "Abbrechen";
|
||||
$string['categories'] = "Kurs-Kategorie";
|
||||
$string['category'] = "Kategorie";
|
||||
$string['categoryadded'] = "Die Kategorie '\$a' wurde angelegt";
|
||||
$string['categorydeleted'] = "Die Kategorie '\$a' wurde gelöscht";
|
||||
$string['changedpassword'] = "Passwort geändert";
|
||||
$string['changepassword'] = "Passwort ändern";
|
||||
$string['changessaved'] = "Änderungen gespeichert";
|
||||
$string['checklanguage'] = "Sprache prüfen";
|
||||
$string['choose'] = "Auswahl";
|
||||
$string['choosecourse'] = "Kurs auswählen";
|
||||
$string['chooselivelogs'] = "Oder momentane Aktivität beobachten";
|
||||
$string['chooselogs'] = "Wählen Sie die anzuzeigende Statistik aus";
|
||||
$string['choosetheme'] = "Thema auswählen";
|
||||
$string['chooseuser'] = "Nutzer auswählen";
|
||||
$string['city'] = "Stadt/Ort";
|
||||
$string['closewindow'] = "Dieses Fenster schließen";
|
||||
$string['comparelanguage'] = "Sprache vergleichen und bearbeiten";
|
||||
$string['complete'] = "Fertig";
|
||||
$string['configauth'] = "Wählen Sie das Authentisierung Modul, das Sie benutzen möchten. Die Standardeinstellung ist ' email' und bietet die höchste Sicherheit. Die Methode 'keine' ist ohne Überprüfung.
|
||||
Seien Sie vorsichtig damit, es sei denn Sie wissen wirklich, was Sie tun.
|
||||
";
|
||||
$string['configerrorlevel'] = "Wählen Sie die Menge der PHP Warnungen, die Sie angezeigt bekommen möchten. Normal ist gebräuchlicherwiese die beste Wahl.";
|
||||
$string['configgdversion'] = "Zeigt Ihnen die Version von GD an, die installiert. Die Version, die als Standard angezeigt wird, ist die, die automatisch ermittelt worden ist. Ändern Sie diese nicht, es sei denn Sie wissen wirklich, was Sie tun. ";
|
||||
$string['confightmleditor'] = "Wählen Sie aus, ob Sie die Verwendung der HTML Text-Eingabe zulassen möchten. Selbst, wenn Sie es zulassen, erscheint diese Text-Eingabe nur, wenn der Benutzer einen geeigneten Browser ( wie z.B. den IE 5.5 oder höher) benutzt.
|
||||
Die Benutzer können ebenso auswählen, diesen nicht zu benutzen.";
|
||||
$string['configintro'] = "Auf dieser Seite können Sie eine Anzahl von Konfigurations-Variablen spezifizieren, die Ihnen helfen, dass Moodle auf Ihrem Server vernünftig läuft. Sorgen Sie sich nicht grossartig - Die Standard-Einstellungen funktionieren nomalerweise sehr gut und Sie können jederzeit auf diese Seite zurückkommen und diese ändern.";
|
||||
$string['configlang'] = "Wählen Sie die Standard-Sprache für die gesamte Seite. Die Benutzer können diese später überschreiben.";
|
||||
$string['configlangdir'] = "In den meisten Sprachen schreibt man von links nach rechts, aber in einigen anderen, wie Arabisch oder Hebräisch, schreibt man von rechts nach links";
|
||||
$string['configlocale'] = "Wählen Sie eine seitenweite locale - diese wird die Anzeige jedes Datums beeinflussen. Sie müssen die Daten dieser localen auf Ihrem Betriebssystem installiert haben. Sofern Sie nicht wissen, was Sie auswählen sollen, lassen Sie dieses Feld leer.";
|
||||
$string['configlongtimenosee'] = "Wenn sich Studenten nach einer sehr langen Zeit nicht mehr angemeldet haben, werden Studenten automatisch nach diesem Termin aus dem Kurs ausgetragen.";
|
||||
$string['configmaxeditingtime'] = "Hier bestimmen Sie die Zeitspanne, in der die Leute die Foren-Beiträge, Jounal-Antworten, eusw. erneut bearbeiten dürfen. Normalerweise sind 30 Minuten ein guter Wert. ";
|
||||
$string['configproxyhost'] = "Wenn dieser <B>Server</B> einen Proxy braucht (beispielsweise eine Firewall), um Internetzugriff zu bekommen, dann tragen Sie hier den Namen und den Port des Proxys ein. Anderenfalls lassen sie das Feld leer";
|
||||
$string['configslasharguments'] = "Dateien (Bilder, Dokumente, usw.) werden über ein Skript, das 'Slash-Argumente' benutz (hier die zweite Option). Diese Methode erlaubt es Dateien einfacher im Internet-Browsern, Proxy-Servern, usw., zwischengespeichert zu werden.
|
||||
Leider erlauben nicht alle PHP-Server diese Methode, so dass Sie, sofern Sie Probleme bei der Anzeige von Dateien oder Bildern (beispielsweise den Benutzer-Fotos) haben, diese Variable auf die erste Option stellen müssen. ";
|
||||
$string['configsmtphosts'] = "Geben Sie hier den vollen Namen von einem oder mehreren lokalen SMTP-Servern an, die Moodle für den Email-Versnad benutzen soll (beispielsweise 'email.a.de' oder 'email.a.de;email.b.de'). Wenn Sie dieses frei lassen, wird Moodle die Standard-Methode von PHP zum Senden von Emails verwenden.";
|
||||
$string['configunzip'] = "Geben Sie hier den Pfad zum Programm unzip an (Nur Unix). Dieser wird für das Entpacken von ZIP-Archiven auf dem Server benötigt.";
|
||||
$string['configvariables'] = "Variablen konfigurieren";
|
||||
$string['configzip'] = "Geben Sie hier den Pfad zum Programm zip an (Nur Unix). Dieser wird für die Erstellung ZIP-Archiven auf dem Server benötigt.";
|
||||
$string['confirmed'] = "Ihre Registrierung wurde bestätigt";
|
||||
$string['continue'] = "Weiter";
|
||||
$string['cookiesenabled'] = "Cookies müssen in Ihrem Browser eingeschaltet sein";
|
||||
$string['copyrightnotice'] = "Urheberrechtsvermerk";
|
||||
$string['country'] = "Land";
|
||||
$string['course'] = "Kurs";
|
||||
$string['courseformats'] = "Kurs-Format";
|
||||
$string['courses'] = "Kurse";
|
||||
$string['courseupdates'] = "Kurse aktuell";
|
||||
$string['createaccount'] = "Meinen neuen Zugang einrichten";
|
||||
$string['createuserandpass'] = "Einen neuen Benutzernamen und Passwort für den Zugang anlegen";
|
||||
$string['createziparchive'] = "ZIP-Archiv erstellen";
|
||||
$string['currentlanguage'] = "Aktuelle Sprache";
|
||||
$string['currentlocaltime'] = "Die lokale Zeit";
|
||||
$string['databasechecking'] = "Moodle Datenbank von Version \$a->oldversion auf \$a->newversion aktualisieren...";
|
||||
$string['databasesetup'] = "Datenbank einspielen";
|
||||
$string['databasesuccess'] = "Datenbank wurde erfolgreich aktualisiert";
|
||||
$string['databaseupgrades'] = "Aktualisiere Datenbank";
|
||||
$string['day'] = "Tag";
|
||||
$string['days'] = "Tage";
|
||||
$string['defaultcoursefullname'] = "Course Fullname 101";
|
||||
$string['defaultcourseshortname'] = "CF101";
|
||||
$string['defaultcoursestudent'] = "Student";
|
||||
$string['defaultcoursestudents'] = "Studenten";
|
||||
$string['defaultcoursesummary'] = "Viele Menschen würden gerne etwas dazu lernen.
|
||||
Warum soll es im Internet keine Platform geben,
|
||||
wo dieses Manko beseitigt viel.
|
||||
|
||||
Wissen ist Macht, kämpft gemeinsam gegen die Ohnmacht.";
|
||||
$string['defaultcourseteacher'] = "Lehrer";
|
||||
$string['defaultcourseteachers'] = "Lehrer";
|
||||
$string['delete'] = "Löschen";
|
||||
$string['deletecheck'] = "\$a löschen?";
|
||||
$string['deletecheckfull'] = "Sind Sie sich wirklich sicher, \$a löschen?";
|
||||
$string['deletecompletely'] = "Vollständig löschen";
|
||||
$string['deletecourse'] = "Einen Kurs löschen";
|
||||
$string['deletecoursecheck'] = "Sind Sie sich wirklich sicher, Kurs löschen, einschliesslich aller Daten?";
|
||||
$string['deleted'] = "Gelöscht";
|
||||
$string['deletedactivity'] = "\$a gelöscht";
|
||||
$string['deletedcourse'] = "\$a wurde erfolgreich gelöscht";
|
||||
$string['deletednot'] = "Kann \$a nicht löschen!";
|
||||
$string['deletingcourse'] = "Lösche \$a";
|
||||
$string['description'] = "Beschreibung";
|
||||
$string['downloadexcel'] = "Im Excel-Format herunterladen";
|
||||
$string['downloadtext'] = "Im Text-Format herunterladen";
|
||||
$string['doyouagree'] = "Haben Sie diese Bedingungen gelesen und verstanden?";
|
||||
$string['edit'] = "Bearbeite \$a";
|
||||
$string['editcoursesettings'] = "Kurseinstellungen bearbeiten";
|
||||
$string['editinga'] = "Bearbeite \$a";
|
||||
$string['editmyprofile'] = "Profil bearbeiten";
|
||||
$string['editsummary'] = "Zusammenfassung bearbeiten";
|
||||
$string['editthisactivity'] = "Diese Aktivitär bearbeiten";
|
||||
$string['edituser'] = "Nutzer-Zugang bearbeiten";
|
||||
$string['email'] = "Email-Adresse";
|
||||
$string['emailconfirm'] = "Bestätigen Sie Ihren Zugang";
|
||||
$string['emailconfirmation'] = "Hallo \$a->firstname,
|
||||
|
||||
ein neuer Zugang wurde auf '\$a->sitename'
|
||||
unter Verwendung Ihrer Email-Adresse beantragt.
|
||||
|
||||
Um Ihren neuen Zugang zu bestätigen,
|
||||
gehen Sie bitte auf folgende Internet-Adresse:
|
||||
|
||||
\$a->link
|
||||
|
||||
In den meisten Email-Programmen erscheint dieser Link blau, so dass Sie diesen anklicken können.
|
||||
Sofern dies nicht funktioniert,
|
||||
kopieren Sie bitte diese Adresse in die obere Zeile des
|
||||
Browsers-Fensters.
|
||||
|
||||
|
||||
Grüße von der '\$a->sitename'-Verwaltung, \$a->admin";
|
||||
$string['emailconfirmsent'] = " <P>Eine Email sollte an Ihre Adresse <B>\$a</B>
|
||||
gesendet worden sein.
|
||||
<P>Sie enthält einfache Anweisungen, um Ihre Registrierung zu vervollständigen.
|
||||
<P>Bei weiteren Problemen kontaktieren Sie den Verwalter dieser Seite.";
|
||||
$string['emaildisplay'] = "Email-Anzeige";
|
||||
$string['emaildisplaycourse'] = "Nur Kurs-Mitgliedern meine Email-Adresse sichtbar machen";
|
||||
$string['emaildisplayno'] = "Meine Email-Adresse vor jedem verbergen";
|
||||
$string['emaildisplayyes'] = "Allow everyone to see my email address";
|
||||
$string['emailexists'] = "Diese Email-Adresse ist bereits registriert.";
|
||||
$string['emailformat'] = "Email-Format";
|
||||
$string['emailmustbereal'] = "Anmerkung: Ihre Email-Adresse <b>muss</b> existieren";
|
||||
$string['enrolmentkey'] = "Zugangs-Schlüssel";
|
||||
$string['enrolmentkeyfrom'] = "Für diesen Kurs benötigen Sie einen 'Zugangs-Schlüssel' - ein einmaliges Passwort,<br>das Sie von \$a bekommen haben sollten<BR>
|
||||
|
||||
password that you should have got from ";
|
||||
$string['enrolmentkeyhint'] = "Der Zugangs-Schlüssel war falsch, bitte versuchen Sie es erneut<BR>
|
||||
(Hier ist ein Hinweis - Er startet mit '\$a'";
|
||||
$string['entercourse'] = "Hier klicken, um den Kurs zu betreten";
|
||||
$string['enteremailaddress'] = "Geben Sie hier Ihre Email-Adresse ein, um Ihr Passwort zurückzusetzen. Ein neues Password wird Ihnen via Email ztugesendet.";
|
||||
$string['error'] = "Fehler";
|
||||
$string['existingteachers'] = "Vorhandene Lehrer";
|
||||
$string['feedback'] = "Rückmeldung";
|
||||
$string['filemissing'] = "\$a fehlt";
|
||||
$string['files'] = "Dateien";
|
||||
$string['filloutallfields'] = "Bitte füllen Sie alle Formular-Felder aus";
|
||||
$string['firstname'] = "Vorname";
|
||||
$string['firsttime'] = "Sind Sie das erste Mal hier?";
|
||||
$string['followingoptional'] = "Die folgenden Angaben sind optional";
|
||||
$string['followingrequired'] = "Die folgenden Angaben sind zwingend";
|
||||
$string['forgotten'] = "Benutzername und Passwort vergessen?";
|
||||
$string['format'] = "Format";
|
||||
$string['formathtml'] = "HTML-Format";
|
||||
$string['formatsocial'] = "Sozilales Format";
|
||||
$string['formattext'] = "Moodle Text-Format";
|
||||
$string['formattexttype'] = "Formatierung";
|
||||
$string['formattopics'] = "Themen-Format";
|
||||
$string['formatweeks'] = "Wöchentliches Format";
|
||||
$string['frontpagedescription'] = "Beschreibung auf Eingangsseite";
|
||||
$string['frontpageformat'] = "Format der Eingangsseite";
|
||||
$string['fulllistofcourses'] = "Alle Kurse";
|
||||
$string['fullname'] = "Nachname";
|
||||
$string['fullprofile'] = "Ganzes Profil";
|
||||
$string['fullsitename'] = "Name der gesamten Seite";
|
||||
$string['gd1'] = "GD 1.x ist installiert";
|
||||
$string['gd2'] = "GD 2.x ist installiert";
|
||||
$string['gdnot'] = "GD ist nicht installiert";
|
||||
$string['gpl'] = "Copyright (C) 2001-2002 Martin Dougiamas (http://dougiamas.com) Dieses Programm ist freie Software; Sie können es weiterverbreiten bzw. es im Rahmen GNU General Public License, wie von der Free Software Foundation veröffentlicht, modifizieren; entweder Version 2 der Lizenz, oder (sofer nötig) jede spätere Version. Dieses Programm wird in der Hoffnung ausgeteilt, dass es nützlich sein wird, aber OHNE JEDE GARANTIE; sogar ohne die implizierte Garantie der MARKTFÄHIGKEIT oder der MARKTREIFE FÜR EINEM BESONDEREN ZWECK. Lesen Sie die GNU-Öffentlichkeitslizenz für mehr Details: http: // www.gnu.org/copyleft/gpl.html";
|
||||
$string['grade'] = "Rang";
|
||||
$string['grades'] = "Ränge";
|
||||
$string['guestskey'] = "Gäste zulassen, die eine n Schlüssel haben";
|
||||
$string['guestsno'] = "Gäste nicht erlaubt";
|
||||
$string['guestsnotallowed'] = "'\$a' erlaubt Gästen keinen Zugang";
|
||||
$string['guestsyes'] = "Zugang für Gäste ohne Schlüssel";
|
||||
$string['guestuser'] = "Gast-Benutzer";
|
||||
$string['guestuserinfo'] = "Dieser Benutzer ist ein besonderer Benutzer, der nur Lesezugriff auf einige Kurse erlaubt.";
|
||||
$string['help'] = "Hilfe";
|
||||
$string['helphtml'] = "Wie man HTML schreibt";
|
||||
$string['helppicture'] = "Wie man ein Foto hochlädt";
|
||||
$string['helpquestions'] = "Wie man fragen stellt";
|
||||
$string['helprichtext'] = "Über die Richtext-Eingabe";
|
||||
$string['helptext'] = "Wie man Text schreibt";
|
||||
$string['hide'] = "Verstecken";
|
||||
$string['home'] = "Startseite";
|
||||
$string['hour'] = "Stunde";
|
||||
$string['hours'] = "Stunden";
|
||||
$string['htmleditor'] = "WYSIWYG HTML-Text-Eingabe verwenden (Nur IE 5.5. oder höher)";
|
||||
$string['htmleditoravailable'] = "Die Rich-Text-Eingabe ist verfügbar";
|
||||
$string['htmleditordisabled'] = "Sie haben die Rich-Text-Eingabe in Ihrem Benutzer-Profil deaktiviert.";
|
||||
$string['htmleditordisabledadmin'] = "Der Verwaltr hat die Rich-Text-Eingabe in Ihrem Benutzer-Profil deaktiviert.";
|
||||
$string['htmleditordisabledbrowser'] = "Die Rich-Text-Eingabe ist nicht verfügbar, weil Sie nicht den Internet Explorer 5.5 oder höher benutzen";
|
||||
$string['htmlformat'] = "Sauberes HTML-Format";
|
||||
$string['icqnumber'] = "ICQ-Nummer";
|
||||
$string['idnumber'] = "Identifizierungsnummer";
|
||||
$string['invalidemail'] = "Ungültige Email-Adresse";
|
||||
$string['invalidlogin'] = "Ungültiger Zugang, bitte versuchen Sie es erneut";
|
||||
$string['langltr'] = "Sprach-Richtung von links nach rechts";
|
||||
$string['langrtl'] = "Sprach-Richtung von rechts nach links";
|
||||
$string['languagegood'] = "Dieses Sprachpaket ist auf dem aktuellen Stand! :-)";
|
||||
$string['lastaccess'] = "Letzter Zugriff";
|
||||
$string['lastedited'] = "Zuletzt bearbeitet";
|
||||
$string['lastmodified'] = "Zuletzt geändert";
|
||||
$string['lastname'] = "Nachname";
|
||||
$string['latestnews'] = "Neueste Nachrichten";
|
||||
$string['leavetokeep'] = "Passwort-Feld leer lassen, um momentanes Passwort zu behalten";
|
||||
$string['license'] = "GPL-Lizenz";
|
||||
$string['listofallpeople'] = "Liste aller Leute";
|
||||
$string['livelogs'] = "Aktuelle Statistiken der letzten Stunde";
|
||||
$string['location'] = "Ort";
|
||||
$string['loggedinas'] = "Sie sind angemeldet als \$a";
|
||||
$string['loggedinnot'] = "Sie sind nicht angemeldet.";
|
||||
$string['login'] = "Anmelden";
|
||||
$string['loginas'] = "Anmelden als";
|
||||
$string['loginguest'] = "Anmelden als Gast";
|
||||
$string['loginsite'] = "Anmeldung für diese Seite";
|
||||
$string['loginsteps'] = "Hallo! Für den vollen Zugang zu
|
||||
den Kursen werden Sie sich eine Minute Zeit nehmen müssen,
|
||||
um einen neuen Zugang für sich selbst auf dieser Website
|
||||
zu erstellen. Jeder der individuellen Kurse kann auch
|
||||
einen einmaligen "Einschreibungsschlüssel" haben,
|
||||
den Sie später nicht mehr brauchen werden. Hier sind die
|
||||
Schritte:
|
||||
<OL size=2>
|
||||
<LI> Füllen Sie das Formular <HREF=\$a>Neuer Zugang </A>
|
||||
mit Ihren Angaben.
|
||||
<LI> Umgehend geht eine Email an Ihre Adresse raus.
|
||||
<LI> Lesen Sie die Email und klicken Sie den darin enthaltenen Internetverweis an. <LI> Ihr Zugang wird bestätigt, und Sie werden angemeldet sein. <LI> Jetzt wählen Sie den Kurs aus, an dem Sie teilnehmen möchten. <LI>Sollten Sie nach einen "Zugangsschlüssel" gefragt werden, benutzen Sie diesen, den Ihnen Ihr Lehrer gegeben hat. Dieser schaltet Sie für diesen Kurs frei. <LI>Nun können Sie auf den vollen Kurs zugreifen. Zukünftig brauchen Sie nur Ihren eigenen Benutzernamen und das Kennwort im Formular auf dieser Seite einzugeben, um sich anzumelden und Zugang zu jedem Kurs, bei dem Sie sich angemeldet haben, zu bekommen. </OL>";
|
||||
$string['loginstepsnone'] = "Hallo!<P>Für vollen Zugang zu den Kursen müssen Sie sich einen Zugang anlegen. <P> Alles, was Sie tun müssen,ist einen Benutzernamen und ein Kennwort zu wählen, das Sie im Formular auf dieser Seite eintragen! <P>Sofern jemand anderes bereits Ihren Benutzernamen gewählt hat, müssen Sie einen anderen Benutzernamens verwenden.";
|
||||
$string['loginto'] = "Angemeldet bei \$a";
|
||||
$string['loginusing'] = "Melden Sie sich hier mit Benutzernamen und Kennwort an";
|
||||
$string['logout'] = "Abmelden";
|
||||
$string['logs'] = "Statistiken";
|
||||
$string['mainmenu'] = "Hauptmenü";
|
||||
$string['makeafolder'] = "Verzeichnis erstellen";
|
||||
$string['makeeditable'] = "Sofern Sie '\$a' durch den Internet-Server bearbeitbar machen (beispielsweise Apache) können Sie diese Datei direkt auf dieser Seite bearbeiten";
|
||||
$string['managedatabase'] = "Datenbank verwalten";
|
||||
$string['markthistopic'] = "Dieses Thema als das gegenwärtige Thema kennzeichnen";
|
||||
$string['maximumchars'] = "Höchstens \$a Buchstaben";
|
||||
$string['maximumgrade'] = "Beste Note";
|
||||
$string['maximumshort'] = "Höchstens";
|
||||
$string['maxsize'] = "Maximale Größe: \$a";
|
||||
$string['min'] = "Minute";
|
||||
$string['mins'] = "Minuten";
|
||||
$string['miscellaneous'] = "Verschiedens";
|
||||
$string['missingcategory'] = "Sie müssen einen Rubrik auswählen";
|
||||
$string['missingcity'] = "Stadt fehlt";
|
||||
$string['missingcountry'] = "Land fehlt";
|
||||
$string['missingdescription'] = "Beschreibung fehlr";
|
||||
$string['missingemail'] = "Email-Adresse fehlt";
|
||||
$string['missingfirstname'] = "Vorname fehlt";
|
||||
$string['missingfullname'] = "Voller Name fehlt";
|
||||
$string['missinglastname'] = "Nachname fehlt";
|
||||
$string['missingnewpassword'] = "Neues Kennwort fehlt";
|
||||
$string['missingpassword'] = "Kennwort fehlt";
|
||||
$string['missingshortname'] = "Kurzer Name fehlt";
|
||||
$string['missingshortsitename'] = "Kurzer Seitenname fehlt";
|
||||
$string['missingsitedescription'] = "Seitenbeschreibung fehlt";
|
||||
$string['missingsitename'] = "Seitenname fehlt";
|
||||
$string['missingstrings'] = "Auf fehlende Textpassagen prüfen";
|
||||
$string['missingstudent'] = "Schüler fehlt";
|
||||
$string['missingsummary'] = "Zusammenfassung fehlt";
|
||||
$string['missingteacher'] = "Sie müssen etwas auswählen";
|
||||
$string['missingusername'] = "Benutzername fehlt";
|
||||
$string['modified'] = "Geändert";
|
||||
$string['modulesetup'] = "Leg Modul-Tabellen an";
|
||||
$string['modulesuccess'] = "\$a Tabellen wurden korrkt angelegt";
|
||||
$string['mostrecently'] = "neueste";
|
||||
$string['movedown'] = "Nach unten verschieben";
|
||||
$string['movefilestohere'] = "Dateien hierhin verschieben";
|
||||
$string['movetoanotherfolder'] = "In einen anderen Ordner verschieben";
|
||||
$string['moveup'] = "Nach oben verschieben";
|
||||
$string['mustconfirm'] = "Sie müssen Ihren Zugang bestätigen";
|
||||
$string['mycourses'] = "Meine Kurse";
|
||||
$string['name'] = "Name";
|
||||
$string['namesocial'] = "Abschnitt";
|
||||
$string['nametopics'] = "Thema";
|
||||
$string['nameweeks'] = "Woche";
|
||||
$string['never'] = "Nie";
|
||||
$string['new'] = "Neu";
|
||||
$string['newaccount'] = "Neuer Zugang";
|
||||
$string['newpassword'] = "Neues Kennwort";
|
||||
$string['newpasswordtext'] = "Hallo \$a->firstname,
|
||||
|
||||
Ihr Zugangskennwort auf '\$a->sitename' wurde zurückgesetzt und Ihnen ist ein neues temporäres Kennwort zugewiesen worden.
|
||||
|
||||
Ihre Zugangsdaten sind jetzt:
|
||||
Benutzername: \$a->username
|
||||
Kennwort: \$a->newpassword
|
||||
|
||||
Bitte gehen Sie auf diese Seite und ändern Ihr Kennwort:
|
||||
\$a->link
|
||||
|
||||
|
||||
In den meisten Email-Programmen erscheint dieser Link blau, so dass Sie diesen anklicken können. Sofern dies nicht funktioniert, kopieren Sie bitte diese Adresse in die obere Zeile des Browsers-Fensters.
|
||||
|
||||
Grüße von der '\$a->sitename'-Verwaltung, \$a->signoff";
|
||||
$string['newpicture'] = "Neues Foto";
|
||||
$string['newsitem'] = "Nachricht ";
|
||||
$string['newsitems'] = "Nachrichten";
|
||||
$string['newsitemsnumber'] = "Anzuzeigende Nachrichten";
|
||||
$string['newuser'] = "Neuer Benutzer";
|
||||
$string['newusers'] = "Neue Benutzer";
|
||||
$string['no'] = "Nein";
|
||||
$string['nocoursesyet'] = "Keine Kurse in dieser Rubrik";
|
||||
$string['noexistingteachers'] = "Keine Lehrer angelegt";
|
||||
$string['nofilesyet'] = "Bislang wurden keine Dateien für Ihren Kurs hochgeladen";
|
||||
$string['nograde'] = "Keine Note";
|
||||
$string['noimagesyet'] = "Bislang wurden keine Grafiken für Ihren Kurs hochgeladen";
|
||||
$string['none'] = "Nichts";
|
||||
$string['nopotentialteachers'] = "Keine möglichen Lehrer";
|
||||
$string['normal'] = "Normal";
|
||||
$string['nostudentsyet'] = "Kein Schüler nimmt bislang an diesem Kurs teil";
|
||||
$string['nosuchemail'] = "Keine solche Email-Adresse";
|
||||
$string['noteachersyet'] = "Kein Lehrer bislang in diesem Kurs teil";
|
||||
$string['notenrolled'] = "\$a nimmt nicht an diesem Kurs teil.";
|
||||
$string['nothingnew'] = "Nichts Neues seit Ihrem letzten Besuch";
|
||||
$string['nousersyet'] = "Bislang keine Benutzer";
|
||||
$string['now'] = "jetzt";
|
||||
$string['numberweeks'] = "Anzahl der Wochen/Themen";
|
||||
$string['numdays'] = "\$a Tage";
|
||||
$string['numminutes'] = "\$a Minuten";
|
||||
$string['numviews'] = "\$a Einsichten";
|
||||
$string['numweeks'] = "\$a Wochen";
|
||||
$string['numwords'] = "\$a Wörter";
|
||||
$string['numyears'] = "\$a Jahre";
|
||||
$string['ok'] = "OK";
|
||||
$string['opentoguests'] = "Gast-Zugriff";
|
||||
$string['optional'] = "nicht zwingend";
|
||||
$string['order'] = "Reihenfolge";
|
||||
$string['outline'] = "Ausstehend";
|
||||
$string['participants'] = "Teilnehmer";
|
||||
$string['password'] = "Kennwort";
|
||||
$string['passwordchanged'] = "Kennwort wurde geändert";
|
||||
$string['passwordsdiffer'] = "Dieses Kennwort ist falsch";
|
||||
$string['passwordsent'] = "Kennwort wurde gesendet";
|
||||
$string['passwordsenttext'] = "
|
||||
<P>Eine Email wurde an Ihre Adresse \$a->email gesendet.
|
||||
<P><B>Schauen Sie bitte in Ihre Email nach Ihrem neuen Kennwort
|
||||
|
||||
<P>Das Kennwort wurde automatisch erzeugt.
|
||||
Sicherlich möchten Sie es <A HREF=\$a->link>ändern</a>, um es sich leichter zu merken.";
|
||||
$string['people'] = "Leute";
|
||||
$string['personalprofile'] = "Eigenes Profil";
|
||||
$string['phone'] = "Telefon";
|
||||
$string['potentialteachers'] = "Mögliche Lehrer";
|
||||
$string['preferredlanguage'] = "Bevorzugte Sprache";
|
||||
$string['preview'] = "Vorschau";
|
||||
$string['previeworchoose'] = "Vorschau oder Aussehen auswählen";
|
||||
$string['question'] = "Frage";
|
||||
$string['readme'] = "LIESMICH";
|
||||
$string['recentactivity'] = "Neueste Aktivtäten";
|
||||
$string['removeteacher'] = "Lehrer löschen";
|
||||
$string['rename'] = "Umbenennen";
|
||||
$string['requireskey'] = "Dieser Kurs setzt einen Zugangs-Schlüssel voraus";
|
||||
$string['resources'] = "Arbeitsmittel";
|
||||
$string['returningtosite'] = "Auf diese Internet-Seite zurückkehren?";
|
||||
$string['revert'] = "Zurückkehren";
|
||||
$string['role'] = "Abmelden";
|
||||
$string['savechanges'] = "Änderungen speichern";
|
||||
$string['search'] = "Suchen";
|
||||
$string['searchagain'] = "Erneut Suchen";
|
||||
$string['searchresults'] = "Suchergebnisse";
|
||||
$string['sec'] = "Sekunde";
|
||||
$string['secs'] = "Sekunden";
|
||||
$string['section'] = "Abschnitt";
|
||||
$string['selectacountry'] = "Land auswählen";
|
||||
$string['senddetails'] = "Senden Sie meine Details via Email zu";
|
||||
$string['separateandconnected'] = "Getrennte und Gemeinsame Art des Wissens";
|
||||
$string['serverlocaltime'] = "Die Lokalzeit des Servers";
|
||||
$string['settings'] = "Einstellungen";
|
||||
$string['shortname'] = "Kurzname";
|
||||
$string['shortsitename'] = "Kurzname der Seite (z.B. ein einziges Wort)";
|
||||
$string['showallcourses'] = "Alle Kurse anzeigen";
|
||||
$string['showalltopics'] = "Alle Themen Anzeigen";
|
||||
$string['showallweeks'] = "Alle Wochen anzeigen";
|
||||
$string['showlistofcourses'] = "Die Liste der Kurse anzeigen";
|
||||
$string['showonlytopic'] = "Nur Thema \$a anzeigen";
|
||||
$string['showonlyweek'] = "Nur Woche \$a anzeigen";
|
||||
$string['showtheselogs'] = "Diese Stastiken anzeigen";
|
||||
$string['site'] = "Seite";
|
||||
$string['sitelogs'] = "Statistiken der Seite";
|
||||
$string['sitenews'] = "Nachrichten der Site";
|
||||
$string['sites'] = "Seiten";
|
||||
$string['sitesettings'] = "Seiteneinstellungen";
|
||||
$string['size'] = "Größe";
|
||||
$string['socialheadline'] = "Soziales Forum - letzte Themen";
|
||||
$string['someallowguest'] = "Einige Kurse können auch Gast-Zugang erlauben";
|
||||
$string['startdate'] = "Datum des Kursbeginns";
|
||||
$string['startsignup'] = "Jetzt einen neuen Zugang anlegen!";
|
||||
$string['status'] = "Status";
|
||||
$string['stringsnotset'] = "Folgende Textteile sind nicht vorhanden in \$a";
|
||||
$string['success'] = "Erfolg";
|
||||
$string['summary'] = "Zusammenfassung";
|
||||
$string['summaryof'] = "Zusammenfassung von \$a";
|
||||
$string['supplyinfo'] = "Geben Sie bitte ein paar Informationen über sich selbst an";
|
||||
$string['teacheronly'] = "für \$a nur";
|
||||
$string['textediting'] = "Wenn Sie einen Text bearbeiten";
|
||||
$string['texteditor'] = "Standard Internet-Formulare benutzen";
|
||||
$string['textformat'] = "Reines Textformat";
|
||||
$string['thanks'] = "Danke";
|
||||
$string['theme'] = "Thema";
|
||||
$string['themesaved'] = "Neues Thema gepeichert";
|
||||
$string['thischarset'] = "iso-8859-1";
|
||||
$string['thislanguage'] = "Deutsch";
|
||||
$string['timezone'] = "Zeitzone";
|
||||
$string['today'] = "Heute";
|
||||
$string['todaylogs'] = "Die heutigen Statistiken";
|
||||
$string['toomanytoshow'] = "Es sind zuviele Benutzer anzuzeigen";
|
||||
$string['topic'] = "Thema";
|
||||
$string['topicoutline'] = "Ausstehendes Thema";
|
||||
$string['total'] = "Insgesamt";
|
||||
$string['turneditingoff'] = "Bearbeiten ausschalten";
|
||||
$string['turneditingon'] = "Bearbeiten einschalten";
|
||||
$string['undecided'] = "Unbestimmt";
|
||||
$string['unenrol'] = "Abmelden";
|
||||
$string['unenrolme'] = "Abmelden von \$a";
|
||||
$string['unenrolsure'] = "Sind Sie siche, dass Sie \$a von diesem Kurs abmelden möchten?";
|
||||
$string['unsafepassword'] = "Unsicheres Kennwort - probieren Sie ein anderses";
|
||||
$string['unzip'] = "Eröffnen";
|
||||
$string['update'] = "Aktualisieren";
|
||||
$string['updated'] = "\$a aktualisiert";
|
||||
$string['updatemyprofile'] = "Profil aktualisieren";
|
||||
$string['updatesevery'] = "Aktualisiere alle \$a Sekunden";
|
||||
$string['updatethis'] = "Aktualisiere diesen \$a";
|
||||
$string['updatethiscourse'] = "Diesen Kurs aktualisieren";
|
||||
$string['updatinga'] = "Aktualisiere \$a";
|
||||
$string['updatingain'] = "Aktualisiere \$a->what in \$a->in";
|
||||
$string['upload'] = "Hochladen";
|
||||
$string['uploadafile'] = "Eine Datei hochladen";
|
||||
$string['uploadthisfile'] = "Diese Datei hochladen";
|
||||
$string['userdeleted'] = "Dieser Benutzer-Zugang wurde gelöscht";
|
||||
$string['userdescription'] = "Beschreibung";
|
||||
$string['username'] = "Benutzername";
|
||||
$string['usernameexists'] = "Dieser Benutzername existiert, probieren Sie einen anderen";
|
||||
$string['userprofilefor'] = "Benutzer-Profil für \$a";
|
||||
$string['users'] = "Benutzer";
|
||||
$string['webpage'] = "Internet-Seite";
|
||||
$string['week'] = "Woche";
|
||||
$string['weeklyoutline'] = "Wöchentlich ausstehend";
|
||||
$string['welcometocourse'] = "Willkommen zu \$a";
|
||||
$string['welcometocoursetext'] = "Willkommen zu \$a->coursename!
|
||||
|
||||
Einer der ersten Schritte, die Sie erledigen sollten, ist, Ihre Profil-Seite innerhalb des Kurses zu bearbeiten, damit wir mehr über Sie erfahren können:
|
||||
|
||||
\$a->profileurl";
|
||||
$string['withchosenfiles'] = "Mit ausgewählten Dateien";
|
||||
$string['wordforstudent'] = "Ihre Bezeichnung für Schüler";
|
||||
$string['wordforstudenteg'] = "z.B. Student, Teilnehmer, usw.";
|
||||
$string['wordforstudents'] = "Ihre Bezeichnung mehrere Schüler";
|
||||
$string['wordforstudentseg'] = "z.B. Studenten, Teilnehmer, usw.";
|
||||
$string['wordforteacher'] = "Ihre Bezeichnung für Lehrer";
|
||||
$string['wordforteachereg'] = "z.B. Tutor, Professor, usw.";
|
||||
$string['wordforteachers'] = "Ihre Bezeichnung für mehrere Lehrer";
|
||||
$string['wordforteacherseg'] = "z.B. Tutororen, Professororen, usw.";
|
||||
$string['wrongpassword'] = "Falsches Kennwort oder Benutzername";
|
||||
$string['yes'] = "Ja";
|
||||
$string['yourlastlogin'] = "Ihre letzte Anmeldung war";
|
||||
$string['yourself'] = "selbst";
|
||||
$string['yourteacher'] = "Ihr \$a";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,103 @@
|
||||
<?PHP // $Id$
|
||||
// quiz.php - created with Moodle 1.0.6 dev 3 (2002102101)
|
||||
|
||||
|
||||
$string['addselectedtoquiz'] = "Auswahl zum Quiz hinzufügen";
|
||||
$string['alreadysubmitted'] = "Es sieht so aus, als hätten Sie diesen Versuch schon eingetragen";
|
||||
$string['alwaysavailable'] = "Immer verfügbar";
|
||||
$string['answer'] = "Antwort";
|
||||
$string['answerhowmany'] = "Eine oder mehrere Antworten?";
|
||||
$string['answersingleno'] = "Mehrere Antworten erlaubt";
|
||||
$string['answersingleyes'] = "Nur eine Antwort";
|
||||
$string['attempt'] = "Versuch \$a";
|
||||
$string['attemptfirst'] = "Erster Versuch";
|
||||
$string['attemptlast'] = "Letzter Versuch";
|
||||
$string['attempts'] = "Versuche";
|
||||
$string['attemptsallowed'] = "Erlaubte Versuche";
|
||||
$string['attemptsunlimited'] = "Unbegrenzte Versuche";
|
||||
$string['backtoquiz'] = "Zurück zur Quiz-Bearbeitung";
|
||||
$string['bestgrade'] = "Höchstnote";
|
||||
$string['caseno'] = "Nein, Schreibweise ist unwichtig";
|
||||
$string['casesensitive'] = "Schreibweise";
|
||||
$string['caseyes'] = "Ja, Schreibweise muss stimmen";
|
||||
$string['categories'] = "Kategorien";
|
||||
$string['category'] = "Kategorie";
|
||||
$string['categoryinfo'] = "Rubrik-Information";
|
||||
$string['categorymove'] = "Die Rubrik '\$a->name' enthält \$a->count Fragen. Bitte wählen Sie eine andere Rubrik, um sie zu verschieben.";
|
||||
$string['categorymoveto'] = "In diese Rubrik verschieben";
|
||||
$string['choice'] = "Auswahl";
|
||||
$string['choices'] = "Verfügbare Auswahl";
|
||||
$string['correctanswer'] = "Richtige Antwort";
|
||||
$string['correctanswers'] = "Richtige Antworten";
|
||||
$string['createnewquestion'] = "Eine neue Frage anlegen";
|
||||
$string['daysavailable'] = "Tage verfügbar";
|
||||
$string['default'] = "Standard";
|
||||
$string['defaultinfo'] = "Die Standard-Rubrik für diese Frage";
|
||||
$string['deletequestioncheck'] = "";
|
||||
$string['editcategories'] = "Rubrik bearbeiten";
|
||||
$string['editingmultichoice'] = "Eine Frage mit Mehrfachauswahl bearbeiten";
|
||||
$string['editingquestion'] = "Eine Frage bearbeiten";
|
||||
$string['editingquiz'] = "Ein Quiz bearbeiten";
|
||||
$string['editingshortanswer'] = "Kurzantwort der Frage bearbeiten";
|
||||
$string['editingtruefalse'] = "Ja/Nein-Frage bearbeiten";
|
||||
$string['false'] = "Falsch";
|
||||
$string['feedback'] = "Rückmeldung";
|
||||
$string['filloutoneanswer'] = "Sie müssen mindestens eine mögliche Antwort geben. Leere Antworten werden ignoriert.";
|
||||
$string['fillouttwochoices'] = "Sie müssen mindestens zwei mögliche Antwort geben. Leere Antworten werden ignoriert.";
|
||||
$string['fractionsaddwrong'] = "Ihre positiven gewählten Punktzahlen ergeben keine 100%
|
||||
<BR>Statt dessen ergeben Sie \$a%
|
||||
<BR>Möchten Sie zurück gehen und diese Frage korrigieren?";
|
||||
$string['fractionsnomax'] = "Eine dieser Antworten sollte 100% sein, so dass
|
||||
<br>es möglich ist, die volle Punktzahl für diese Frage zu bekommen.
|
||||
<br>Möchten Sie zurück gehen und diese Frage korrigieren?";
|
||||
$string['gradeaverage'] = "Durchschnittsnote";
|
||||
$string['gradehighest'] = "Beste Note";
|
||||
$string['grademethod'] = "Bewertungsschema";
|
||||
$string['guestsno'] = "Entschuldigung, aber Gäste können Quiz nicht sehen oder probieren.";
|
||||
$string['imagedisplay'] = "Bild für die Anzeige";
|
||||
$string['introduction'] = "Einleitung";
|
||||
$string['marks'] = "Anmerkungen";
|
||||
$string['modulename'] = "Quiz";
|
||||
$string['modulenameplural'] = "Quiz";
|
||||
$string['multichoice'] = "Mehrfachauswahl";
|
||||
$string['noanswers'] = "Es wurde keine Antworten ausgewählt!";
|
||||
$string['noattempts'] = "Dieses Quiz hat keiner ausgefüllt";
|
||||
$string['nomoreattempts'] = "Kein Versuch mehr zugelassen";
|
||||
$string['noquestions'] = "Es wurden noch keine Fragen eingetragen";
|
||||
$string['publish'] = "Veröffentlichen";
|
||||
$string['question'] = "Frage";
|
||||
$string['questioninuse'] = "Die Frage '\$a' wird momentan benutzt:";
|
||||
$string['questionname'] = "Title der Frage";
|
||||
$string['questions'] = "Fragen";
|
||||
$string['quizavailable'] = "Diese Quiz ist verfügbar bis: \$a";
|
||||
$string['quizclose'] = "Dieses Quiz schließen";
|
||||
$string['quizclosed'] = "Diese Quiz schließt am \$a";
|
||||
$string['quiznotavailable'] = "Diese Quiz ist nicht verfügbar bis: \$a";
|
||||
$string['quizopen'] = "Ein Quiz beginnen";
|
||||
$string['random'] = "Zufällig setzen";
|
||||
$string['regrade'] = "Alle Versuche zurücksetzen";
|
||||
$string['regradecomplete'] = "Alle Versuche wurden zurückgesetzt";
|
||||
$string['regradecount'] = "\$a->changed von \$a->attempt Noten wurden geändert";
|
||||
$string['rename'] = "Umbenennen";
|
||||
$string['report'] = "Berichte";
|
||||
$string['save'] = "Speichern";
|
||||
$string['savegrades'] = "Noten speichern";
|
||||
$string['savemyanswers'] = "Meine Antworten speichern";
|
||||
$string['savequiz'] = "Dieses gesamte Quiz speichern";
|
||||
$string['score'] = "Grobe Punktzahl";
|
||||
$string['select'] = "Auswählen";
|
||||
$string['selectcategoryabove'] = "Wählen Sie eine obige Rubrik";
|
||||
$string['shortanswer'] = "Kurzantwort";
|
||||
$string['show'] = "Zeigen";
|
||||
$string['showcorrectanswer'] = "Nach dem Antworten richtige Antwort anzeigen?";
|
||||
$string['showfeedback'] = "Nach dem Antworten Rückmeldung anzeigen?";
|
||||
$string['time'] = "Zeit";
|
||||
$string['timecompleted'] = "Beendet";
|
||||
$string['timetaken'] = "Verbrauchte Zeit";
|
||||
$string['true'] = "Wahr";
|
||||
$string['truefalse'] = "Wahr/Falsch";
|
||||
$string['type'] = "Typ";
|
||||
$string['viewallanswers'] = "Zeige \$a ausgefüllte Quiz";
|
||||
$string['yourfinalgradeis'] = "Ihre Gesamtnote für dieses Quiz ist \$a";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,30 @@
|
||||
<?PHP // $Id$
|
||||
// reading.php - created with Moodle 1.0.6 dev (2002100200)
|
||||
|
||||
|
||||
$string['addresource'] = "Literatur hinzufügen";
|
||||
$string['editingaresource'] = "Literatur bearbeiten";
|
||||
$string['example'] = "Beispiel";
|
||||
$string['examplereference'] = "Stefan Münz,
|
||||
SelfHTML
|
||||
";
|
||||
$string['exampleurl'] = "http://selfhtml.teamone.de";
|
||||
$string['filename'] = "Dateiname";
|
||||
$string['fulltext'] = "Voller Text";
|
||||
$string['htmlfragment'] = "HTML-Teil";
|
||||
$string['modulename'] = "Literatur";
|
||||
$string['modulenameplural'] = "Literatur";
|
||||
$string['neverseen'] = "Nie gelesen";
|
||||
$string['note'] = "Anmerkung";
|
||||
$string['notefile'] = "Um mehr als eine Datei für diesen Kurs hochzuladen (damit dieses in der Liste erscheinen) benutzen Sie bitte den
|
||||
<A HREF=\$a >Datei-Manager</A>.";
|
||||
$string['notypechosen'] = "Sie müssen einen Typ auswählen. Verwenden Sie den Zurück-Knopf und probieren Sie es erneut";
|
||||
$string['resourcetype'] = "Typ der Quelle";
|
||||
$string['resourcetype1'] = "Referenz";
|
||||
$string['resourcetype2'] = "Internet-Seite";
|
||||
$string['resourcetype3'] = "Hochgeladene Datei";
|
||||
$string['resourcetype4'] = "Reiner Text";
|
||||
$string['resourcetype5'] = "Internet-Verknüpfung";
|
||||
$string['resourcetype6'] = "HTML-Text";
|
||||
|
||||
?>
|
||||
@@ -0,0 +1,45 @@
|
||||
<?PHP // $Id$
|
||||
// survey.php - created with Moodle 1.0.6 dev (2002100200)
|
||||
|
||||
|
||||
$string['actual'] = "Aktuell";
|
||||
$string['allquestions'] = "Alle Fragen geordnet, alle Kursteilnehmer";
|
||||
$string['allscales'] = "Ale Ränge, alle Kursteilnehmer";
|
||||
$string['alreadysubmitted'] = "Sie haben diese Übersicht bereits eingereicht ";
|
||||
$string['analysisof'] = "Analyse von \$a";
|
||||
$string['done'] = "Erledigt";
|
||||
$string['download'] = "Herunterladen";
|
||||
$string['downloadexcel'] = "Daten als Excel-Tabelle herunterladen";
|
||||
$string['downloadinfo'] = "Sie können die Rohdaten dieser Übersicht vollständig in einer weiterverwendbaren Form herunterladen für die Analyse in Excel, SPSS oder anderen Paketen";
|
||||
$string['downloadtext'] = "Daten als reine Text-Datei herunterladen";
|
||||
$string['editingasurvey'] = "Eine Übrsicht bearbeiten";
|
||||
$string['helpsurveys'] = "Hilfe zu den verschiedenen Typen der Übersichten";
|
||||
$string['ifoundthat'] = "Ich habe dieses gefunden";
|
||||
$string['introtext'] = "Einführungstext";
|
||||
$string['ipreferthat'] = "Ich bevorzuge das";
|
||||
$string['modulename'] = "Übersicht";
|
||||
$string['modulenameplural'] = "Übersichten";
|
||||
$string['name'] = "Name";
|
||||
$string['newsurveyresponses'] = "Neue Übersicht der Antworten";
|
||||
$string['nobodyyet'] = "Keiner hat diese Übersicht verfasst";
|
||||
$string['notdone'] = "Noch nicht durchgeführt";
|
||||
$string['notes'] = "Ihre persönliche Analyse und Anmerkungen";
|
||||
$string['peoplecompleted'] = "\$a Leute haben bereits diese Übersicht verfasst";
|
||||
$string['preferred'] = "Bevorzugt";
|
||||
$string['question'] = "Frage";
|
||||
$string['questions'] = "Fragen";
|
||||
$string['report'] = "Bericht der Übersicht";
|
||||
$string['savednotes'] = "Ihre Anmerkungen wurden gespeichert";
|
||||
$string['scales'] = "Scales";
|
||||
$string['seemoredetail'] = "Hier klicken für mehr Details";
|
||||
$string['selectedquestions'] = "Ausgewählte Fragen aus einem Rang, alle Studenten";
|
||||
$string['summary'] = "Zusammenfassung";
|
||||
$string['surveycompleted'] = "Sie haben diese Übersicht verfasst. Das folgende Diagramm zeigt eine Zusammenfassung Ihrer Ergebnisse im Vergleich zu den Kursdurchschnitten. ";
|
||||
$string['surveyname'] = "Name der Übersicht";
|
||||
$string['surveysaved'] = "Übersicht gespeichert";
|
||||
$string['surveytype'] = "Typ der Übersicht";
|
||||
$string['thanksforanswers'] = "Danke für die Antworten zu dieser Übersicht, \$a";
|
||||
$string['time'] = "Zeit";
|
||||
$string['viewsurveyresponses'] = "Zeige \$a Antworten zur Übersicht";
|
||||
|
||||
?>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user