Compare commits
781 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 572729aaa5 | |||
| bfae08a46d | |||
| 3d1141b0ee | |||
| 0e2be52d69 | |||
| 237f06b3d0 | |||
| 4493e62d1d | |||
| cb8004dabd | |||
| a292ea9761 | |||
| 1033e1e2f2 | |||
| b52204405e | |||
| 342d7cf4bf | |||
| 72225da176 | |||
| 9b4660e0ba | |||
| 6ab3a85252 | |||
| 1c2857e2e4 | |||
| 224a8644b0 | |||
| 41246701c2 | |||
| 15d529c1c3 | |||
| 905ff1fc36 | |||
| af72d273df | |||
| 8907e85ab5 | |||
| 9016f02312 | |||
| 2b190b1359 | |||
| 007182c2ae | |||
| aeabf66c16 | |||
| 7e2eb109ee | |||
| ef2a66a993 | |||
| 6b1280f163 | |||
| 3286ed2048 | |||
| f19f76ae9a | |||
| e1d726afcf | |||
| ad69341954 | |||
| ef69fa6e29 | |||
| c56ff4a8f7 | |||
| bb2714e517 | |||
| 36c45da5ce | |||
| 628d7c0f9b | |||
| e9771fda98 | |||
| a9375cc95d | |||
| be0f5bf384 | |||
| 4928e13799 | |||
| ad964b8a7b | |||
| a2624c32c2 | |||
| 96d8c696ce | |||
| 0bbd045329 | |||
| 6db00e4208 | |||
| db52f45c68 | |||
| 516878be1e | |||
| cf81547d49 | |||
| 58be0534b2 | |||
| 09f011a628 | |||
| a30670f7b1 | |||
| b0b228f7b9 | |||
| 2763a7d713 | |||
| f253646408 | |||
| 7d20a8a05c | |||
| 47013fc0bb | |||
| 038131c8b5 | |||
| 8925a12934 | |||
| 83668c6efa | |||
| 86e74d3eaf | |||
| 076b2ce86c | |||
| b3391165f1 | |||
| cf9b51f4f1 | |||
| f4f2b26ec5 | |||
| 281afcd067 | |||
| b48d546c97 | |||
| e85a54d931 | |||
| c67bc65cbe | |||
| f8adbd6a02 | |||
| 2c39e251b4 | |||
| cd20b15196 | |||
| a364ab036c | |||
| 46d0e6fb17 | |||
| 7eb1327487 | |||
| f5dc0e4110 | |||
| 312ada2856 | |||
| 4f87a0dccc | |||
| 2726791626 | |||
| 8db39dc10a | |||
| ebd57374cb | |||
| c444939ec7 | |||
| bc6e8366a9 | |||
| 09249fe5c9 | |||
| 863b49bd9c | |||
| 593a3e84c0 | |||
| fa6008c687 | |||
| 15624257cb | |||
| 5753b2da0b | |||
| 4ed1199524 | |||
| f88a9ef3fb | |||
| 43625959f7 | |||
| 4d06e61a53 | |||
| ea5534f864 | |||
| faecf14df6 | |||
| 8afed3b9fc | |||
| 75366c60ff | |||
| 65e18e9ea8 | |||
| 5d72721e5c | |||
| 4866f01b4a | |||
| 1501cc8cea | |||
| a9e3abe0b4 | |||
| 485cb391de | |||
| c3056feed8 | |||
| f844dbcace | |||
| cc4d45b916 | |||
| 630fc6ee7e | |||
| 54947d0dad | |||
| e114543f69 | |||
| 36b0ddeed4 | |||
| 7fe52ca7d9 | |||
| 24b048c2cf | |||
| 6dc36a0101 | |||
| dadac0b3b3 | |||
| fdcc0f46cc | |||
| 51c6d453e1 | |||
| 33314c72f3 | |||
| 79cf3f0884 | |||
| 921383f789 | |||
| b4cdee0a73 | |||
| 8bcfa47d9b | |||
| e0d470b5a6 | |||
| 1958705818 | |||
| 8f83cfbe91 | |||
| 0f035ff23b | |||
| 5a0fba7e7e | |||
| 6ae95cc856 | |||
| c42cd0d1b3 | |||
| 3ab2851d2a | |||
| 012a51e958 | |||
| 5fe44ec90d | |||
| ee1692e740 | |||
| 9d7e30f9b8 | |||
| 408d3ca000 | |||
| 9d656f584a | |||
| 01dd64a8c8 | |||
| f28a448513 | |||
| 01c33e8a01 | |||
| 67205358fc | |||
| e311b14364 | |||
| ea8bda2526 | |||
| b3b6da8b72 | |||
| 37e289a131 | |||
| 0aff48f3a4 | |||
| e660329ab1 | |||
| 53f32cbd8a | |||
| ba6446ecaf | |||
| a89aa3131b | |||
| e1b4fa3029 | |||
| d2a5725cd5 | |||
| 07728bfaee | |||
| b9625c16b6 | |||
| 6e698a4563 | |||
| cefe46ad16 | |||
| e9e2def9b0 | |||
| ed999df32a | |||
| 970cc1c968 | |||
| 2f81316ad1 | |||
| b7df65036f | |||
| 050504c371 | |||
| 71712c9424 | |||
| d04b36808d | |||
| 97f258fabb | |||
| 5f4d14ebbe | |||
| 77848edc26 | |||
| 400d887474 | |||
| 4021470fd3 | |||
| b4d495892d | |||
| b503008c6a | |||
| 040bd939b2 | |||
| bf0ddcb332 | |||
| 1b2a3392d9 | |||
| 9c105fc680 | |||
| 09ece44093 | |||
| 05dbe4dcb0 | |||
| 78e1682d36 | |||
| 7c460e50c5 | |||
| 7a8115a92c | |||
| 151543d0b6 | |||
| 0dd51bbdbd | |||
| b094ce466b | |||
| 4ae7426d09 | |||
| 4a2acd8c7e | |||
| 0693cb2220 | |||
| 724d76c765 | |||
| 4c8c9ef9a0 | |||
| d87ea7704d | |||
| e832010c51 | |||
| 615702a5c1 | |||
| eee432c616 | |||
| 14fabc127a | |||
| 93b06d08b4 | |||
| 188280a76f | |||
| 903441b159 | |||
| 38eaf9f365 | |||
| 07950882c6 | |||
| c02352a5c4 | |||
| 34b082a296 | |||
| 443b5044a5 | |||
| 1824a69d7a | |||
| 2a44c5192c | |||
| bfe5eed065 | |||
| 2c33a00afb | |||
| 3367853670 | |||
| 9ea4a1c8f5 | |||
| ba41c237a4 | |||
| f802bf65a1 | |||
| 1287d5ed97 | |||
| 1ee988357f | |||
| 4a7fee7be0 | |||
| bf6c05f449 | |||
| 9038daab26 | |||
| cccaf2648a | |||
| 5e64c36b8a | |||
| 3adf4006a7 | |||
| 1d2d89aa60 | |||
| 51793f4a89 | |||
| 9955ec862e | |||
| 6ea9d495b8 | |||
| 5cece750f5 | |||
| 2d58b91a9c | |||
| b3b781f9fc | |||
| 5c53773caf | |||
| 1f6c3ff2f4 | |||
| 133d528c67 | |||
| 4d0a6fec12 | |||
| 4d3c6ac7d3 | |||
| 05f38de60e | |||
| fdee5d95b7 | |||
| c50253c834 | |||
| 1384c7e685 | |||
| 10fbf4d8ca | |||
| ba4dfc998d | |||
| e41831dde4 | |||
| fb50bf6c32 | |||
| 8f9f666c90 | |||
| 9dce25dea5 | |||
| bd4f3fa5c4 | |||
| 6bbf934a3e | |||
| 5c66e926b6 | |||
| 61b865f72c | |||
| 215e7a00a2 | |||
| 715b7649bd | |||
| 4a817f0753 | |||
| b2d016f3da | |||
| 682e430ce0 | |||
| ffd3e38977 | |||
| 731e813ac8 | |||
| 85c123b5b1 | |||
| b2fd028829 | |||
| a424b206f6 | |||
| c74a93d017 | |||
| 96aec10056 | |||
| 6c56155188 | |||
| 5cea248b8b | |||
| 1b75cdd4c7 | |||
| ed64a00a57 | |||
| d395fa4024 | |||
| 54a70ffb8c | |||
| 4474ee420a | |||
| de5da04c5f | |||
| 6cc32cbb9e | |||
| 3b246aca22 | |||
| d98e3d6b60 | |||
| 7ef0866c93 | |||
| c58d4eef1e | |||
| 1de5024830 | |||
| c0e462c5d1 | |||
| d17b16b697 | |||
| 7bfc8766bc | |||
| ab0c861479 | |||
| 7a94695536 | |||
| 59d8944377 | |||
| 2ecbeaf815 | |||
| 226f0f6fdc | |||
| 8347921cfa | |||
| 4f336e2c97 | |||
| b66705e52c | |||
| d221a3839d | |||
| 0e4c5bfdbe | |||
| a1bc21b045 | |||
| e9cd73e2f3 | |||
| 9251e27e76 | |||
| 9330414966 | |||
| 71ec5d19df | |||
| 551a610ed1 | |||
| d14e8ea454 | |||
| d58181c60b | |||
| ef7383d32a | |||
| 3aeb4f03bd | |||
| ac9387b049 | |||
| 8be4ad990a | |||
| 032be8a19b | |||
| bd49223246 | |||
| 7e58c03d6c | |||
| 5a76642ddf | |||
| 697664c813 | |||
| fb8642bce5 | |||
| d2cabfdf9b | |||
| 0c3c77269d | |||
| 6c41ae0a0c | |||
| d6ed445589 | |||
| 5a3010310b | |||
| dedb3c5121 | |||
| 3215955fd0 | |||
| 19f65e6c6b | |||
| 5b2d591bcb | |||
| 6d276b3254 | |||
| 68d3425577 | |||
| 08bf2b2723 | |||
| 5dce59a4cf | |||
| 72250eed86 | |||
| 49e0d5d5e3 | |||
| fd602f4620 | |||
| fb7abd481b | |||
| 7e06e9ff4a | |||
| 416ea17252 | |||
| f8fb37424e | |||
| a6df2c2e5f | |||
| 04b4210605 | |||
| e1bde19170 | |||
| 5cf3a84aee | |||
| 1c712d947a | |||
| 1b607c2266 | |||
| cddf3e1679 | |||
| eb2dc3ab87 | |||
| f483e32922 | |||
| 83f22aae0e | |||
| 0e33a45653 | |||
| 18174ef082 | |||
| 6720f29ccf | |||
| 9044a8edb3 | |||
| 86a8740b67 | |||
| 49a1b113ad | |||
| f733078c91 | |||
| eeff6a0839 | |||
| 9170eb5aab | |||
| 783cca4ee3 | |||
| 49b2521492 | |||
| 3075ec4341 | |||
| b408c5f485 | |||
| 12e4ff0d19 | |||
| 8d5eaee1c9 | |||
| 0c9bd492a0 | |||
| db99a96d1e | |||
| c737ead6f4 | |||
| 7cc4ceae64 | |||
| af497cf64c | |||
| 05d38f44cc | |||
| 776ecc8b9d | |||
| d7ef29dcbd | |||
| 185f71c40d | |||
| 6d12bf2020 | |||
| 8f81bfd412 | |||
| eabab3de5a | |||
| 782d74e053 | |||
| e7d43de4ed | |||
| 21cec9df42 | |||
| 35f730f16b | |||
| b178d86aab | |||
| d9fe1c6aa1 | |||
| 490a186269 | |||
| 886c6635e2 | |||
| c504285645 | |||
| 251d6f3e6d | |||
| 73c07a1f72 | |||
| c7bb198fe2 | |||
| 093f30a3fe | |||
| e7682e584a | |||
| 12e3dc19a6 | |||
| fd29b2ad1c | |||
| 8f031d5431 | |||
| 8b085f23ca | |||
| 6226c65506 | |||
| 344817fa8a | |||
| bffe6c274e | |||
| af778921f0 | |||
| eddf533b0a | |||
| be7c8bb2c2 | |||
| 0b393d6716 | |||
| 44ddbc657b | |||
| d04350adeb | |||
| d1dd5f0a08 | |||
| 1150662ecc | |||
| 76035b1339 | |||
| 535037f521 | |||
| 010758adb2 | |||
| 53c8f1056f | |||
| 059518944a | |||
| 93b89cae76 | |||
| 0300e588d5 | |||
| 612d671fbc | |||
| 603cc5c6e6 | |||
| 009fca2bb4 | |||
| 5b6519cb42 | |||
| dc92d40c44 | |||
| 2e490b8b29 | |||
| 635f4f2c64 | |||
| 1d7908e7f7 | |||
| 42d9cf7dff | |||
| cb1e1bc1ca | |||
| 49436db62a | |||
| 7911272ea2 | |||
| 3751c84008 | |||
| 5dd05d5a21 | |||
| 3703965f09 | |||
| f332f25f95 | |||
| 9cfc7cce93 | |||
| ba3d4c3449 | |||
| da5abcf6ba | |||
| 4a7b983bbf | |||
| 5fa5c2ed74 | |||
| 3090cf62fe | |||
| 7111a5c1a9 | |||
| 5a5e4020fa | |||
| f480eefc6b | |||
| 269fe00559 | |||
| 4014622ee9 | |||
| 6644a83d10 | |||
| 409bd4de70 | |||
| dae5d69789 | |||
| 56043dc26b | |||
| c186da462f | |||
| a4a7b67871 | |||
| 3e117f45c3 | |||
| 50fde5927d | |||
| 2b94ab066d | |||
| a2aa8324a4 | |||
| 14a4e75ccd | |||
| 7eef630957 | |||
| 1929455fba | |||
| f39ae19ef3 | |||
| e9cef979c1 | |||
| 9c850a8942 | |||
| eb04d38327 | |||
| 96eeb9812c | |||
| cd1f8ac253 | |||
| c476a2ecfc | |||
| 064f325bce | |||
| b7b35426b9 | |||
| c07fcc1383 | |||
| 70ec102175 | |||
| 5cb39510c0 | |||
| 5f19bece4c | |||
| 594b0a31ab | |||
| e072f9a1e5 | |||
| 114cda373e | |||
| fd5a71b0cb | |||
| bdc05176e9 | |||
| 628344cb79 | |||
| fcf01f3d30 | |||
| eef2618dc8 | |||
| 67e13a8014 | |||
| ab34dd9ca9 | |||
| 89d793478f | |||
| 57512f8b54 | |||
| e548b53474 | |||
| 990ec2171c | |||
| 1b1834e8be | |||
| 54c489cb73 | |||
| 15a18acddc | |||
| 87bf65cbb6 | |||
| fbda4556a8 | |||
| 81fb0527dc | |||
| 193173bf1f | |||
| 974d440d73 | |||
| 251aa8e3b1 | |||
| c536d23cd5 | |||
| 9e8badd3a0 | |||
| 36a40748e1 | |||
| 52f29243e1 | |||
| b59d5522d6 | |||
| e239bb1734 | |||
| fb94121fbc | |||
| 60546676cf | |||
| 7755bba3f0 | |||
| 6cfe146bf7 | |||
| bb8c661c9d | |||
| f7dad24fbc | |||
| dd8a49c15e | |||
| 75a917faee | |||
| 1946377765 | |||
| b085489d88 | |||
| a83fefb70c | |||
| c3303a2517 | |||
| bd6ec36735 | |||
| 1036a833d9 | |||
| c5fc40990b | |||
| 813d4754fd | |||
| ad5644829f | |||
| 120604f429 | |||
| 71d49c63c4 | |||
| 9551b113bc | |||
| 6989ee3a2e | |||
| 257f5e3655 | |||
| 280d8c1d5d | |||
| 61225707fe | |||
| 1775e5e042 | |||
| 0a85771b07 | |||
| 993cc5c7a3 | |||
| 3a4546b910 | |||
| f4c126ba1d | |||
| 1773a53f62 | |||
| 470559c68a | |||
| 5467d64c2a | |||
| 6d819631e9 | |||
| 21e609d5b7 | |||
| 6dbefdab52 | |||
| 57e5e322fc | |||
| 4ba226fdd0 | |||
| 5de2c6fbd3 | |||
| e10317e53e | |||
| 7d2c082b1a | |||
| b9a87c8fc0 | |||
| fc32b26906 | |||
| 8d34226d31 | |||
| 302b1c4bec | |||
| dcba9ebe59 | |||
| 6eab1a9b0c | |||
| 42d68af1d1 | |||
| f0542ff914 | |||
| 8a436292d8 | |||
| c1e19bd258 | |||
| 7ca5bce01d | |||
| 7863792b6b | |||
| 866827bf78 | |||
| f030e2a793 | |||
| d5abaa68e0 | |||
| b5afaf51bd | |||
| 03c5a27bf4 | |||
| 78da89dc64 | |||
| ee8dd77f75 | |||
| ec7e6c6de8 | |||
| a3ed90bb6c | |||
| 00067c196e | |||
| a0459f2008 | |||
| 006d30e7ac | |||
| 0c32b5c061 | |||
| ca664bc4e9 | |||
| 3ead833be8 | |||
| 44aa24d71b | |||
| 4d53caffe9 | |||
| 5efa1f7c65 | |||
| dd4f38980c | |||
| ce9830f4b7 | |||
| f2cde6fe5d | |||
| 8237dedfee | |||
| fa8f0918f0 | |||
| eac3177bc1 | |||
| a727aabc50 | |||
| 0e744d43dc | |||
| 09cb29fbb6 | |||
| f367460381 | |||
| c927eb443e | |||
| b02ed89582 | |||
| c3dd17d66c | |||
| 06db98f7d7 | |||
| a6436e6c90 | |||
| f0ec46b98f | |||
| 6f420fb2d6 | |||
| b803fa1628 | |||
| 82b7f70bf4 | |||
| 50978a0b6a | |||
| 344816b106 | |||
| 3318054d95 | |||
| ca0cd9a253 | |||
| 209a25197d | |||
| 8c4d14e892 | |||
| 2f31d18184 | |||
| 8fa7806c77 | |||
| a3f2fa69b0 | |||
| 0fab420435 | |||
| 436f4e0757 | |||
| 86254f78ea | |||
| 0da9b1ffc9 | |||
| 28ff610968 | |||
| 9a688af4ee | |||
| ae0a52faaa | |||
| 76fe2687d5 | |||
| e14ee4ce58 | |||
| fcaa1b1078 | |||
| 07ee3b4e29 | |||
| 22ed3e491a | |||
| 656f1a97da | |||
| 9398995df6 | |||
| d4bd146ab5 | |||
| 90887b82ee | |||
| aaf191d026 | |||
| b0288f3f3a | |||
| 91a59aa1d6 | |||
| 912ecb4d73 | |||
| 50d28776fc | |||
| 4becfc43c8 | |||
| 16a6a4730a | |||
| db3db60f7d | |||
| 7c48c3c060 | |||
| 0724fdfa75 | |||
| 290c3851f1 | |||
| 29c3c0a42d | |||
| 08c5c9fd52 | |||
| 649ec3ad84 | |||
| 6bc05947bc | |||
| a14e1e3933 | |||
| 8e2173b1d2 | |||
| 561f8bd698 | |||
| 3385b1702e | |||
| 372f31d6f3 | |||
| 49fbc2b157 | |||
| fb70228496 | |||
| 51faf98dee | |||
| 5a504a9e11 | |||
| 7f428b50b7 | |||
| 065d0c8364 | |||
| eb8f8daecb | |||
| fd87f11c24 | |||
| 097b999c6c | |||
| ee809c7098 | |||
| 180aff354a | |||
| a7d4c04104 | |||
| 28aadeecdc | |||
| 2780a3f5fc | |||
| 8f17261d25 | |||
| 443528d31b | |||
| 920fe9fcaf | |||
| bb52365f1a | |||
| 82db8939ee | |||
| df33ac3d4c | |||
| 49c067f1a0 | |||
| 4d4084c560 | |||
| 58933a99c1 | |||
| 7a8868f00a | |||
| 4afe9581ab | |||
| 9f4b6432da | |||
| a1a0d9a49d | |||
| 874a2eaf55 | |||
| 9cb5d53238 | |||
| 6c71cb9758 | |||
| 08264ea23b | |||
| ddff72647a | |||
| f8d17f7225 | |||
| 5f724f2f3b | |||
| 11b153215d | |||
| 846a5fe4f1 | |||
| 16023079de | |||
| 7be338eca0 | |||
| b652d769bf | |||
| 7647cb357e | |||
| 96666fb36a | |||
| dd2e755837 | |||
| 8e47727dab | |||
| 9e0825e908 | |||
| 155ac544d5 | |||
| d35f34c282 | |||
| 348aae8680 | |||
| f7046b2599 | |||
| b36082baa4 | |||
| f47906fbf5 | |||
| 791325ae6c | |||
| 981a7785be | |||
| bed436f084 | |||
| e9686d7015 | |||
| 8427722a9e | |||
| 961f188766 | |||
| 2477185155 | |||
| cebf5c6673 | |||
| e19e3b6e9e | |||
| ebe4e916f1 | |||
| 34ab2f0006 | |||
| 9ab33a1328 | |||
| 1b8ee2a01b | |||
| 2f2607a256 | |||
| e8a63fdaba | |||
| 51b2bf5ab1 | |||
| 0af9124a00 | |||
| 4bfc5e542e | |||
| 96c20af86a | |||
| e5bc3566e0 | |||
| d4922edcaf | |||
| a2f5e222b7 | |||
| 9bea72dcb9 | |||
| 960e55c3df | |||
| d9b5ed15b6 | |||
| ce0e1f248d | |||
| 039d39243e | |||
| f467b170b9 | |||
| f4f421fa84 | |||
| 7874175e2c | |||
| 4678c59ea6 | |||
| 454787d14e | |||
| ba77ab80e0 | |||
| f665b0bb4a | |||
| c35d76a066 | |||
| e13b7dc4be | |||
| 9978722410 | |||
| 29a61a2c15 | |||
| 04ea8275ff | |||
| f50e20a23b | |||
| ef20b03596 | |||
| a24b47ce8f | |||
| d5408b8821 | |||
| f6372807e0 | |||
| ab911906a2 | |||
| 6655d8038b | |||
| d979e7a72c | |||
| 3ea0250389 | |||
| b92015b342 | |||
| a19dd8f9d2 | |||
| 35332cda8e | |||
| d29c037725 | |||
| 119fff55dd | |||
| b8ebff5722 | |||
| 08c5c11998 | |||
| 245f03b768 | |||
| 1bd8b2306e | |||
| 0e3973f02a | |||
| 6264006089 | |||
| ad654ec04e | |||
| 2d81fc0898 | |||
| d256e1c021 | |||
| 94c1fe8096 | |||
| 60e9031391 | |||
| 3098a1570f | |||
| cca7a6dd68 | |||
| 6ab47dd350 | |||
| 0b76235280 | |||
| 55ffc77cc6 | |||
| c1bbd6a05c | |||
| 7bde173381 | |||
| c8642dc921 | |||
| c8cb29c92a | |||
| 41d9ee90d5 | |||
| 2244cc3a54 | |||
| 664917cca0 | |||
| 57793dba2a | |||
| 820603ef70 | |||
| a0d7ca9b3f | |||
| 7845c53359 | |||
| efefda0c5f | |||
| b6ec0e7940 | |||
| 939c648820 | |||
| f7d55f0aaf | |||
| a0ad0d2515 | |||
| 1a95986243 | |||
| ce3a6c788f | |||
| ae53b6879f | |||
| 48cbcd8df5 | |||
| 98bad24a00 | |||
| 63a5affbda | |||
| f30f961fa1 | |||
| 6ab52c7ee4 | |||
| 128e8c54bd | |||
| 1f992ca3fd | |||
| da98ba3d73 | |||
| 9b312b9402 | |||
| b312f97929 | |||
| 98a38a3994 | |||
| 0402d10e22 | |||
| e0ce29da98 | |||
| 7038c4c371 | |||
| adca4b84cc | |||
| 75c9ffa2b4 | |||
| f93086848c | |||
| b384f6ac72 | |||
| 7a4b44c8f2 | |||
| 7e0882cb35 | |||
| c36671d72c | |||
| c17e376337 | |||
| d57599c1e1 | |||
| 73c5bebd14 | |||
| 27f466ddae | |||
| a7364f8f2d | |||
| 0379df566f | |||
| 8edf9bc7fe | |||
| 95f44f8de7 | |||
| db302c8414 | |||
| d666c843b1 | |||
| df77129ed9 | |||
| 69312b4f9c | |||
| ee7ee73aa4 | |||
| 0e4acd26ca | |||
| 040d304d0f |
+27
@@ -0,0 +1,27 @@
|
||||
# This file specifies intentionally untracked files that all Moodle git
|
||||
# repositories should ignore. It is recommended not to modify this file in your
|
||||
# local clone. Instead, use .git/info/exclude and add new records there as
|
||||
# needed.
|
||||
#
|
||||
# Example: if you deploy a contributed plugin mod/foobar into your site, put
|
||||
# the following line into .git/info/exclude file in your Moodle clone:
|
||||
# /mod/foobar/
|
||||
#
|
||||
# See gitignore(5) man page for more details
|
||||
#
|
||||
/config.php
|
||||
/lib/editor/tinymce/extra/tools/temp/
|
||||
*~
|
||||
*.swp
|
||||
/tags
|
||||
/TAGS
|
||||
/cscope.*
|
||||
/.patches/
|
||||
/.idea/
|
||||
/nbproject/
|
||||
CVS
|
||||
.DS_Store
|
||||
/.settings/
|
||||
/.project
|
||||
/.buildpath
|
||||
/.cache
|
||||
+1
-1
@@ -24,7 +24,7 @@ a few minutes:
|
||||
|
||||
For more information, see the INSTALL DOCUMENTATION:
|
||||
|
||||
http://docs.moodle.org/en/Installing_Moodle
|
||||
http://docs.moodle.org/19/en/Installing_Moodle
|
||||
|
||||
A local copy can also be found in
|
||||
|
||||
|
||||
+22
-20
@@ -241,10 +241,13 @@
|
||||
|
||||
if ($CFG->longtimenosee) { // value in days
|
||||
$cuttime = $timenow - ($CFG->longtimenosee * 3600 * 24);
|
||||
$rs = get_recordset_sql ("SELECT id, userid, courseid
|
||||
FROM {$CFG->prefix}user_lastaccess
|
||||
WHERE courseid != ".SITEID."
|
||||
AND timeaccess < $cuttime ");
|
||||
$rs = get_recordset_sql ("SELECT la.id, la.userid, la.courseid
|
||||
FROM {$CFG->prefix}user_lastaccess la
|
||||
JOIN {$CFG->prefix}course c
|
||||
ON c.id = la.courseid
|
||||
WHERE la.courseid != ".SITEID."
|
||||
AND la.timeaccess < $cuttime
|
||||
AND c.metacourse = 0 ");
|
||||
while ($assign = rs_fetch_next_record($rs)) {
|
||||
if ($context = get_context_instance(CONTEXT_COURSE, $assign->courseid)) {
|
||||
if (role_unassign(0, $assign->userid, 0, $context->id)) {
|
||||
@@ -348,25 +351,24 @@
|
||||
mtrace('checking for create_password');
|
||||
if (count_records('user_preferences', 'name', 'create_password', 'value', '1')) {
|
||||
mtrace('creating passwords for new users');
|
||||
$newusers = get_records_sql("SELECT u.id as id, u.email, u.firstname,
|
||||
u.lastname, u.username,
|
||||
p.id as prefid
|
||||
FROM {$CFG->prefix}user u
|
||||
JOIN {$CFG->prefix}user_preferences p ON u.id=p.userid
|
||||
WHERE p.name='create_password' AND p.value='1' AND u.email !='' ");
|
||||
|
||||
foreach ($newusers as $newuserid => $newuser) {
|
||||
$newuser->emailstop = 0; // send email regardless
|
||||
// email user
|
||||
if (setnew_password_and_mail($newuser)) {
|
||||
// remove user pref
|
||||
delete_records('user_preferences', 'id', $newuser->prefid);
|
||||
} else {
|
||||
trigger_error("Could not create and mail new user password!");
|
||||
$newuserssql = "SELECT u.id as id, u.email, u.firstname, u.lastname, u.username, p.id as prefid
|
||||
FROM {$CFG->prefix}user u
|
||||
JOIN {$CFG->prefix}user_preferences p ON u.id=p.userid
|
||||
WHERE p.name='create_password' AND p.value='1' AND u.email !='' ";
|
||||
if ($newusers = get_records_sql($newuserssql)) {
|
||||
foreach ($newusers as $newuserid => $newuser) {
|
||||
$newuser->emailstop = 0; // send email regardless
|
||||
// email user
|
||||
if (setnew_password_and_mail($newuser)) {
|
||||
// remove user pref
|
||||
delete_records('user_preferences', 'id', $newuser->prefid);
|
||||
} else {
|
||||
trigger_error("Could not create and mail new user password!");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (!empty($CFG->usetags)) {
|
||||
require_once($CFG->dirroot.'/tag/lib.php');
|
||||
tag_cron();
|
||||
|
||||
@@ -185,6 +185,8 @@
|
||||
<ON_CHECK message="ctyperecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="pcre" level="required">
|
||||
</PHP_EXTENSION>
|
||||
</PHP_EXTENSIONS>
|
||||
<CUSTOM_CHECKS>
|
||||
<CUSTOM_CHECK file="question/upgrade.php" function="question_check_no_rqp_questions" level="optional">
|
||||
@@ -282,6 +284,24 @@
|
||||
<ON_CHECK message="simplexmlrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="spl" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="splrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="pcre" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="dom" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="xml" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="intl" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="intlrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="json" level="required">
|
||||
</PHP_EXTENSION>
|
||||
</PHP_EXTENSIONS>
|
||||
<PHP_SETTINGS>
|
||||
<PHP_SETTING name="memory_limit" value="40M" level="required">
|
||||
@@ -301,6 +321,353 @@
|
||||
</PHP_SETTING>
|
||||
</PHP_SETTINGS>
|
||||
<CUSTOM_CHECKS>
|
||||
<CUSTOM_CHECK file="lib/customcheckslib.php" function="php_check_php533" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="php533warning" />
|
||||
</FEEDBACK>
|
||||
</CUSTOM_CHECK>
|
||||
</CUSTOM_CHECKS>
|
||||
</MOODLE>
|
||||
<MOODLE version="2.1" requires="1.9">
|
||||
<UNICODE level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="unicoderequired" />
|
||||
</FEEDBACK>
|
||||
</UNICODE>
|
||||
<DATABASE level="required">
|
||||
<VENDOR name="mysql" version="5.0.25">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="mysql416required" />
|
||||
</FEEDBACK>
|
||||
</VENDOR>
|
||||
<VENDOR name="postgres" version="8.3" />
|
||||
<VENDOR name="mssql" version="9.0" />
|
||||
<VENDOR name="odbc_mssql" version="9.0" />
|
||||
<VENDOR name="mssql_n" version="9.0" />
|
||||
<VENDOR name="oracle" version="10.2" />
|
||||
<VENDOR name="sqlite" version="2.0" />
|
||||
</DATABASE>
|
||||
<PHP version="5.3.2" level="required">
|
||||
</PHP>
|
||||
<PHP_EXTENSIONS>
|
||||
<PHP_EXTENSION name="iconv" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="iconvrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="mbstring" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="mbstringrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="curl" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="curlrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="openssl" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="opensslrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="tokenizer" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="tokenizerrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="xmlrpc" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="xmlrpcrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="soap" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="soaprecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="ctype" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="ctyperequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="zip" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="ziprequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="gd" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="gdrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="simplexml" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="simplexmlrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="spl" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="splrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="pcre" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="dom" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="xml" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="intl" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="intlrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="json" level="required">
|
||||
</PHP_EXTENSION>
|
||||
</PHP_EXTENSIONS>
|
||||
<PHP_SETTINGS>
|
||||
<PHP_SETTING name="memory_limit" value="40M" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="settingmemorylimit" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
<PHP_SETTING name="safe_mode" value="0" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="settingsafemode" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
<PHP_SETTING name="file_uploads" value="1" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="settingfileuploads" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
</PHP_SETTINGS>
|
||||
</MOODLE>
|
||||
<MOODLE version="2.2" requires="1.9">
|
||||
<UNICODE level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="unicoderequired" />
|
||||
</FEEDBACK>
|
||||
</UNICODE>
|
||||
<DATABASE level="required">
|
||||
<VENDOR name="mysql" version="5.0.25">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="mysql416required" />
|
||||
</FEEDBACK>
|
||||
</VENDOR>
|
||||
<VENDOR name="postgres" version="8.3" />
|
||||
<VENDOR name="mssql" version="9.0" />
|
||||
<VENDOR name="odbc_mssql" version="9.0" />
|
||||
<VENDOR name="mssql_n" version="9.0" />
|
||||
<VENDOR name="oracle" version="10.2" />
|
||||
<VENDOR name="sqlite" version="2.0" />
|
||||
</DATABASE>
|
||||
<PHP version="5.3.2" level="required">
|
||||
</PHP>
|
||||
<PHP_EXTENSIONS>
|
||||
<PHP_EXTENSION name="iconv" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="iconvrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="mbstring" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="mbstringrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="curl" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="curlrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="openssl" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="opensslrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="tokenizer" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="tokenizerrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="xmlrpc" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="xmlrpcrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="soap" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="soaprecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="ctype" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="ctyperequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="zip" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="ziprequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="gd" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="gdrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="simplexml" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="simplexmlrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="spl" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="splrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="pcre" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="dom" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="xml" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="intl" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="intlrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="json" level="required">
|
||||
</PHP_EXTENSION>
|
||||
</PHP_EXTENSIONS>
|
||||
<PHP_SETTINGS>
|
||||
<PHP_SETTING name="memory_limit" value="40M" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="settingmemorylimit" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
<PHP_SETTING name="safe_mode" value="0" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="settingsafemode" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
<PHP_SETTING name="file_uploads" value="1" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="settingfileuploads" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
</PHP_SETTINGS>
|
||||
</MOODLE>
|
||||
<MOODLE version="2.3" requires="2.2">
|
||||
<UNICODE level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="unicoderequired" />
|
||||
</FEEDBACK>
|
||||
</UNICODE>
|
||||
<DATABASE level="required">
|
||||
<VENDOR name="mysql" version="5.0.25">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="mysql416required" />
|
||||
</FEEDBACK>
|
||||
</VENDOR>
|
||||
<VENDOR name="postgres" version="8.3" />
|
||||
<VENDOR name="mssql" version="9.0" />
|
||||
<VENDOR name="odbc_mssql" version="9.0" />
|
||||
<VENDOR name="mssql_n" version="9.0" />
|
||||
<VENDOR name="oracle" version="10.2" />
|
||||
<VENDOR name="sqlite" version="2.0" />
|
||||
</DATABASE>
|
||||
<PHP version="5.3.2" level="required">
|
||||
</PHP>
|
||||
<PHP_EXTENSIONS>
|
||||
<PHP_EXTENSION name="iconv" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="iconvrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="mbstring" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="mbstringrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="curl" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="curlrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="openssl" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="opensslrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="tokenizer" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="tokenizerrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="xmlrpc" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="xmlrpcrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="soap" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="soaprecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="ctype" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="ctyperequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="zip" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="ziprequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="gd" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="gdrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="simplexml" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="simplexmlrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="spl" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="splrequired" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="pcre" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="dom" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="xml" level="required">
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="intl" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="intlrecommended" />
|
||||
</FEEDBACK>
|
||||
</PHP_EXTENSION>
|
||||
<PHP_EXTENSION name="json" level="required">
|
||||
</PHP_EXTENSION>
|
||||
</PHP_EXTENSIONS>
|
||||
<PHP_SETTINGS>
|
||||
<PHP_SETTING name="memory_limit" value="40M" level="required">
|
||||
<FEEDBACK>
|
||||
<ON_ERROR message="settingmemorylimit" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
<PHP_SETTING name="safe_mode" value="0" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="settingsafemode" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
<PHP_SETTING name="file_uploads" value="1" level="optional">
|
||||
<FEEDBACK>
|
||||
<ON_CHECK message="settingfileuploads" />
|
||||
</FEEDBACK>
|
||||
</PHP_SETTING>
|
||||
</PHP_SETTINGS>
|
||||
</MOODLE>
|
||||
</COMPATIBILITY_MATRIX>
|
||||
|
||||
+7
-7
@@ -47,7 +47,7 @@
|
||||
|
||||
/// Check some PHP server settings
|
||||
|
||||
$documentationlink = '<a href="http://docs.moodle.org/en/Installation">Installation docs</a>';
|
||||
$documentationlink = '<a href="http://docs.moodle.org/19/en/Installation">Installation docs</a>';
|
||||
|
||||
if (ini_get_bool('session.auto_start')) {
|
||||
error("The PHP server variable 'session.auto_start' should be Off - $documentationlink");
|
||||
@@ -143,7 +143,7 @@
|
||||
print_box(text_to_html(get_string('gpl')), 'copyrightnotice');
|
||||
echo "<br />";
|
||||
notice_yesno(get_string('doyouagree'), "index.php?agreelicense=1",
|
||||
"http://docs.moodle.org/en/License");
|
||||
"http://docs.moodle.org/dev/License");
|
||||
print_footer('none');
|
||||
exit;
|
||||
}
|
||||
@@ -152,7 +152,7 @@
|
||||
$navigation = build_navigation(array(array('name'=>$strcurrentrelease, 'link'=>null, 'type'=>'misc')));
|
||||
print_header($strcurrentrelease, $strcurrentrelease, $navigation, "", "", false, " ", " ");
|
||||
print_heading("Moodle $release");
|
||||
print_box(get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/en/Release_Notes'), 'generalbox boxaligncenter boxwidthwide');
|
||||
print_box(get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/19/en/Release_Notes'), 'generalbox boxaligncenter boxwidthwide');
|
||||
echo '<form action="index.php"><div>';
|
||||
echo '<input type="hidden" name="agreelicense" value="1" />';
|
||||
echo '<input type="hidden" name="confirmrelease" value="1" />';
|
||||
@@ -286,7 +286,7 @@
|
||||
$navigation = build_navigation(array(array('name'=>$strcurrentrelease, 'link'=>null, 'type'=>'misc')));
|
||||
print_header($strcurrentrelease, $strcurrentrelease, $navigation, "", "", false, " ", " ");
|
||||
print_heading("Moodle $release");
|
||||
print_box(get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/en/Release_Notes'));
|
||||
print_box(get_string('releasenoteslink', 'admin', 'http://docs.moodle.org/19/en/Release_Notes'));
|
||||
|
||||
require_once($CFG->libdir.'/environmentlib.php');
|
||||
print_heading(get_string('environment', 'admin'));
|
||||
@@ -687,10 +687,10 @@
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
//// IT IS ILLEGAL AND A VIOLATION OF THE GPL TO HIDE, REMOVE OR MODIFY THIS COPYRIGHT NOTICE ///
|
||||
$copyrighttext = '<a href="http://moodle.org/">Moodle</a> '.
|
||||
'<a href="http://docs.moodle.org/en/Release" title="'.$CFG->version.'">'.$CFG->release.'</a><br />'.
|
||||
'<a href="http://docs.moodle.org/dev/Releases" title="'.$CFG->version.'">'.$CFG->release.'</a><br />'.
|
||||
'Copyright © 1999 onwards, Martin Dougiamas<br />'.
|
||||
'and <a href="http://docs.moodle.org/en/Credits">many other contributors</a>.<br />'.
|
||||
'<a href="http://docs.moodle.org/en/License">GNU Public License</a>';
|
||||
'and <a href="http://docs.moodle.org/dev/Credits">many other contributors</a>.<br />'.
|
||||
'<a href="http://docs.moodle.org/dev/License">GNU Public License</a>';
|
||||
print_box($copyrighttext, 'copyright');
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
@@ -130,7 +130,7 @@
|
||||
a.courseid
|
||||
FROM
|
||||
{$CFG->prefix}user u
|
||||
LEFT JOIN
|
||||
JOIN
|
||||
{$CFG->prefix}mnet_enrol_assignments a
|
||||
ON
|
||||
a.userid = u.id AND a.courseid={$courseid}
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
if (!defined('MOODLE_INTERNAL')) {
|
||||
die('Direct access to this script is forbidden.'); // It must be included from a Moodle page
|
||||
}
|
||||
$strmnetservices = get_string('mnetservices', 'mnet');
|
||||
$strmnetlog = get_string('mnetlog', 'mnet');
|
||||
$strmnetedithost = get_string('reviewhostdetails', 'mnet');
|
||||
$strmnetthemes = get_string('mnetthemes', 'mnet');
|
||||
|
||||
$logurl = $CFG->wwwroot.
|
||||
'/course/report/log/index.php?chooselog=1&showusers=1&showcourses=1&host_course='.$mnet_peer->id.
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
print_simple_box_start('center');
|
||||
|
||||
/// First, me get all the distinct backups for that course in backup_log
|
||||
$executions = get_records_sql("SELECT DISTINCT laststarttime,laststarttime
|
||||
$executions = get_records_sql("SELECT DISTINCT laststarttime
|
||||
FROM {$CFG->prefix}backup_log
|
||||
WHERE courseid = '$courseid'
|
||||
ORDER BY laststarttime DESC");
|
||||
|
||||
@@ -75,12 +75,12 @@
|
||||
.$param->extras
|
||||
." ORDER BY ".$param->orderby;
|
||||
}
|
||||
error_log($sql);
|
||||
|
||||
$courses = get_records_sql($sql, 0, $numcourses);
|
||||
|
||||
if (empty($courses)) {
|
||||
notify(get_string('statsnodata'));echo '</td></tr></table>';echo '<p>after notify</p>';
|
||||
notify(get_string('statsnodata'));
|
||||
echo '</td></tr></table>';
|
||||
|
||||
} else {
|
||||
if (empty($CFG->gdversion)) {
|
||||
|
||||
@@ -1050,8 +1050,7 @@ function report_security_check_riskadmin($detailed=false) {
|
||||
AND (sc.path = c.path OR sc.path LIKE ".sql_concat('c.path', "'/%'")." OR c.path LIKE ".sql_concat('sc.path', "'/%'").")
|
||||
AND u.id = ra.userid AND u.deleted = 0
|
||||
AND ra.contextid = sc.id AND ra.roleid = rc.roleid AND ra.contextid <> ".SYSCONTEXTID."
|
||||
GROUP BY u.id, u.firstname, u.lastname, u.picture, u.imagealt, u.email, ra.contextid, ra.roleid
|
||||
ORDER BY u.lastname, u.firstname";
|
||||
GROUP BY u.id, u.firstname, u.lastname, u.picture, u.imagealt, u.email, ra.contextid, ra.roleid";
|
||||
|
||||
$unsupcount = count_records_sql("SELECT COUNT('x') FROM ($sqlunsup) unsup");
|
||||
|
||||
@@ -1077,6 +1076,7 @@ function report_security_check_riskadmin($detailed=false) {
|
||||
$result->info = get_string('check_riskadmin_warning', 'report_security', $a);
|
||||
|
||||
if ($detailed) {
|
||||
$sqlunsup .= " ORDER BY u.lastname, u.firstname";
|
||||
$rs = get_recordset_sql($sqlunsup);
|
||||
$users = array();
|
||||
while ($user = rs_fetch_next_record($rs)) {
|
||||
@@ -1113,13 +1113,13 @@ function report_security_check_riskbackup($detailed=false) {
|
||||
$syscontext = get_context_instance(CONTEXT_SYSTEM);
|
||||
|
||||
$systemroles = get_records_sql(
|
||||
"SELECT DISTINCT r.*
|
||||
"SELECT DISTINCT r.id, r.name, r.shortname, r.sortorder
|
||||
FROM {$CFG->prefix}role r
|
||||
JOIN {$CFG->prefix}role_capabilities rc ON rc.roleid = r.id
|
||||
WHERE rc.capability = 'moodle/backup:userinfo' AND rc.contextid = $syscontext->id AND rc.permission = ".CAP_ALLOW."");
|
||||
|
||||
$overriddenroles = get_records_sql(
|
||||
"SELECT DISTINCT r.*, rc.contextid
|
||||
"SELECT DISTINCT r.id, r.name, r.shortname, r.sortorder, rc.contextid
|
||||
FROM {$CFG->prefix}role r
|
||||
JOIN {$CFG->prefix}role_capabilities rc ON rc.roleid = r.id
|
||||
WHERE rc.capability = 'moodle/backup:userinfo' AND rc.contextid <> $syscontext->id AND rc.permission = ".CAP_ALLOW."");
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
$straction = get_string('assignroles', 'role');
|
||||
$strroletoassign = get_string('roletoassign', 'role');
|
||||
$strsearch = get_string('search');
|
||||
$strshowall = get_string('showall');
|
||||
$strshowall = get_string('showallusers');
|
||||
$strparticipants = get_string('participants');
|
||||
$strsearchresults = get_string('searchresults');
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
|
||||
$temp->add(new admin_setting_configcheckbox('protectusernames', get_string('protectusernames', 'admin'), get_string('configprotectusernames', 'admin'), 1));
|
||||
$temp->add(new admin_setting_configcheckbox('forcelogin', get_string('forcelogin', 'admin'), get_string('configforcelogin', 'admin'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('forceloginforprofiles', get_string('forceloginforprofiles', 'admin'), get_string('configforceloginforprofiles', 'admin'), 1));
|
||||
$temp->add(new admin_setting_configcheckbox('forceloginforprofileimage', get_string('forceloginforprofileimage', 'admin'), get_string('forceloginforprofileimage_help', 'admin'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('opentogoogle', get_string('opentogoogle', 'admin'), get_string('configopentogoogle', 'admin'), 0));
|
||||
|
||||
$max_upload_choices = get_max_upload_sizes();
|
||||
@@ -67,6 +68,7 @@ if ($hassiteconfig) { // speedup for non-admins, add all caps used on this page
|
||||
$temp->add(new admin_setting_configcheckbox('cookiehttponly', get_string('cookiehttponly', 'admin'), get_string('configcookiehttponly', 'admin'), 0));
|
||||
$temp->add(new admin_setting_configcheckbox('regenloginsession', get_string('regenloginsession', 'admin'), get_string('configregenloginsession', 'admin'), 1));
|
||||
$temp->add(new admin_setting_configtext('excludeoldflashclients', get_string('excludeoldflashclients', 'admin'), get_string('configexcludeoldflashclients', 'admin'), '10.0.12', PARAM_TEXT));
|
||||
$temp->add(new admin_setting_configcheckbox('loginpasswordautocomplete', get_string('loginpasswordautocomplete', 'admin'), get_string('loginpasswordautocomplete_help', 'admin'), 0));
|
||||
$ADMIN->add('security', $temp);
|
||||
|
||||
|
||||
|
||||
@@ -558,7 +558,7 @@ if ($formdata = $mform->is_cancelled()) {
|
||||
continue;
|
||||
}
|
||||
// save custom profile fields data
|
||||
profile_save_data($user);
|
||||
profile_save_data(addslashes_recursive($user));
|
||||
|
||||
// make sure user context exists
|
||||
get_context_instance(CONTEXT_USER, $user->id);
|
||||
@@ -665,7 +665,7 @@ if ($formdata = $mform->is_cancelled()) {
|
||||
$newgroupdata = new object();
|
||||
$newgroupdata->name = $addgroup;
|
||||
$newgroupdata->courseid = $ccache[$shortname]->id;
|
||||
if ($ccache[$shortname]->groups[$addgroup]->id = groups_create_group($newgroupdata)){
|
||||
if ($ccache[$shortname]->groups[$addgroup]->id = groups_create_group(addslashes_recursive($newgroupdata))){
|
||||
$ccache[$shortname]->groups[$addgroup]->name = $newgroupdata->name;
|
||||
} else {
|
||||
$upt->track('enrolments', get_string('unknowngroup', 'error', $addgroup), 'error');
|
||||
|
||||
@@ -2,7 +2,7 @@ XMLDB - Base classes and edition interface.
|
||||
|
||||
Complete Documentation:
|
||||
|
||||
http://docs.moodle.org/en/XMLDB_Defining_one_XML_structure
|
||||
http://docs.moodle.org/19/en/XMLDB_Defining_one_XML_structure
|
||||
|
||||
Ciao, Eloy Lafuente (stronk7)
|
||||
|
||||
@@ -70,7 +70,7 @@ Once the XMLDB format was approved, we'll be able to build all the
|
||||
for each RDBMS flavour.
|
||||
|
||||
Once the interface was finished (2-3 days from now) related documentation
|
||||
will be sent to http://docs.moodle.org/en/XML_database_schema in order
|
||||
will be sent to http://docs.moodle.org/19/en/XML_database_schema in order
|
||||
to comment/modify/approve the final XML format.
|
||||
|
||||
All the code is, obviously GPL, with its copyrights and so on...
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
///////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/// This class will show all the reserved words in a format suitable to
|
||||
/// be pasted to: http://docs.moodle.org/en/XMLDB_reserved_words and
|
||||
/// http://docs.moodle.org/en/Database_reserved_words
|
||||
/// be pasted to: http://docs.moodle.org/19/en/XMLDB_reserved_words and
|
||||
/// http://docs.moodle.org/19/en/Database_reserved_words
|
||||
/// Also, it introspects te DB looking for such words and informing about
|
||||
|
||||
class view_reserved_words extends XMLDBAction {
|
||||
|
||||
+1531
-1617
File diff suppressed because it is too large
Load Diff
@@ -1,190 +0,0 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file CAS/PGTStorage/pgt-db.php
|
||||
* Basic class for PGT database storage
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class PGTStorageDB
|
||||
* The PGTStorageDB class is a class for PGT database storage. An instance of
|
||||
* this class is returned by CASClient::SetPGTStorageDB().
|
||||
*
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
*
|
||||
* @ingroup internalPGTStorageDB
|
||||
*/
|
||||
|
||||
class PGTStorageDB extends PGTStorage
|
||||
{
|
||||
/**
|
||||
* @addtogroup internalPGTStorageDB
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* a string representing a PEAR DB URL to connect to the database. Written by
|
||||
* PGTStorageDB::PGTStorageDB(), read by getURL().
|
||||
*
|
||||
* @hideinitializer
|
||||
* @private
|
||||
*/
|
||||
var $_url='';
|
||||
|
||||
/**
|
||||
* This method returns the PEAR DB URL to use to connect to the database.
|
||||
*
|
||||
* @return a PEAR DB URL
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function getURL()
|
||||
{
|
||||
return $this->_url;
|
||||
}
|
||||
|
||||
/**
|
||||
* The handle of the connection to the database where PGT's are stored. Written by
|
||||
* PGTStorageDB::init(), read by getLink().
|
||||
*
|
||||
* @hideinitializer
|
||||
* @private
|
||||
*/
|
||||
var $_link = null;
|
||||
|
||||
/**
|
||||
* This method returns the handle of the connection to the database where PGT's are
|
||||
* stored.
|
||||
*
|
||||
* @return a handle of connection.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function getLink()
|
||||
{
|
||||
return $this->_link;
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the table where PGT's are stored. Written by
|
||||
* PGTStorageDB::PGTStorageDB(), read by getTable().
|
||||
*
|
||||
* @hideinitializer
|
||||
* @private
|
||||
*/
|
||||
var $_table = '';
|
||||
|
||||
/**
|
||||
* This method returns the name of the table where PGT's are stored.
|
||||
*
|
||||
* @return the name of a table.
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function getTable()
|
||||
{
|
||||
return $this->_table;
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// DEBUGGING
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method returns an informational string giving the type of storage
|
||||
* used by the object (used for debugging purposes).
|
||||
*
|
||||
* @return an informational string.
|
||||
* @public
|
||||
*/
|
||||
function getStorageType()
|
||||
{
|
||||
return "database";
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns an informational string giving informations on the
|
||||
* parameters of the storage.(used for debugging purposes).
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function getStorageInfo()
|
||||
{
|
||||
return 'url=`'.$this->getURL().'\', table=`'.$this->getTable().'\'';
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// CONSTRUCTOR
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* The class constructor, called by CASClient::SetPGTStorageDB().
|
||||
*
|
||||
* @param $cas_parent the CASClient instance that creates the object.
|
||||
* @param $user the user to access the data with
|
||||
* @param $password the user's password
|
||||
* @param $database_type the type of the database hosting the data
|
||||
* @param $hostname the server hosting the database
|
||||
* @param $port the port the server is listening on
|
||||
* @param $database the name of the database
|
||||
* @param $table the name of the table storing the data
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function PGTStorageDB($cas_parent,$user,$password,$database_type,$hostname,$port,$database,$table)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
|
||||
// call the ancestor's constructor
|
||||
$this->PGTStorage($cas_parent);
|
||||
|
||||
if ( empty($database_type) ) $database_type = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE_TYPE;
|
||||
if ( empty($hostname) ) $hostname = CAS_PGT_STORAGE_DB_DEFAULT_HOSTNAME;
|
||||
if ( $port==0 ) $port = CAS_PGT_STORAGE_DB_DEFAULT_PORT;
|
||||
if ( empty($database) ) $database = CAS_PGT_STORAGE_DB_DEFAULT_DATABASE;
|
||||
if ( empty($table) ) $table = CAS_PGT_STORAGE_DB_DEFAULT_TABLE;
|
||||
|
||||
// build and store the PEAR DB URL
|
||||
$this->_url = $database_type.':'.'//'.$user.':'.$password.'@'.$hostname.':'.$port.'/'.$database;
|
||||
|
||||
// XXX should use setURL and setTable
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// INITIALIZATION
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method is used to initialize the storage. Halts on error.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
// if the storage has already been initialized, return immediatly
|
||||
if ( $this->isInitialized() )
|
||||
return;
|
||||
// call the ancestor's method (mark as initialized)
|
||||
parent::init();
|
||||
|
||||
//include phpDB library (the test was introduced in release 0.4.8 for
|
||||
//the integration into Tikiwiki).
|
||||
if (!class_exists('DB')) {
|
||||
include_once('DB.php');
|
||||
}
|
||||
|
||||
// try to connect to the database
|
||||
$this->_link = DB::connect($this->getURL());
|
||||
if ( DB::isError($this->_link) ) {
|
||||
phpCAS::error('could not connect to database ('.DB::errorMessage($this->_link).')');
|
||||
}
|
||||
var_dump($this->_link);
|
||||
phpCAS::traceBEnd();
|
||||
}
|
||||
|
||||
/** @} */
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -1,249 +1,283 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file CAS/PGTStorage/pgt-file.php
|
||||
* Basic class for PGT file storage
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class PGTStorageFile
|
||||
* The PGTStorageFile class is a class for PGT file storage. An instance of
|
||||
* this class is returned by CASClient::SetPGTStorageFile().
|
||||
*
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
*
|
||||
* @ingroup internalPGTStorageFile
|
||||
*/
|
||||
|
||||
class PGTStorageFile extends PGTStorage
|
||||
{
|
||||
/**
|
||||
* @addtogroup internalPGTStorageFile
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* a string telling where PGT's should be stored on the filesystem. Written by
|
||||
* PGTStorageFile::PGTStorageFile(), read by getPath().
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
var $_path;
|
||||
|
||||
/**
|
||||
* This method returns the name of the directory where PGT's should be stored
|
||||
* on the filesystem.
|
||||
*
|
||||
* @return the name of a directory (with leading and trailing '/')
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function getPath()
|
||||
{
|
||||
return $this->_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* a string telling the format to use to store PGT's (plain or xml). Written by
|
||||
* PGTStorageFile::PGTStorageFile(), read by getFormat().
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
var $_format;
|
||||
|
||||
/**
|
||||
* This method returns the format to use when storing PGT's on the filesystem.
|
||||
*
|
||||
* @return a string corresponding to the format used (plain or xml).
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function getFormat()
|
||||
{
|
||||
return $this->_format;
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// DEBUGGING
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method returns an informational string giving the type of storage
|
||||
* used by the object (used for debugging purposes).
|
||||
*
|
||||
* @return an informational string.
|
||||
* @public
|
||||
*/
|
||||
function getStorageType()
|
||||
{
|
||||
return "file";
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns an informational string giving informations on the
|
||||
* parameters of the storage.(used for debugging purposes).
|
||||
*
|
||||
* @return an informational string.
|
||||
* @public
|
||||
*/
|
||||
function getStorageInfo()
|
||||
{
|
||||
return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// CONSTRUCTOR
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* The class constructor, called by CASClient::SetPGTStorageFile().
|
||||
*
|
||||
* @param $cas_parent the CASClient instance that creates the object.
|
||||
* @param $format the format used to store the PGT's (`plain' and `xml' allowed).
|
||||
* @param $path the path where the PGT's should be stored
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function PGTStorageFile($cas_parent,$format,$path)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
// call the ancestor's constructor
|
||||
$this->PGTStorage($cas_parent);
|
||||
|
||||
if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;
|
||||
if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
|
||||
|
||||
// check that the path is an absolute path
|
||||
if (getenv("OS")=="Windows_NT"){
|
||||
|
||||
if (!preg_match('`^[a-zA-Z]:`', $path)) {
|
||||
phpCAS::error('an absolute path is needed for PGT storage to file');
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if ( $path[0] != '/' ) {
|
||||
phpCAS::error('an absolute path is needed for PGT storage to file');
|
||||
}
|
||||
|
||||
// store the path (with a leading and trailing '/')
|
||||
$path = preg_replace('|[/]*$|','/',$path);
|
||||
$path = preg_replace('|^[/]*|','/',$path);
|
||||
}
|
||||
|
||||
$this->_path = $path;
|
||||
// check the format and store it
|
||||
switch ($format) {
|
||||
case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:
|
||||
case CAS_PGT_STORAGE_FILE_FORMAT_XML:
|
||||
$this->_format = $format;
|
||||
break;
|
||||
default:
|
||||
phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');
|
||||
}
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// INITIALIZATION
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method is used to initialize the storage. Halts on error.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
// if the storage has already been initialized, return immediatly
|
||||
if ( $this->isInitialized() )
|
||||
return;
|
||||
// call the ancestor's method (mark as initialized)
|
||||
parent::init();
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// PGT I/O
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method returns the filename corresponding to a PGT Iou.
|
||||
*
|
||||
* @param $pgt_iou the PGT iou.
|
||||
*
|
||||
* @return a filename
|
||||
* @private
|
||||
*/
|
||||
function getPGTIouFilename($pgt_iou)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
$filename = $this->getPath().$pgt_iou.'.'.$this->getFormat();
|
||||
phpCAS::traceEnd($filename);
|
||||
return $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
|
||||
* warning on error.
|
||||
*
|
||||
* @param $pgt the PGT
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function write($pgt,$pgt_iou)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
||||
if ( $f=fopen($fname,"w") ) {
|
||||
if ( fputs($f,$pgt) === FALSE ) {
|
||||
phpCAS::error('could not write PGT to `'.$fname.'\'');
|
||||
}
|
||||
fclose($f);
|
||||
} else {
|
||||
phpCAS::error('could not open `'.$fname.'\'');
|
||||
}
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* This method reads a PGT corresponding to a PGT Iou and deletes the
|
||||
* corresponding file.
|
||||
*
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @return the corresponding PGT, or FALSE on error
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function read($pgt_iou)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
$pgt = FALSE;
|
||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
||||
if ( !($f=fopen($fname,"r")) ) {
|
||||
phpCAS::trace('could not open `'.$fname.'\'');
|
||||
} else {
|
||||
if ( ($pgt=fgets($f)) === FALSE ) {
|
||||
phpCAS::trace('could not read PGT from `'.$fname.'\'');
|
||||
}
|
||||
fclose($f);
|
||||
}
|
||||
|
||||
// delete the PGT file
|
||||
@unlink($fname);
|
||||
|
||||
phpCAS::traceEnd($pgt);
|
||||
return $pgt;
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
}
|
||||
|
||||
|
||||
<?php
|
||||
/*
|
||||
* Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* * Neither the name of the ESUP-Portail consortium & the JA-SIG
|
||||
* Collaborative nor the names of its contributors may be used to endorse or
|
||||
* promote products derived from this software without specific prior
|
||||
* written permission.
|
||||
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
* @file CAS/PGTStorage/pgt-file.php
|
||||
* Basic class for PGT file storage
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class PGTStorageFile
|
||||
* The PGTStorageFile class is a class for PGT file storage. An instance of
|
||||
* this class is returned by CASClient::SetPGTStorageFile().
|
||||
*
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
*
|
||||
* @ingroup internalPGTStorageFile
|
||||
*/
|
||||
|
||||
class PGTStorageFile extends PGTStorage
|
||||
{
|
||||
/**
|
||||
* @addtogroup internalPGTStorageFile
|
||||
* @{
|
||||
*/
|
||||
|
||||
/**
|
||||
* a string telling where PGT's should be stored on the filesystem. Written by
|
||||
* PGTStorageFile::PGTStorageFile(), read by getPath().
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
var $_path;
|
||||
|
||||
/**
|
||||
* This method returns the name of the directory where PGT's should be stored
|
||||
* on the filesystem.
|
||||
*
|
||||
* @return the name of a directory (with leading and trailing '/')
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function getPath()
|
||||
{
|
||||
return $this->_path;
|
||||
}
|
||||
|
||||
/**
|
||||
* a string telling the format to use to store PGT's (plain or xml). Written by
|
||||
* PGTStorageFile::PGTStorageFile(), read by getFormat().
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
var $_format;
|
||||
|
||||
/**
|
||||
* This method returns the format to use when storing PGT's on the filesystem.
|
||||
*
|
||||
* @return a string corresponding to the format used (plain or xml).
|
||||
*
|
||||
* @private
|
||||
*/
|
||||
function getFormat()
|
||||
{
|
||||
return $this->_format;
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// DEBUGGING
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method returns an informational string giving the type of storage
|
||||
* used by the object (used for debugging purposes).
|
||||
*
|
||||
* @return an informational string.
|
||||
* @public
|
||||
*/
|
||||
function getStorageType()
|
||||
{
|
||||
return "file";
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns an informational string giving informations on the
|
||||
* parameters of the storage.(used for debugging purposes).
|
||||
*
|
||||
* @return an informational string.
|
||||
* @public
|
||||
*/
|
||||
function getStorageInfo()
|
||||
{
|
||||
return 'path=`'.$this->getPath().'\', format=`'.$this->getFormat().'\'';
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// CONSTRUCTOR
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* The class constructor, called by CASClient::SetPGTStorageFile().
|
||||
*
|
||||
* @param $cas_parent the CASClient instance that creates the object.
|
||||
* @param $format the format used to store the PGT's (`plain' and `xml' allowed).
|
||||
* @param $path the path where the PGT's should be stored
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function PGTStorageFile($cas_parent,$format,$path)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
// call the ancestor's constructor
|
||||
$this->PGTStorage($cas_parent);
|
||||
|
||||
if (empty($format) ) $format = CAS_PGT_STORAGE_FILE_DEFAULT_FORMAT;
|
||||
if (empty($path) ) $path = CAS_PGT_STORAGE_FILE_DEFAULT_PATH;
|
||||
|
||||
// check that the path is an absolute path
|
||||
if (getenv("OS")=="Windows_NT"){
|
||||
|
||||
if (!preg_match('`^[a-zA-Z]:`', $path)) {
|
||||
phpCAS::error('an absolute path is needed for PGT storage to file');
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if ( $path[0] != '/' ) {
|
||||
phpCAS::error('an absolute path is needed for PGT storage to file');
|
||||
}
|
||||
|
||||
// store the path (with a leading and trailing '/')
|
||||
$path = preg_replace('|[/]*$|','/',$path);
|
||||
$path = preg_replace('|^[/]*|','/',$path);
|
||||
}
|
||||
|
||||
$this->_path = $path;
|
||||
// check the format and store it
|
||||
switch ($format) {
|
||||
case CAS_PGT_STORAGE_FILE_FORMAT_PLAIN:
|
||||
case CAS_PGT_STORAGE_FILE_FORMAT_XML:
|
||||
$this->_format = $format;
|
||||
break;
|
||||
default:
|
||||
phpCAS::error('unknown PGT file storage format (`'.CAS_PGT_STORAGE_FILE_FORMAT_PLAIN.'\' and `'.CAS_PGT_STORAGE_FILE_FORMAT_XML.'\' allowed)');
|
||||
}
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// INITIALIZATION
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method is used to initialize the storage. Halts on error.
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
// if the storage has already been initialized, return immediatly
|
||||
if ( $this->isInitialized() )
|
||||
return;
|
||||
// call the ancestor's method (mark as initialized)
|
||||
parent::init();
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// PGT I/O
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This method returns the filename corresponding to a PGT Iou.
|
||||
*
|
||||
* @param $pgt_iou the PGT iou.
|
||||
*
|
||||
* @return a filename
|
||||
* @private
|
||||
*/
|
||||
function getPGTIouFilename($pgt_iou)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
$filename = $this->getPath().$pgt_iou.'.'.$this->getFormat();
|
||||
phpCAS::traceEnd($filename);
|
||||
return $filename;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method stores a PGT and its corresponding PGT Iou into a file. Echoes a
|
||||
* warning on error.
|
||||
*
|
||||
* @param $pgt the PGT
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function write($pgt,$pgt_iou)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
||||
if(!file_exists($fname)){
|
||||
if ( $f=fopen($fname,"w") ) {
|
||||
if ( fputs($f,$pgt) === FALSE ) {
|
||||
phpCAS::error('could not write PGT to `'.$fname.'\'');
|
||||
}
|
||||
fclose($f);
|
||||
} else {
|
||||
phpCAS::error('could not open `'.$fname.'\'');
|
||||
}
|
||||
}else{
|
||||
phpCAS::error('File exists: `'.$fname.'\'');
|
||||
}
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* This method reads a PGT corresponding to a PGT Iou and deletes the
|
||||
* corresponding file.
|
||||
*
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @return the corresponding PGT, or FALSE on error
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function read($pgt_iou)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
$pgt = FALSE;
|
||||
$fname = $this->getPGTIouFilename($pgt_iou);
|
||||
if (file_exists($fname)){
|
||||
if ( !($f=fopen($fname,"r")) ) {
|
||||
phpCAS::trace('could not open `'.$fname.'\'');
|
||||
} else {
|
||||
if ( ($pgt=fgets($f)) === FALSE ) {
|
||||
phpCAS::trace('could not read PGT from `'.$fname.'\'');
|
||||
}
|
||||
fclose($f);
|
||||
}
|
||||
|
||||
// delete the PGT file
|
||||
@unlink($fname);
|
||||
}else{
|
||||
phpCAS::trace('No such file `'.$fname.'\'');
|
||||
}
|
||||
phpCAS::traceEnd($pgt);
|
||||
return $pgt;
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
}
|
||||
|
||||
|
||||
?>
|
||||
@@ -1,188 +1,214 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file CAS/PGTStorage/pgt-main.php
|
||||
* Basic class for PGT storage
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class PGTStorage
|
||||
* The PGTStorage class is a generic class for PGT storage. This class should
|
||||
* not be instanciated itself but inherited by specific PGT storage classes.
|
||||
*
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
*
|
||||
* @ingroup internalPGTStorage
|
||||
*/
|
||||
|
||||
class PGTStorage
|
||||
{
|
||||
/**
|
||||
* @addtogroup internalPGTStorage
|
||||
* @{
|
||||
*/
|
||||
|
||||
// ########################################################################
|
||||
// CONSTRUCTOR
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* The constructor of the class, should be called only by inherited classes.
|
||||
*
|
||||
* @param $cas_parent the CASclient instance that creates the current object.
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function PGTStorage($cas_parent)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
if ( !$cas_parent->isProxy() ) {
|
||||
phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy');
|
||||
}
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// DEBUGGING
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This virtual method returns an informational string giving the type of storage
|
||||
* used by the object (used for debugging purposes).
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function getStorageType()
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
/**
|
||||
* This virtual method returns an informational string giving informations on the
|
||||
* parameters of the storage.(used for debugging purposes).
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function getStorageInfo()
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// ERROR HANDLING
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* string used to store an error message. Written by PGTStorage::setErrorMessage(),
|
||||
* read by PGTStorage::getErrorMessage().
|
||||
*
|
||||
* @hideinitializer
|
||||
* @private
|
||||
* @deprecated not used.
|
||||
*/
|
||||
var $_error_message=FALSE;
|
||||
|
||||
/**
|
||||
* This method sets en error message, which can be read later by
|
||||
* PGTStorage::getErrorMessage().
|
||||
*
|
||||
* @param $error_message an error message
|
||||
*
|
||||
* @protected
|
||||
* @deprecated not used.
|
||||
*/
|
||||
function setErrorMessage($error_message)
|
||||
{
|
||||
$this->_error_message = $error_message;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns an error message set by PGTStorage::setErrorMessage().
|
||||
*
|
||||
* @return an error message when set by PGTStorage::setErrorMessage(), FALSE
|
||||
* otherwise.
|
||||
*
|
||||
* @public
|
||||
* @deprecated not used.
|
||||
*/
|
||||
function getErrorMessage()
|
||||
{
|
||||
return $this->_error_message;
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// INITIALIZATION
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* a boolean telling if the storage has already been initialized. Written by
|
||||
* PGTStorage::init(), read by PGTStorage::isInitialized().
|
||||
*
|
||||
* @hideinitializer
|
||||
* @private
|
||||
*/
|
||||
var $_initialized = FALSE;
|
||||
|
||||
/**
|
||||
* This method tells if the storage has already been intialized.
|
||||
*
|
||||
* @return a boolean
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function isInitialized()
|
||||
{
|
||||
return $this->_initialized;
|
||||
}
|
||||
|
||||
/**
|
||||
* This virtual method initializes the object.
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
$this->_initialized = TRUE;
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// PGT I/O
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This virtual method stores a PGT and its corresponding PGT Iuo.
|
||||
* @note Should never be called.
|
||||
*
|
||||
* @param $pgt the PGT
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function write($pgt,$pgt_iou)
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
/**
|
||||
* This virtual method reads a PGT corresponding to a PGT Iou and deletes
|
||||
* the corresponding storage entry.
|
||||
* @note Should never be called.
|
||||
*
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function read($pgt_iou)
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
}
|
||||
|
||||
// include specific PGT storage classes
|
||||
include_once(dirname(__FILE__).'/pgt-file.php');
|
||||
include_once(dirname(__FILE__).'/pgt-db.php');
|
||||
|
||||
<?php
|
||||
/*
|
||||
* Copyright © 2003-2010, The ESUP-Portail consortium & the JA-SIG Collaborative.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
* * Neither the name of the ESUP-Portail consortium & the JA-SIG
|
||||
* Collaborative nor the names of its contributors may be used to endorse or
|
||||
* promote products derived from this software without specific prior
|
||||
* written permission.
|
||||
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/**
|
||||
* @file CAS/PGTStorage/pgt-main.php
|
||||
* Basic class for PGT storage
|
||||
*/
|
||||
|
||||
/**
|
||||
* @class PGTStorage
|
||||
* The PGTStorage class is a generic class for PGT storage. This class should
|
||||
* not be instanciated itself but inherited by specific PGT storage classes.
|
||||
*
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
*
|
||||
* @ingroup internalPGTStorage
|
||||
*/
|
||||
|
||||
class PGTStorage
|
||||
{
|
||||
/**
|
||||
* @addtogroup internalPGTStorage
|
||||
* @{
|
||||
*/
|
||||
|
||||
// ########################################################################
|
||||
// CONSTRUCTOR
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* The constructor of the class, should be called only by inherited classes.
|
||||
*
|
||||
* @param $cas_parent the CASclient instance that creates the current object.
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function PGTStorage($cas_parent)
|
||||
{
|
||||
phpCAS::traceBegin();
|
||||
if ( !$cas_parent->isProxy() ) {
|
||||
phpCAS::error('defining PGT storage makes no sense when not using a CAS proxy');
|
||||
}
|
||||
phpCAS::traceEnd();
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// DEBUGGING
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This virtual method returns an informational string giving the type of storage
|
||||
* used by the object (used for debugging purposes).
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function getStorageType()
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
/**
|
||||
* This virtual method returns an informational string giving informations on the
|
||||
* parameters of the storage.(used for debugging purposes).
|
||||
*
|
||||
* @public
|
||||
*/
|
||||
function getStorageInfo()
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// ERROR HANDLING
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* string used to store an error message. Written by PGTStorage::setErrorMessage(),
|
||||
* read by PGTStorage::getErrorMessage().
|
||||
*
|
||||
* @hideinitializer
|
||||
* @private
|
||||
* @deprecated not used.
|
||||
*/
|
||||
var $_error_message=FALSE;
|
||||
|
||||
/**
|
||||
* This method sets en error message, which can be read later by
|
||||
* PGTStorage::getErrorMessage().
|
||||
*
|
||||
* @param $error_message an error message
|
||||
*
|
||||
* @protected
|
||||
* @deprecated not used.
|
||||
*/
|
||||
function setErrorMessage($error_message)
|
||||
{
|
||||
$this->_error_message = $error_message;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns an error message set by PGTStorage::setErrorMessage().
|
||||
*
|
||||
* @return an error message when set by PGTStorage::setErrorMessage(), FALSE
|
||||
* otherwise.
|
||||
*
|
||||
* @public
|
||||
* @deprecated not used.
|
||||
*/
|
||||
function getErrorMessage()
|
||||
{
|
||||
return $this->_error_message;
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// INITIALIZATION
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* a boolean telling if the storage has already been initialized. Written by
|
||||
* PGTStorage::init(), read by PGTStorage::isInitialized().
|
||||
*
|
||||
* @hideinitializer
|
||||
* @private
|
||||
*/
|
||||
var $_initialized = FALSE;
|
||||
|
||||
/**
|
||||
* This method tells if the storage has already been intialized.
|
||||
*
|
||||
* @return a boolean
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function isInitialized()
|
||||
{
|
||||
return $this->_initialized;
|
||||
}
|
||||
|
||||
/**
|
||||
* This virtual method initializes the object.
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function init()
|
||||
{
|
||||
$this->_initialized = TRUE;
|
||||
}
|
||||
|
||||
// ########################################################################
|
||||
// PGT I/O
|
||||
// ########################################################################
|
||||
|
||||
/**
|
||||
* This virtual method stores a PGT and its corresponding PGT Iuo.
|
||||
* @note Should never be called.
|
||||
*
|
||||
* @param $pgt the PGT
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function write($pgt,$pgt_iou)
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
/**
|
||||
* This virtual method reads a PGT corresponding to a PGT Iou and deletes
|
||||
* the corresponding storage entry.
|
||||
* @note Should never be called.
|
||||
*
|
||||
* @param $pgt_iou the PGT iou
|
||||
*
|
||||
* @protected
|
||||
*/
|
||||
function read($pgt_iou)
|
||||
{
|
||||
phpCAS::error(__CLASS__.'::'.__FUNCTION__.'() should never be called');
|
||||
}
|
||||
|
||||
/** @} */
|
||||
|
||||
}
|
||||
|
||||
// include specific PGT storage classes
|
||||
include_once(dirname(__FILE__).'/pgt-file.php');
|
||||
|
||||
?>
|
||||
+569
-465
File diff suppressed because it is too large
Load Diff
@@ -10,12 +10,12 @@
|
||||
require_once('domxml-php4-to-php5.php');
|
||||
}
|
||||
|
||||
Version 1.21, 2008-12-05, http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
|
||||
Version 1.21.1a, 2009-03-13, http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/
|
||||
|
||||
------------------------------------------------------------------
|
||||
Written by Alexandre Alapetite, http://alexandre.alapetite.net/cv/
|
||||
Written by Alexandre Alapetite, http://alexandre.alapetite.fr/cv/
|
||||
|
||||
Copyright 2004-2008, GNU Lesser General Public License,
|
||||
Copyright 2004-2009, GNU Lesser General Public License,
|
||||
http://www.gnu.org/licenses/lgpl.html
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
@@ -39,7 +39,7 @@
|
||||
in order to improve this file for the benefit of everybody.
|
||||
|
||||
If you want to distribute this code, please do it as a link to:
|
||||
http://alexandre.alapetite.net/doc-alex/domxml-php4-php5/
|
||||
http://alexandre.alapetite.fr/doc-alex/domxml-php4-php5/
|
||||
*/
|
||||
|
||||
define('DOMXML_LOAD_PARSING',0);
|
||||
@@ -263,7 +263,7 @@ class php4DOMNode
|
||||
return false;
|
||||
}
|
||||
}
|
||||
function add_child($newnode) {return append_child($newnode);}
|
||||
function add_child($newnode) {return $this->append_child($newnode);}
|
||||
function add_namespace($uri,$prefix) {return false;}
|
||||
function append_child($newnode) {return self::_newDOMElement($this->myDOMNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
|
||||
function append_sibling($newnode) {return self::_newDOMElement($this->myDOMNode->parentNode->appendChild($this->_importNode($newnode)),$this->myOwnerDocument);}
|
||||
@@ -459,8 +459,8 @@ class php4DOMXPath
|
||||
}
|
||||
function xpath_eval($eval_str,$contextnode=null)
|
||||
{
|
||||
if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str);
|
||||
else $xp=isset($contextnode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str);
|
||||
if (method_exists($this->myDOMXPath,'evaluate')) $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->evaluate($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->evaluate($eval_str);
|
||||
else $xp=isset($contextnode->myDOMNode) ? $this->myDOMXPath->query($eval_str,$contextnode->myDOMNode) : $this->myDOMXPath->query($eval_str);
|
||||
$xp=new php4DOMNodelist($xp,$this->myOwnerDocument);
|
||||
return ($xp->type===XPATH_UNDEFINED) ? false : $xp;
|
||||
}
|
||||
@@ -468,7 +468,7 @@ class php4DOMXPath
|
||||
}
|
||||
|
||||
if (extension_loaded('xsl'))
|
||||
{//See also: http://alexandre.alapetite.net/doc-alex/xslt-php4-php5/
|
||||
{//See also: http://alexandre.alapetite.fr/doc-alex/xslt-php4-php5/
|
||||
function domxml_xslt_stylesheet($xslstring) {return new php4DomXsltStylesheet(DOMDocument::loadXML($xslstring));}
|
||||
function domxml_xslt_stylesheet_doc($dom_document) {return new php4DomXsltStylesheet($dom_document);}
|
||||
function domxml_xslt_stylesheet_file($xslfile) {return new php4DomXsltStylesheet(DOMDocument::load($xslfile));}
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/spanish.php
|
||||
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'usant servidor',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'Autentificació CAS necessària!',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'Sortida de CAS necessària!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click <a href="%s">aquí</a> per a continuar.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'Autentificació CAS fallida!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>No estàs autentificat.</p><p>Pots tornar a intentar-ho fent click <a href="%s">aquí</a>.</p><p>Si el problema persisteix hauría de contactar amb l\'<a href="mailto:%s">administrador d\'aquest llocc</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'El servei `<b>%s</b>\' no està disponible (<b>%s</b>).'
|
||||
);
|
||||
|
||||
?>
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/spanish.php
|
||||
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'usant servidor',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'Autentificació CAS necessària!',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'Sortida de CAS necessària!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'Ja hauria d\ haver estat redireccionat al servidor CAS. Feu click <a href="%s">aquí</a> per a continuar.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'Autentificació CAS fallida!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>No estàs autentificat.</p><p>Pots tornar a intentar-ho fent click <a href="%s">aquí</a>.</p><p>Si el problema persisteix hauría de contactar amb l\'<a href="mailto:%s">administrador d\'aquest llocc</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'El servei `<b>%s</b>\' no està disponible (<b>%s</b>).'
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
@@ -1,27 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/english.php
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'using server',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'CAS Authentication wanted!',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'CAS logout wanted!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'You should already have been redirected to the CAS server. Click <a href="%s">here</a> to continue.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'CAS Authentication failed!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>You were not authenticated.</p><p>You may submit your request again by clicking <a href="%s">here</a>.</p><p>If the problem persists, you may contact <a href="mailto:%s">the administrator of this site</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'The service `<b>%s</b>\' is not available (<b>%s</b>).'
|
||||
);
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/english.php
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'using server',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'CAS Authentication wanted!',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'CAS logout wanted!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'You should already have been redirected to the CAS server. Click <a href="%s">here</a> to continue.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'CAS Authentication failed!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>You were not authenticated.</p><p>You may submit your request again by clicking <a href="%s">here</a>.</p><p>If the problem persists, you may contact <a href="mailto:%s">the administrator of this site</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'The service `<b>%s</b>\' is not available (<b>%s</b>).'
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -1,28 +1,28 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/english.php
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'utilisant le serveur',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'Authentication CAS n�cessaire !',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'D�connexion demand�e !',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'Vous auriez du etre redirig�(e) vers le serveur CAS. Cliquez <a href="%s">ici</a> pour continuer.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'Authentification CAS infructueuse !',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>Vous n\'avez pas �t� authentifi�(e).</p><p>Vous pouvez soumettre votre requete � nouveau en cliquant <a href="%s">ici</a>.</p><p>Si le probl�me persiste, vous pouvez contacter <a href="mailto:%s">l\'administrateur de ce site</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'Le service `<b>%s</b>\' est indisponible (<b>%s</b>)'
|
||||
|
||||
);
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/english.php
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'utilisant le serveur',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'Authentication CAS n�cessaire !',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'D�connexion demand�e !',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'Vous auriez du etre redirig�(e) vers le serveur CAS. Cliquez <a href="%s">ici</a> pour continuer.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'Authentification CAS infructueuse !',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>Vous n\'avez pas �t� authentifi�(e).</p><p>Vous pouvez soumettre votre requete � nouveau en cliquant <a href="%s">ici</a>.</p><p>Si le probl�me persiste, vous pouvez contacter <a href="mailto:%s">l\'administrateur de ce site</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'Le service `<b>%s</b>\' est indisponible (<b>%s</b>)'
|
||||
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -1,27 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/german.php
|
||||
* @author Henrik Genssen <hg at mediafactory.de>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'via Server',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'CAS Authentifizierung erforderlich!',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'CAS Abmeldung!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie <a href="%s">hier</a> um fortzufahren.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'CAS Anmeldung fehlgeschlagen!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>Sie wurden nicht angemeldet.</p><p>Um es erneut zu versuchen klicken Sie <a href="%s">hier</a>.</p><p>Wenn das Problem bestehen bleibt, kontkatieren Sie den <a href="mailto:%s">Administrator</a> dieser Seite.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'Der Dienst `<b>%s</b>\' ist nicht verfügbar (<b>%s</b>).'
|
||||
);
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/german.php
|
||||
* @author Henrik Genssen <hg at mediafactory.de>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'via Server',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> 'CAS Authentifizierung erforderlich!',
|
||||
CAS_STR_LOGOUT
|
||||
=> 'CAS Abmeldung!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'eigentlich häten Sie zum CAS Server weitergeleitet werden sollen. Drücken Sie <a href="%s">hier</a> um fortzufahren.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> 'CAS Anmeldung fehlgeschlagen!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>Sie wurden nicht angemeldet.</p><p>Um es erneut zu versuchen klicken Sie <a href="%s">hier</a>.</p><p>Wenn das Problem bestehen bleibt, kontkatieren Sie den <a href="mailto:%s">Administrator</a> dieser Seite.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'Der Dienst `<b>%s</b>\' ist nicht verfügbar (<b>%s</b>).'
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -1,27 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/greek.php
|
||||
* @author Vangelis Haniotakis <haniotak at ucnet.uoc.gr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> '��������������� � ������������',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> '���������� � ����������� CAS!',
|
||||
CAS_STR_LOGOUT
|
||||
=> '���������� � ���������� ��� CAS!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> '�� ������ �� ������ �������������� ���� ����������� CAS. ����� ���� <a href="%s">���</a> ��� �� ����������.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> '� ����������� CAS �������!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>��� ���������������.</p><p>�������� �� ����������������, �������� ���� <a href="%s">���</a>.</p><p>��� �� �������� ���������, ����� �� ����� �� ��� <a href="mailto:%s">�����������</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> '� �������� `<b>%s</b>\' ��� ����� ��������� (<b>%s</b>).'
|
||||
);
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/greek.php
|
||||
* @author Vangelis Haniotakis <haniotak at ucnet.uoc.gr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> '��������������� � ������������',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> '���������� � ����������� CAS!',
|
||||
CAS_STR_LOGOUT
|
||||
=> '���������� � ���������� ��� CAS!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> '�� ������ �� ������ �������������� ���� ����������� CAS. ����� ���� <a href="%s">���</a> ��� �� ����������.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> '� ����������� CAS �������!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>��� ���������������.</p><p>�������� �� ����������������, �������� ���� <a href="%s">���</a>.</p><p>��� �� �������� ���������, ����� �� ����� �� ��� <a href="mailto:%s">�����������</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> '� �������� `<b>%s</b>\' ��� ����� ��������� (<b>%s</b>).'
|
||||
);
|
||||
|
||||
?>
|
||||
@@ -1,24 +1,24 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/languages.php
|
||||
* Internationalization constants
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
//@{
|
||||
/**
|
||||
* a phpCAS string index
|
||||
*/
|
||||
define("CAS_STR_USING_SERVER", 1);
|
||||
define("CAS_STR_AUTHENTICATION_WANTED", 2);
|
||||
define("CAS_STR_LOGOUT", 3);
|
||||
define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4);
|
||||
define("CAS_STR_AUTHENTICATION_FAILED", 5);
|
||||
define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6);
|
||||
define("CAS_STR_SERVICE_UNAVAILABLE", 7);
|
||||
//@}
|
||||
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/languages.php
|
||||
* Internationalization constants
|
||||
* @author Pascal Aubry <pascal.aubry at univ-rennes1.fr>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
//@{
|
||||
/**
|
||||
* a phpCAS string index
|
||||
*/
|
||||
define("CAS_STR_USING_SERVER", 1);
|
||||
define("CAS_STR_AUTHENTICATION_WANTED", 2);
|
||||
define("CAS_STR_LOGOUT", 3);
|
||||
define("CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED", 4);
|
||||
define("CAS_STR_AUTHENTICATION_FAILED", 5);
|
||||
define("CAS_STR_YOU_WERE_NOT_AUTHENTICATED", 6);
|
||||
define("CAS_STR_SERVICE_UNAVAILABLE", 7);
|
||||
//@}
|
||||
|
||||
?>
|
||||
@@ -1,27 +1,27 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/spanish.php
|
||||
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'usando servidor',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> '¡Autentificación CAS necesaria!',
|
||||
CAS_STR_LOGOUT
|
||||
=> '¡Salida CAS necesaria!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'Ya debería haber sido redireccionado al servidor CAS. Haga click <a href="%s">aquí</a> para continuar.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> '¡Autentificación CAS fallida!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>No estás autentificado.</p><p>Puedes volver a intentarlo haciendo click <a href="%s">aquí</a>.</p><p>Si el problema persiste debería contactar con el <a href="mailto:%s">administrador de este sitio</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'El servicio `<b>%s</b>\' no está disponible (<b>%s</b>).'
|
||||
);
|
||||
|
||||
?>
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file languages/spanish.php
|
||||
* @author Iván-Benjamín García Torà <ivaniclixx AT gmail DOT com>
|
||||
* @sa @link internalLang Internationalization @endlink
|
||||
* @ingroup internalLang
|
||||
*/
|
||||
|
||||
$this->_strings = array(
|
||||
CAS_STR_USING_SERVER
|
||||
=> 'usando servidor',
|
||||
CAS_STR_AUTHENTICATION_WANTED
|
||||
=> '¡Autentificación CAS necesaria!',
|
||||
CAS_STR_LOGOUT
|
||||
=> '¡Salida CAS necesaria!',
|
||||
CAS_STR_SHOULD_HAVE_BEEN_REDIRECTED
|
||||
=> 'Ya debería haber sido redireccionado al servidor CAS. Haga click <a href="%s">aquí</a> para continuar.',
|
||||
CAS_STR_AUTHENTICATION_FAILED
|
||||
=> '¡Autentificación CAS fallida!',
|
||||
CAS_STR_YOU_WERE_NOT_AUTHENTICATED
|
||||
=> '<p>No estás autentificado.</p><p>Puedes volver a intentarlo haciendo click <a href="%s">aquí</a>.</p><p>Si el problema persiste debería contactar con el <a href="mailto:%s">administrador de este sitio</a>.</p>',
|
||||
CAS_STR_SERVICE_UNAVAILABLE
|
||||
=> 'El servicio `<b>%s</b>\' no está disponible (<b>%s</b>).'
|
||||
);
|
||||
|
||||
?>
|
||||
|
||||
+41
-2
@@ -114,8 +114,12 @@ class auth_plugin_cas extends auth_plugin_base {
|
||||
// Connection to CAS server
|
||||
$this->connectCAS();
|
||||
|
||||
if($this->config->certificate_check && $this->config->certificate_path){
|
||||
phpCAS::setCasServerCACert($this->config->certificate_path);
|
||||
}else{
|
||||
// Don't try to validate the server SSL credentials
|
||||
phpCAS::setNoCasServerValidation();
|
||||
}
|
||||
|
||||
// Gestion de la connection CAS si acc�s direct d'un ent ou autre
|
||||
if (phpCAS::checkAuthentication()) {
|
||||
@@ -202,6 +206,19 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
function config_form($config, $err, $user_fields) {
|
||||
include 'config.html';
|
||||
}
|
||||
|
||||
/**
|
||||
* A chance to validate form data, and last chance to
|
||||
* do stuff before it is inserted in config_plugin
|
||||
* @param object object with submitted configuration settings (without system magic quotes)
|
||||
* @param array $err array of error messages
|
||||
*/
|
||||
function validate_form(&$form, &$err) {
|
||||
$certificate_path = trim($form->certificate_path);
|
||||
if ($form->certificate_check && empty($certificate_path)) {
|
||||
$err['certificate_path'] = get_string('auth_cas_certificate_path_empty', 'auth');
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Returns the URL for changing the user's pw, or empty if the default can
|
||||
* be used.
|
||||
@@ -248,6 +265,10 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
$config->logoutcas = '';
|
||||
if (!isset ($config->multiauth))
|
||||
$config->multiauth = '';
|
||||
if (!isset ($config->certificate_check))
|
||||
$config->certificate_check = '';
|
||||
if (!isset ($config->certificate_path))
|
||||
$config->certificate_path = '';
|
||||
// LDAP settings
|
||||
if (!isset($config->host_url))
|
||||
{ $config->host_url = ''; }
|
||||
@@ -290,6 +311,8 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
set_config('proxycas', $config->proxycas, 'auth/cas');
|
||||
set_config('logoutcas', $config->logoutcas, 'auth/cas');
|
||||
set_config('multiauth', $config->multiauth, 'auth/cas');
|
||||
set_config('certificate_check', $config->certificate_check, 'auth/cas');
|
||||
set_config('certificate_path', $config->certificate_path, 'auth/cas');
|
||||
// save LDAP settings
|
||||
set_config('host_url', $config->host_url, 'auth/cas');
|
||||
set_config('ldapencoding', $config->ldapencoding, 'auth/cas');
|
||||
@@ -370,6 +393,13 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
* @return mixed array with no magic quotes or false on error
|
||||
*/
|
||||
function get_userinfo($username) {
|
||||
// No LDAP servers configured, so user info has to be provided
|
||||
// via other methods (CSV file, manually, etc.). Return empty
|
||||
// array so existing user info is not lost.
|
||||
if (empty($this->config->host_url)) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$textlib = textlib_get_instance();
|
||||
$extusername = $textlib->convert(stripslashes($username), 'utf-8', $this->config->ldapencoding);
|
||||
$ldapconnection = $this->ldap_connect();
|
||||
@@ -481,6 +511,9 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
if (!empty($this->config->version)) {
|
||||
ldap_set_option($connresult, LDAP_OPT_PROTOCOL_VERSION, $this->config->version);
|
||||
}
|
||||
if ($this->config->user_type == 'ad') {
|
||||
ldap_set_option($connresult, LDAP_OPT_REFERRALS, 0);
|
||||
}
|
||||
if (!empty($binddn)) {
|
||||
//bind with search-user
|
||||
//$debuginfo .= 'Using bind user'.$binddn.'and password:'.$bindpwd;
|
||||
@@ -624,6 +657,12 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
*/
|
||||
function sync_users ($bulk_insert_records = 1000, $do_updates = true) {
|
||||
global $CFG;
|
||||
|
||||
if(empty($this->config->host_url)) {
|
||||
echo "No LDAP server configured for CAS! Syncing disabled.\n";
|
||||
return;
|
||||
}
|
||||
|
||||
$textlib = textlib_get_instance();
|
||||
$droptablesql = array(); /// sql commands to drop the table (because session scope could be a problem for
|
||||
/// some persistent drivers like ODBTP (mssql) or if this function is invoked
|
||||
@@ -636,7 +675,7 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
$droptablesql[] = 'DROP TEMPORARY TABLE ' . $temptable; // sql command to drop the table (because session scope could be a problem)
|
||||
execute_sql_arr($droptablesql, true, false); /// Drop temp table to avoid persistence problems later
|
||||
echo "Creating temp table $temptable\n";
|
||||
execute_sql('CREATE TEMPORARY TABLE ' . $temptable . ' (username VARCHAR(64), PRIMARY KEY (username)) TYPE=MyISAM', false);
|
||||
execute_sql('CREATE TEMPORARY TABLE ' . $temptable . ' (username VARCHAR(64), PRIMARY KEY (username)) ENGINE=MyISAM', false);
|
||||
break;
|
||||
case 'postgres':
|
||||
$temptable = $CFG->prefix . 'extuser';
|
||||
@@ -972,7 +1011,7 @@ if ( !is_object($PHPCAS_CLIENT) ) {
|
||||
* @return boolean result
|
||||
*/
|
||||
function iscreator($username) {
|
||||
if ((empty($this->config->attrcreators) && empty($this->config->groupecreators)) or empty($this->config->memberattribute)) {
|
||||
if (empty($this->config->host_url) or (empty($this->config->attrcreators) && empty($this->config->groupecreators)) or empty($this->config->memberattribute)) {
|
||||
return null;
|
||||
}
|
||||
$textlib = textlib_get_instance();
|
||||
|
||||
@@ -48,6 +48,14 @@
|
||||
|
||||
$config->multiauth = '';
|
||||
|
||||
if (!isset ($config->certificate_check))
|
||||
|
||||
$config->certificate_check = '';
|
||||
|
||||
if (!isset ($config->certificate_path))
|
||||
|
||||
$config->certificate_path = '';
|
||||
|
||||
// set to defaults if undefined (LDAP)
|
||||
|
||||
if (!isset($config->host_url))
|
||||
@@ -364,6 +372,44 @@ if (!function_exists('ldap_connect')) { // Is php4-ldap really there?
|
||||
|
||||
|
||||
|
||||
<tr valign="top" class="required">
|
||||
|
||||
<td align="right"><?php print_string('auth_cas_certificate_check_key', 'auth') ?>:</td>
|
||||
|
||||
<td>
|
||||
|
||||
<?php choose_from_menu ($yesno, 'certificate_check', $config->certificate_check, ''); ?>
|
||||
|
||||
</td>
|
||||
|
||||
<td><?php print_string('auth_cas_certificate_check', 'auth') ?></td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr valign="top" class="required">
|
||||
|
||||
<td align="right"><?php print_string('auth_cas_certificate_path_key', 'auth') ?>:</td>
|
||||
|
||||
<td>
|
||||
|
||||
<input name="certificate_path" type="text" size="30" value="<?php echo $config->certificate_path ?>" />
|
||||
|
||||
<?php if (isset($err['certificate_path'])) formerr($err['certificate_path']); ?>
|
||||
|
||||
</td>
|
||||
|
||||
<td>
|
||||
|
||||
<?php print_string('auth_cas_certificate_path', 'auth') ?>
|
||||
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
<tr>
|
||||
|
||||
<td colspan="2">
|
||||
|
||||
+2
-2
@@ -61,7 +61,7 @@ class auth_plugin_db extends auth_plugin_base {
|
||||
WHERE {$this->config->fielduser} = '".$this->ext_addslashes($extusername)."' ");
|
||||
if (!$rs) {
|
||||
$authdb->Close();
|
||||
print_error('auth_dbcantconnect','auth');
|
||||
debugging(get_string('auth_dbcantconnect','auth'));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ class auth_plugin_db extends auth_plugin_base {
|
||||
AND {$this->config->fieldpass} = '".$this->ext_addslashes($extpassword)."' ");
|
||||
if (!$rs) {
|
||||
$authdb->Close();
|
||||
print_error('auth_dbcantconnect','auth');
|
||||
debugging(get_string('auth_dbcantconnect','auth'));
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
+7
-6
@@ -563,7 +563,7 @@ class auth_plugin_ldap extends auth_plugin_base {
|
||||
switch (strtolower($CFG->dbfamily)) {
|
||||
case 'mysql':
|
||||
$droptablesql[] = 'DROP TEMPORARY TABLE ' . $temptable; // sql command to drop the table (because session scope could be a problem)
|
||||
$createtemptablesql = 'CREATE TEMPORARY TABLE ' . $temptable . ' (username VARCHAR(64), PRIMARY KEY (username)) TYPE=MyISAM';
|
||||
$createtemptablesql = 'CREATE TEMPORARY TABLE ' . $temptable . ' (username VARCHAR(64), PRIMARY KEY (username)) ENGINE=MyISAM';
|
||||
break;
|
||||
case 'postgres':
|
||||
$droptablesql[] = 'DROP TABLE ' . $temptable; // sql command to drop the table (because session scope could be a problem)
|
||||
@@ -853,14 +853,15 @@ class auth_plugin_ldap extends auth_plugin_base {
|
||||
if (!empty($this->config->forcechangepassword)) {
|
||||
set_user_preference('auth_forcepasswordchange', 1, $userobj->id);
|
||||
}
|
||||
|
||||
// add course creators if needed
|
||||
if ($creatorrole !== false and $this->iscreator(stripslashes($user->username))) {
|
||||
role_assign($creatorrole->id, $id, 0, $sitecontext->id, 0, 0, 0, 'ldap');
|
||||
}
|
||||
} else {
|
||||
echo "\t"; print_string('auth_dbinsertusererror', 'auth', $user->username); echo "\n";
|
||||
}
|
||||
|
||||
// add course creators if needed
|
||||
if ($creatorrole !== false and $this->iscreator(stripslashes($user->username))) {
|
||||
role_assign($creatorrole->id, $user->id, 0, $sitecontext->id, 0, 0, 0, 'ldap');
|
||||
}
|
||||
}
|
||||
commit_sql();
|
||||
unset($add_users); // free mem
|
||||
@@ -1534,7 +1535,7 @@ class auth_plugin_ldap extends auth_plugin_base {
|
||||
// check cheaply if the user's DN sits in a subtree
|
||||
// of the "group" DN provided. Granted, this isn't
|
||||
// a proper LDAP group, but it's a popular usage.
|
||||
if (strpos(strrev($memberuser), strrev($group))===0) {
|
||||
if (strpos(strrev(strtolower($memberuser)), strrev(strtolower($group)))===0) {
|
||||
$result = true;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -170,6 +170,10 @@ class auth_plugin_mnet extends auth_plugin_base {
|
||||
global $MNET;
|
||||
require_once $CFG->dirroot . '/mnet/xmlrpc/client.php';
|
||||
|
||||
if (!empty($USER->realuser)) {
|
||||
print_error('notpermittedtojumpas', 'mnet');
|
||||
}
|
||||
|
||||
// check remote login permissions
|
||||
if (! has_capability('moodle/site:mnetlogintoremote', get_context_instance(CONTEXT_SYSTEM))
|
||||
or is_mnet_remote_user($USER)
|
||||
@@ -306,6 +310,7 @@ class auth_plugin_mnet extends auth_plugin_base {
|
||||
}
|
||||
$remoteuser->mnethostid = $remotehost->id;
|
||||
$remoteuser->firstaccess = time(); // First time user in this server, grab it here
|
||||
$remoteuser->confirmed = 1;
|
||||
|
||||
if (!$remoteuser->id = insert_record('user', addslashes_recursive($remoteuser))) {
|
||||
print_error('databaseerror', 'mnet');
|
||||
|
||||
@@ -193,18 +193,13 @@ class auth_plugin_shibboleth extends auth_plugin_base {
|
||||
*
|
||||
*/
|
||||
function logoutpage_hook() {
|
||||
global $redirect;
|
||||
global $SESSION, $redirect;
|
||||
|
||||
// Only do this if logout handler is defined
|
||||
if (
|
||||
isset($this->config->logout_handler)
|
||||
&& !empty($this->config->logout_handler)
|
||||
){
|
||||
// Only do this if logout handler is defined, and if the user is actually logged in via Shibboleth
|
||||
$logouthandlervalid = isset($this->config->logout_handler) && !empty($this->config->logout_handler);
|
||||
if ( isset($SESSION->shibboleth_session_id) && $logouthandlervalid ) {
|
||||
// Check if there is an alternative logout return url defined
|
||||
if (
|
||||
isset($this->config->logout_return_url)
|
||||
&& !empty($this->config->logout_return_url)
|
||||
){
|
||||
if (isset($this->config->logout_return_url) && !empty($this->config->logout_return_url)) {
|
||||
// Set temp_redirect to alternative return url
|
||||
$temp_redirect = $this->config->logout_return_url;
|
||||
} else {
|
||||
|
||||
@@ -100,15 +100,22 @@ function schedule_backup_cron() {
|
||||
$status = false;
|
||||
continue;
|
||||
}
|
||||
// Skip courses that do not yet need backup
|
||||
$skipped = !($backup_course->nextstarttime > 0 && $backup_course->nextstarttime < $now);
|
||||
// Skip backup of unavailable courses that have remained unmodified in a month
|
||||
$skipped = false;
|
||||
if (!$course->visible && ($now - $course->timemodified) > 31*24*60*60) { //Hidden + unmodified last month
|
||||
mtrace(" SKIPPING - hidden+unmodified");
|
||||
set_field("backup_courses","laststatus","3","courseid",$backup_course->courseid);
|
||||
$skipped = true;
|
||||
if (!$skipped && !$course->visible && ($now - $course->timemodified) > 31*24*60*60) { //Hidden + settings were unmodified last month
|
||||
//Check log if there were any modifications to the course content
|
||||
$sql = 'SELECT l.id FROM '.$CFG->prefix .'log l WHERE '.
|
||||
'l.course='. $course->id. ' AND l.time>'. ($now-31*24*60*60). " AND lower(l.action) not like '%view%'";
|
||||
$logexists = record_exists_sql($sql);
|
||||
if (!$logexists) {
|
||||
mtrace(" SKIPPING - hidden+unmodified");
|
||||
set_field("backup_courses", "laststatus", "3", "courseid", $backup_course->courseid);
|
||||
$skipped = true;
|
||||
}
|
||||
}
|
||||
//Now we backup every non skipped course with nextstarttime < now
|
||||
if (!$skipped && $backup_course->nextstarttime > 0 && $backup_course->nextstarttime < $now) {
|
||||
//Now we backup every non-skipped course
|
||||
if (!$skipped) {
|
||||
//We have to send a email because we have included at least one backup
|
||||
$emailpending = true;
|
||||
//Only make the backup if laststatus isn't 2-UNFINISHED (uncontrolled error)
|
||||
|
||||
+5
-5
@@ -66,7 +66,7 @@ function backup_upgrade($oldversion=0) {
|
||||
`value` varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `name` (`name`)
|
||||
) TYPE=MyISAM COMMENT='To store backup configuration variables'");
|
||||
) ENGINE=MyISAM COMMENT='To store backup configuration variables'");
|
||||
}
|
||||
|
||||
if ($oldversion < 2003120800 and $result) {
|
||||
@@ -79,7 +79,7 @@ function backup_upgrade($oldversion=0) {
|
||||
`nextstarttime` int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `courseid` (`courseid`)
|
||||
) TYPE=MyISAM COMMENT='To store every course backup status'");
|
||||
) ENGINE=MyISAM COMMENT='To store every course backup status'");
|
||||
|
||||
if ($result) {
|
||||
$result = execute_sql("CREATE TABLE `{$CFG->prefix}backup_log` (
|
||||
@@ -89,7 +89,7 @@ function backup_upgrade($oldversion=0) {
|
||||
`laststarttime` int(10) unsigned NOT NULL default '0',
|
||||
`info` varchar(255) NOT NULL default '',
|
||||
PRIMARY KEY (`id`)
|
||||
) TYPE=MyISAM COMMENT='To store every course backup log info'");
|
||||
) ENGINE=MyISAM COMMENT='To store every course backup log info'");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -105,7 +105,7 @@ function backup_upgrade($oldversion=0) {
|
||||
`new_id` int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `{$CFG->prefix}backup_files_uk` (`backup_code`,`file_type`,`path`)
|
||||
) TYPE=MyISAM COMMENT='To store and recode ids to user and course files.'");
|
||||
) ENGINE=MyISAM COMMENT='To store and recode ids to user and course files.'");
|
||||
}
|
||||
if ($result) {
|
||||
$result = execute_sql("DROP TABLE {$CFG->prefix}backup_ids");
|
||||
@@ -120,7 +120,7 @@ function backup_upgrade($oldversion=0) {
|
||||
`info` mediumtext,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `{$CFG->prefix}backup_ids_uk` (`backup_code` ,`table_name`,`old_id`)
|
||||
) TYPE=MyISAM COMMENT='To store and convert ids in backup/restore'");
|
||||
) ENGINE=MyISAM COMMENT='To store and convert ids in backup/restore'");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+22
-3
@@ -209,10 +209,29 @@ define('RESTORE_GROUPS_GROUPINGS', 3);
|
||||
|
||||
// Links to course
|
||||
$searchstring = '/\$@(COURSEVIEWBYID)\*([0-9]+)@\$/';
|
||||
$replacestring= $CFG->wwwroot . '/course/view.php?id=' . $restore->course_id;
|
||||
$result = preg_replace($searchstring, $replacestring, $content);
|
||||
// We look for it
|
||||
preg_match_all($searchstring, $content, $foundset);
|
||||
// If found, then we are going to look for its new id (in backup tables)
|
||||
if ($foundset[0]) {
|
||||
// Iterate over foundset[2]. They are the old_ids
|
||||
foreach ($foundset[2] as $old_id) {
|
||||
// We get the needed variables here (course id)
|
||||
$rec = backup_getid($restore->backup_unique_code, 'course', $old_id);
|
||||
// Personalize the searchstring
|
||||
$searchstring = '/\$@(COURSEVIEWBYID)\*('.$old_id.')@\$/';
|
||||
// If it is a link to itself, replace it
|
||||
if (!empty($rec->new_id)) {
|
||||
$replacestring = $CFG->wwwroot . '/course/view.php?id=' . $rec->new_id;
|
||||
// It s a link to another course, keep it unmodified
|
||||
} else {
|
||||
$replacestring = $restore->original_wwwroot . '/course/view.php?id=' . $old_id;
|
||||
}
|
||||
// Perform the replacement
|
||||
$content = preg_replace($searchstring, $replacestring, $content);
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
return $content;
|
||||
}
|
||||
|
||||
//This function is called from all xxxx_decode_content_links_caller(),
|
||||
|
||||
+1
-1
@@ -142,7 +142,7 @@ global $CFG;
|
||||
`visible` tinyint(1) not null default '0',
|
||||
`configdata` text not null default '',
|
||||
PRIMARY KEY(`id`)
|
||||
) TYPE=MyISAM;");
|
||||
) ENGINE=MyISAM;");
|
||||
}
|
||||
|
||||
if ($oldversion < 2005090200) {
|
||||
|
||||
@@ -49,7 +49,12 @@ class block_login extends block_base {
|
||||
$this->content->text .= '<input type="text" name="username" id="login_username" value="'.s($username).'" /></div>';
|
||||
|
||||
$this->content->text .= '<div class="c1 fld password"><label for="login_password">'.get_string('password').'</label>';
|
||||
$this->content->text .= '<input type="password" name="password" id="login_password" value="" /></div>';
|
||||
|
||||
if (!empty($CFG->loginpasswordautocomplete)) {
|
||||
$this->content->text .= '<input type="password" name="password" id="login_password" value="" autocomplete="off" /></div>';
|
||||
} else {
|
||||
$this->content->text .= '<input type="password" name="password" id="login_password" value="" /></div>';
|
||||
}
|
||||
|
||||
$this->content->text .= '<div class="c1 btn"><input type="submit" value="'.get_string('login').'" /></div>';
|
||||
|
||||
|
||||
@@ -32,6 +32,14 @@ class block_mnet_hosts extends block_list {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (!empty($USER->realuser)) {
|
||||
$this->content = new stdClass();
|
||||
$this->content->items = array();
|
||||
$this->content->icons = array();
|
||||
$this->content->footer = get_string('notpermittedtojumpas', 'mnet');
|
||||
return $this->content;
|
||||
}
|
||||
|
||||
// check for outgoing roaming permission first
|
||||
if (!has_capability('moodle/site:mnetlogintoremote', get_context_instance(CONTEXT_SYSTEM), NULL, false)) {
|
||||
return '';
|
||||
|
||||
@@ -101,6 +101,7 @@ if (isset($rss_record)) {
|
||||
|
||||
|
||||
if ($act == 'updfeed') {
|
||||
require_sesskey();
|
||||
|
||||
if (!$managefeeds) {
|
||||
error(get_string('noguestpost', 'forum').
|
||||
@@ -153,6 +154,7 @@ if ($act == 'updfeed') {
|
||||
redirect($referrer, $message);
|
||||
|
||||
} else if ($act == 'addfeed' ) {
|
||||
require_sesskey();
|
||||
|
||||
$canaddprivfeeds = has_capability('block/rss_client:createprivatefeeds', $context);
|
||||
$canaddsharedfeeds = has_capability('block/rss_client:createsharedfeeds', $context);
|
||||
@@ -225,6 +227,7 @@ if ($act == 'updfeed') {
|
||||
rss_print_form($act, $url, $rssid, $preferredtitle, $shared, $id, $context);
|
||||
|
||||
} else if ($act == 'delfeed') {
|
||||
require_sesskey();
|
||||
|
||||
if (!$managefeeds) {
|
||||
error(get_string('noguestpost', 'forum').
|
||||
|
||||
@@ -88,7 +88,7 @@ class block_section_links extends block_base {
|
||||
if (!empty($display)) {
|
||||
$link = $CFG->wwwroot.'/course/view.php?id='.$this->instance->pageid.'&'.$sectionname.'=';
|
||||
} else {
|
||||
$link = '#section-';
|
||||
$link = '#sectionblock-';
|
||||
}
|
||||
|
||||
$sql = "SELECT section, visible
|
||||
|
||||
+5
-6
@@ -672,7 +672,7 @@
|
||||
$querystring = '';
|
||||
foreach($_GET as $var => $val) {
|
||||
$var = clean_param($var, PARAM_ALPHANUM); // See MDL-22631
|
||||
$val = clean_param($val, PARAM_CLEAN);
|
||||
$val = urlencode(clean_param($val, PARAM_CLEAN));
|
||||
if(!$first) {
|
||||
$first = true;
|
||||
if ($var != 'filterselect' && $var != 'filtertype') {
|
||||
@@ -683,13 +683,13 @@
|
||||
}
|
||||
} else {
|
||||
if ($var != 'filterselect' && $var != 'filtertype') {
|
||||
$querystring .= '&'.$var.'='.$val;
|
||||
$querystring .= '&'.$var.'='.$val;
|
||||
$hasparam = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isset($hasparam)) {
|
||||
$querystring .= '&';
|
||||
$querystring .= '&';
|
||||
} else {
|
||||
$querystring = '?';
|
||||
}
|
||||
@@ -697,9 +697,8 @@
|
||||
$querystring = '?';
|
||||
}
|
||||
|
||||
return strip_querystring(qualified_me()) . $querystring. 'filtertype='.
|
||||
$filtertype.'&filterselect='.$filterselect.'&';
|
||||
|
||||
return s(strip_querystring(qualified_me()) . $querystring. 'filtertype='.
|
||||
$filtertype.'&filterselect='.$filterselect.'&', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+76
-47
@@ -49,9 +49,9 @@
|
||||
$eventid = optional_param('id', 0, PARAM_INT);
|
||||
$eventtype = optional_param('type', 'select', PARAM_ALPHA);
|
||||
$urlcourse = optional_param('course', 0, PARAM_INT);
|
||||
$cal_y = optional_param('cal_y');
|
||||
$cal_m = optional_param('cal_m');
|
||||
$cal_d = optional_param('cal_d');
|
||||
$cal_y = optional_param('cal_y', 0, PARAM_INT);
|
||||
$cal_m = optional_param('cal_m', 0, PARAM_INT);
|
||||
$cal_d = optional_param('cal_d', 0, PARAM_INT);
|
||||
|
||||
if(isguest()) {
|
||||
// Guests cannot do anything with events
|
||||
@@ -103,6 +103,7 @@
|
||||
}
|
||||
|
||||
$form = null;
|
||||
$err = array();
|
||||
|
||||
switch($action) {
|
||||
case 'delete':
|
||||
@@ -129,23 +130,7 @@
|
||||
}
|
||||
|
||||
if($form = data_submitted() and confirm_sesskey()) {
|
||||
|
||||
$form->name = clean_param(strip_tags($form->name,'<lang><span>'), PARAM_CLEAN);
|
||||
|
||||
$form->timestart = make_timestamp($form->startyr, $form->startmon, $form->startday, $form->starthr, $form->startmin);
|
||||
if($form->duration == 1) {
|
||||
$form->timeduration = make_timestamp($form->endyr, $form->endmon, $form->endday, $form->endhr, $form->endmin) - $form->timestart;
|
||||
if($form->timeduration < 0) {
|
||||
$form->timeduration = 0;
|
||||
}
|
||||
}
|
||||
else if($form->duration == 2) {
|
||||
$form->timeduration = $form->minutes * MINSECS;
|
||||
}
|
||||
else {
|
||||
$form->timeduration = 0;
|
||||
}
|
||||
|
||||
// validate form and set error if any.
|
||||
validate_form($form, $err);
|
||||
|
||||
if (count($err) == 0) {
|
||||
@@ -194,27 +179,13 @@
|
||||
$title = get_string('newevent', 'calendar');
|
||||
$form = data_submitted();
|
||||
if(!empty($form) && !empty($form->name) && confirm_sesskey()) {
|
||||
|
||||
$form->name = clean_text(strip_tags($form->name, '<lang><span>'));
|
||||
|
||||
$form->timestart = make_timestamp($form->startyr, $form->startmon, $form->startday, $form->starthr, $form->startmin);
|
||||
if($form->duration == 1) {
|
||||
$form->timeduration = make_timestamp($form->endyr, $form->endmon, $form->endday, $form->endhr, $form->endmin) - $form->timestart;
|
||||
if($form->timeduration < 0) {
|
||||
$form->timeduration = 0;
|
||||
}
|
||||
}
|
||||
else if ($form->duration == 2) {
|
||||
$form->timeduration = $form->minutes * MINSECS;
|
||||
}
|
||||
else {
|
||||
$form->timeduration = 0;
|
||||
}
|
||||
if(!calendar_add_event_allowed($form)) {
|
||||
error('You are not authorized to do this');
|
||||
}
|
||||
// validate form and set error if any.
|
||||
validate_form($form, $err);
|
||||
|
||||
if (count($err) == 0) {
|
||||
if (!calendar_add_event_allowed($form)) {
|
||||
error('You are not authorized to do this');
|
||||
}
|
||||
$form->timemodified = time();
|
||||
|
||||
/// Get the event id for the log record.
|
||||
@@ -568,11 +539,44 @@
|
||||
|
||||
|
||||
function validate_form(&$form, &$err) {
|
||||
$cleanform = new stdClass();
|
||||
//first clean the form values
|
||||
$cleanform->name = clean_param(strip_tags(trim($form->name), '<lang><span>'),PARAM_CLEAN);
|
||||
$cleanform->description = addslashes(clean_param($form->description, PARAM_CLEANHTML));
|
||||
$cleanform->duration = clean_param($form->duration, PARAM_INT);
|
||||
$cleanform->startmon = clean_param($form->startmon, PARAM_INT);
|
||||
$cleanform->startday = clean_param($form->startday, PARAM_INT);
|
||||
$cleanform->startyr = clean_param($form->startyr, PARAM_INT);
|
||||
$cleanform->starthr = clean_param($form->starthr, PARAM_INT);
|
||||
$cleanform->startmin = clean_param($form->startmin, PARAM_INT);
|
||||
$cleanform->endmon = clean_param($form->endmon, PARAM_INT);
|
||||
$cleanform->endday = clean_param($form->endday, PARAM_INT);
|
||||
$cleanform->endyr = clean_param($form->endyr, PARAM_INT);
|
||||
$cleanform->endhr = clean_param($form->endhr, PARAM_INT);
|
||||
$cleanform->endmin = clean_param($form->endmin, PARAM_INT);
|
||||
$cleanform->minutes = clean_param($form->minutes, PARAM_INT);
|
||||
$cleanform->courseid = clean_param($form->courseid, PARAM_INT);
|
||||
$cleanform->format = clean_param($form->format, PARAM_INT);
|
||||
$cleanform->course = clean_param($form->course, PARAM_INT);
|
||||
$cleanform->action = clean_param($form->action, PARAM_ALPHA);
|
||||
|
||||
$form->name = trim($form->name);
|
||||
$form->description = trim($form->description);
|
||||
// These values are only required for new event.
|
||||
if ($cleanform->action === 'new') {
|
||||
$cleanform->repeat = clean_param($form->repeat, PARAM_INT);
|
||||
$cleanform->repeats = clean_param($form->repeats, PARAM_INT);
|
||||
$cleanform->groupid = clean_param($form->groupid, PARAM_INT);
|
||||
$cleanform->userid = clean_param($form->userid, PARAM_INT);
|
||||
$cleanform->modulename = clean_param($form->modulename, PARAM_SAFEDIR);
|
||||
$cleanform->eventtype = clean_param($form->eventtype, PARAM_ALPHA);
|
||||
$cleanform->instance = clean_param($form->instance, PARAM_INT);
|
||||
$cleanform->type = clean_param($form->type, PARAM_ALPHA);
|
||||
} else {
|
||||
$cleanform->id = clean_param($form->id, PARAM_INT);
|
||||
}
|
||||
// set form with clean and valid values only.
|
||||
$form = $cleanform;
|
||||
|
||||
if(empty($form->name)) {
|
||||
if (empty($form->name)) {
|
||||
$err['name'] = get_string('errornoeventname', 'calendar');
|
||||
}
|
||||
/* Allow events without a description
|
||||
@@ -580,28 +584,53 @@ function validate_form(&$form, &$err) {
|
||||
$err['description'] = get_string('errornodescription', 'calendar');
|
||||
}
|
||||
*/
|
||||
if(!checkdate($form->startmon, $form->startday, $form->startyr)) {
|
||||
if (!checkdate($form->startmon, $form->startday, $form->startyr)) {
|
||||
$err['timestart'] = get_string('errorinvaliddate', 'calendar');
|
||||
}
|
||||
if($form->duration == 2 and !checkdate($form->endmon, $form->endday, $form->endyr)) {
|
||||
if ($form->duration == 1 and !checkdate($form->endmon, $form->endday, $form->endyr)) {
|
||||
$err['timeduration'] = get_string('errorinvaliddate', 'calendar');
|
||||
}
|
||||
if($form->duration == 2 and !($form->minutes > 0 and $form->minutes < 1000)) {
|
||||
if ($form->duration == 2 and !($form->minutes > 0 and $form->minutes < 1000)) {
|
||||
$err['minutes'] = get_string('errorinvalidminutes', 'calendar');
|
||||
}
|
||||
if (!empty($form->repeat) and !($form->repeats > 1 and $form->repeats < 100)) {
|
||||
$err['repeats'] = get_string('errorinvalidrepeats', 'calendar');
|
||||
}
|
||||
if(!empty($form->courseid)) {
|
||||
|
||||
// set start time and duration
|
||||
$form->timestart = make_timestamp($form->startyr, $form->startmon, $form->startday, $form->starthr, $form->startmin);
|
||||
if ($form->duration == 1) {
|
||||
$form->timeduration = make_timestamp($form->endyr, $form->endmon, $form->endday, $form->endhr, $form->endmin) - $form->timestart;
|
||||
// Duration should be set for time in future.
|
||||
if ($form->timeduration <= 0) {
|
||||
$err['timeduration'] = get_string('errorinvaliddate', 'calendar');
|
||||
$form->timeduration = 0;
|
||||
}
|
||||
}
|
||||
else if ($form->duration == 2) {
|
||||
$form->timeduration = $form->minutes * MINSECS;
|
||||
}
|
||||
else {
|
||||
$form->timeduration = 0;
|
||||
}
|
||||
|
||||
if (!empty($form->courseid)) {
|
||||
// Timestamps must be >= course startdate
|
||||
$course = get_record('course', 'id', $form->courseid);
|
||||
if($course === false) {
|
||||
if ($course === false) {
|
||||
error('Event belongs to invalid course');
|
||||
}
|
||||
else if($form->timestart < $course->startdate) {
|
||||
$err['timestart'] = get_string('errorbeforecoursestart', 'calendar');
|
||||
}
|
||||
}
|
||||
if (!empty($form->modulename)) {
|
||||
// Check that passed modulename actually exists (possible SQL Injection route)
|
||||
$module = get_record('modules', 'name', $form->modulename);
|
||||
if ($module === false) {
|
||||
error('Invalid module name');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function calendar_add_event_allowed($event) {
|
||||
|
||||
@@ -1582,6 +1582,7 @@ function calendar_get_allowed_types(&$allowed) {
|
||||
if(!empty($SESSION->cal_course_referer) && $SESSION->cal_course_referer != SITEID) {
|
||||
$course = get_record('course', 'id', $SESSION->cal_course_referer);
|
||||
$coursecontext = get_context_instance(CONTEXT_COURSE, $SESSION->cal_course_referer);
|
||||
$allowed->user = has_capability('moodle/calendar:manageownentries', $coursecontext);
|
||||
|
||||
if(has_capability('moodle/calendar:manageentries', $coursecontext)) {
|
||||
$allowed->courses = array($course->id => 1);
|
||||
|
||||
+10
-11
@@ -41,15 +41,14 @@
|
||||
require_once('../config.php');
|
||||
require_once($CFG->dirroot.'/calendar/lib.php');
|
||||
|
||||
$from = required_param('from');
|
||||
$var = required_param('var');
|
||||
$value = optional_param('value');
|
||||
$id = optional_param('id');
|
||||
$cal_d = optional_param('cal_d');
|
||||
$cal_m = optional_param('cal_m');
|
||||
$cal_y = optional_param('cal_y');
|
||||
$action = optional_param('action');
|
||||
$type = optional_param('type');
|
||||
$from = required_param('from', PARAM_ALPHA);
|
||||
$var = required_param('var', PARAM_ALPHA);
|
||||
$id = optional_param('id', 0, PARAM_INT);
|
||||
$cal_d = optional_param('cal_d', 0, PARAM_INT);
|
||||
$cal_m = optional_param('cal_m', 0, PARAM_INT);
|
||||
$cal_y = optional_param('cal_y', 0, PARAM_INT);
|
||||
$action = optional_param('action', '', PARAM_ALPHA);
|
||||
$type = optional_param('type', '', PARAM_ALPHA);
|
||||
|
||||
// Initialize the session variables
|
||||
calendar_session_vars();
|
||||
@@ -107,7 +106,7 @@
|
||||
|
||||
switch($from) {
|
||||
case 'event':
|
||||
redirect(CALENDAR_URL.'event.php?action='.$action.'&type='.$type.'&id='.intval($id));
|
||||
redirect(CALENDAR_URL.'event.php?action='.$action.'&type='.$type.'&id='.$id);
|
||||
break;
|
||||
case 'month':
|
||||
redirect(CALENDAR_URL.'view.php?view=month'.$courseid.'&cal_d='.$cal_d.'&cal_m='.$cal_m.'&cal_y='.$cal_y);
|
||||
@@ -119,7 +118,7 @@
|
||||
redirect(CALENDAR_URL.'view.php?view=day'.$courseid.'&cal_d='.$cal_d.'&cal_m='.$cal_m.'&cal_y='.$cal_y);
|
||||
break;
|
||||
case 'course':
|
||||
redirect($CFG->wwwroot.'/course/view.php?id='.intval($id));
|
||||
redirect($CFG->wwwroot.'/course/view.php?id='.$id);
|
||||
break;
|
||||
default:
|
||||
|
||||
|
||||
+16
-16
@@ -426,7 +426,7 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $course
|
||||
}
|
||||
|
||||
// Now display all the calendar
|
||||
for($day = 1; $day <= $display->maxdays; ++$day, ++$dayweek) {
|
||||
for($aday = 1; $aday <= $display->maxdays; ++$aday, ++$dayweek) {
|
||||
if($dayweek > $display->maxwday) {
|
||||
// We need to change week (table row)
|
||||
echo "</tr>\n<tr>";
|
||||
@@ -436,7 +436,7 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $course
|
||||
|
||||
// Reset vars
|
||||
$cell = '';
|
||||
$dayhref = calendar_get_link_href(CALENDAR_URL.'view.php?view=day&course='.$courseid.'&', $day, $m, $y);
|
||||
$dayhref = calendar_get_link_href(CALENDAR_URL.'view.php?view=day&course='.$courseid.'&', $aday, $m, $y);
|
||||
|
||||
if(CALENDAR_WEEKEND & (1 << ($dayweek % 7))) {
|
||||
// Weekend. This is true no matter what the exact range is.
|
||||
@@ -448,35 +448,35 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $course
|
||||
}
|
||||
|
||||
// Special visual fx if an event is defined
|
||||
if(isset($eventsbyday[$day])) {
|
||||
if(count($eventsbyday[$day]) == 1) {
|
||||
if(isset($eventsbyday[$aday])) {
|
||||
if(count($eventsbyday[$aday]) == 1) {
|
||||
$title = get_string('oneevent', 'calendar');
|
||||
}
|
||||
else {
|
||||
$title = get_string('manyevents', 'calendar', count($eventsbyday[$day]));
|
||||
$title = get_string('manyevents', 'calendar', count($eventsbyday[$aday]));
|
||||
}
|
||||
$cell = '<div class="day"><a href="'.$dayhref.'" title="'.$title.'">'.$day.'</a></div>';
|
||||
$cell = '<div class="day"><a href="'.$dayhref.'" title="'.$title.'">'.$aday.'</a></div>';
|
||||
}
|
||||
else {
|
||||
$cell = '<div class="day">'.$day.'</div>';
|
||||
$cell = '<div class="day">'.$aday.'</div>';
|
||||
}
|
||||
|
||||
// Special visual fx if an event spans many days
|
||||
if(isset($typesbyday[$day]['durationglobal'])) {
|
||||
if(isset($typesbyday[$aday]['durationglobal'])) {
|
||||
$class .= ' duration_global';
|
||||
}
|
||||
else if(isset($typesbyday[$day]['durationcourse'])) {
|
||||
else if(isset($typesbyday[$aday]['durationcourse'])) {
|
||||
$class .= ' duration_course';
|
||||
}
|
||||
else if(isset($typesbyday[$day]['durationgroup'])) {
|
||||
else if(isset($typesbyday[$aday]['durationgroup'])) {
|
||||
$class .= ' duration_group';
|
||||
}
|
||||
else if(isset($typesbyday[$day]['durationuser'])) {
|
||||
else if(isset($typesbyday[$aday]['durationuser'])) {
|
||||
$class .= ' duration_user';
|
||||
}
|
||||
|
||||
// Special visual fx for today
|
||||
if($display->thismonth && $day == $d) {
|
||||
if($display->thismonth && $aday == $d) {
|
||||
$class .= ' today';
|
||||
} else {
|
||||
$class .= ' nottoday';
|
||||
@@ -488,9 +488,9 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $course
|
||||
}
|
||||
echo '<td'.$class.'>'.$cell;
|
||||
|
||||
if(isset($eventsbyday[$day])) {
|
||||
if(isset($eventsbyday[$aday])) {
|
||||
echo '<ul class="events-new">';
|
||||
foreach($eventsbyday[$day] as $eventindex) {
|
||||
foreach($eventsbyday[$aday] as $eventindex) {
|
||||
|
||||
// If event has a class set then add it to the event <li> tag
|
||||
$eventclass = '';
|
||||
@@ -502,9 +502,9 @@ function calendar_show_month_detailed($m, $y, $courses, $groups, $users, $course
|
||||
}
|
||||
echo '</ul>';
|
||||
}
|
||||
if(isset($durationbyday[$day])) {
|
||||
if(isset($durationbyday[$aday])) {
|
||||
echo '<ul class="events-underway">';
|
||||
foreach($durationbyday[$day] as $eventindex) {
|
||||
foreach($durationbyday[$aday] as $eventindex) {
|
||||
echo '<li>['.format_string($events[$eventindex]->name,true).']</li>';
|
||||
}
|
||||
echo '</ul>';
|
||||
|
||||
+21
-5
@@ -57,15 +57,28 @@
|
||||
if ($resort and confirm_sesskey()) {
|
||||
if ($courses = get_courses($category->id, "fullname ASC", 'c.id,c.fullname,c.sortorder')) {
|
||||
// move it off the range
|
||||
$count = get_record_sql('SELECT MIN(sortorder) AS min, 1
|
||||
|
||||
$sortorderresult = get_record_sql('SELECT MIN(sortorder) AS min, 1
|
||||
FROM ' . $CFG->prefix . 'course WHERE category=' . $category->id);
|
||||
$count = $count->min;
|
||||
$sortordermin = $sortorderresult->min;
|
||||
|
||||
$sortorderresult = get_record_sql('SELECT MAX(sortorder) AS max, 1
|
||||
FROM ' . $CFG->prefix . 'course WHERE category=' . $category->id);
|
||||
$sortorder = $sortordermax = $sortorderresult->max + 100;
|
||||
|
||||
//place the courses above the maximum existing sortorder to avoid duplicate index errors
|
||||
//after they've been sorted we'll shift them down again
|
||||
begin_sql();
|
||||
foreach ($courses as $course) {
|
||||
set_field('course', 'sortorder', $count, 'id', $course->id);
|
||||
$count++;
|
||||
set_field('course', 'sortorder', $sortorder, 'id', $course->id);
|
||||
$sortorder++;
|
||||
}
|
||||
commit_sql();
|
||||
|
||||
//shift course sortorder back down the amount we moved them up
|
||||
execute_sql('UPDATE '. $CFG->prefix .'course SET sortorder = sortorder-'.($sortordermax-$sortordermin).
|
||||
' WHERE category='.$category->id);
|
||||
|
||||
fix_course_sortorder($category->id);
|
||||
}
|
||||
}
|
||||
@@ -118,7 +131,10 @@
|
||||
/// Print current category description
|
||||
if (!$editingon && $category->description) {
|
||||
print_box_start();
|
||||
echo format_text($category->description); // for multilang filter
|
||||
$options = new stdClass();
|
||||
$options->noclean = true;
|
||||
$options->para = false;
|
||||
echo format_text($category->description, FORMAT_MOODLE, $options); // for multilang filter
|
||||
print_box_end();
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -84,11 +84,11 @@
|
||||
/// process data if submitted
|
||||
|
||||
//preprocess data
|
||||
if ($data->enrolstartdisabled){
|
||||
if (!empty($data->enrolstartdisabled)) {
|
||||
$data->enrolstartdate = 0;
|
||||
}
|
||||
|
||||
if ($data->enrolenddisabled) {
|
||||
if (!empty($data->enrolenddisabled)) {
|
||||
$data->enrolenddate = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -61,6 +61,8 @@ if ($mform->is_cancelled()) {
|
||||
// Update an existing category.
|
||||
$newcategory->id = $category->id;
|
||||
if ($newcategory->parent != $category->parent) {
|
||||
// check category manage capability if parent changed
|
||||
require_capability('moodle/category:manage', get_category_or_system_context((int)$newcategory->parent));
|
||||
$parent_cat = get_record('course_categories', 'id', $newcategory->parent);
|
||||
move_category($newcategory, $parent_cat);
|
||||
}
|
||||
|
||||
@@ -9,11 +9,17 @@ class editcategory_form extends moodleform {
|
||||
$category = $this->_customdata;
|
||||
|
||||
// get list of categories to use as parents, with site as the first one
|
||||
$options = array(get_string('top'));
|
||||
$options = array();
|
||||
if (has_capability('moodle/category:manage', get_system_context()) || $category->parent == 0) {
|
||||
$options[0] = get_string('top');
|
||||
}
|
||||
$parents = array();
|
||||
if ($category->id) {
|
||||
// Editing an existing category.
|
||||
make_categories_list($options, $parents, 'moodle/category:manage', $category->id);
|
||||
if (empty($options[$category->parent])) {
|
||||
$options[$category->parent] = get_field('course_categories', 'name', 'id', $category->parent);
|
||||
}
|
||||
$strsubmit = get_string('savechanges');
|
||||
} else {
|
||||
// Making a new category
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
<div class="singlebutton">
|
||||
<input type="hidden" name="id" value="<?php echo $form->id ?>" />
|
||||
<input type="hidden" name="id" value="<?php echo $id ?>" />
|
||||
<input type="hidden" name="sesskey" value="<?php echo sesskey() ?>" />
|
||||
<input type="submit" value="<?php print_string("savechanges") ?>" />
|
||||
</div>
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
} else {
|
||||
$sectionname = get_section_name($course->format);
|
||||
$stredit = get_string('edit', '', " $sectionname $section->section");
|
||||
$strsummaryof = get_string('summaryof', '', " $sectionname $form->section");
|
||||
$strsummaryof = get_string('summaryof', '', " $sectionname $section->section");
|
||||
}
|
||||
|
||||
print_header_simple($stredit, '', build_navigation(array(array('name' => $stredit, 'link' => null, 'type' => 'misc'))), 'theform.summary' );
|
||||
|
||||
+1
-1
@@ -53,7 +53,7 @@
|
||||
}
|
||||
|
||||
/// Check if the course is a meta course (bug 5734)
|
||||
if ($course->metacourse) {
|
||||
if ($course->metacourse && !($course->guest == 2 && isguestuser())) {
|
||||
print_header_simple();
|
||||
notice(get_string('coursenotaccessible'), "$CFG->wwwroot/index.php");
|
||||
}
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
|
||||
|
||||
$CFG->ajaxcapable = true;
|
||||
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111);
|
||||
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111, 'Safari'=>531, 'Chrome'=>6.0);
|
||||
|
||||
?>
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
if ($thissection->summary or $thissection->sequence or isediting($course->id)) {
|
||||
echo '<tr id="section-0" class="section main">';
|
||||
echo '<td class="left side"> </td>';
|
||||
echo '<td id="sectionblock-0" class="left side"> </td>';
|
||||
echo '<td class="content">';
|
||||
|
||||
echo '<div class="summary">';
|
||||
@@ -194,7 +194,7 @@
|
||||
}
|
||||
|
||||
echo '<tr id="section-'.$section.'" class="section main'.$sectionstyle.'">';
|
||||
echo '<td class="left side">'.$currenttext.$section.'</td>';
|
||||
echo '<td id="sectionblock-'.$section.'" class="left side">'.$currenttext.$section.'</td>';
|
||||
|
||||
echo '<td class="content">';
|
||||
if (!has_capability('moodle/course:viewhiddensections', $context) and !$thissection->visible) { // Hidden for students
|
||||
@@ -221,11 +221,11 @@
|
||||
echo '<td class="right side">';
|
||||
if ($displaysection == $section) { // Show the zoom boxes
|
||||
echo '<a href="view.php?id='.$course->id.'&topic=0#section-'.$section.'" title="'.$strshowalltopics.'">'.
|
||||
'<img src="'.$CFG->pixpath.'/i/all.gif" alt="'.$strshowalltopics.'" /></a><br />';
|
||||
'<img src="'.$CFG->pixpath.'/i/all.gif" class="icon topicall" alt="'.$strshowalltopics.'" /></a><br />';
|
||||
} else {
|
||||
$strshowonlytopic = get_string('showonlytopic', '', $section);
|
||||
echo '<a href="view.php?id='.$course->id.'&topic='.$section.'" title="'.$strshowonlytopic.'">'.
|
||||
'<img src="'.$CFG->pixpath.'/i/one.gif" alt="'.$strshowonlytopic.'" /></a><br />';
|
||||
'<img src="'.$CFG->pixpath.'/i/one.gif" class="icon topicone" alt="'.$strshowonlytopic.'" /></a><br />';
|
||||
}
|
||||
|
||||
if (isediting($course->id) && has_capability('moodle/course:update', get_context_instance(CONTEXT_COURSE, $course->id))) {
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
|
||||
|
||||
$CFG->ajaxcapable = true;
|
||||
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111);
|
||||
$CFG->ajaxtestedbrowsers = array('MSIE' => 6.0, 'Gecko' => 20061111, 'Safari'=>531, 'Chrome'=>6.0);
|
||||
|
||||
?>
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
|
||||
if ($thissection->summary or $thissection->sequence or isediting($course->id)) {
|
||||
echo '<tr id="section-0" class="section main">';
|
||||
echo '<td class="left side"> </td>';
|
||||
echo '<td id="sectionblock-0" class="left side"> </td>';
|
||||
echo '<td class="content">';
|
||||
|
||||
echo '<div class="summary">';
|
||||
@@ -187,7 +187,7 @@
|
||||
}
|
||||
|
||||
echo '<tr id="section-'.$section.'" class="section main'.$sectionstyle.'">';
|
||||
echo '<td class="left side"> '.$currenttext.'</td>';
|
||||
echo '<td id="sectionblock-'.$section.'" class="left side"> '.$currenttext.'</td>';
|
||||
|
||||
$weekperiod = $weekday.' - '.$endweekday;
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
$taught_courses = array();
|
||||
if (!empty($tcourseids)) {
|
||||
$tcourseids = substr($tcourseids,0,-1);
|
||||
$taught_courses = get_records_list('course', 'id', $tcourseids, 'sortorder');
|
||||
$taught_courses = get_records_list('course', 'id', $tcourseids, 'sortorder', 'id, fullname');
|
||||
}
|
||||
|
||||
if (!empty($creator)) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php // $Id: uploadgroups.php, 2005/10/31 19:09:31
|
||||
<?php // $Id$
|
||||
|
||||
/// Bulk group creation registration script from a comma separated file
|
||||
|
||||
|
||||
+1
-1
@@ -523,7 +523,7 @@ function print_log_csv($course, $user, $date, $order='l.time DESC', $modname,
|
||||
header("Pragma: public");
|
||||
|
||||
echo get_string('savedat').userdate(time(), $strftimedatetime)."\n";
|
||||
echo $text;
|
||||
echo $text."\n";
|
||||
|
||||
if (empty($logs['logs'])) {
|
||||
return true;
|
||||
|
||||
@@ -170,38 +170,36 @@
|
||||
|
||||
switch ($action) {
|
||||
case 'view':
|
||||
$actionsql = 'l.action IN (\''.implode('\',\'', $viewnames).'\' )';
|
||||
$actionsql = 'action IN (\''.implode('\',\'', $viewnames).'\' )';
|
||||
break;
|
||||
case 'post':
|
||||
$actionsql = 'l.action IN (\''.implode('\',\'', $postnames).'\' )';
|
||||
$actionsql = 'action IN (\''.implode('\',\'', $postnames).'\' )';
|
||||
break;
|
||||
default:
|
||||
// some modules have stuff we want to hide, ie mail blocked etc so do actually need to limit here.
|
||||
$actionsql = 'l.action IN (\''.implode('\',\'', array_merge($viewnames, $postnames)).'\' )';
|
||||
$actionsql = 'action IN (\''.implode('\',\'', array_merge($viewnames, $postnames)).'\' )';
|
||||
}
|
||||
|
||||
$relatedcontexts = get_related_contexts_string($context);
|
||||
|
||||
$sql = "SELECT ra.userid, u.firstname, u.lastname, u.idnumber, COUNT(l.action) AS count
|
||||
FROM {$CFG->prefix}role_assignments ra
|
||||
JOIN {$CFG->prefix}user u ON u.id = ra.userid
|
||||
LEFT OUTER JOIN {$CFG->prefix}log l ON (l.userid = ra.userid AND l.cmid = $instanceid AND l.time > $timefrom AND $actionsql)
|
||||
WHERE ra.contextid $relatedcontexts AND ra.roleid = $roleid";
|
||||
$sql = "SELECT ra.userid, u.firstname, u.lastname, u.idnumber, l.actioncount AS count
|
||||
FROM (SELECT * FROM {$CFG->prefix}role_assignments WHERE contextid $relatedcontexts AND roleid = $roleid ) ra
|
||||
JOIN {$CFG->prefix}user u ON u.id = ra.userid
|
||||
LEFT JOIN (
|
||||
SELECT userid, COUNT(action) AS actioncount FROM {$CFG->prefix}log WHERE cmid = $instanceid AND time > $timefrom AND $actionsql GROUP BY userid
|
||||
) l ON (l.userid = ra.userid)";
|
||||
|
||||
|
||||
if ($table->get_sql_where()) {
|
||||
$sql .= ' AND '.$table->get_sql_where(); //initial bar
|
||||
$sql .= ' WHERE '.$table->get_sql_where(); //initial bar
|
||||
}
|
||||
|
||||
$sql .= " GROUP BY ra.userid, u.firstname, u.lastname, u.idnumber";
|
||||
|
||||
if ($table->get_sql_sort()) {
|
||||
$sql .= ' ORDER BY '.$table->get_sql_sort();
|
||||
}
|
||||
|
||||
$countsql = "SELECT COUNT(DISTINCT(ra.userid))
|
||||
FROM {$CFG->prefix}role_assignments ra
|
||||
JOIN {$CFG->prefix}user u ON u.id = ra.userid
|
||||
LEFT OUTER JOIN {$CFG->prefix}log l ON (l.userid = ra.userid AND l.cmid = $instanceid AND l.time > $timefrom AND $actionsql)
|
||||
WHERE ra.contextid $relatedcontexts AND ra.roleid = $roleid";
|
||||
|
||||
$totalcount = count_records_sql($countsql);
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ Cron
|
||||
====
|
||||
|
||||
If your class offers a cron() method, it will be invoked by
|
||||
the standard Moodle cron every 5 minutes. Note that if the
|
||||
the standard Moodle cron every time it is called. Note that if the
|
||||
tasks are not lightweight you must control how frequently they
|
||||
execute, perhaps offering a config option.
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@ class enrolment_plugin_authorize
|
||||
$curcost = get_course_cost($course);
|
||||
echo '<div class="mdl-align">';
|
||||
echo '<p>'.get_string('paymentrequired').'</p>';
|
||||
echo '<p><b>'.get_string('cost').": $curcost[currency] $curcost[cost]".'</b></p>';
|
||||
echo '<p><b>'.get_string('cost').': '. $curcost['currency'] . $curcost['localizedcost'] .'</b></p>';
|
||||
echo '<p><a href="'.$CFG->httpswwwroot.'/login/">'.get_string('loginsite').'</a></p>';
|
||||
echo '</div>';
|
||||
}
|
||||
@@ -387,7 +387,7 @@ class enrolment_plugin_authorize
|
||||
}
|
||||
|
||||
$str .= '<div class="cost" title="'.$strrequirespayment.'">'.$strcost.': ';
|
||||
$str .= $currency . ' ' . $curcost['cost'].'</div>';
|
||||
$str .= $currency . ' ' . $curcost['localizedcost'].'</div>';
|
||||
}
|
||||
|
||||
return $str;
|
||||
|
||||
@@ -12,10 +12,11 @@ function get_course_cost($course)
|
||||
if (!empty($course->cost)) {
|
||||
$cost = (float)(((float)$course->cost) < 0) ? $CFG->enrol_cost : $course->cost;
|
||||
}
|
||||
|
||||
$cost = format_float($cost, 2);
|
||||
$costlocalizeddisplay = format_float($cost, 2);
|
||||
$cost = format_float($cost, 2, false);
|
||||
$ret = array(
|
||||
'cost' => $cost,
|
||||
'localizedcost' => $costlocalizeddisplay,
|
||||
'currency' => $currency
|
||||
);
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ function setup_enrolments(&$user) {
|
||||
//error_log('[ENROL_DB] Found '.count($existing).' existing roles and '.$count.' in external database');
|
||||
|
||||
foreach ($courselist as $coursefield) { /// Check the list of courses against existing
|
||||
$course = get_record('course', $CFG->enrol_localcoursefield, $coursefield);
|
||||
$course = get_record('course', $CFG->enrol_localcoursefield, addslashes($coursefield));
|
||||
if (!is_object($course)) {
|
||||
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
|
||||
if (debugging('',DEBUG_ALL)) {
|
||||
@@ -157,7 +157,7 @@ function setup_enrolments(&$user) {
|
||||
if ($role_assignment->enrol == 'database') {
|
||||
//error_log('[ENROL_DB] Removing user from context '.$role_assignment->contextid);
|
||||
role_unassign($role_assignment->roleid, $user->id, '', $role_assignment->contextid);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -231,7 +231,7 @@ function sync_enrolments($role = null) {
|
||||
$course = false;
|
||||
$course = get_record( 'course',
|
||||
$CFG->enrol_localcoursefield,
|
||||
$extcourse );
|
||||
addslashes($extcourse) );
|
||||
|
||||
if (!is_object($course)) {
|
||||
if (empty($CFG->enrol_db_autocreate)) { // autocreation not allowed
|
||||
|
||||
@@ -157,13 +157,13 @@ function get_access_icons($course) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! $user = get_record("user", "idnumber", $fields[2]) ) {
|
||||
if (! $user = get_record("user", "idnumber", addslashes($fields[2])) ) {
|
||||
$this->log .= "Unknown user idnumber in field 3 - ignoring line\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (! $course = get_record("course", "idnumber", $fields[3]) ) {
|
||||
if (! $course = get_record("course", "idnumber", addslashes($fields[3])) ) {
|
||||
$this->log .= "Unknown course idnumber in field 4 - ignoring line\n";
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -516,11 +516,12 @@ function process_group_tag($tagcontents){
|
||||
// Else if we're allowed to create new categories, let's create this one
|
||||
$newcat->name = $group->category;
|
||||
$newcat->visible = 0;
|
||||
if($catid = insert_record('course_categories', $newcat)){
|
||||
if($catid = insert_record('course_categories', addslashes_object($newcat))){
|
||||
$course->category = $catid;
|
||||
$this->log_line("Created new (hidden) category, #$catid: $newcat->name");
|
||||
}else{
|
||||
$this->log_line('Failed to create new category: '.$newcat->name);
|
||||
$this->log_line('Failed to create new category: '.$newcat->name.' so using default category instead.');
|
||||
$course->category = 1;
|
||||
}
|
||||
}else{
|
||||
// If not found and not allowed to create, stick with default
|
||||
|
||||
+89
-89
@@ -4,8 +4,8 @@ require_once("$CFG->dirroot/enrol/enrol.class.php");
|
||||
|
||||
class enrolment_plugin_ldap {
|
||||
|
||||
var $log;
|
||||
|
||||
var $log;
|
||||
|
||||
var $enrol_localcoursefield = 'idnumber';
|
||||
|
||||
/**
|
||||
@@ -23,7 +23,7 @@ function setup_enrolments(&$user) {
|
||||
notify("[ENROL_LDAP] LDAP-module cannot connect to server: {$CFG->enrol_ldap_host_url}");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// we are connected OK, continue...
|
||||
|
||||
// Get all the possible roles
|
||||
@@ -37,7 +37,7 @@ function setup_enrolments(&$user) {
|
||||
if (!$roleassignments) {
|
||||
$roleassignments = array();
|
||||
}
|
||||
|
||||
|
||||
// Get the ones that came from LDAP
|
||||
$ldap_assignments = array_filter($roleassignments, create_function('$x', 'return $x->enrol == \'ldap\';'));
|
||||
|
||||
@@ -46,20 +46,20 @@ function setup_enrolments(&$user) {
|
||||
// Get enrolments for each type of role from LDAP.
|
||||
foreach($roles as $role) {
|
||||
$enrolments = $this->find_ext_enrolments(
|
||||
$ldap_connection,
|
||||
$user->idnumber ,
|
||||
$ldap_connection,
|
||||
$user->idnumber ,
|
||||
$role);
|
||||
|
||||
//error_log('[ENROL_LDAP] LDAP reports ' . count($enrolments) . ' enrolments of type ' . $role->shortname . '.');
|
||||
|
||||
foreach ($enrolments as $enrol){
|
||||
|
||||
|
||||
$course_ext_id = $enrol[$CFG->enrol_ldap_course_idnumber][0];
|
||||
if(empty($course_ext_id)){
|
||||
error_log("[ENROL_LDAP] The course external id is invalid!\n");
|
||||
continue; // next; skip this one!
|
||||
}
|
||||
|
||||
|
||||
// create the course ir required
|
||||
$course_obj = get_record( 'course',
|
||||
$this->enrol_localcoursefield,
|
||||
@@ -74,18 +74,18 @@ function setup_enrolments(&$user) {
|
||||
error_log("[ENROL_LDAP] User $user->username enrolled to a nonexistant course $course_ext_id \n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// deal with enrolment in the moodle db
|
||||
if (!empty($course_obj)) { // does course exist now?
|
||||
|
||||
if (!empty($course_obj)) { // does course exist now?
|
||||
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course_obj->id);
|
||||
//$courseroles = get_user_roles($context, $user->id);
|
||||
|
||||
|
||||
if (!get_record('role_assignments', 'roleid', $role->id, 'userid', $user->id, 'contextid', $context->id)) {
|
||||
//error_log("[ENROL_LDAP] Assigning role '{$role->name}' to {$user->id} ({$user->username}) in course {$course_obj->id} ({$course_obj->shortname})");
|
||||
if (!role_assign($role->id, $user->id, 0, $context->id, 0, 0, 0, 'ldap')){
|
||||
error_log("[ENROL_LDAP] Failed to assign role '{$role->name}' to $user->id ($user->username) into course $course_obj->id ($course_obj->shortname)");
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//error_log("[ENROL_LDAP] Role '{$role->name}' already assigned to {$user->id} ({$user->username}) in course {$course_obj->id} ({$course_obj->shortname})");
|
||||
}
|
||||
@@ -115,7 +115,7 @@ function setup_enrolments(&$user) {
|
||||
@ldap_close($ldap_connection);
|
||||
|
||||
//error_log('[ENROL_LDAP] finished with setup_enrolments');
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -137,7 +137,7 @@ function sync_enrolments($type, $enrol = false) {
|
||||
notify("LDAP-module cannot connect to server: $CFG->ldap_host_url");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// we are connected OK, continue...
|
||||
$this->enrol_ldap_bind($ldap_connection);
|
||||
|
||||
@@ -145,7 +145,7 @@ function sync_enrolments($type, $enrol = false) {
|
||||
$ldap_contexts = explode(";",$CFG->{'enrol_ldap_contexts_role'.$role->id});
|
||||
|
||||
// get all the fields we will want for the potential course creation
|
||||
// as they are light. don't get membership -- potentially a lot of data.
|
||||
// as they are light. don't get membership -- potentially a lot of data.
|
||||
$ldap_fields_wanted = array( 'dn', $CFG->enrol_ldap_course_idnumber);
|
||||
if (!empty($CFG->enrol_ldap_course_fullname)){
|
||||
array_push($ldap_fields_wanted, $CFG->enrol_ldap_course_fullname);
|
||||
@@ -161,11 +161,11 @@ function sync_enrolments($type, $enrol = false) {
|
||||
}
|
||||
|
||||
// define the search pattern
|
||||
if (!empty($CFG->enrol_ldap_objectclass)){
|
||||
if (!empty($CFG->enrol_ldap_objectclass)){
|
||||
$ldap_search_pattern='(objectclass='.$CFG->enrol_ldap_objectclass.')';
|
||||
} else {
|
||||
$ldap_search_pattern="(objectclass=*)";
|
||||
|
||||
|
||||
}
|
||||
|
||||
// first, pack the sortorder...
|
||||
@@ -176,19 +176,19 @@ function sync_enrolments($type, $enrol = false) {
|
||||
$context = trim($context);
|
||||
if ($CFG->enrol_ldap_search_sub){
|
||||
//use ldap_search to find first user from subtree
|
||||
$ldap_result = @ldap_search($ldap_connection,
|
||||
$context,
|
||||
$ldap_result = @ldap_search($ldap_connection,
|
||||
$context,
|
||||
$ldap_search_pattern,
|
||||
$ldap_fields_wanted);
|
||||
|
||||
} else {
|
||||
//search only in this context
|
||||
$ldap_result = @ldap_list($ldap_connection,
|
||||
$context,
|
||||
$ldap_result = @ldap_list($ldap_connection,
|
||||
$context,
|
||||
$ldap_search_pattern,
|
||||
$ldap_fields_wanted,0,0);
|
||||
}
|
||||
|
||||
|
||||
// check and push results
|
||||
$records = $ldap_result
|
||||
? ldap_get_entries($ldap_connection,$ldap_result)
|
||||
@@ -197,9 +197,9 @@ function sync_enrolments($type, $enrol = false) {
|
||||
// ldap libraries return an odd array, really. fix it:
|
||||
$flat_records=array();
|
||||
for ($c=0;$c<$records['count'];$c++) {
|
||||
array_push($flat_records, $records["$c"]);
|
||||
array_push($flat_records, $records["$c"]);
|
||||
}
|
||||
// free mem -- is there a leak?
|
||||
// free mem -- is there a leak?
|
||||
$records=0; $ldap_result=0;
|
||||
|
||||
if (count($flat_records)) {
|
||||
@@ -208,7 +208,7 @@ function sync_enrolments($type, $enrol = false) {
|
||||
foreach($flat_records as $course){
|
||||
$idnumber = $course{$CFG->enrol_ldap_course_idnumber}[0];
|
||||
print "== Synching $idnumber\n";
|
||||
// does the course exist in moodle already?
|
||||
// does the course exist in moodle already?
|
||||
$course_obj = false;
|
||||
$course_obj = get_record( 'course',
|
||||
$this->enrol_localcoursefield,
|
||||
@@ -237,22 +237,22 @@ function sync_enrolments($type, $enrol = false) {
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course_obj->id);
|
||||
|
||||
// pull the ldap membership into a nice array
|
||||
// this is an odd array -- mix of hash and array --
|
||||
// this is an odd array -- mix of hash and array --
|
||||
$ldapmembers=array();
|
||||
|
||||
if(array_key_exists('enrol_ldap_memberattribute_role'.$role->id, $CFG)
|
||||
&& !empty($CFG->{'enrol_ldap_memberattribute_role'.$role->id})
|
||||
&& !empty($course[strtolower($CFG->{'enrol_ldap_memberattribute_role'.$role->id} ) ])){ // may have no membership!
|
||||
|
||||
$ldapmembers = $course[strtolower($CFG->{'enrol_ldap_memberattribute_role'.$role->id} )];
|
||||
$ldapmembers = $course[strtolower($CFG->{'enrol_ldap_memberattribute_role'.$role->id} )];
|
||||
unset($ldapmembers['count']); // remove oddity ;)
|
||||
$ldapmembers = addslashes_recursive($ldapmembers);
|
||||
}
|
||||
|
||||
|
||||
// prune old ldap enrolments
|
||||
// hopefully they'll fit in the max buffer size for the RDBMS
|
||||
$sql = '
|
||||
SELECT enr.userid AS user, 1
|
||||
SELECT enr.userid
|
||||
FROM '.$CFG->prefix.'role_assignments enr
|
||||
JOIN '.$CFG->prefix.'user usr ON usr.id=enr.userid
|
||||
WHERE enr.roleid = '.$role->id.'
|
||||
@@ -266,7 +266,7 @@ function sync_enrolments($type, $enrol = false) {
|
||||
$todelete = get_records_sql($sql);
|
||||
if(!empty($todelete)){
|
||||
foreach ($todelete as $member) {
|
||||
$member = $member->user;
|
||||
$member = $member->userid;
|
||||
|
||||
if (role_unassign($role->id, $member, 0, $context->id, 'ldap')) {
|
||||
print "Unassigned $type from $member for course $course_obj->id ($course_obj->shortname)\n";
|
||||
@@ -275,21 +275,21 @@ function sync_enrolments($type, $enrol = false) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// insert current enrolments
|
||||
|
||||
// insert current enrolments
|
||||
// bad we can't do INSERT IGNORE with postgres...
|
||||
foreach ($ldapmembers as $ldapmember) {
|
||||
$sql = 'SELECT id,1 FROM '.$CFG->prefix.'user '
|
||||
." WHERE idnumber='$ldapmember'";
|
||||
$member = get_record_sql($sql);
|
||||
// print "sql: $sql \nidnumber = ".stripslashes($ldapmember)." \n".var_dump($member);
|
||||
$member = get_record_sql($sql);
|
||||
// print "sql: $sql \nidnumber = ".stripslashes($ldapmember)." \n".var_dump($member);
|
||||
if(empty($member) || empty($member->id)){
|
||||
print "Could not find user ".stripslashes($ldapmember).", skipping\n";
|
||||
continue;
|
||||
}
|
||||
$member = $member->id;
|
||||
if (!get_record('role_assignments', 'roleid', $role->id,
|
||||
'contextid', $context->id,
|
||||
if (!get_record('role_assignments', 'roleid', $role->id,
|
||||
'contextid', $context->id,
|
||||
'userid', $member, 'enrol', 'ldap')){
|
||||
if (role_assign($role->id, $member, 0, $context->id, 0, 0, 0, 'ldap')){
|
||||
print "Assigned role $type to $member (".stripslashes($ldapmember).") for course $course_obj->id ($course_obj->shortname)\n";
|
||||
@@ -302,10 +302,10 @@ function sync_enrolments($type, $enrol = false) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// we are done now, a bit of housekeeping
|
||||
fix_course_sortorder();
|
||||
|
||||
|
||||
@ldap_close($ldap_connection);
|
||||
return true;
|
||||
}
|
||||
@@ -321,7 +321,7 @@ function config_form($frm) {
|
||||
global $CFG;
|
||||
|
||||
$this->check_legacy_config();
|
||||
|
||||
|
||||
include("$CFG->dirroot/enrol/ldap/config.html");
|
||||
}
|
||||
|
||||
@@ -339,7 +339,7 @@ function process_config($config) {
|
||||
$config->enrol_ldap_version = '';
|
||||
}
|
||||
set_config('enrol_ldap_version', $config->enrol_ldap_version);
|
||||
|
||||
|
||||
if (!isset ($config->enrol_ldap_bind_dn)) {
|
||||
$config->enrol_ldap_bind_dn = '';
|
||||
}
|
||||
@@ -348,58 +348,58 @@ function process_config($config) {
|
||||
if (!isset ($config->enrol_ldap_bind_pw)) {
|
||||
$config->enrol_ldap_bind_pw = '';
|
||||
}
|
||||
set_config('enrol_ldap_bind_pw', $config->enrol_ldap_bind_pw);
|
||||
|
||||
set_config('enrol_ldap_bind_pw', $config->enrol_ldap_bind_pw);
|
||||
|
||||
if (!isset ($config->enrol_ldap_objectclass)) {
|
||||
$config->enrol_ldap_objectclass = '';
|
||||
}
|
||||
set_config('enrol_ldap_objectclass', $config->enrol_ldap_objectclass);
|
||||
|
||||
set_config('enrol_ldap_objectclass', $config->enrol_ldap_objectclass);
|
||||
|
||||
if (!isset ($config->enrol_ldap_category)) {
|
||||
$config->enrol_ldap_category = '';
|
||||
}
|
||||
set_config('enrol_ldap_category', $config->enrol_ldap_category);
|
||||
|
||||
set_config('enrol_ldap_category', $config->enrol_ldap_category);
|
||||
|
||||
if (!isset ($config->enrol_ldap_template)) {
|
||||
$config->enrol_ldap_template = '';
|
||||
}
|
||||
set_config('enrol_ldap_template', $config->enrol_ldap_template);
|
||||
|
||||
set_config('enrol_ldap_template', $config->enrol_ldap_template);
|
||||
|
||||
if (!isset ($config->enrol_ldap_course_fullname)) {
|
||||
$config->enrol_ldap_course_fullname = '';
|
||||
}
|
||||
set_config('enrol_ldap_course_fullname', $config->enrol_ldap_course_fullname);
|
||||
set_config('enrol_ldap_course_fullname', $config->enrol_ldap_course_fullname);
|
||||
|
||||
if (!isset ($config->enrol_ldap_course_shortname)) {
|
||||
$config->enrol_ldap_course_shortname = '';
|
||||
}
|
||||
set_config('enrol_ldap_course_shortname', $config->enrol_ldap_course_shortname);
|
||||
|
||||
set_config('enrol_ldap_course_shortname', $config->enrol_ldap_course_shortname);
|
||||
|
||||
if (!isset ($config->enrol_ldap_course_summary)) {
|
||||
$config->enrol_ldap_course_summary = '';
|
||||
}
|
||||
set_config('enrol_ldap_course_summary', $config->enrol_ldap_course_summary);
|
||||
|
||||
set_config('enrol_ldap_course_summary', $config->enrol_ldap_course_summary);
|
||||
|
||||
if (!isset ($config->enrol_ldap_course_idnumber)) {
|
||||
$config->enrol_ldap_course_idnumber = '';
|
||||
}
|
||||
set_config('enrol_ldap_course_idnumber', $config->enrol_ldap_course_idnumber);
|
||||
|
||||
set_config('enrol_ldap_course_idnumber', $config->enrol_ldap_course_idnumber);
|
||||
|
||||
if (!isset ($config->enrol_localcoursefield)) {
|
||||
$config->enrol_localcoursefield = '';
|
||||
}
|
||||
set_config('enrol_localcoursefield', $config->enrol_localcoursefield);
|
||||
|
||||
|
||||
if (!isset ($config->enrol_ldap_user_memberfield)) {
|
||||
$config->enrol_ldap_user_memberfield = '';
|
||||
}
|
||||
set_config('enrol_ldap_user_memberfield', $config->enrol_ldap_user_memberfield);
|
||||
|
||||
set_config('enrol_ldap_user_memberfield', $config->enrol_ldap_user_memberfield);
|
||||
|
||||
if (!isset ($config->enrol_ldap_search_sub)) {
|
||||
$config->enrol_ldap_search_sub = '0';
|
||||
}
|
||||
set_config('enrol_ldap_search_sub', $config->enrol_ldap_search_sub);
|
||||
|
||||
set_config('enrol_ldap_search_sub', $config->enrol_ldap_search_sub);
|
||||
|
||||
if (!isset ($config->enrol_ldap_autocreate)) {
|
||||
$config->enrol_ldap_autocreate = '0';
|
||||
}
|
||||
@@ -410,11 +410,11 @@ function process_config($config) {
|
||||
if (!isset($config->{'enrol_ldap_contexts_role'.$role->id})) {
|
||||
$config->{'enrol_ldap_contexts_role'.$role->id} = '';
|
||||
}
|
||||
|
||||
|
||||
if (!isset($config->{'enrol_ldap_memberattribute_role'.$role->id})) {
|
||||
$config->{'enrol_ldap_memberattribute_role'.$role->id} = '';
|
||||
}
|
||||
|
||||
|
||||
set_config('enrol_ldap_contexts_role'.$role->id, $config->{'enrol_ldap_contexts_role'.$role->id});
|
||||
set_config('enrol_ldap_memberattribute_role'.$role->id, $config->{'enrol_ldap_memberattribute_role'.$role->id});
|
||||
}
|
||||
@@ -435,7 +435,7 @@ function enrol_ldap_connect(){
|
||||
|
||||
if (!empty($CFG->enrol_ldap_bind_dn)) {
|
||||
$bind = ldap_bind( $result,
|
||||
$CFG->enrol_ldap_bind_dn,
|
||||
$CFG->enrol_ldap_bind_dn,
|
||||
$CFG->enrol_ldap_bind_pw );
|
||||
if (!$bind) {
|
||||
notify("Error in binding to LDAP server");
|
||||
@@ -464,11 +464,11 @@ function enrol_ldap_bind($ldap_connection){
|
||||
}
|
||||
|
||||
} else {
|
||||
//bind anonymously
|
||||
//bind anonymously
|
||||
if ( !ldap_bind($ldap_connection)){
|
||||
notify("Error: could not bind ldap anonymously");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -477,13 +477,13 @@ function enrol_ldap_bind($ldap_connection){
|
||||
function find_ext_enrolments ($ldap_connection, $memberuid, $role){
|
||||
/// role is a record from the mdl_role table
|
||||
/// return multidimentional array array with of courses (at least dn and idnumber)
|
||||
///
|
||||
///
|
||||
|
||||
global $CFG;
|
||||
|
||||
if(empty($memberuid)) { // No "idnumber" stored for this user, so no LDAP enrolments
|
||||
return array();
|
||||
}
|
||||
}
|
||||
|
||||
//default return value
|
||||
$courses = array();
|
||||
@@ -493,7 +493,7 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
|
||||
$ldap_contexts = explode(";",$CFG->{'enrol_ldap_contexts_role'.$role->id});
|
||||
|
||||
// get all the fields we will want for the potential course creation
|
||||
// as they are light. don't get membership -- potentially a lot of data.
|
||||
// as they are light. don't get membership -- potentially a lot of data.
|
||||
$ldap_fields_wanted = array( 'dn', $CFG->enrol_ldap_course_idnumber);
|
||||
if (!empty($CFG->enrol_ldap_course_fullname)){
|
||||
array_push($ldap_fields_wanted, $CFG->enrol_ldap_course_fullname);
|
||||
@@ -507,7 +507,7 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
|
||||
|
||||
// define the search pattern
|
||||
$ldap_search_pattern = "(".$CFG->{'enrol_ldap_memberattribute_role'.$role->id}."=".$this->filter_addslashes($memberuid).")";
|
||||
if (!empty($CFG->enrol_ldap_objectclass)){
|
||||
if (!empty($CFG->enrol_ldap_objectclass)){
|
||||
$ldap_search_pattern='(&(objectclass='.$CFG->enrol_ldap_objectclass.')'.$ldap_search_pattern.')';
|
||||
}
|
||||
|
||||
@@ -516,31 +516,31 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
|
||||
if (empty($context)) {
|
||||
continue; // next;
|
||||
}
|
||||
|
||||
|
||||
if ($CFG->enrol_ldap_search_sub){
|
||||
//use ldap_search to find first user from subtree
|
||||
$ldap_result = ldap_search($ldap_connection,
|
||||
$context,
|
||||
$ldap_result = ldap_search($ldap_connection,
|
||||
$context,
|
||||
$ldap_search_pattern,
|
||||
$ldap_fields_wanted);
|
||||
|
||||
} else {
|
||||
//search only in this context
|
||||
$ldap_result = ldap_list($ldap_connection,
|
||||
$context,
|
||||
$ldap_result = ldap_list($ldap_connection,
|
||||
$context,
|
||||
$ldap_search_pattern,
|
||||
$ldap_fields_wanted);
|
||||
}
|
||||
|
||||
|
||||
// check and push results
|
||||
$records = ldap_get_entries($ldap_connection,$ldap_result);
|
||||
$records = ldap_get_entries($ldap_connection,$ldap_result);
|
||||
|
||||
// ldap libraries return an odd array, really. fix it:
|
||||
$flat_records=array();
|
||||
for ($c=0;$c<$records['count'];$c++) {
|
||||
array_push($flat_records, $records["$c"]);
|
||||
array_push($flat_records, $records["$c"]);
|
||||
}
|
||||
|
||||
|
||||
if (count($flat_records)) {
|
||||
$courses = array_merge($courses, $flat_records);
|
||||
}
|
||||
@@ -551,7 +551,7 @@ function find_ext_enrolments ($ldap_connection, $memberuid, $role){
|
||||
|
||||
// will create the moodle course from the template
|
||||
// course_ext is an array as obtained from ldap -- flattened somewhat
|
||||
// NOTE: if you pass true for $skip_fix_course_sortorder
|
||||
// NOTE: if you pass true for $skip_fix_course_sortorder
|
||||
// you will want to call fix_course_sortorder() after your are done
|
||||
// with course creation
|
||||
function create_course ($course_ext,$skip_fix_course_sortorder=0){
|
||||
@@ -578,7 +578,7 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
|
||||
$course->shortname = $course_ext[$CFG->enrol_ldap_course_shortname][0];
|
||||
if ( empty($course->idnumber)
|
||||
|| empty($course->fullname)
|
||||
|| empty($course->shortname) ) {
|
||||
|| empty($course->shortname) ) {
|
||||
// we are in trouble!
|
||||
error_log("Cannot create course: missing required data from the LDAP record!");
|
||||
error_log(var_export($course, true));
|
||||
@@ -588,10 +588,10 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
|
||||
$course->summary = empty($CFG->enrol_ldap_course_summary) || empty($course_ext[$CFG->enrol_ldap_course_summary][0])
|
||||
? ''
|
||||
: $course_ext[$CFG->enrol_ldap_course_summary][0];
|
||||
|
||||
|
||||
if(!empty($CFG->enrol_ldap_category)){ // optional ... but ensure it is set!
|
||||
$course->category = $CFG->enrol_ldap_category;
|
||||
}
|
||||
}
|
||||
if ($course->category == 0){ // must be avoided as it'll break moodle
|
||||
$course->category = 1; // the misc 'catch-all' category
|
||||
}
|
||||
@@ -600,13 +600,13 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
|
||||
$sort = get_record_sql('SELECT MAX(sortorder) AS max, 1 FROM ' . $CFG->prefix . 'course WHERE category=' . $course->category);
|
||||
$sort = $sort->max;
|
||||
$sort++;
|
||||
$course->sortorder = $sort;
|
||||
$course->sortorder = $sort;
|
||||
|
||||
// override with local data
|
||||
$course->startdate = time();
|
||||
$course->timecreated = time();
|
||||
$course->visible = 1;
|
||||
|
||||
|
||||
$course = addslashes_recursive($course);
|
||||
|
||||
// store it and log
|
||||
@@ -619,8 +619,8 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
|
||||
blocks_repopulate_page($page); // Return value no
|
||||
|
||||
|
||||
if(!$skip_fix_course_sortorder){
|
||||
fix_course_sortorder();
|
||||
if(!$skip_fix_course_sortorder){
|
||||
fix_course_sortorder();
|
||||
}
|
||||
add_to_log($newcourseid, "course", "new", "view.php?id=$newcourseid", "enrol/ldap auto-creation");
|
||||
} else {
|
||||
@@ -628,7 +628,7 @@ function create_course ($course_ext,$skip_fix_course_sortorder=0){
|
||||
notify("Serious Error! Could not create the new course!");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return $newcourseid;
|
||||
}
|
||||
|
||||
@@ -665,7 +665,7 @@ function check_legacy_config () {
|
||||
|
||||
unset_config('enrol_ldap_teacher_contexts');
|
||||
}
|
||||
|
||||
|
||||
if (isset($CFG->enrol_ldap_teacher_memberattribute)) {
|
||||
if (isset($teacher_role)
|
||||
or $teacher_role = get_record('role', 'shortname', 'teacher')) {
|
||||
|
||||
@@ -171,7 +171,7 @@ class enrolment_plugin_mnet {
|
||||
co.cost,
|
||||
co.currency,
|
||||
co.defaultrole as defaultroleid,
|
||||
r.name
|
||||
r.name as defaultrolename
|
||||
FROM
|
||||
{$CFG->prefix}course_categories ca
|
||||
JOIN
|
||||
@@ -206,7 +206,7 @@ class enrolment_plugin_mnet {
|
||||
co.cost,
|
||||
co.currency,
|
||||
co.defaultrole as defaultroleid,
|
||||
r.name
|
||||
r.name as defaultrolename
|
||||
FROM
|
||||
{$CFG->prefix}course_categories ca
|
||||
JOIN
|
||||
@@ -315,6 +315,7 @@ class enrolment_plugin_mnet {
|
||||
$userrecord->firstname = addslashes($user['firstname']);
|
||||
$userrecord->lastname = addslashes($user['lastname']);
|
||||
$userrecord->mnethostid = $MNET_REMOTE_CLIENT->id;
|
||||
$userrecord->confirmed = 1;
|
||||
|
||||
if ($userrecord->id = insert_record('user', $userrecord)) {
|
||||
$userrecord = get_record('user','id', $userrecord->id);
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
//TODO: Blog attachments do not have access control implemented - anybody can read them!
|
||||
// It might be better to move the code to separate file because the access
|
||||
// control is quite complex - see bolg/index.php
|
||||
// control is quite complex - see bolg/index.php
|
||||
|
||||
require_once('config.php');
|
||||
require_once('lib/filelib.php');
|
||||
@@ -29,7 +29,7 @@
|
||||
|
||||
$relativepath = get_file_argument('file.php');
|
||||
$forcedownload = optional_param('forcedownload', 0, PARAM_BOOL);
|
||||
|
||||
|
||||
// relative path must start with '/', because of backup/restore!!!
|
||||
if (!$relativepath) {
|
||||
error('No valid arguments supplied or incorrect server configuration');
|
||||
@@ -39,12 +39,20 @@
|
||||
|
||||
$pathname = $CFG->dataroot.$relativepath;
|
||||
|
||||
// protect imsenterprise plugin data
|
||||
if (strtolower("$CFG->dataroot/1/imsenterprise-enrol.xml") === strtolower(realpath($pathname))
|
||||
or (!empty($CFG->enrol_imsfilelocation) and strtolower($CFG->enrol_imsfilelocation) === strtolower(realpath($pathname)))) {
|
||||
require_login();
|
||||
require_capability('moodle/site:config', get_context_instance(CONTEXT_SYSTEM));
|
||||
$forcedownload = 1;
|
||||
}
|
||||
|
||||
// extract relative path components
|
||||
$args = explode('/', trim($relativepath, '/'));
|
||||
if (count($args) == 0) { // always at least courseid, may search for index.html in course root
|
||||
error('No valid arguments supplied');
|
||||
}
|
||||
|
||||
|
||||
// security: limit access to existing course subdirectories
|
||||
if (($args[0]!='blog') and (!$course = get_record_sql("SELECT * FROM {$CFG->prefix}course WHERE id='".(int)$args[0]."'"))) {
|
||||
error('Invalid course ID');
|
||||
@@ -84,7 +92,7 @@
|
||||
if (!has_capability('moodle/site:backup', get_context_instance(CONTEXT_COURSE, $course->id))) {
|
||||
error('Access not allowed');
|
||||
} else {
|
||||
$lifetime = 0; //disable browser caching for backups
|
||||
$lifetime = 0; //disable browser caching for backups
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,7 +128,7 @@
|
||||
if (!has_capability('mod/assignment:grade', get_context_instance(CONTEXT_MODULE, $cm->id))) {
|
||||
error('Access not allowed');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// security: force download of all attachments submitted by students
|
||||
@@ -144,11 +152,11 @@
|
||||
}
|
||||
if ($args[0] == 'blog') {
|
||||
$forcedownload = 1; // force download of all attachments
|
||||
}
|
||||
}
|
||||
|
||||
// security: some protection of hidden resource files
|
||||
// warning: it may break backwards compatibility
|
||||
if ((!empty($CFG->preventaccesstohiddenfiles))
|
||||
if ((!empty($CFG->preventaccesstohiddenfiles))
|
||||
and (count($args) >= 2)
|
||||
and (!(strtolower($args[1]) == 'moddata' and strtolower($args[2]) != 'resource')) // do not block files from other modules!
|
||||
and (!has_capability('moodle/course:viewhiddenactivities', get_context_instance(CONTEXT_COURSE, $course->id)))) {
|
||||
|
||||
+3
-3
@@ -8,8 +8,8 @@
|
||||
// USER is a persistent variable using sessions
|
||||
|
||||
require('../config.php');
|
||||
require($CFG->libdir.'/filelib.php');
|
||||
require($CFG->libdir.'/adminlib.php');
|
||||
require_once($CFG->libdir . '/filelib.php');
|
||||
require_once($CFG->libdir . '/adminlib.php');
|
||||
|
||||
$id = required_param('id', PARAM_INT);
|
||||
$file = optional_param('file', '', PARAM_PATH);
|
||||
@@ -539,7 +539,7 @@
|
||||
$file = basename($file);
|
||||
|
||||
if (!unzip_file("$basedir$wdir/$file")) {
|
||||
print_error("unzipfileserror","error");
|
||||
print_error("cannotunzipfile", "error");
|
||||
}
|
||||
|
||||
echo "<div style=\"text-align:center\"><form action=\"index.php\" method=\"get\">";
|
||||
|
||||
+104
-39
@@ -36,70 +36,80 @@ function mediaplugin_filter($courseid, $text) {
|
||||
$newtext = $text; // fullclone is slow and not needed here
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_mp3) {
|
||||
$search = '/<a.*?href="([^<]+\.mp3)"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.mp3)"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_mp3_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_ogg) {
|
||||
$search = '/<a\s[^>]*href="([^"]+\.ogg)"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'filter_mediaplugin_ogg_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_ogv) {
|
||||
$search = '/<a\s[^>]*href="([^"]+\.ogv)"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'filter_mediaplugin_ogv_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_swf) {
|
||||
$search = '/<a.*?href="([^<]+\.swf)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.swf)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_swf_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_flv) {
|
||||
$search = '/<a.*?href="([^<]+\.flv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.flv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_flv_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_mov) {
|
||||
$search = '/<a.*?href="([^<]+\.mov)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.mov)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
|
||||
|
||||
// MDL-18658
|
||||
$search = '/<a.*?href="([^<]+\.mp4)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.mp4)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
|
||||
|
||||
$search = '/<a.*?href="([^<]+\.m4v)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.m4v)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
|
||||
|
||||
$search = '/<a.*?href="([^<]+\.m4a)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^<]+\.m4a)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_wmv) {
|
||||
$search = '/<a.*?href="([^<]+\.wmv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.wmv)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_wmp_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_mpg) {
|
||||
$search = '/<a.*?href="([^<]+\.mpe?g)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.mpe?g)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_qt_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_avi) {
|
||||
$search = '/<a.*?href="([^<]+\.avi)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.avi)(\?d=([\d]{1,4}%?)x([\d]{1,4}%?))?"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_wmp_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_ram) {
|
||||
$search = '/<a.*?href="([^<]+\.ram)"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.ram)"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_rpm) {
|
||||
$search = '/<a.*?href="([^<]+\.rpm)"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.rpm)"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $newtext);
|
||||
}
|
||||
|
||||
if ($CFG->filter_mediaplugin_enable_rm) {
|
||||
$search = '/<a.*?href="([^<]+\.rm)"[^>]*>.*?<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]+\.rm)"[^>]*>.*?<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_real_callback', $newtext);
|
||||
}
|
||||
|
||||
if (!empty($CFG->filter_mediaplugin_enable_youtube)) {
|
||||
$search = '/<a[^>]*?href="([^<]*)youtube.com\/watch\?v=([^"]*)"[^>]*>(.*?)<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]*)youtube.com\/watch\?v=([^"]*)"[^>]*>(.*?)<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_youtube_callback', $newtext);
|
||||
|
||||
$search = '/<a[^>]*?href="([^<]*)youtube.com\/v\/([^"]*)"[^>]*>(.*?)<\/a>/is';
|
||||
$search = '/<a\s[^>]*href="([^"]*)youtube.com\/v\/([^"]*)"[^>]*>(.*?)<\/a>/is';
|
||||
$newtext = preg_replace_callback($search, 'mediaplugin_filter_youtube_callback', $newtext);
|
||||
}
|
||||
|
||||
@@ -133,20 +143,65 @@ function mediaplugin_filter_mp3_callback($link) {
|
||||
static $count = 0;
|
||||
$count++;
|
||||
$id = 'filter_mp3_'.time().$count; //we need something unique because it might be stored in text cache
|
||||
$url = $link[1];
|
||||
$jsurl = addslashes_js($link[1]);
|
||||
|
||||
$url = addslashes_js($link[1]);
|
||||
|
||||
return $link[0].
|
||||
$printlink = '<a href="'.$url.'">'.get_string('mp3audio', 'mediaplugin').'</a>';
|
||||
return $printlink.
|
||||
'<span class="mediaplugin mediaplugin_mp3" id="'.$id.'">('.get_string('mp3audio', 'mediaplugin').')</span>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/mp3player.swf?src='.$url.'",
|
||||
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/mp3player.swf?src='.$jsurl.'",
|
||||
width:"90", height:"15", majorversion:"6", build:"40", flashvars:"'.$c.'", quality: "high" };
|
||||
UFO.create(FO, "'.$id.'");
|
||||
//]]>
|
||||
</script>';
|
||||
}
|
||||
|
||||
function filter_mediaplugin_ogg_callback($link) {
|
||||
global $CFG;
|
||||
|
||||
static $count = 0;
|
||||
$count++;
|
||||
$id = 'filter_ogg_'.time().$count; //we need something unique because it might be stored in text cache
|
||||
|
||||
$url = $link[1];
|
||||
$printlink = '<a href="'.$url.'">'.get_string('oggaudio', 'mediaplugin').'</a>';
|
||||
|
||||
$unsupportedplugins = get_string('unsupportedplugins', 'mediaplugin', $printlink);
|
||||
$output = <<<OET
|
||||
<span class="mediaplugin mediaplugin_ogg" id="$id">
|
||||
<audio id="$id" src="$url" controls="true" width="100">
|
||||
$unsupportedplugins
|
||||
</audio>
|
||||
</span>
|
||||
OET;
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function filter_mediaplugin_ogv_callback($link) {
|
||||
global $CFG;
|
||||
|
||||
static $count = 0;
|
||||
$count++;
|
||||
$id = 'filter_ogv_'.time().$count; //we need something unique because it might be stored in text cache
|
||||
|
||||
$url = $link[1];
|
||||
$printlink = '<a href="'.$url.'">'.get_string('ogvvideo', 'mediaplugin').'</a>';
|
||||
|
||||
$unsupportedplugins = get_string('unsupportedplugins', 'mediaplugin', $printlink);
|
||||
$output = <<<OET
|
||||
<span class="mediaplugin mediaplugin_ogv" id="$id">
|
||||
<video id="$id" src="$url" controls="true" width="600" >
|
||||
$unsupportedplugins
|
||||
</video>
|
||||
</span>
|
||||
OET;
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
function mediaplugin_filter_swf_callback($link) {
|
||||
static $count = 0;
|
||||
$count++;
|
||||
@@ -154,13 +209,15 @@ function mediaplugin_filter_swf_callback($link) {
|
||||
|
||||
$width = empty($link[3]) ? '400' : $link[3];
|
||||
$height = empty($link[4]) ? '300' : $link[4];
|
||||
$url = addslashes_js($link[1]);
|
||||
$url = $link[1];
|
||||
$jsurl = addslashes_js($link[1]);
|
||||
$printlink = '<a href="'.$url.'">'.get_string('flashvideo', 'mediaplugin').'</a>';
|
||||
|
||||
return $link[0].
|
||||
return $printlink.
|
||||
'<span class="mediaplugin mediaplugin_swf" id="'.$id.'">('.get_string('flashanimation', 'mediaplugin').')</span>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var FO = { movie:"'.$url.'", width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
|
||||
var FO = { movie:"'.$jsurl.'", width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
|
||||
allowscriptaccess:"never", quality: "high" };
|
||||
UFO.create(FO, "'.$id.'");
|
||||
//]]>
|
||||
@@ -176,13 +233,15 @@ function mediaplugin_filter_flv_callback($link) {
|
||||
|
||||
$width = empty($link[3]) ? '480' : $link[3];
|
||||
$height = empty($link[4]) ? '360' : $link[4];
|
||||
$url = addslashes_js($link[1]);
|
||||
$url = $link[1];
|
||||
$jsurl = addslashes_js($link[1]);
|
||||
$printlink = '<a href="'.$url.'">'.get_string('flashvideo', 'mediaplugin').'</a>';
|
||||
|
||||
return $link[0].
|
||||
return $printlink.
|
||||
'<span class="mediaplugin mediaplugin_flv" id="'.$id.'">('.get_string('flashvideo', 'mediaplugin').')</span>
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file='.$url.'",
|
||||
var FO = { movie:"'.$CFG->wwwroot.'/filter/mediaplugin/flvplayer.swf?file='.$jsurl.'",
|
||||
width:"'.$width.'", height:"'.$height.'", majorversion:"6", build:"40",
|
||||
allowscriptaccess:"never", quality: "high", allowfullscreen: "true" };
|
||||
UFO.create(FO, "'.$id.'");
|
||||
@@ -191,29 +250,31 @@ function mediaplugin_filter_flv_callback($link) {
|
||||
}
|
||||
|
||||
function mediaplugin_filter_real_callback($link, $autostart=false) {
|
||||
$url = addslashes_js($link[1]);
|
||||
$url = $link[1];
|
||||
$jsurl = addslashes_js($link[1]);
|
||||
$mimetype = mimeinfo('type', $url);
|
||||
$autostart = $autostart ? 'true' : 'false';
|
||||
$printlink = '<a href="'.$url.'">'.get_string('realaudio', 'mediaplugin').'</a>';
|
||||
|
||||
// embed kept for now see MDL-8674
|
||||
return $link[0].
|
||||
return $printlink.
|
||||
'<span class="mediaplugin mediaplugin_real">
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
document.write(\'<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="240" height="180">\\
|
||||
<param name="src" value="'.$url.'" />\\
|
||||
<param name="src" value="'.$jsurl.'" />\\
|
||||
<param name="autostart" value="'.$autostart.'" />\\
|
||||
<param name="controls" value="imagewindow" />\\
|
||||
<param name="console" value="video" />\\
|
||||
<param name="loop" value="true" />\\
|
||||
<embed src="'.$url.'" width="240" height="180" loop="true" type="'.$mimetype.'" controls="imagewindow" console="video" autostart="'.$autostart.'" />\\
|
||||
<embed src="'.$jsurl.'" width="240" height="180" loop="true" type="'.$mimetype.'" controls="imagewindow" console="video" autostart="'.$autostart.'" />\\
|
||||
</object><br />\\
|
||||
<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="240" height="30">\\
|
||||
<param name="src" value="'.$url.'" />\\
|
||||
<param name="src" value="'.$jsurl.'" />\\
|
||||
<param name="autostart" value="'.$autostart.'" />\\
|
||||
<param name="controls" value="ControlPanel" />\\
|
||||
<param name="console" value="video" />\\
|
||||
<embed src="'.$url.'" width="240" height="30" controls="ControlPanel" type="'.$mimetype.'" console="video" autostart="'.$autostart.'" />\\
|
||||
<embed src="'.$jsurl.'" width="240" height="30" controls="ControlPanel" type="'.$mimetype.'" console="video" autostart="'.$autostart.'" />\\
|
||||
</object>\');
|
||||
//]]>
|
||||
</script></span>';
|
||||
@@ -224,18 +285,20 @@ document.write(\'<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" wi
|
||||
*/
|
||||
function mediaplugin_filter_youtube_callback($link, $autostart=false) {
|
||||
|
||||
$site = addslashes_js($link[1]);
|
||||
$url = addslashes_js($link[2]);
|
||||
$info = addslashes_js($link[3]);
|
||||
$site = s($link[1]);
|
||||
$url = $link[2];
|
||||
$info = s($link[3]);
|
||||
|
||||
return '<object title="'.$info.'"
|
||||
class="mediaplugin mediaplugin_youtube" type="application/x-shockwave-flash"
|
||||
return '<span class="mediaplugin mediaplugin_youtube">'.
|
||||
'<object title="'.$info.'"
|
||||
class="mediaplugin mediaplugin_youtube" type="application/x-shockwave-flash"
|
||||
data="'.$site.'youtube.com/v/'.$url.'&fs=1&rel=0" width="425" height="344">'.
|
||||
'<param name="movie" value="'.$site.'youtube.com/v/'.$url.'&fs=1&rel=0" />'.
|
||||
'<param name="FlashVars" value="playerMode=embedded" />'.
|
||||
'<param name="wmode" value="transparent" />'.
|
||||
'<param name="allowFullScreen" value="true" />'.
|
||||
'</object>';
|
||||
'</object>'.
|
||||
'</span>';
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -254,8 +317,9 @@ function mediaplugin_filter_wmp_callback($link, $autostart=false) {
|
||||
}
|
||||
$mimetype = mimeinfo('type', $url);
|
||||
$autostart = $autostart ? 'true' : 'false';
|
||||
$printlink = '<a href="'.$url.'">'.get_string('wmpvideo', 'mediaplugin').'</a>';
|
||||
|
||||
return $link[0].
|
||||
return $printlink.
|
||||
'<span class="mediaplugin mediaplugin_wmp">
|
||||
<object classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" '.$mpsize.'
|
||||
standby="Loading Microsoft(R) Windows(R) Media Player components..."
|
||||
@@ -293,8 +357,9 @@ function mediaplugin_filter_qt_callback($link, $autostart=false) {
|
||||
}
|
||||
$mimetype = mimeinfo('type', $url);
|
||||
$autostart = $autostart ? 'true' : 'false';
|
||||
$printlink = '<a href="'.$url.'">'.get_string('quicktime', 'mediaplugin').'</a>';
|
||||
|
||||
return $link[0].
|
||||
return $printlink.
|
||||
'<span class="mediaplugin mediaplugin_qt">
|
||||
<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B"
|
||||
codebase="http://www.apple.com/qtactivex/qtplugin.cab" '.$size.'>
|
||||
|
||||
@@ -21,4 +21,8 @@ $settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_rpm',
|
||||
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_rm', get_string('mediapluginrm','admin'), '', 1));
|
||||
|
||||
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_youtube', get_string('mediapluginyoutube','admin'), '', 0));
|
||||
|
||||
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_ogg', get_string('mediapluginogg','admin'), '', 1));
|
||||
|
||||
$settings->add(new admin_setting_configcheckbox('filter_mediaplugin_enable_ogv', get_string('mediapluginogv','admin'), '', 1));
|
||||
?>
|
||||
|
||||
@@ -115,7 +115,7 @@ class edit_outcome_form extends moodleform {
|
||||
if (empty($courseid)) {
|
||||
$mform->hardFreeze('standard');
|
||||
|
||||
} else if (empty($outcome->courseid) and !has_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM))) {
|
||||
} else if (!has_capability('moodle/grade:manage', get_context_instance(CONTEXT_SYSTEM))) {
|
||||
$mform->hardFreeze('standard');
|
||||
|
||||
} else if ($coursecount and empty($outcome->courseid)) {
|
||||
|
||||
@@ -83,7 +83,8 @@ class edit_scale_form extends moodleform {
|
||||
if (empty($courseid)) {
|
||||
$mform->hardFreeze('standard');
|
||||
|
||||
} else if (empty($scale->courseid) and !has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM))) {
|
||||
} else if (!has_capability('moodle/course:managescales', get_context_instance(CONTEXT_SYSTEM))) {
|
||||
//if they dont have managescales at system level the shouldnt be allowed to make scales standard (or not standard)
|
||||
$mform->hardFreeze('standard');
|
||||
|
||||
} else if ($used and !empty($scale->courseid)) {
|
||||
|
||||
@@ -101,9 +101,12 @@ class edit_category_form extends moodleform {
|
||||
$mform->disabledIf('droplow', 'keephigh', 'noteq', 0);
|
||||
|
||||
// Grade item settings
|
||||
$mform->addElement('header', 'general', get_string('gradeitem', 'grades'));
|
||||
//Displayed as Category total to avoid confusion between grade items requiring marking and category totals
|
||||
$mform->addElement('header', 'general', get_string('categorytotal', 'grades'));
|
||||
|
||||
$mform->addElement('text', 'grade_item_itemname', get_string('categorytotalname', 'grades'));
|
||||
$mform->setAdvanced('grade_item_itemname');
|
||||
|
||||
$mform->addElement('text', 'grade_item_itemname', get_string('itemname', 'grades'));
|
||||
$mform->addElement('text', 'grade_item_iteminfo', get_string('iteminfo', 'grades'));
|
||||
$mform->setHelpButton('grade_item_iteminfo', array('iteminfo', get_string('iteminfo', 'grades'), 'grade'), true);
|
||||
|
||||
|
||||
@@ -664,7 +664,12 @@ class grade_edit_tree_column_range extends grade_edit_tree_column {
|
||||
$grademax = format_float($item->grademax, $item->get_decimals());
|
||||
} elseif ($item->gradetype == GRADE_TYPE_SCALE) {
|
||||
$scale = get_record('scale', 'id', $item->scaleid);
|
||||
$scale_items = explode(',', $scale->scale);
|
||||
$scale_items = null;
|
||||
if (empty($scale)) { //if the item is using a scale that's been removed
|
||||
$scale_items = array();
|
||||
} else {
|
||||
$scale_items = explode(',', $scale->scale);
|
||||
}
|
||||
$grademax = end($scale_items) . ' (' . count($scale_items) . ')';
|
||||
} elseif ($item->is_external_item()) {
|
||||
$grademax = format_float($item->grademax, $item->get_decimals());
|
||||
|
||||
+24
-9
@@ -54,13 +54,20 @@ class grade_export {
|
||||
$this->groupid = $groupid;
|
||||
$this->grade_items = grade_item::fetch_all(array('courseid'=>$this->course->id));
|
||||
|
||||
//Populating the columns here is required by /grade/export/(whatever)/export.php
|
||||
//however index.php, when the form is submitted, will construct the collection here
|
||||
//with an empty $itemlist then reconstruct it in process_form() using $formdata
|
||||
$this->columns = array();
|
||||
if (!empty($itemlist)) {
|
||||
$itemids = explode(',', $itemlist);
|
||||
// remove items that are not requested
|
||||
foreach ($itemids as $itemid) {
|
||||
if (array_key_exists($itemid, $this->grade_items)) {
|
||||
$this->columns[$itemid] =& $this->grade_items[$itemid];
|
||||
if ($itemlist=='-1') {
|
||||
//user deselected all items
|
||||
} else {
|
||||
$itemids = explode(',', $itemlist);
|
||||
// remove items that are not requested
|
||||
foreach ($itemids as $itemid) {
|
||||
if (array_key_exists($itemid, $this->grade_items)) {
|
||||
$this->columns[$itemid] =& $this->grade_items[$itemid];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -87,9 +94,13 @@ class grade_export {
|
||||
|
||||
$this->columns = array();
|
||||
if (!empty($formdata->itemids)) {
|
||||
foreach ($formdata->itemids as $itemid=>$selected) {
|
||||
if ($selected and array_key_exists($itemid, $this->grade_items)) {
|
||||
$this->columns[$itemid] =& $this->grade_items[$itemid];
|
||||
if ($formdata->itemids=='-1') {
|
||||
//user deselected all items
|
||||
} else {
|
||||
foreach ($formdata->itemids as $itemid=>$selected) {
|
||||
if ($selected and array_key_exists($itemid, $this->grade_items)) {
|
||||
$this->columns[$itemid] =& $this->grade_items[$itemid];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@@ -267,10 +278,14 @@ class grade_export {
|
||||
*/
|
||||
function get_export_params() {
|
||||
$itemids = array_keys($this->columns);
|
||||
$itemidsparam = implode(',', $itemids);
|
||||
if (empty($itemidsparam)) {
|
||||
$itemidsparam = '-1';
|
||||
}
|
||||
|
||||
$params = array('id' =>$this->course->id,
|
||||
'groupid' =>$this->groupid,
|
||||
'itemids' =>implode(',', $itemids),
|
||||
'itemids' =>$itemidsparam,
|
||||
'export_letters' =>$this->export_letters,
|
||||
'export_feedback' =>$this->export_feedback,
|
||||
'updatedgradesonly' =>$this->updatedgradesonly,
|
||||
|
||||
+18
-10
@@ -108,10 +108,14 @@ class graded_users_iterator {
|
||||
|
||||
$users_sql = "SELECT u.* $ofields
|
||||
FROM {$CFG->prefix}user u
|
||||
INNER JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
|
||||
$groupsql
|
||||
WHERE ra.roleid $gradebookroles
|
||||
AND ra.contextid $relatedcontexts
|
||||
JOIN (
|
||||
SELECT DISTINCT ra.userid
|
||||
FROM {$CFG->prefix}role_assignments ra
|
||||
WHERE ra.roleid $gradebookroles
|
||||
AND ra.contextid $relatedcontexts
|
||||
) rainner ON rainner.userid = u.id
|
||||
WHERE u.deleted = 0
|
||||
$groupwheresql
|
||||
ORDER BY $order";
|
||||
|
||||
@@ -123,13 +127,17 @@ class graded_users_iterator {
|
||||
|
||||
$grades_sql = "SELECT g.* $ofields
|
||||
FROM {$CFG->prefix}grade_grades g
|
||||
INNER JOIN {$CFG->prefix}user u ON g.userid = u.id
|
||||
INNER JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
|
||||
JOIN {$CFG->prefix}user u ON g.userid = u.id
|
||||
$groupsql
|
||||
WHERE ra.roleid $gradebookroles
|
||||
AND ra.contextid $relatedcontexts
|
||||
AND g.itemid IN ($itemids)
|
||||
$groupwheresql
|
||||
JOIN (
|
||||
SELECT DISTINCT ra.userid
|
||||
FROM {$CFG->prefix}role_assignments ra
|
||||
WHERE ra.roleid $gradebookroles
|
||||
AND ra.contextid $relatedcontexts
|
||||
) rainner ON rainner.userid = u.id
|
||||
WHERE u.deleted = 0
|
||||
AND g.itemid IN ($itemids)
|
||||
$groupwheresql
|
||||
ORDER BY $order, g.itemid ASC";
|
||||
$this->grades_rs = get_recordset_sql($grades_sql);
|
||||
} else {
|
||||
@@ -1217,7 +1225,7 @@ class grade_structure {
|
||||
return $strparams;
|
||||
}
|
||||
|
||||
$strparams->itemname = $element['object']->get_name();
|
||||
$strparams->itemname = html_to_text($element['object']->get_name());
|
||||
|
||||
// If element name is categorytotal, get the name of the parent category
|
||||
if ($strparams->itemname == get_string('categorytotal', 'grades')) {
|
||||
|
||||
@@ -14,15 +14,15 @@ function set_row(idx) {
|
||||
}
|
||||
|
||||
/** highlight/unset the column of a table **/
|
||||
function set_col(col,gradecelloffset) {
|
||||
function set_col(col,gradecelloffset,lastheaderrow) {
|
||||
var table = document.getElementById('user-grades');
|
||||
|
||||
//highlight the column header
|
||||
flip_vmarked(table,2,col);
|
||||
flip_vmarked(table,lastheaderrow,col);
|
||||
|
||||
//add any grade cell offset (due to colspans) then iterate down the table
|
||||
col += gradecelloffset;
|
||||
for (var row = 3; row < table.rows.length; row++) {
|
||||
for (var row = lastheaderrow + 1; row < table.rows.length; row++) {
|
||||
flip_vmarked(table,row,col);
|
||||
}
|
||||
}
|
||||
@@ -35,4 +35,4 @@ function flip_vmarked(table,row,col) {
|
||||
table.rows[row].cells[col].className += ' vmarked';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -286,7 +286,7 @@ YAHOO.graderreport.mouseoverHandler = function (e) {
|
||||
tempNode.className = "tooltipDiv";
|
||||
tempNode.innerHTML = elTarget.title;
|
||||
elTarget.appendChild(tempNode);
|
||||
elTarget.title = null;
|
||||
elTarget.title = "";
|
||||
}
|
||||
|
||||
// Get the tooltip div
|
||||
|
||||
+55
-47
@@ -78,6 +78,10 @@ class grade_report_grader extends grade_report {
|
||||
* */
|
||||
var $canviewhidden;
|
||||
|
||||
/** @var boolean, whether the current user is allowed to see the user report.
|
||||
* This affects the table layout. */
|
||||
var $canviewuserreport;
|
||||
|
||||
var $preferences_page=false;
|
||||
|
||||
/**
|
||||
@@ -93,6 +97,7 @@ class grade_report_grader extends grade_report {
|
||||
parent::grade_report($courseid, $gpr, $context, $page);
|
||||
|
||||
$this->canviewhidden = has_capability('moodle/grade:viewhidden', get_context_instance(CONTEXT_COURSE, $this->course->id));
|
||||
$this->canviewuserreport = has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context);
|
||||
|
||||
// load collapsed settings for this report
|
||||
if ($collapsed = get_user_preferences('grade_report_grader_collapsed_categories')) {
|
||||
@@ -322,41 +327,38 @@ class grade_report_grader extends grade_report {
|
||||
global $CFG;
|
||||
|
||||
if (is_numeric($this->sortitemid)) {
|
||||
// the MAX() magic is required in order to please PG
|
||||
$sort = "MAX(g.finalgrade) $this->sortorder";
|
||||
|
||||
$sql = "SELECT u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
|
||||
FROM {$CFG->prefix}user u
|
||||
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
|
||||
$this->groupsql
|
||||
LEFT JOIN {$CFG->prefix}grade_grades g ON (g.userid = u.id AND g.itemid = $this->sortitemid)
|
||||
WHERE ra.roleid in ($this->gradebookroles) AND u.deleted = 0
|
||||
$this->groupwheresql
|
||||
AND ra.contextid ".get_related_contexts_string($this->context)."
|
||||
GROUP BY u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
|
||||
ORDER BY $sort";
|
||||
|
||||
$sortjoin = "LEFT JOIN {$CFG->prefix}grade_grades g ON " .
|
||||
"g.userid = u.id AND g.itemid = $this->sortitemid";
|
||||
$sort = "g.finalgrade $this->sortorder";
|
||||
} else {
|
||||
$sortjoin = '';
|
||||
switch($this->sortitemid) {
|
||||
case 'lastname':
|
||||
$sort = "u.lastname $this->sortorder, u.firstname $this->sortorder"; break;
|
||||
$sort = "u.lastname $this->sortorder, u.firstname $this->sortorder";
|
||||
break;
|
||||
case 'firstname':
|
||||
$sort = "u.firstname $this->sortorder, u.lastname $this->sortorder"; break;
|
||||
$sort = "u.firstname $this->sortorder, u.lastname $this->sortorder";
|
||||
break;
|
||||
case 'idnumber':
|
||||
default:
|
||||
$sort = "u.idnumber $this->sortorder"; break;
|
||||
$sort = "u.idnumber $this->sortorder";
|
||||
break;
|
||||
}
|
||||
|
||||
$sql = "SELECT DISTINCT u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
|
||||
FROM {$CFG->prefix}user u
|
||||
JOIN {$CFG->prefix}role_assignments ra ON u.id = ra.userid
|
||||
$this->groupsql
|
||||
WHERE ra.roleid in ($this->gradebookroles)
|
||||
$this->groupwheresql
|
||||
AND ra.contextid ".get_related_contexts_string($this->context)."
|
||||
ORDER BY $sort";
|
||||
}
|
||||
|
||||
$sql = "SELECT u.id, u.firstname, u.lastname, u.imagealt, u.picture, u.idnumber
|
||||
FROM {$CFG->prefix}user u
|
||||
$this->groupsql
|
||||
$sortjoin
|
||||
JOIN (
|
||||
SELECT DISTINCT ra.userid
|
||||
FROM {$CFG->prefix}role_assignments ra
|
||||
WHERE ra.roleid IN ($this->gradebookroles)
|
||||
AND ra.contextid " . get_related_contexts_string($this->context) . "
|
||||
) rainner ON rainner.userid = u.id
|
||||
WHERE u.deleted = 0
|
||||
$this->groupwheresql
|
||||
ORDER BY $sort";
|
||||
|
||||
$this->users = get_records_sql($sql, $this->get_pref('studentsperpage') * $this->page,
|
||||
$this->get_pref('studentsperpage'));
|
||||
@@ -662,14 +664,15 @@ class grade_report_grader extends grade_report {
|
||||
//The width of the table varies depending on fixedstudents.
|
||||
// $fixedstudents == 0, students and grades display in the same table.
|
||||
// $fixedstudents == 1, students and grades are display in separate table.
|
||||
if ($fixedstudents) {
|
||||
if ($fixedstudents || !$this->canviewuserreport) {
|
||||
$incrementcellindex = '0';
|
||||
} else {
|
||||
$incrementcellindex = '1';
|
||||
}
|
||||
//MDL-21088 - IE 7 ignores nowraps on tds or ths so we this in a span with a nowrap on it.
|
||||
$headerhtml .= '<th class=" '.$columnclass.' '.$type.$catlevel.$hidden.'" scope="col" onclick="set_col(this.cellIndex,' . $incrementcellindex . ')"><span>'
|
||||
.shorten_text($headerlink) . $arrow;
|
||||
$headerhtml .= '<th class=" '.$columnclass.' '.$type.$catlevel.$hidden.
|
||||
'" scope="col" onclick="set_col(this.cellIndex,' . $incrementcellindex . ',' . (count($this->gtree->levels) - 1) .
|
||||
')"><span>' . shorten_text($headerlink) . $arrow;
|
||||
$headerhtml .= '</span></th>';
|
||||
}
|
||||
|
||||
@@ -745,7 +748,7 @@ class grade_report_grader extends grade_report {
|
||||
//we're either going to add a th or a colspan to keep things aligned
|
||||
$userreportcell = '';
|
||||
$userreportcellcolspan = '';
|
||||
if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) {
|
||||
if ($this->canviewuserreport) {
|
||||
$a->user = fullname($user, $canviewfullname);
|
||||
$strgradesforuser = get_string('gradesforuser', 'grades', $a);
|
||||
$userreportcell = '<th class="header userreport"><a href="'.$CFG->wwwroot.'/grade/report/'.$CFG->grade_profilereport.'/index.php?id='.$this->courseid.'&userid='.$user->id.'">'
|
||||
@@ -1032,7 +1035,7 @@ class grade_report_grader extends grade_report {
|
||||
//either add a th or a colspan to keep things aligned
|
||||
$userreportcell = '';
|
||||
$userreportcellcolspan = '';
|
||||
if (has_capability('gradereport/'.$CFG->grade_profilereport.':view', $this->context)) {
|
||||
if ($this->canviewuserreport) {
|
||||
$a->user = fullname($user, $canviewfullname);
|
||||
$strgradesforuser = get_string('gradesforuser', 'grades', $a);
|
||||
$userreportcell = '<th class="userreport"><a href="'.$CFG->wwwroot.'/grade/report/'.$CFG->grade_profilereport.'/index.php?id='.$this->courseid.'&userid='.$user->id.'">'
|
||||
@@ -1146,20 +1149,24 @@ class grade_report_grader extends grade_report {
|
||||
if ($showaverages) {
|
||||
|
||||
// find sums of all grade items in course
|
||||
$SQL = "SELECT g.itemid, SUM(g.finalgrade) AS sum
|
||||
$sql = "SELECT g.itemid, SUM(g.finalgrade) AS sum
|
||||
FROM {$CFG->prefix}grade_items gi
|
||||
JOIN {$CFG->prefix}grade_grades g ON g.itemid = gi.id
|
||||
JOIN {$CFG->prefix}user u ON u.id = g.userid
|
||||
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
|
||||
JOIN {$CFG->prefix}grade_grades g ON g.itemid = gi.id
|
||||
JOIN {$CFG->prefix}user u ON u.id = g.userid
|
||||
$groupsql
|
||||
WHERE gi.courseid = $this->courseid
|
||||
AND ra.roleid in ($this->gradebookroles)
|
||||
AND ra.contextid ".get_related_contexts_string($this->context)."
|
||||
AND g.finalgrade IS NOT NULL
|
||||
$groupwheresql
|
||||
JOIN (
|
||||
SELECT DISTINCT ra.userid
|
||||
FROM {$CFG->prefix}role_assignments ra
|
||||
WHERE ra.roleid IN ($this->gradebookroles)
|
||||
AND ra.contextid " . get_related_contexts_string($this->context) . "
|
||||
) rainner ON rainner.userid = u.id
|
||||
WHERE gi.courseid = $this->courseid
|
||||
AND u.deleted = 0
|
||||
AND g.finalgrade IS NOT NULL
|
||||
$groupwheresql
|
||||
GROUP BY g.itemid";
|
||||
$sum_array = array();
|
||||
if ($sums = get_records_sql($SQL)) {
|
||||
if ($sums = get_records_sql($sql)) {
|
||||
foreach ($sums as $itemid => $csum) {
|
||||
$sum_array[$itemid] = $csum->sum;
|
||||
}
|
||||
@@ -1171,20 +1178,21 @@ class grade_report_grader extends grade_report {
|
||||
|
||||
// MDL-10875 Empty grades must be evaluated as grademin, NOT always 0
|
||||
// This query returns a count of ungraded grades (NULL finalgrade OR no matching record in grade_grades table)
|
||||
$SQL = "SELECT gi.id, COUNT(u.id) AS count
|
||||
$sql = "SELECT gi.id, COUNT(DISTINCT u.id) AS count
|
||||
FROM {$CFG->prefix}grade_items gi
|
||||
CROSS JOIN {$CFG->prefix}user u
|
||||
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
|
||||
LEFT OUTER JOIN {$CFG->prefix}grade_grades g ON (g.itemid = gi.id AND g.userid = u.id AND g.finalgrade IS NOT NULL)
|
||||
JOIN {$CFG->prefix}role_assignments ra ON ra.userid = u.id
|
||||
LEFT OUTER JOIN {$CFG->prefix}grade_grades g ON g.itemid = gi.id AND g.userid = u.id AND g.finalgrade IS NOT NULL
|
||||
$groupsql
|
||||
WHERE gi.courseid = $this->courseid
|
||||
AND ra.roleid in ($this->gradebookroles)
|
||||
AND ra.contextid ".get_related_contexts_string($this->context)."
|
||||
AND ra.roleid IN ($this->gradebookroles)
|
||||
AND u.deleted = 0
|
||||
AND ra.contextid " . get_related_contexts_string($this->context) . "
|
||||
AND g.id IS NULL
|
||||
$groupwheresql
|
||||
GROUP BY gi.id";
|
||||
|
||||
$ungraded_counts = get_records_sql($SQL);
|
||||
$ungraded_counts = get_records_sql($sql);
|
||||
|
||||
$fixedstudents = $this->is_fixed_students();
|
||||
if (!$fixedstudents) {
|
||||
|
||||
@@ -333,11 +333,20 @@ class grade_report {
|
||||
function blank_hidden_total($courseid, $course_item, $finalgrade) {
|
||||
global $CFG;
|
||||
static $hiding_affected = null;//array of items in this course affected by hiding
|
||||
|
||||
//if we're dealing with multiple users we need to know when we've moved on to a new user
|
||||
static $previous_userid = null;
|
||||
|
||||
if( $this->showtotalsifcontainhidden==GRADE_REPORT_SHOW_REAL_TOTAL_IF_CONTAINS_HIDDEN ) {
|
||||
return $finalgrade;
|
||||
}
|
||||
|
||||
//if we've moved on to another user don't return the previous user's affected grades
|
||||
if ($previous_userid!=$this->user->id) {
|
||||
$hiding_affected = null;
|
||||
$previous_userid = $this->user->id;
|
||||
}
|
||||
|
||||
if( !$hiding_affected ) {
|
||||
$items = grade_item::fetch_all(array('courseid'=>$courseid));
|
||||
$grades = array();
|
||||
|
||||
@@ -100,7 +100,8 @@ class grade_report_user extends grade_report {
|
||||
$this->showpercentage = grade_get_setting($this->courseid, 'report_user_showpercentage', $CFG->grade_report_user_showpercentage);
|
||||
$this->showhiddenitems = grade_get_setting($this->courseid, 'report_user_showhiddenitems', $CFG->grade_report_user_showhiddenitems);
|
||||
$this->showtotalsifcontainhidden = grade_get_setting($this->courseid, 'report_user_showtotalsifcontainhidden', $CFG->grade_report_user_showtotalsifcontainhidden);
|
||||
|
||||
|
||||
//comment this out to hide the range column on the user report. Control of this via a setting was added to 2.0 (MDL-20617)
|
||||
$this->showrange = true;
|
||||
|
||||
$this->switch = grade_get_setting($this->courseid, 'aggregationposition', $CFG->grade_aggregationposition);
|
||||
|
||||
@@ -208,7 +208,7 @@
|
||||
$subtext = get_string('subscribe', 'forum');
|
||||
}
|
||||
print_heading_block($newsforum->name);
|
||||
echo '<div class="subscribelink"><a href="mod/forum/subscribe.php?id='.$newsforum->id.'">'.$subtext.'</a></div>';
|
||||
echo '<div class="subscribelink"><a href="mod/forum/subscribe.php?id='.$newsforum->id.'&sesskey='.sesskey().'">'.$subtext.'</a></div>';
|
||||
} else {
|
||||
print_heading_block($newsforum->name);
|
||||
}
|
||||
|
||||
+4
-4
@@ -633,7 +633,7 @@ if (isset($_GET['help'])) {
|
||||
echo '<div id="mssql">' . get_string('databasesettingssub_mssql', 'install');
|
||||
/// Link to mssql installation page
|
||||
echo "<p style='text-align:right'><a href=\"javascript:void(0)\" ";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/en/Installing_MSSQL_for_PHP')\"";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/19/en/Installing_MSSQL_for_PHP')\"";
|
||||
echo ">";
|
||||
echo '<img src="pix/docs.gif' . '" alt="Docs" class="iconhelp" />';
|
||||
echo get_string('moodledocslink', 'install') . '</a></p>';
|
||||
@@ -642,7 +642,7 @@ if (isset($_GET['help'])) {
|
||||
echo '<div id="mssql_n">' . get_string('databasesettingssub_mssql_n', 'install');
|
||||
/// Link to mssql installation page
|
||||
echo "<p style='text-align:right'><a href=\"javascript:void(0)\" ";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/en/Installing_MSSQL_for_PHP')\"";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/19/en/Installing_MSSQL_for_PHP')\"";
|
||||
echo ">";
|
||||
echo '<img src="pix/docs.gif' . '" alt="Docs" />';
|
||||
echo get_string('moodledocslink', 'install') . '</a></p>';
|
||||
@@ -651,7 +651,7 @@ if (isset($_GET['help'])) {
|
||||
echo '<div id="odbc_mssql">'. get_string('databasesettingssub_odbc_mssql', 'install');
|
||||
/// Link to mssql installation page
|
||||
echo "<p style='text-align:right'><a href=\"javascript:void(0)\" ";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/en/Installing_MSSQL_for_PHP')\"";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/19/en/Installing_MSSQL_for_PHP')\"";
|
||||
echo ">";
|
||||
echo '<img src="pix/docs.gif' . '" alt="Docs" class="iconhelp" />';
|
||||
echo get_string('moodledocslink', 'install') . '</a></p>';
|
||||
@@ -660,7 +660,7 @@ if (isset($_GET['help'])) {
|
||||
echo '<div id="oci8po">' . get_string('databasesettingssub_oci8po', 'install');
|
||||
/// Link to oracle installation page
|
||||
echo "<p style='text-align:right'><a href=\"javascript:void(0)\" ";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/en/Installing_Oracle_for_PHP')\"";
|
||||
echo "onclick=\"return window.open('http://docs.moodle.org/19/en/Installing_Oracle_for_PHP')\"";
|
||||
echo ">";
|
||||
echo '<img src="pix/docs.gif' . '" alt="Docs" class="iconhelp" />';
|
||||
echo get_string('moodledocslink', 'install') . '</a></p>';
|
||||
|
||||
@@ -0,0 +1,287 @@
|
||||
<?php
|
||||
/// Please, do not edit this file manually! It's auto generated from
|
||||
/// contents stored in your standard lang pack files:
|
||||
/// (langconfig.php, install.php, moodle.php, admin.php and error.php)
|
||||
///
|
||||
/// If you find some missing string in Moodle installation, please,
|
||||
/// keep us informed using http://moodle.org/bugs Thanks!
|
||||
///
|
||||
/// File generated by cvs://contrib/lang2installer/installer_builder
|
||||
/// using strings defined in stringnames.txt (same dir)
|
||||
|
||||
$string['admindirerror'] = 'གསལ་བཀོད་འབད་ཡོད་པའི་ བདག་སྐྱོང་སྣོད་ཐོ་འདི་ བདེན་མེད་ཨིན་མས།';
|
||||
$string['admindirname'] = 'བདག་སྐྱོང་ སྣོད་ཐོ་';
|
||||
$string['admindirsettinghead'] = 'བདག་སྐྱོང་ སྣོད་ཐོ་ གཞི་སྒྲིག་འབད་དོ།';
|
||||
$string['admindirsettingsub'] = 'ཝེབ་ ཧོསིཊི་ ཉུང་སུ་གཅིག་གི་རྐྱངམ་ཅིག་གིས་ ཁྱོད་ཀྱི་ ཚད་འཛིན་པེ་ནཱལ་ ལ་སོགས་པ་ཚུ་ནང་འཛུལ་སྤྱོད་ འབད་ནིའི་དོན་ལུ་ /admin འདི་ དམིགས་བསལ་ ཡུ་ཨར་ཨེལ་ སྦེ་ ལག་ལེན་འཐབ་ཨིན་མས། དེ་འབདཝ་ད་ལུ་ འདི་ མུ་ཌེལ་ བདག་སྐྱོང་ཤོག་ལེབ་ཚུ་གི་དོན་ལུ་ ཚད་ལྡན་གནས་ཚད་དང་གཅིག་ཁར་ མི་མཐུན་པས། འ་ནི་དཀའ་ངལ་འདི་ ཁྱོད་ཀྱི་གཞི་བཙུགས་ནང་ བདག་སྐྱོང་སྣོད་ཐོ་བསྐྱར་མིང་བཏགས་ཞིནམ་ལས་ མིང་གསརཔ་དེ་ ནཱ་ལུ་བཙུག་ཐོག་ལས་ སེལ་ཚུགས།དཔེར་ན་ <br /> <br /><b>moodleadmin</b><br /> <br /> །འདི་གིས་ མུ་ཌེལ་ནང་ བདག་སྐྱོང་ འབྲེལ་མཐུད་ཚུ་ གཏན་བཟོས་འབད་ཚུགས།';
|
||||
$string['bypassed'] = 'Bypassed';
|
||||
$string['cannotcreatelangdir'] = 'སྐད་ཡིག་སྣོད་ཐོ་གསར་བསྐྲུན་འབད་མི་བཏུབ།';
|
||||
$string['cannotcreatetempdir'] = 'གནས་སྐབས་སྣོད་ཐོ་གསར་བསྐྲུན་འབད་མི་བཏུབ།';
|
||||
$string['cannotdownloadcomponents'] = 'ཕབ་ལེན་འབད་མི་བཏུབ།';
|
||||
$string['cannotdownloadzipfile'] = 'ZIPཡིག་སྣོད་ཕབ་ལེན་འབད་མི་བཏུབ།';
|
||||
$string['cannotfindcomponent'] = 'ཆ་ཤས་མི་ཐོབ།';
|
||||
$string['cannotsavemd5file'] = 'md5ཡིག་སྣོད་སྲུང་མི་བཏུབ།';
|
||||
$string['cannotsavezipfile'] = 'ZIPཡིག་སྣོད་སྲུང་མི་བཏུབ།';
|
||||
$string['cannotunzipfile'] = 'ཡིག་སྣོད་unzipའབད་མི་བཏུབ།';
|
||||
$string['caution'] = 'དྲན་བཏོན།';
|
||||
$string['check'] = 'ཞིབ་དཔྱད་འབད';
|
||||
$string['chooselanguagehead'] = 'སྐད་ཡིག་ སེལ་འཐུ་འབད།';
|
||||
$string['chooselanguagesub'] = 'གཞི་བཙུགས་ཀྱི་དོན་ལུ་རྐྱངམ་ཅིག་ སྐད་ཡིག་གཅིག་སེལ་འཐུ་འབད། ཁྱོད་ཀྱིས་ ས་ཁོངས་དང་ ལག་ལེན་པའི་སྐད་ཡིག་ཚུ་ ཤུལ་མམ་གྱི་ གསལ་གཞི་ནང་ སེལ་འཐུ་འབད་ཚུགས།';
|
||||
$string['closewindow'] = 'ཝིན་ཌོ་འདི་ཁ་བསྡམས།';
|
||||
$string['compatibilitysettingshead'] = 'ཁྱོད་རའི་ པི་ཨེཆ་པི་ སྒྲིག་སྟངས་ཚུ་ ཞིབ་དཔྱད་འབད་དོ།';
|
||||
$string['compatibilitysettingssub'] = 'མུ་ཌེལ་ ཚུལ་བཞིན་སྦེ་ལག་ལེན་འཐབ་བཏུབ་བཟོ་ནིའི་དོན་ལུ་ ཁྱོད་ཀྱི་སར་བར་ འདི་ཚུ་ག་ར་ མཐའ་འཁྱོལ་དགོ།';
|
||||
$string['componentisuptodate'] = 'ཆ་ཤས་འདི་ དུས་མཐུན་སྦེ་ཡོད།';
|
||||
$string['configfilenotwritten'] = 'མུ་ཌེལ་སྣོད་ཐོ་དེ་ འབྲི་བཏུབ་མི་གཅིག་མེན་ནི་འདི་གིས་ གཞི་བཙུགས་པ་འདི་གིས་ ཁྱོད་ཀྱིས་གདམ་ཁ་ བརྐྱབས་ཡོད་པའི་སྒྲིག་སྟངས་ཚུ་ཡོད་པའི་ རིམ་སྒྲིག་ པི་ཨེཆ་པི་གཅིག་ རང་བཞིན་གྱིས་ གཞི་སྒྲིག་འབད་མ་ཚུགས། མུ་ཌེལ་གྱི་ སྣོད་ཐོ་རྩ་བའི་ནང་འཁོད་ནང་ལུ་ config.php ཟེར་མིང་བཏགས་ཡོད་མི་ ཡིག་སྣོད་གཅིག་ནང་ལུ་ ཁྱོད་ཀྱིས་ འོག་གི་ཨང་རྟགས་ཚུ་ འདྲ་བཤུས་བརྐྱབ་ཚུགས།';
|
||||
$string['configfilewritten'] = 'རིམ་སྒྲིག་ པི་ཨེཆ་པི་ མཐའ་འཁྱོལ་ཅན་སྦེ་ གསར་བསྐྲུན་འབད་ཡོདཔ།';
|
||||
$string['configurationcompletehead'] = 'རིམ་སྒྲིག་ མཇུག་བསྡུ་ཡོདཔ།';
|
||||
$string['configurationcompletesub'] = 'མུ་ཌེལ་གྱིས་ཁྱོད་ཀྱི་རིམ་སྒྲིག་འདི་ ཁྱོད་རའི་ མུ་ཌེལ་གཞི་བཙུགས་རྩ་བའི་ནང་གི་ཡིག་སྣོད་གཅིག་ནང་ སྲུངས་ནིའི་དཔའ་བཅམས་ཡི།';
|
||||
$string['continue'] = 'འཕྲོ་མཐུད་དེ་འབད';
|
||||
$string['ctyperecommended'] = 'གདམ་ཁ་ཅན་ པི་ཨེཆ་པི་སི་ཀྲའིཔ་ གཙུག་ནི་དེ་ བརྒྱ་བསྐྱེད་འབད་ནི་དེ་ རྒྱ་ཆེ་དྲག་འབད་ འོས་སྦྱོར་འབད་ཡོད་མི་དེ་ ས་ཁོངས་ལཱ་ཤུགས་དང་འཁྲིལ་ཡར་དྲག་འབད་ནི་དང་ དམིགས་བསལ་དུ་ གལ་སྲིད་ཁྱོད་ཀྱི་
|
||||
ས་ཁོངས་འདི་ ལ་ཀྲིན་དང་མ་འཁྲིལ་བའི་ ཁ་སྐད་ཚུ་ལུ་རྒྱབ་སྐྱོར་འབད་བ་ཅིན་ཨིན།';
|
||||
$string['ctyperequired'] = 'སི་ཀྲའིཔ་པི་ཨེཆ་པི་འདི་ ད་ལྟོ་རྒྱ་བསྐྱེད་འབད་ནི་འདི་ མུ་དྲིལ་གྱི་དགོས་མཁོ་ཡོདཔ་ཨིན། ལཱ་ཤུགས་ས་ཁོངས་ཡར་དྲག་དང་འཁྲིལ་ འབད་ནི་དང་ སྐད་སྣ སྨྲ་བའི་མཐུན་འགྱྲུར་འབད་ནི་ལུ་བྱིན་དགོཔ་ཨིན།';
|
||||
$string['curlrecommended'] = 'གདམ་ཁ་ཅན་ལུ་གཙུག་ནི་ སི་ཡུ་ཨར་ཨེལ་ དཔེ་མཛོད་འདི་ཡོངས་འབྲེལ་བཟོ་བའི་ལས་འགན་མུ་དྲིལ་ལྕོགས་ཅན་དེ་དང་འཁྲིལ་ ཆེ་མཐོའི་འོས་སྦྱོར་འབད་ཡོདཔ་ཨིན།';
|
||||
$string['customcheck'] = 'ཞིབ་དཔྱད་གཞན་མི་ཚུ།';
|
||||
$string['database'] = 'གནས་སྡུད་གཞི་རྟེན།';
|
||||
$string['databasecreationsettingshead'] = 'གནས་སྡུད་གཞི་རྟེན་སྒྲིག་སྟངས་ཚུ་ མུ་ཌེལ་གནས་སྡུད་ མང་སུ་གཅིག་ག་ཏེ་ལུ་ གསོག་འཇོག་འབད་ས་ལུ་ རིམ་སྒྲིག་འབད་དགོ། འ་ནི་ གནས་སྡུད་གཞི་རྟེན་ཚུ་ གཞི་བཙུགས་པ་གིས་ རང་བཞིན་གྱིས་སྦེ་ འོག་ལུ་ གསལ་བཀོད་འབད་ཡོད་མི་སྒྲིག་སྟངས་ཚུ་དང་གཅིག་ཁར་ གསར་བསྐྲུན་འབད་དེ་འོང་།';
|
||||
$string['databasecreationsettingssub'] = '<b>Type:</b> fixed to \"mysql\" by the installer<br />
|
||||
<b>Host:</b> fixed to \"localhost\" by the installer<br />
|
||||
<b>Name:</b> database name, eg moodle<br />
|
||||
<b>User:</b> fixed to \"root\" by the installer<br />
|
||||
<b>Password:</b> your database password<br />
|
||||
<b>Tables Prefix:</b> optional prefix to use for all table name';
|
||||
$string['databasesettingshead'] = 'གནས་སྡུད་གཞི་ཚུ་ མུ་ཌེལ་གནས་སྡུད་ མང་སུ་གཅིག་ག་ཏེ་ལུ་ གསོག་འཇོག་འབད་ས་ལུ་ རིམ་སྒྲིག་འབད་དགོ། འ་ནི་ གནས་སྡུད་གཞི་རྟ྄ེན་ནང་འཛུལ་སྤྱོད་འབད་ནིའི་དོན་ལུ་ གནས་སྡུད་གཞི་རྟེན་འདི་གིས་ ཧེ་མ་ལས་རང་ ལག་ལེན་པའི་མིང་དང་ ཆོག་ཡིག་ གསར་བསྐྲུན་འབད་དེ་འོང་།';
|
||||
$string['databasesettingssub'] = '<b>Type:</b> mysql ཡང་ན་ postgres7<br />
|
||||
<b>ཧོསིཊ་t:</b> དཔེར་ན་localhost or db.isp.com<br />
|
||||
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་ དཔེར་ན་ མུ་ཌེལ་<br />
|
||||
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་ ལག་ལེན་པའི་མིང་e<br />
|
||||
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་ ཆོག་ཡིག་<br />
|
||||
<b>Tables Prefix:</b> optional prefix to use for all table names';
|
||||
$string['databasesettingssub_mssql'] = '<b>Type:</b> SQL*Server (non UTF-8) <b><strong class=\"errormsg\">Experimental! (not for use in production)</strong></b><br />
|
||||
<b>ཧོསིཊི་:</b> eg localhost or db.isp.com<br />
|
||||
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg མུ་ཌེལ་<br />
|
||||
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་<br />
|
||||
<b>Password:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
|
||||
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
|
||||
$string['databasesettingssub_mssql_n'] = '<b>Type:</b> SQL*Server (UTF-8 enabled)<br />
|
||||
<b>ཧོསིཊི་:</b> eg localhost or db.isp.com<br />
|
||||
<b>མིང་:</b>གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg མུ་ཌེལ་<br />
|
||||
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ལག་ལེན་པའི་མིང་<br />
|
||||
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
|
||||
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
|
||||
$string['databasesettingssub_mysql'] = '<b>Type:</b> MySQL<br />
|
||||
<b>ཧོསིཊ་t:</b> eg localhost or db.isp.com<br />
|
||||
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg moodle<br/>
|
||||
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ལག་ལེན་པའི་མིང་ />
|
||||
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
|
||||
<b>Tables Prefix:</b> prefix to use for all table names (optional)';
|
||||
$string['databasesettingssub_mysqli'] = '<b>Type:</b> Improved MySQL<br />
|
||||
<b>ཧོསིཊ:</b> eg localhost or db.isp.com<br />
|
||||
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་e, eg moodle<br />
|
||||
<b>User:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ལག་ལེནཔའིམིང་<br/>
|
||||
<b>Password:</b> ཁྱོད་རའི་ གནས་སྡུད་གཞི་རྟེན་གྱི་ཆོགཡིག་<br/>
|
||||
<b>Tables Prefix:</b> prefix to use for all table names (optional)';
|
||||
$string['databasesettingssub_oci8po'] = '<b>Type:</b> Oracle<br />
|
||||
<b>Host:</b> not used, must be left blank<br />
|
||||
<b>Name:</b> given name of the tnsnames.ora connection<br />
|
||||
<b>User:</b> your database username<br />
|
||||
<b>Password:</b> your database password<br />
|
||||
<b>Tables Prefix:</b> prefix to use for all table names (mandatory, 2cc. max)';
|
||||
$string['databasesettingssub_odbc_mssql'] = '<b>Type:</b> SQL*Server (over ODBC) <b><strong class=\"errormsg\">Experimental! (not for use in production)</strong></b><br />
|
||||
<b>ཧོསིཊ:</b> given name of the DSN in the ODBC control panel<br />
|
||||
<b>མིང་:</b> གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg moodle<br />
|
||||
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ལག་ལེན་པའི་མིང<br/>
|
||||
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ ཆོག་ཡིག་<br />
|
||||
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
|
||||
$string['databasesettingssub_postgres7'] = '<b>Type:</b> PostgreSQL<br />
|
||||
<b>ཧོསིཊ་:</b> eg localhost or db.isp.com<br />
|
||||
<b>མིང་:</b>གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་, eg moodle<br />
|
||||
<b>ལག་ལེན་པ་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་་<br />
|
||||
<b>ཆོག་ཡིག་:</b> ཁྱོད་རའི་གནས་སྡུད་གཞི་རྟེན་གྱི་ཆོག་ཡིག་<br />
|
||||
<b>Tables Prefix:</b> prefix to use for all table names (mandatory)';
|
||||
$string['databasesettingswillbecreated'] = '<b>དྲན་དགོཔ་:</b> གཞི་བཙུགས་པ་འདི་གི་ རང་ཕཞིན་གྱིས་ གནས་སྡུད་གཞི་རྟེན་ གསར་བསྐྲུན་འབད་ནི་དཔའ་བཅམ་འོང་།';
|
||||
$string['dataroot'] = 'གནས་སྡུད་ སྣོད་ཐོ་';
|
||||
$string['datarooterror'] = 'ཁྱོད་ཀྱི་གསལ་བཀོད་འབད་ཡོད་མི་ \'གནས་སྡུད་ སྣོད་ཐོ་\'དེ་ ཐོབ་མ་ཚུགས་ ཡང་ན་ གསར་བསྐྲུན་འབད་མ་ཚུགས། འགྲུལལམ་ནོར་བཅོས་འབད་ ཡང་ན་ སྣོད་ཐོ་ ལག་ཐོག་ལས་ གསར་བསྐྲུན་འབད།';
|
||||
$string['datarootpublicerror'] = 'ཁྱོད་ཀྱི་གསལ་བཀོད་འབད་ཡོད་མི་ \'གནས་སྡུད་ སྣོད་ཐོ་\'དེ་ ཝེབ་བརྒྱུད་དེ་ ཐད་ཀར་དུ་ འཛུལ་སྤྱོད་འབད་བཏུབ་པས། སྣོད་ཐོ་སོ་སོ་ ལག་ལེན་འཐབ་དགོ་པས།';
|
||||
$string['dbconnectionerror'] = 'ཁྱོད་ཀྱི་གསལ་བཀོད་འབད་ཡོད་མི་ གནས་སྡུད་གཞི་རྟེན་ལུ་ འབྲེལ་མཐུད་འབད་མི་ཚུགས་པས། ཁྱོད་རའི་ གནས་སྡུད་གཞི་རྟེན་སྒྲིག་སྟངས་ཚུ་ ཞིབ་དཔྱད་འབད་གནང་།';
|
||||
$string['dbcreationerror'] = 'གནས་སྡུད་གཞི་རྟེན་ གསར་བསྐྲུན་འབད་ནི་ལུ་ འཛོལ་བ། བྱིན་ཏེ་ཡོད་མི་ སྒྲིག་སྟངས་ཚུ་གིས་ གནས་སྡུད་གཞི་རྟེན་གྱི་མིང་གསར་བསྐྲུན་འབད་མ་ཚུགས།';
|
||||
$string['dbhost'] = 'ཧོསིཊ་ སར་བར།';
|
||||
$string['dbprefix'] = 'ཐིག་ཁྲམ་ སྔོན་ཚིག་';
|
||||
$string['dbtype'] = 'དབྱེ་བ།';
|
||||
$string['dbwrongencoding'] = 'སེལ་འཐུ་འབད་ཡོད་མི་གནས་སྡུད་གཞི་རྟེན་འདི་ འོས་སྦྱོར་མ་འབད་བའི་ ཨིན་ཀོ་ཌིང་གཅིག་($a)གི་འོག་ལུ་ གཡོག་བཀོལ་འབད་དེ། འདི་གི་ཚབ་ལུ་ ཡུ་ནི་ཀོཌ་(UTF-8) ཨིན་ཀོཌི་འབད་ཡོད་མི་ གནས་སྡུད་གཞི་རྟེན་ལག་ལེན་འཐབ་པ་ཅིན་དྲག་འོང་། ཨིན་རུང་ ཁྱོད་ཀྱིས་ བརྟག་ཞིབ་འདི་ \"Skip DB Encoding Test\" སེལ་འཐུ་འབད་ཐོག་ལས་ ཟུར་ཏེ་འགྱོ་ཚུགས་ དེ་འབདཝ་ད་ལུ་ མ་འོངས་པ་ལུ་ ཁྱོད་ལུ་ དཀའ་ངལ་ཚུ་འབྱུང་འོང་།';
|
||||
$string['dbwronghostserver'] = 'ཁྱོད་ཀྱིས་ ལྟག་ལུ་གསལབཤད་འབད་ཡོད་མི་ \"Host\" ལམ་ལུགས་ཚུ་དང་འཁྲིལ་དགོ།';
|
||||
$string['dbwrongnlslang'] = 'ཁྱོད་ཀྱི་ཝེབ་སར་བར་ནང་གི་ NLS_LANG མཐའ་འཁོར་འགྱུར་ཅན་གྱིས་ AL32UTF8 ཡིག་འབྲུའི་གཞི་སྒྲིག་ ལག་ལེན་འཐབ་དགོ། OCI8 ཚུལ་ལྡན་སྦེ་ ལག་ལེན་འཐབ་ནིའི་དོན་ལུ་ PHP ཡིག་ཐོག་བཀོད་པ་ནང་ གཟིགས་གནང་།';
|
||||
$string['dbwrongprefix'] = 'ཁྱོད་ཀྱིས་ ལྟག་ལུ་གསལབཤད་འབད་ཡོད་མི་ \"Tables Prefix\" ལམ་ལུགས་ཚུ་དང་འཁྲིལ་དགོ།';
|
||||
$string['directorysettingshead'] = 'མུ་ཌེལ་གཞི་བཙུགས་འདི་གི་ གནས་ཁོངས་ཚུ་ ངེས་དཔྱད་འབད་གནང་།';
|
||||
$string['directorysettingssub'] = '<p><b>ཝེབ་ ཁ་བྱང་ཚུ་:</b>
|
||||
མུ་ཌེལ་འདི་ག་ཏེ་ལུ་ འཛུལ་སྤྱོད་འབད་ནི་ཨིན་ན ཝེབ་ཁ་བྱང་ ཆ་ཚང་གསལ་བཀོད་འབད་གནང་། ཁྱོད་ཀྱི་ ཝེབ་ས་ཁོངས་འདི་ སྣ་མང་ ཡུ་ཨར་ཨེལ་བརྒྱུད་དེ་ འཛུལ་སྤྱོད་འབད་བཏུབ་པ་ཅིན་ ཁྱོད་རའི་སློབ་ཕྲུགཚུ་གིས་ལག་ལེན་འཐབ་ནིའི་དོན་ལུ་ བཅོས་མིན་དེ་རང་བཞག་གནང་། རྒྱབ་ལུས་ གཡོ་ཤད་ བཙུགས་མ་གནང་།
|
||||
<br />
|
||||
<br />
|
||||
<b>མུ་ཌེལ་ སྣོད་ཐོ:</b>
|
||||
གཞི་བཙུགས་འདི་ལུ་ སྣོད་ཐོའི་འགྲུལ་ལམ་ ཆ་ཚང་ གསལ་བཀོད་འབད་གནང་།
|
||||
ཚུགས་ཡིག་/མགྱོགས་ཡིག་ཚུ་ ངེས་བེདན་སྦེ་ བཙུགས་གནང་།</p>
|
||||
<br />
|
||||
<br />
|
||||
<p><b>གནས་སྡུད་ སྣོད་ཐོ་:</b>
|
||||
མུ་ཌེལ་གྱིས་ སྐྱེལ་བཙུགས་་འབད་ཡོད་མི་ ཡིག་སྣོད་ཚུ་སྲུང་བཞག་འབད་ནིའི་དོན་ལུ་ ས་སྒོ་གཅིག་དགོ་པས། འ་ནི་ སྣོད་ཐོ་འདི་ ཝེབ་སར་བར་ ལག་ལེན་པ་ (usually \'nobody\' or \'apache\')གིས་ ལྷག་བཏུབ་དང་འབྲི་ཚུགསཔ་སྦེ་འོང་དགོ། དེ་འབདཝ་ད་ལུ་ ཕྲང་ཕྲང་རང་ ཝེབ་བརྒྱུད་དེ་ འཛུལ་སྤྱོད་འབད་མ་བཏུབ་སྦེ་དགོ།';
|
||||
$string['dirroot'] = 'མུ་ཌལ་ སྣོད་ཐོ།';
|
||||
$string['dirrooterror'] = '\'མུ་ཌེལ་ སྣོད་ཐོ་\' སྒྲིག་སྟངས་འདི་ མེནམ་ཨིནམ་བཟུམ་ཅིག་འདུག། ང་བཅས་ཀྱིས་འདི་ནང་ལུ་ མུ་ཌལ་གཞི་བཙུགས་གཅིག་མཐོངམ་མས། འོག་ལུ་ཡོད་མི་ བེ་ལུ་དེ་ སླར་སྒྲིག་འབད་ནུག།';
|
||||
$string['download'] = 'ཕབ་ལེན།';
|
||||
$string['downloadedfilecheckfailed'] = 'ཕབ་ལེན་འབད་ཡོད་པའི་ཡིག་སྣོད་ཞིབ་དཔྱད་འཐུས་ཤོར་བྱུང་ཡོདཔ།';
|
||||
$string['downloadlanguagebutton'] = '"$a" language pack ཕབ་ལེན་འབད།';
|
||||
$string['downloadlanguagehead'] = 'language pack ཕབ་ལེན་འབད།';
|
||||
$string['downloadlanguagenotneeded'] = 'སྔོན་སྒྲིག་ anguage pack, \"$a\" ལག་ལེན་འཐབ་སྟེ་ གཞི་བཙུགས་དེ་ འཕྲོ་མཐུད་དེ་འབད།';
|
||||
$string['downloadlanguagesub'] = 'ད་ཁྱོད་ལུ་ འ་ནི་སྐད་ཡིག་ནང་ལུ་ language pack ཕབ་ལེན་འབད་ནི་དང་ གཞི་བཙུགས་འཕྲོ་མཐུད་འབད་ནིའི་གདམ་ཁ་ཡོད། <br /><br /> ག་དེམ་ཅིག་སྦེ་ language pack ཕབ་ལེན་འབད་མ་ཚུགས་པ་ཅིན་ ལས་སྦྱོར་འདི་ ཨིན་སྐད་ནང་ འཕྲོ་མཐུད་འབད་འོང་།(གཞི་བཙུགས་ལས་སྦྱོར་དེ་ མཇུག་བསྡུ་ཞིནམ་ལས་ ཁྱོད་ལུ་ language packs ཁ་སྐོང་ཚུ་ ཕབ་ལེན་འབད་ནི་དང་གཞི་བཙུགས་འབད་ནིའི་གོ་སྐབས་ཡོད།)';
|
||||
$string['environmenterrortodo'] = 'འ་ནི་མུ་ཌེལ་ཐོན་རིམ་འདི་འཕྲོ་མཐུད་དི་གཞི་བཙུགས་མ་འབད་བའི་ཧེ་མ་ ཁྱོད་ཀྱི་གོང་གི་གནས་སྟངས་ཀྱི་དཀའ་ངལ་(འཛོལ་བ་)་ཚུ་སེལ་དགོ།!';
|
||||
$string['environmenthead'] = 'ཁྱོད་རའི་ མཐའ་འཁོར་ཞིབ་དཔྱད་འབད་དོ།';
|
||||
$string['environmentrecommendcustomcheck'] = 'འ་ནི་བརྟག་ཞིབ་ཀྱི་འཐུས་ཤོར་བྱུང་པ་ཅིན་ དཀའ་ངལ་ཡོད་པའི་བརྡ་སྟོན་ཨིན།';
|
||||
$string['environmentrecommendinstall'] = 'གྲུབ་འབྲས་ལེགས་ཤོས་ཀྱི་དོན་ལུ་གཞི་བཙུགས་འབད་དི་ལྕོགས་ཅན་བཟོ་དགོ།';
|
||||
$string['environmentrecommendversion'] = 'ཐོན་རིམ་ $a->needed་འདི་འོས་སྦྱོར་ཡོདཔ་ལས་ ཁྱོད་ཀྱི་$a->current་གཡོག་བཀོལ་བའི་བསྒང་ཡོད།';
|
||||
$string['environmentrequirecustomcheck'] = 'བརྟག་ཞིབ་འདི་མཐར་འཁྱོལ་དགོ།';
|
||||
$string['environmentrequireinstall'] = 'གཞི་བཙུགས་འབད་དི་ལྕོགས་ཅན་བཟོ་དགོ།';
|
||||
$string['environmentrequireversion'] = 'ཐོན་རིམ་ $a->needed་དགོས་མཁོ་ཡོདཔ་ལས་ ཁྱོད་ཀྱི་$a->current་གཡོག་བཀོལ་བའི་བསྒང་ཡོད།';
|
||||
$string['environmentsub'] = 'ང་བཅས་ཀྱིས་ ཁྱོད་ཀྱི་ རིམ་ལུགས་ཀྱི་ཆ་ཤས་འདྲ་མིན་སྣ་ཚོགས་ཚུ་གིས་ རིམ་ལུགས་ཀྱི་དངོསམཁོ་ཚུ་དང་ མཐུན་མི་མཐུན་ ཞིབ་དཔྱད་འབད་དོ།';
|
||||
$string['environmentxmlerror'] = 'མཐའ་འཁོར་གནས་སྡུད་ལྷག་པའི་བསྒང་ འཛོལ་བ་འབྱུང་ཡོད།($a->error_code)';
|
||||
$string['error'] = 'འཛོལ་བ།';
|
||||
$string['fail'] = 'འཐུས་ཤོར།';
|
||||
$string['fileuploads'] = 'ཡིག་སྣོད་ སྐྱེལ་བཙུགས།';
|
||||
$string['fileuploadserror'] = 'འ་ནི་འདི་ ཨཱོན་སྦེ་འོང་དགོ།';
|
||||
$string['fileuploadshelp'] = '<p>ཁྱོད་ཀྱི་སར་བར་གུ་ ཡིག་སྣོད་སྐྱེལ་བཙུགས་འབད་ནི་འདི་ ལྕོགས་མིན་བཟོ་དེ་ཡོདཔ་བཟུམ་ཅིག་འདུག།</p>
|
||||
|
||||
<p>མུ་ཌེལ་འདི་ད་ལྟོ་ཡང་ གཞི་བཙུགས་འབད་ཚུགས་ དེ་འབདཝ་ད་ ལྕོགས་གྲུབ་འདི་མེད་པ་ཅིན་ སློབཚན་ཡིག་སྣོད་ ཡང་ན་ ལག་ལེན་པའི་གསལ་སྡུད་གསརཔ་ཚུ་ སྐྱེལ་བཙུགས་འབད་མི་ཚུགས།</p>
|
||||
|
||||
<p>ཡིག་སྣོད་ སྐྱེལ་བཙུགས་ ལྕོགས་ཅན་བཟོ་ནིའི་དོན་ལུ་ ཁྱོད་(ཡན་ན་ ཁྱོད་རའི་རིམ་ལུགས་བདག་སྐྱོང་)གིས་ ཁྱོད་རའི་རིམ་ལུགས་གུ་ php.ini གི་ ཡིག་སྣོད་ངོ་མ་དེ་ ཞུན་དག་འབད་ཞིནམ་ལས་ <b>file_uploads</b> to \'1\'.</p> གི་དོན་ལུ་ སྒྲིག་སྟངས་ཚུ་ བསྒྱུར་བཅོས་འབད་དགོ།';
|
||||
$string['gdversion'] = 'GD ཐོན་རིམ།';
|
||||
$string['gdversionerror'] = 'གཟུགས་བརྙན་ ལས་སྦྱོར་འབད་ནི་དང་གསར་བསྐྲུན་འབད་ནིའི་དོན་ལུ་ GDདཔེ་མཛོད་དེ་དགོ།';
|
||||
$string['gdversionhelp'] = '<p> ཁྱོད་ཀྱི་སར་བར་གུ་ GD གཞི་བཙུགས་འབད་དེ་མེདཔ་བཟུམ་ཅིག་འདུག།</p>
|
||||
|
||||
<p>GD ཟེར་མི་འདི་ མུ་ཌལ་ལུ (དཔེར་ན་ ལག་ལེན་པའི་གསལ་སྡུད་་ངོས་དཔར) ལ་སོགས་པའི་ གཟུས་བརྙན་ཚུ་ལས་སྦྱོར་འབད་ནི་དང་ (དྲན་དེབ་ཚད་ཁྲམ་ལ་སོགས་པའི་)གཟུགས་བརྙན་གསར་བསྐྲུན་འབད་ནིའི་དོན་ལུ་ པི་ཨེཆ་པི་གི་དགོ་པའི་ དཔེ་མཛོད་གཅིག་ཨིན། མུ་ཌལ་གྱིས་ GD མེད་པ་ཡང་ ལཱ་འབད་བཏུབ། འ་ནི་ ཁྱད་རྣམ་ཚུ་ ཁྱོད་ལུ་འཐོབ་མི་ཚུགས།</p>
|
||||
|
||||
<p> ཡུནིགསི་ནང་ PHP ལུ་ GD ཁ་སྐོང་བརྐྱབ་ནིའི་དོན་ལུ་ --with-gd parameter ལག་ལེན་འཐབ་སྟེ་ PHP ཕྱོགས་སྒྲིག་འབད།</p>
|
||||
|
||||
<p>ཝིན་ཌོསི་ནང་ལུ་་ php.ini ཨ་རྟག་བཟུམ་སྦེ་ ཞུན་དག་འབད་བཏུབ་མ་ཚད་ php_gd2.dll གཞི་བསྟུན་འབད་མི་ གྲལ་ཐིག་འདི་ བསམ་བཀོད་མ་འབད་བ་བཞག་བཏུབ།</p>';
|
||||
$string['globalsquotes'] = 'Insecure Handling of Globals';
|
||||
$string['globalsquoteserror'] = 'ཁྱོད་རའི་ PHP སྒྲིག་སྟངས་ཚུ་ གཏན་བཟོས་འབད་: register_globals and/or enable magic_quotes_gpc ལྕོགས་མིན་བཟོ།';
|
||||
$string['globalsquoteshelp'] = '<p>ལྕོགས་མིན་བཟོ་ཡོད་མི་ Magic Quotes GPC དང་ ལྕོགསཅན་བཟོ་ཡོད་མི་ Register Globals མཉམ་མཐུད་ གཉིས་ཆ་རང་དུས་གཅིག་ལུ་ འོས་སྦྱོར་མི་འབད།</p>
|
||||
|
||||
<p> འོས་སྦྱོར་འབད་མི་སྒྲིག་སྟགས་འདི་ <b>magic_quotes_gpc = On</b> and <b>register_globals = Off</b> in your php.ini</p> ཨིན།
|
||||
|
||||
<p> ཁྱོད་རའི་ php.ini ནང་འཛུལ་སྤྱོད་འབད་མ་ཚུགས་པ་ཅིན་ ཁྱོད་རའི་མུ་ཌལ་སྣོད་ཐོ་གི་ནང་འཁོད་ནང་ལུ་ .htaccess ཟེར་མི་ཡིག་སྣོད་ནང་ལུ་ འོག་གི་ གྲལ་ཐིག་འདི་བཙུག་ཚུགསཔ་འོང་།:</p>
|
||||
<blockquote><div>php_value magic_quotes_gpc On</div></blockquote>
|
||||
<blockquote><div>php_value register_globals Off</div></blockquote>';
|
||||
$string['globalswarning'] = '<p><strong>སྲུང་སྐྱོབ་ཉེན་བརྡ་ </strong>: ཚུལ་ལྡན་འབད་གཡོག་བཀོལ་ནི་ མུ་དྲིལ་དགོས་མཁོ་ཡོད་མི་ཚུ་<br />དེ་ཁྱོད་ཀྱི་ འཕྲལ་གྱི་པི་ཨེཆ་པི་གཞི་སྒྲིག་ལུ་ངེས་བདེན་བསྒྱུར་བཅོས་འབད་དགོ།.<p/><p>ཁྱོད་<em>དགོཔ་</em> གཞི་སྒྲིག་<code>register_globals=off</code>>.</p><p> གཞི་སྒྲིག་དེ་ཚུ་ ཁྱོད་ཀྱི་ཞིབ་དཔྱད་དེ་གི་ཚད་འཛིན་འབད་ཡོདཔ་<code>php.ཨའི་ཨེན་ཨའི་</code>,ཨེ་པེཆ/ཨའི་ཨའི་ཨེས་ <br />རིམ་སྒྲིག་འབད་ཡང་ན་ <code>.ཨེཆ་ཀྲི་འཛུལ་བསྐྱོད་</code> ཡིག་སྣོད.</p>';
|
||||
$string['help'] = 'གྲོགས་རམ།';
|
||||
$string['iconvrecommended'] = 'དམིགས་བསལ་དུ་ གལ་སྲིད་ས་ཁོངས་དེ་ ལ་ཀྲིན་ཁ་སྐད་མེད་མི་ལུ་རྒྱབ་སྐྱོར་འབད་བ་ཅིན། གདམ་ཁ་ཅན་གྱི་གཞི་བཙུགས་འབད་ནི་ ཨའི་སི་ཨོ་ཨེན་བི་ འདི་འོས་སྦྱོར་སྦོམ་འབད་ས་ཁོངས་ལཱ་ཤུགས་ཡར་དྲག་དང་འཁྲིལཝ་ད་ལུ་ལའ་འབད་ནི།';
|
||||
$string['info'] = 'བརྡ་དོན';
|
||||
$string['installation'] = 'གཞི་བཙུགས།';
|
||||
$string['invalidmd5'] = 'ནུས་མེད་md5';
|
||||
$string['langdownloaderror'] = 'སྐད་ཡིག་ \"$a\"འདི་ གཞི་བཙུགས་འབད་དེ་མིན་ནུག། གཞི་བཙུགས་འདི་ ཨིན་སྐད་ནང་ འཕྲོ་མཐུད་དེ་འབད་ནི་ཨིན།';
|
||||
$string['langdownloadok'] = 'སྐད་ཡིག་ \"$a\"འདི་ མཐའ་འཁྱོལ་ཅན་སྦེ་ གཞི་བཙུགས་འབད་ཡི། གཞི་བཙུགས་འདི་ སྐད་ཡིག་འདི་ནང་རང་ འཕྲོ་མཐུད་དེ་འབད་ནི་ཨིན།';
|
||||
$string['language'] = 'སྐད་ཡིག';
|
||||
$string['magicquotesruntime'] = 'Magic Quotes གཡོག་བཀོལ་དུས་ཚོད་';
|
||||
$string['magicquotesruntimeerror'] = 'འ་ནི་འདི་ ཨོཕ་སྦེ་ འོང་དགོ།';
|
||||
$string['magicquotesruntimehelp'] = '<p>མུ་ཌལ་ ལཱ་ ཚུལ་མཐུནམ་སྦེ་འབད་ནིའི་དོན་ལུ་ Magic quotes དེ་ ཨོཕ་སྦེ་ བཞག་དགོ།</p>
|
||||
|
||||
<p> སྤྱིར་བཏང་ལུ་ སྔོན་སྒྲིག་གིས་ ཨོཕ་འོང་་་་་་་་་་་་་ <b>magic_quotes_runtime</b> in your php.ini file.</p> གཟིགས་གནང་།
|
||||
|
||||
<p><p> ཁྱོད་རའི་ php.ini ནང་འཛུལ་སྤྱོད་འབད་མ་ཚུགས་པ་ཅིན་ ཁྱོད་རའི་མུ་ཌལ་སྣོད་ཐོ་གི་ནང་འཁོད་ནང་ལུ་ .htaccess ཟེར་མི་ཡིག་སྣོད་ནང་ལུ་ འོག་གི་ གྲལ་ཐིག་འདི་བཙུག་ཚུགསཔ་འོང་།:</p>
|
||||
<blockquote><div>php_value magic_quotes_runtime Off</div></blockquote>';
|
||||
$string['mbstringrecommended'] = 'གཞི་བཙུགས་འབད་ནི་དོན་ལུ་ གདམ་ཁ་ཅན་གྱི་ ཨེམ་བི་ཨིས་ཊིང་ དཔེ་མཛོད་འདི་ ས་ཁོངས་ཀྱི་ལཱ་ཤུགས་ལེགས་བཟོ་ བྱེ་བྲག་ཏུ་ཁྱོད་རའི་ས་ཁོངས་འདི་གིས་ ལེ་ཊིན་མིན་པའི་སྐད་ཡིག་རྒྱབ་སྐྱོར་ཚུ་ ཧ་ཅང་གིས་ངོ་སྦྱོར་འབད་ནི།';
|
||||
$string['memorylimit'] = 'དྲན་ཚད་';
|
||||
$string['memorylimiterror'] = 'PHP དྲན་ཚད་འདི་ ཉུང་སུ་སྦེ་ གཞི་སྒྲིག་འབད་དེ་འདུག་་་་ ཤུལ་ལས་ཁྱོད་ལུ་དཀའ་ངལ་འབྱུང་འོང་།';
|
||||
$string['memorylimithelp'] = '<p>ད་ལྟོ་ཁྱོད་ཀྱི་སར་བར་གྱི་དོན་ལུ་ PHP དྲན་ཚད་དེ་ $a ལུ་གཞི་སྒྲིག་འབད་དེ་འདུག།</p>
|
||||
|
||||
<p> འདི་གིས་ཤུལ་ལས་ མུ་ཌལ་ལུ་ དྲན་ཚད་ཀྱི་དཀའ་ངལ་ཚུ་འབྱུང་བཅུག་འོང་ཝ། འདི་གི་ནང་ལས་ཡང་ ཁྱོད་ཀྱི་མུ་ཌལ་དང་ལག་ལེན་པ་ལོ་ཤ་ལྕོགས་ཅན་བཟོ་ཡོད་པ་ཅིན་ དཀའ་ངལ་འབྱུང་འོང་།</p>
|
||||
|
||||
<p> ཁྱོད་ཀྱིས་ 40M བཟུམ་གྱི་ PHP དྲན་ཚད་ མང་སུ་ཡོད་མི་ རིམ་སྒྲིག་འབད་བ་ཅིན་ ལེགས་ཤོམ་འོང་། འདི་འབད་ནི་གི་དོན་ལུ་ ཐབས་ཤེས་ ལེ་ཤ་ཡོད་:</p>
|
||||
<ol>
|
||||
|
||||
<li> ཁྱོད་ཀྱིས་ <i>--enable-memory-limit</i> དང་གཅིག་ཁར་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་ཚུགས་པ་ཅིན་ འདི་གི་ས་ མུ་ཌལ་གི་དྲན་ཚད་ཁོ་ར་གིས་སྦེ་ གཞི་སྒྲིག་འབད་ཚུགས།</li>
|
||||
|
||||
<li>ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ནང་འཛུལ་སྤྱོད་འབད་ཚུགས་པ་ཅིན་ ཁྱོད་ཀྱི་ <b>memory_limit</b>སྒྲིག་སྟངས་འདི་ 40M བཟུམ་གཅིག་ལུ་ བསྒྱུར་བཅོས་འབད་ཚུགས། ག་དེམ་ཅིག་སྦེ་འཛུལ་སྤྱོད་འབད་མ་ཚུགས་པ་ཅིན་ ཁྱོད་རའི་བདག་སྐྱོང་པ་ལུ་ འབད་བཅུག།
|
||||
|
||||
<li> PHP སར་བར་ ལ་ལོ་གཅིག་ནང་ འོག་གི་གྲལ་ཐིག་ཚུ་ཡོད་མི་ མུ་ཌལ་སྣོད་ཐོ་ནང་ཁྱོད་ཀྱིས་ .htaccess ཡིག་སྣོད་གསར་བསྐྲུན་འབད་ཚུགས།
|
||||
<blockquote><div>php_value memory_limit 40M</div></blockquote>
|
||||
<p> དེ་འབདཝ་ད་ལུ་ སར་བར་ལ་ལོ་གཅིག་ནང་ འདི་གིས་ <b>all</b> PHP ཤོག་ལེབ་ཚུ་ གཡོག་བཀོལ་ནི་ལུ་སྔོན་བཀག་འབདཝ་ཨིན།
|
||||
(ཤོག་ལེབ་ཚུ་ནང་བལྟ་བའི་སྐབས་ འཛོལ་བ་ཚུ་མཐོང་འོང་) དེ་འབདཝ་ལས་ .htaccess ཡིག་སྣོད་་རྩ་བསྐྲད་གཏང་དགོ།</p></li>
|
||||
</ol>';
|
||||
$string['missingrequiredfield'] = 'དགོ་པའི་ས་སྒོ་འདི་མིན་འདུག';
|
||||
$string['moodledocslink'] = 'ཤོག་ལེབ་འདི་གི་དོན་ལུ་ མུ་ཌེལ་ཌོཀསི།';
|
||||
$string['mssql'] = 'SQL*Server (mssql)';
|
||||
$string['mssqlextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་ འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས།php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
|
||||
$string['mssql_n'] = 'SQL*Server with UTF-8 support (mssql_n)';
|
||||
$string['mysql'] = 'MySQL (mysql)';
|
||||
$string['mysql416bypassed'] = 'ག་དེ་སྦེ་རུང་ ཁྱོད་རའི་ས་ཁོངས་འདི་ ཨཡེ་ཨེསི་ཨོ་ -8859-1 (ལེ་ཀྲིན་)སྐད་ཡིག་རྐྱངམ་ཅིག་ ཁྱོད་ཀྱི་ད་ལྟོ་གཞི་བཙུགས་འབད་བའི་ མཱའི་ཨེསི་ཀིའུ་ཨེལ་ 4.1.12 ནང་ཁྱོད་ཀྱི་འཕྲོད་མཐུད་སྦེ་ལག་ལེན་འཐབ་(ཡང་ན་ མཐོ་མི་)';
|
||||
$string['mysql416required'] = 'ངི་གི་ཨེས་ ཀིའུ་ཨེལ་ ༤.༡.༡༦འདི་ མུ་དྲིལ་གཡི་དོན་ལུ་ ཐོན་རིམ་ཉུང་ཤོས་དགོས་མཁོ་ཡོདཔ་ལས་ ༡.༦ཉེན་ལེན་དང་འཁྲིལཝ་ད་ལུ་ དེ་ཁར་ཡོད་པའི་ གནས་སྡུད་གེ་ར་ གི་གཞི་བསྒྱུར་འབད་ཡོདཔ་ལས་ཤུལ་མའི་ ཡུ་ཀྲི་ཨེཕ་ ༨ལུ་འབད།';
|
||||
$string['mysqlextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་ འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
|
||||
$string['mysqli'] = 'Improved MySQL (mysqli)';
|
||||
$string['mysqliextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་ འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས།ཁྱོད་རའི་php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་། PHP 4 གི་དོན་ལུ་ MySQLi ཐོབ་མིཚུགས་པས།';
|
||||
$string['name'] = 'མིང་།';
|
||||
$string['next'] = 'ཤུལ་མམ།';
|
||||
$string['oci8po'] = 'Oracle (oci8po)';
|
||||
$string['ociextensionisnotpresentinphp'] = 'PHP འདི་ ཨོ་རེ་ཀཱལ་དང་གཅིག་ཁར་འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ MSSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
|
||||
$string['odbcextensionisnotpresentinphp'] = 'PHP འདི་ SQL*Server དང་གཅིག་ཁར་འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་
|
||||
ODBC རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
|
||||
$string['odbc_mssql'] = 'SQL*Server over ODBC (odbc_mssql)';
|
||||
$string['ok'] = 'བཏུབ།';
|
||||
$string['opensslrecommended'] = 'གདམ་ཁ་ཅན་གྱི་ ཨོ་པིན་ཨེསི་ཨེསི་ དཔེ་མཛོད་གཞི་བཙུགས་འབད་ནི་འདི་གནམ་མེད་ས་མེད་སྦེ་ ཧ་ཅང་གིས་འོས་སྦྱོར་འབདཝ་ཨིན་--འདི་གིས་མུ་ཌུལ་ཡོངས་འབྲེལ་འབད་ནིའི་ལས་འགན་ལྕོགས་ཅན་བཟོཝ་ཨིན།';
|
||||
$string['parentlanguage'] = '<< TRANSLATORS: ཁྱོད་རའི་སྐད་ཡིག་ལུ་ཁྱོད་རའི་སྐད་ཡིག་ཐུས་སྒྲིལ་ནང་ལས་རྒྱུན་རིམ་ནང་རྒྱུན་རིམ་ཚུ་མེད་པའི་སྐབས་མུ་ཌེལ་གྱིས་ལག་ལེན་འཐབ་དགོ་པའི་རྩ་ལག་སྐད་ཡིག་ཡོད་པ་ཅིན་ ནཱ་ལུ་འདི་གི་ཨང་རྟགས་གསལ་བཀོད་འབད་ འདི་ས་སྟོང་སྦེ་བཞག་པ་ཅིན་ཨིང་ལིཤ་ལག་ལེན་འཐབ་འོང་། དཔེར་ན་ : nl >>';
|
||||
$string['pass'] = 'མཐར་འཁྱོལ།';
|
||||
$string['password'] = 'ཆོག་ཡིག';
|
||||
$string['pgsqlextensionisnotpresentinphp'] = 'PHP འདི་ PostgreSQL དང་གཅིག་ཁར་འབྲེལ་བ་འཐབ་ཚུགས་ནིའི་དོན་ལུ་ PGSQL རྒྱ་བསྐྱེད་དང་གཅིག་ཁར་ ཚུལ་མཐུན་སྦེ་ རིམ་སྒྲིག་མ་འབད་བས། ཁྱོད་རའི་ php.ini ཡིག་སྣོད་ ཞིབ་དཔྱད་འབད་གནང་ ཡང་ན་ PHP ལོག་ཕྱོགས་སྒྲིག་འབད་གནང་།';
|
||||
$string['php50restricted'] = 'པི་ཨེཆ་པི་5.0.x';
|
||||
$string['phpversion'] = 'PHP ཐོན་རིམ།';
|
||||
$string['phpversionerror'] = 'PHP ཐོན་རིམ་འདི་ ཉུང་མཐའ་ལུ་ 4.3.0 ཡང་ན་ 5.1.0 དགོ། (5.0.x ལུ་ ཤེས་ཚུགས་པའི་དཀའ་ངལ་ ལེ་ཤ་འདུག་)';
|
||||
$string['phpversionhelp'] = '<p>མུ་ཌེལ་ལུ་ ཐོན་རིམ་འདི་ ཉུང་མཐའ་ལུ་ 4.3.0 ཡང་ན་ 5.1.0 དགོ། (5.0.x ལུ་ ཤེས་ཚུགས་པའི་དཀའ་ངལ་ ལེ་ཤ་འདུག་)</p>
|
||||
<p>ཁྱོད་ད་ལྟོ་ཐོན་རིམ་$a གཡོག་བཀོལ་དོ་</p>
|
||||
<p>PHP ཡར་བསྐྱེད་འབད་དགོ་ ཡང་ན་ PHP ཐོན་རིམ་གསརཔ་ཡོད་མི་ ཧོསིཊ་གཅིག་དང་གཅིག་ཁར་ སྤོ་བཤུད་འབད།!<br />
|
||||
(5.0.x ནང་ལུ་ ཁྱོད་ཀྱིས་ ཐོན་རིམ་ 4.4.x ལུ་ མར་ཕབ་འབད་ཚུགས།)</p>';
|
||||
$string['postgres7'] = 'PostgreSQL (postgres7)';
|
||||
$string['postgresqlwarning'] = '<strong>Note:</strong> འབྲེལ་མཐུད་འབད་ནི་ལུ་ དཀའ་ངལ་ཡོད་པ་ཅིན་ ཧོསིཊ་སར་བར་ས་ཁོངས་འདི་ host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'ལུ་ གཞི་སྒྲིག་འབད་ནི་ལུ་ འབད་རྩོལ་བསྐྱེད་ཞིནམ་ལས་ གནས་སྡུད་གཞི་རྟེན་དང་ ལག་ལེན་པ་དེ་ལས་ཆོག་ཡིག་སྟོངམ་སྦེ་བཞག། བརྡ་དོན་ཧེང་བཀལ་ <a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a> ནང་ ཡོད།';
|
||||
$string['previous'] = 'ཧེ་མམ།';
|
||||
$string['qtyperqpwillberemoved'] = 'ཡར་བསྐྱེད་འབད་བའི་བསྒང་ ཨར་ཀིའུ་གི་དྲི་བའི་དབྱེ་བ་འདི་རྩ་བསྐྲད་གཏང་འོང་། ཁྱོད་ཀྱིས་དྲི་བའི་དབྱེ་བ་ཚུ་ལག་ལེན་མི་འཐབ་སྦེ་ འདི་འབད་ནི་འདི་གིས་ ཁྱོད་ཀྱིས་ དཀའ་ངལ་ག་ནི་ཡང་མྱོང་མི་དགོས།';
|
||||
$string['qtyperqpwillberemovedanyway'] = 'ཡར་བསྐྱེད་འབད་བའི་བསྒང་ ཨར་ཀིའུ་པི་ དྲི་བ་སྡེ་རིམ་དེ་གི་ བཏོན་གཏང་ཡོདཔ། ཁྱོད་ལུ་ཡོད་པའི་ཨར་ཀིའུ་པི་དག་པ་ཅིག་ གནས་སྡུད་གཞི་རྟེན་ནང་ཡོད་པའི་དྲི་བ་ཚུ་ དང་དེ་གིས་ ལོག་གཞི་བཙུགས་ཨང་རྟགས་ལས་ མ་འབད་ཚུན་ཚོད་ ལཱ་གཡོག་འབད་ནི་དེ་ བཀག་འོང་། http://moodle.
|
||||
org/mod/data/view.php?d=13&rid=797
|
||||
ཡར་བསྐྱེད་འཕྲོ་འཐུད་འབད་བའི་བསྒང་གི་ཧེན་མར།';
|
||||
$string['remotedownloaderror'] = 'ཁྱོད་ཀྱི་སར་བར་ལུ་ཆ་ཤས་ཕབ་ལེན་འབདཝ་ད་འཛོལ་བ་བྱུང་ཡོདཔ་ལས་ པོརོག་སི་སྒྲིག་སྟངས་ཚུ་བདེན་སྦྱོར་འབད་དགོ་པའི་ཁར་ པི་ཨེཆ་པི་cURLཨེགསི་ཊེན་ཤཱན་འདི་འོས་སྦྱོར་འབད་ཡོདཔ་ཨིན། <br /><br />ཁྱོད་ཀྱིས་ ལག་ཐོག་ལས་ <a href=\"$a->url\">$a->url</a>ཕབ་ལེན་འབད་ཞིནམ་ལས་ ཁྱོད་རའི་སར་བར་ \"$a->dest\"ནང་འདྲ་བཤུས་བརྐྱབ་ཞིནམ་ལས་ དེ་ཁར་ཛིབ་འབད་བཤོལ།';
|
||||
$string['remotedownloadnotallowed'] = 'ཁྱོད་ཀྱི་སར་བར་ལུ་ཆ་ཤས་ཕབ་ལེན་འབད་མི་ཆོག(allow_url_fopen འདི་ལྕོགས་མིན་བཟོ་ཡོདཔ་)། ཁྱོད་ཀྱིས་ ལག་ཐོག་ལས་ <a href=\"$a->url\">$a->url</a>ཕབ་ལེན་འབད་ཞིནམ་ལས་ ཁྱོད་རའི་སར་བར་ \"$a->dest\"ནང་འདྲ་བཤུས་བརྐྱབ་ཞིནམ་ལས་ དེ་ཁར་ཛིབ་འབད་བཤོལ།';
|
||||
$string['report'] = 'སྙན་ཞུ།';
|
||||
$string['restricted'] = 'བཀག་དམ་འབད་ཡོདཔ།';
|
||||
$string['safemode'] = 'ཉེན་མེད་ ཐབས་ལམ།';
|
||||
$string['safemodeerror'] = 'ཉེན་མེད་ཐབས་ལམ་ ཨཱོན་སྦེ་ཡོད་པའི་སྐབས་ མུ་ཌེལ་ལུ་ དཀའ་ངལ་འོང་།';
|
||||
$string['safemodehelp'] = '<p>ཉེན་མེད་ཐབས་ལམ་ ཨཱོན་སྦེ་ཡོད་པའི་སྐབས་ མུ་ཌལ་ལུ་ དཀའ་ངལ་འོང་། དེ་མ་ཚད་ ཡིག་སྣོད་གསརཔ་ཚུ་ཡང་ གསར་བསྐྲུན་འབད་མི་ཚུགས་</p>
|
||||
|
||||
<p>ཉེན་མེད་ཐབས་ལམ་འདི་ paranoid མི་མང་ ཝེབ་ ཧོསིཊ་ རྐྱངམ་ཅིག་གིས་ ལྕོགས་ཅན་བཟོ་དེ་འོང་། དེ་འབདཝ་ལས་ ཁྱོད་རའི་མུ་ཌལ་ས་ཁོངས་ཀྱི་དོན་ལུ་ ཝེབ་་ཧོསིཊིང་ ཚོང་སྡེ་གསརཔ་ འཚོལ་དགོཔ་འོང་།</p>
|
||||
|
||||
<p>ཁྱོད་ར་ འབད་དགོ་མནོ་བ་ཅིན་ གཞི་བཙུགས་འཕྲོ་མཐུད་འབད་ དེ་འབདཝ་ད་ ཤུལ་ལས་ དཀའ་ངལ་ ཨ་མི་རེ་ འཐོན་འོང་།</p>';
|
||||
$string['serverchecks'] = 'སར་བར་ ཞིབ་དཔྱད་འབད་ནི་ཚུ།';
|
||||
$string['sessionautostart'] = 'ལཱ་ཡུན་ རང་བཞིན་འགོ་བཙུགས།';
|
||||
$string['sessionautostarterror'] = 'འ་ནི་འདི་ ཨོཕ་སྦེ་འོང་དགོ།';
|
||||
$string['sessionautostarthelp'] = '<p>མུ་ཌེལ་ལུ་ ལཱཡུན་རྒྱབ་སྐྱོར་དགོཔ་དང་ འདི་མེད་པ་ཅིན་ ལཱ་འབད་མི་བཏུབ།</p>
|
||||
|
||||
<p>ལཱ་ཡུན་ཚུ་ php.ini ཡིག་སྣོད་ནང་ ལྕོགས་ཅན་བཟོ་བཏུབ་་་་session.auto_start parameter འཚོལ།</p>';
|
||||
$string['skipdbencodingtest'] = 'DB ཨིན་ཀོཌིང་ བརྟག་ཞིབ་ གོམ་འགྱོ།';
|
||||
$string['status'] = 'གནས་ཚད';
|
||||
$string['thischarset'] = 'UTF-8';
|
||||
$string['thisdirection'] = 'ltr';
|
||||
$string['thislanguage'] = 'Dzongkha';
|
||||
$string['unicoderecommended'] = 'ཁྱོད་རའི་གནས་སྡུད་ཚུ་གེ་ར་ཡུ་ནི་ཀོཌི་(ཡུ་ཊི་ཨེཕ་-༨་)་ནང་གསོག་འཇོག་འབད་ནི་འོས་སྦྱོར་ཡོད།
|
||||
ཡུ་ནི་ཀོཌི་འབད་བཞག་པའི་སྔོན་སྒྲིག་ཡིག་འབྲུ་ཡོད་པའི་གནས་སྡུད་གཞི་རྟེན་ནང་ལུ་ གསརཔ་གཞི་བཙུགས་འབད་ནི་ཚུ་འབད་དགོ། གལ་སྲིད་ཡར་བསྐྱེད་འབད་བ་ཅིན་ ཁྱོད་ཀྱི་ ཡུ་ཊི་ཨེཕ་-༨་གཞིས་སྤོ་ནིའི་ལས་སྦྱོར་འདི་གཡོག་གཀོལ་དགོ།';
|
||||
$string['unicoderequired'] = 'ཁྱོད་རའི་གནས་སྡུད་ཚུ་གེ་ར་ཡུ་ནི་ཀོཌི་རྩ་སྒྲིག་(ཡུ་ཊི་ཨེཕ་-༨་)་ནང་གསོག་འཇོག་འབད་ནི་དགོས་མཁོ་ཡོད། ཡུ་ནི་ཀོཌི་འབད་བཞག་པའི་སྔོན་སྒྲིག་ཡིག་འབྲུ་ཡོད་པའི་གནས་སྡུད་གཞི་རྟེན་ནང་ལུ་ གསརཔ་གཞི་བཙུགས་འབད་ནི་ཚུ་འབད་དགོ། གལ་སྲིད་ཡར་བསྐྱེད་འབད་བ་ཅིན་ ཁྱོད་ཀྱི་ ཡུ་ཊི་ཨེཕ་-༨་གཞིས་སྤོ་ནིའི་ལས་སྦྱོར་འདི་གཡོག་གཀོལ་དགོ།(བདག་སྐྱོང་གི་ཤོག་ལེབ་དེ་བལྟ།)';
|
||||
$string['user'] = 'ལག་ལེན་པ།';
|
||||
$string['welcomep10'] = '$a->installername ($a->installerversion)';
|
||||
$string['welcomep20'] = 'ཁྱོད་རའི་ གློག་རིག་ནང་ <strong>$a->packname $a->packversion</strong> package འདི་ མཐའ་འཁྱོལཅན་སྦེ་ གཞི་བཙུགས་དང་ གསར་བཙུགས་འབད་ཡོདཔ་ལས་བརྟེན་ ཁྱོད་ཀྱིས་འ་ནི་ ཤོག་ལེབ་འདི་བལྟ་ཚུགསཔ་ཨིན།
|
||||
བཀྲིས་བདེ་ལེགས་!';
|
||||
$string['welcomep30'] = '<strong>$a->installername</strong> གསར་བཏོན་འབད་མི་ནང་ <strong>Moodle</strong> བཀོལ་སྤྱོད་འབད་བཏུབ་མི་ མཐའ་འཁོར་གསར་བསྐྲུན་འབད་མི་གློག་རིམ་ཚུ་ཡང་ཚུདཔ་ཨིན།';
|
||||
$string['welcomep40'] = 'ཐུམ་སྒྲིལ་འདི་ནང་ལུ་ <strong>Moodle $a->moodlerelease ($a->moodleversion)</strong> ཡང་ ཚུདཔ་ཨིན།';
|
||||
$string['welcomep50'] = 'ཐུམ་སྒྲིལ་འདི་ནང་ལུ་ གློག་རིམ་ཆ་མཉམ་གྱི་ལག་ལེན་ཚུ་ ཁོང་རའི་ ཆོག་ཐམ་ལུ་ དབང་ཚད་ཡོདཔ་ཨིན།
|
||||
<strong>$a->installername</strong> ཐུམ་སྒྲིལ་ཆ་ཚང་འདི་ <a href=\"http://www.opensource.org/docs/definition_plain.html\">open source</a> ཨིནམ་དང་ <a href=\"http://www.gnu.org/copyleft/gpl.html\">GPL</a> ཆོག་ཐམ་དང་འཁྲིལ་ཏེ་ བགོ་བཀྲམ་འབད་འབདཝ་ཨིན།';
|
||||
$string['welcomep60'] = 'འོག་གི་ཤོག་ལེབ་ཚུ་གིས་ ཁྱོད་རའི་གློག་རིག་ནང<strong>Moodle</strong> རིམ་སྒྲིག་འབད་ནིའི་ ཐབས་ལམ་ འཇམ་ཏོང་ཏོ་ཚུ་སྟོན་འོང་།
|
||||
སྔོན་སྒྲིག་ སྒྲིག་སྟངས་ཚུ་ དང་ལེན་འབད་ ཡང་ན་ ཁྱོད་རའི་དགོས་མཁོ་དང་བསྟུན་ཏེ་ འདི་ཚུ་ བསྒྱུར་བཅོས་འབད།';
|
||||
$string['welcomep70'] = '<strong>མུ་ཌེལ་</strong> གཞི་སྒྲིག་ འཕྲོ་མཐུད་དེ་འབད་ནིའི་དོན་ལུ་ \"Next\" ཨེབ་རྟ་གུ་ ཨེབ་གཏང་འབད།';
|
||||
$string['wrongdestpath'] = 'བཞག་སྣོད་རྒྱུ་ལམ་འཛོལ་བ།';
|
||||
$string['wrongsourcebase'] = 'འབྱུང་ས་URLགཞི་རྟེན་འཛོལ་བ།';
|
||||
$string['wrongzipfilename'] = 'Z་IPཡིག་སྣོད་མིང་འཛོལ་བ།';
|
||||
$string['wwwroot'] = 'ཝེབ་ ཁ་བྱང་ཚུ་';
|
||||
$string['wwwrooterror'] = '\'ཝེབ་ཁ་བྱང་\' འདི་་ནུས་ཅན་མེན་མས་ - འ་ནི་མུ་ཌེལ་ གཞི་བཙུགས་དེ་ འདི་ནང་མེདཔ་བཟུམ་ཅིག་འདུག། འོག་ལུ་ ཡོད་མི་ བེ་ལུ་དེ་ སླར་སྒྲིག་འབད་དེ་འདུག།';
|
||||
$string['xmlrpcrecommended'] = 'གདམ་ཁ་ཅན་གྱི་ཨེགསི་ཨེམ་ཨེལ་ཨར་པིསི་རྒྱ་བསྐྱེད་དེ་གཞི་བཙུགས་འབད་བ་ཅིན་མུ་ཌེལ་ཡོངས་འབྲེལ་བཟོ་ནི་ལས་འགན་ལུ་ཕན་ཐོགས་ཅན་ཅིག་ཨིན།';
|
||||
$string['ziprequired'] = 'ཛིཔ་པི་ཨེཆ་པི་རྒྱ་བསྐྱེད་དེ་ད་ལྟོ་མུ་ཌེལ་ལུ་དགོས་མཁོ་ཡོད བརྡ་དོན་ཛིཔ་ཟུང་ལྡན་ཚུ་ཡང་ན་པི་སི་ཨེལ་ཛིཔ་དཔེ་མཛོད་དེ་ལས་ལྷག་སྟེ་ལག་ལེན་མ་འཐབ་སྦེ།';
|
||||
?>
|
||||
@@ -313,6 +313,6 @@ $string['wrongsourcebase'] = 'Wrong source URL base';
|
||||
$string['wrongzipfilename'] = 'Wrong ZIP file name';
|
||||
$string['wwwroot'] = 'Web address';
|
||||
$string['wwwrooterror'] = 'The \'Web Address\' does not appear to be valid - this Moodle installation doesn\'t appear to be there. The value below has been reset.';
|
||||
$string['xmlrpcrecommended'] = 'Installing the optional xmlrpc extension is useful for Moodle Networking functionality.';
|
||||
$string['xmlrpcrecommended'] = 'The xmlrpc extension is needed for hub communication, and useful for web services and Moodle networking';
|
||||
$string['ziprequired'] = 'The Zip PHP extension is now required by Moodle, info-ZIP binaries or PclZip library are not used anymore.';
|
||||
?>
|
||||
|
||||
@@ -29,19 +29,19 @@ $string['chooselanguagehead'] = 'בחר שפה';
|
||||
$string['chooselanguagesub'] = 'אנא בחר שפה עבור ההתקנה בלבד. תוכל לבחור בשפה שונה לאתר ולמשתמש באחד מהמסכים הבאים.';
|
||||
$string['closewindow'] = 'סגור את החלון הזה';
|
||||
$string['compatibilitysettingshead'] = 'בדיקת הגדרות ה-PHP שלך...';
|
||||
$string['compatibilitysettingssub'] = 'השרת שלך צריך לעבור את כל בדיקות אלו כדי להפעיל את Moodle כהלכה.';
|
||||
$string['compatibilitysettingssub'] = 'השרת שלך צריך לעבור סדרת בדיקות זו כדי להפעיל את Moodle כהלכה.';
|
||||
$string['componentisuptodate'] = 'הרכיב מעודכן.';
|
||||
$string['configfilenotwritten'] = 'תסריט (script) ההתקנה לא הצליח ליצור באופן אוטומטי את קובץ config.php המכיל את בחירת ההגדרות שלך, ייתכן שהדבר קרה בגלל שספריית ה-Moodle שלך איננה ניתנת לכתיבה. תוכל באופן ידני להעתיק את הקוד הבא לתוך קובץ config.php בספריית האם של Moodle.';
|
||||
$string['configfilenotwritten'] = 'תסריט (script) ההתקנה לא הצליח ליצור באופן אוטומטי את קובץ config.php המכיל את ההגדרות שבחרת, ייתכן שהדבר קרה בגלל שספריית ה-Moodle שלך איננה ניתנת לכתיבה. תוכל להעתיק באופן ידני את הקוד הבא לתוך קובץ config.php בספריית האם של Moodle.';
|
||||
$string['configfilewritten'] = 'קובץ config.php נוצר בהצלחה';
|
||||
$string['configurationcompletehead'] = 'הגדרות התצורה הושלמו';
|
||||
$string['configurationcompletesub'] = 'Moodle ניסה לשמור את הגדרות התצורה שלך בקובץ בספריית ה-root של התקנת ה-Moodle.';
|
||||
$string['continue'] = 'המשך';
|
||||
$string['ctyperecommended'] = 'התקנת ההרחבה האופציונלית ctype PHP ממולצת ביותר בכדי לשפר את ביצועי האתר, במיוחד אם האתר תומך בשפות לא-לטניות.';
|
||||
$string['ctyperequired'] = 'הרחבת ה-ctype PHP כעת נדרשת ע\"י Moodle, כדי לשפר את ביצועי האתר ולהציע תאימות רב-לשונית.';
|
||||
$string['curlrecommended'] = 'התקנת ספריית Curl, האופציונלית, מומלצת ביותר בכדי לאפשר ל-Moodle את פונקציונליות התקשורת';
|
||||
$string['curlrecommended'] = 'התקנת ספריית Curl, האופציונלית, מומלצת ביותר בכדי לאפשר ל-Moodle את פונקציונליות Moodle Networking';
|
||||
$string['customcheck'] = 'בדיקות אחרות';
|
||||
$string['database'] = 'מסד נתונים';
|
||||
$string['databasecreationsettingshead'] = 'כעת נותר לך לעצב את הגדרות מסד הנתונים שלך היכן שרוב נתוני Moodle יאוחסנו. מסד נתונים זה ייווצר באופן אוטומטי ע\"י ההתקנה
|
||||
$string['databasecreationsettingshead'] = 'כעת יש לעצב את הגדרות מסד הנתונים שלך, בו יאוחסנו רוב נתוני Moodle. מסד נתונים זה ייווצר באופן אוטומטי בזמן ההתקנה
|
||||
עם ההגדרות המצויינות להלן.';
|
||||
$string['databasecreationsettingssub'] = '<b>סוג:</b> תוקן ל\"mysql\" ע\"י קובץ ההתקנה<br />
|
||||
<b>מחשב מארח:</b> תוקן ל\"localhost\" ע\"י קובץ ההתקנה<br />
|
||||
@@ -49,7 +49,7 @@ $string['databasecreationsettingssub'] = '<b>סוג:</b> תוקן ל\"mysql\" ע
|
||||
<b>שם משתמש מסד הנתונים:</b> תוקן ל\"root\" ע\"י קובץ ההתקנה<br />
|
||||
<b>סיסמה:</b> סיסמת מסד הנתונים שלך<br />
|
||||
<b>תחילית הטבלאות:</b> תחילית רשות לכל שמות הטבלאות';
|
||||
$string['databasesettingshead'] = 'כעת נותר לך לעצב את הגדרות מסד הנתונים שלך היכן שרוב נתוני Moodle יאוחסנו. מסד נתונים זה חייב כבר להיות קיים בנוסף שם משתמש וסיסמה לשם גישה אליו.';
|
||||
$string['databasesettingshead'] = 'כעת יש לעצב את הגדרות מסד הנתונים שלך, בו יאוחסנו רוב נתוני Moodle. מסד נתונים זה חייב כבר להיות קיים בנוסף שם משתמש וסיסמה לשם גישה אליו.';
|
||||
$string['databasesettingssub'] = '<b>סוג:</b> mysql או postgres7<br />
|
||||
<b>מחשב מארח:</b> לדוגמה localhost או db.isp.com<br />
|
||||
<b>שם:</b> database שם מסד הנתונים למשל-moodle<br />
|
||||
@@ -97,9 +97,9 @@ $string['databasesettingssub_postgres7'] = '<b>סוג:</b> PostgreSQL<br />
|
||||
<b>שם משתמש:</b> שם משתמש מסד הנתונים שלך<br />
|
||||
<b>סיסמה:</b> סיסמת מסד הנתונים שלך<br />
|
||||
<b>תחילית הטבלאות:</b> תחילית רשות לכל שמות הטבלאות (אפשרי)';
|
||||
$string['databasesettingswillbecreated'] = '<b>הערה: </b> ההתקנה תנסה ליצור את מסד הנתונים אוטומטית אם הוא לא קיים.';
|
||||
$string['dataroot'] = 'ספריית הנתנים';
|
||||
$string['datarooterror'] = 'ספריית \"נתוני Moodle\" שציינת לא נמצאה או יכלה להיווצר. אנא תקן את נתיב זה או צור את ספרייה זו באופן ידני.';
|
||||
$string['databasesettingswillbecreated'] = '<b>הערה: </b> ההתקנה תנסה ליצור את מסד הנתונים באופן אוטומטי אם אינו קיים.';
|
||||
$string['dataroot'] = 'ספריית הנתונים';
|
||||
$string['datarooterror'] = 'ספריית \"נתוני Moodle\" שציינת לא נמצאה או לא יכלה להיווצר. אנא תקן נתיב זה או צור ספרייה זו באופן ידני.';
|
||||
$string['datarootpublicerror'] = 'ספריית ה-\'Data Directory\' שציינת ניתנת לגישה ישירות מהרשת. אתה מוכרח להשתמש בספרייה אחרת.';
|
||||
$string['dbconnectionerror'] = 'לא הצלחנו להתחבר למסד הנתונים שציינת. אנא בדוק את הגדרות מסד הנתונים שלך.';
|
||||
$string['dbcreationerror'] = 'חלה שגיאה ביצירת מסד הנתונים. המערכת לא הצליחה ליצור את שם מסד הנתונים שציינת עם ההגדרות שסופקו.';
|
||||
@@ -181,7 +181,7 @@ $string['installation'] = 'התקנה';
|
||||
$string['invalidmd5'] = 'md5 לא חוקי';
|
||||
$string['langdownloaderror'] = 'לצערינו השפה \"$a\" לא הותקנה. תהליך ההתקנה ימשיך באנגלית.';
|
||||
$string['langdownloadok'] = 'השפה \"$a\" הותקנה בהצלחה. תהליך ההתקנה ימשיך בשפה זו.';
|
||||
$string['language'] = 'חבילת שפה';
|
||||
$string['language'] = 'שפה';
|
||||
$string['magicquotesruntime'] = 'Magic Quotes Run Time';
|
||||
$string['magicquotesruntimeerror'] = 'חייב לנטרל זאת';
|
||||
$string['magicquotesruntimehelp'] = '<p>רצוי שמשתנה Magic quotes runtime יהיה כבוי עבור Moodle בכדי שיעבור כהלכה.
|
||||
@@ -197,7 +197,7 @@ $string['memorylimithelp'] = '<p>
|
||||
גבול הזיכרון של ה-PHP לשרת שלך כרגע מכוון ל-$a
|
||||
</p>
|
||||
<p>
|
||||
דבר זה עלול לגרום בעיות זיכרון בהמשך, במיוחד אם יש לך מודולים רבים פעילים אוו הרבה משתמשים. </p>
|
||||
דבר זה עלול לגרום בעיות זיכרון בהמשך, במיוחד אם יש לך רכיבים רבים פעילים אוו הרבה משתמשים. </p>
|
||||
<p> אנו ממליצים שתעצב את הגדרת ה-PHP עם ערך גבוה להגבלת הזיכרון, כמו 40M.
|
||||
ישנן דרכים רבות לכך:
|
||||
<ol>
|
||||
@@ -308,4 +308,6 @@ $string['wrongsourcebase'] = 'מקור בסיס URL שגוי';
|
||||
$string['wrongzipfilename'] = 'שם קובץ ZIP שגוי.';
|
||||
$string['wwwroot'] = 'כתובת האתר';
|
||||
$string['wwwrooterror'] = 'כתובת האתר כנראה איננה תקנית - התקנת Moodle זו כנראה איננה שם. הערך כאן אותחל.';
|
||||
$string['xmlrpcrecommended'] = 'התקנת הרחבת ה-xmlrpc נדרשת לצורך פונקציונליות Moodle Networking.';
|
||||
$string['ziprequired'] = 'הרחבת The Zip PHP נדרשת ע\"י Moodle, ספריות PclZip או info-ZIP binaries לא בשימוש יותר.';
|
||||
?>
|
||||
|
||||
@@ -26,20 +26,20 @@ $string['cannotunzipfile'] = 'ZIPファイルを解凍できません。';
|
||||
$string['caution'] = '警告';
|
||||
$string['check'] = 'チェック';
|
||||
$string['chooselanguagehead'] = '言語を選択してください。';
|
||||
$string['chooselanguagesub'] = 'インストールのみに使用する言語を選択してください。この言語は、サイトのデフォルト言語としても使用されます。サイト言語は、後で変更することが可能です。';
|
||||
$string['chooselanguagesub'] = 'インストールのみに使用する言語を選択してください。この言語はサイトのデフォルト言語としても使用されます。サイト言語は後で変更することが可能です。';
|
||||
$string['closewindow'] = 'ウィンドウを閉じる';
|
||||
$string['compatibilitysettingshead'] = 'PHP設定を確認しています ...';
|
||||
$string['compatibilitysettingssub'] = 'Moodleを適切に動作させるためには、あなたのサーバがこれらすべてのテストに通る必要があります。';
|
||||
$string['compatibilitysettingssub'] = 'Moodleを適切に動作させるためにはあなたのサーバがこれらすべてのテストに通る必要があります。';
|
||||
$string['componentisuptodate'] = 'コンポーネントは最新です。';
|
||||
$string['configfilenotwritten'] = 'インストールスクリプトは、自動的にあなたの選択した設定を反映したconfig.phpファイルを作成することができませんでした。おそらく、Moodleディレクトリに書き込み権が無いためだと思われます。下記のコードをconfig.phpという名称のファイルとしてMoodleのルートディレクトリにコピーすることができます。';
|
||||
$string['configfilenotwritten'] = 'インストールスクリプトは自動的にあなたの選択した設定を反映したconfig.phpファイルを作成することができませんでした。おそらく、Moodleディレクトリに書き込み権が無いためだと思われます。下記のコードをconfig.phpという名称のファイルとしてMoodleのルートディレクトリにコピーすることができます。';
|
||||
$string['configfilewritten'] = 'config.phpが正常に作成されました。';
|
||||
$string['configurationcompletehead'] = '設定が完了しました。';
|
||||
$string['configurationcompletesub'] = 'Moodleは、Moodleインストレーションルートへの設定内容の保存を試みました。';
|
||||
$string['configurationcompletesub'] = 'MoodleはMoodleインストレーションルートへの設定内容の保存を試みました。';
|
||||
$string['continue'] = '続ける';
|
||||
$string['ctyperecommended'] = 'あなたのサイトが非ラテン言語をサポートしている場合、サイトパフォーマンスを改善するため、PHP ctype拡張モジュールのインストールを強くお勧めします。';
|
||||
$string['ctyperequired'] = 'サイトパフォーマンスの改善および多言語サポートを提供するため、MoodleではPHP ctype拡張モジュールが必須です。';
|
||||
$string['curlrecommended'] = 'Moodleネットワーキング機能を有効にするため、cURLライブラリのインストールを強くお勧めします。';
|
||||
$string['curlrequired'] = 'Moodleリポジトリと通信するため、MoodleではPHP cURL拡張モジュールが必須です。';
|
||||
$string['curlrequired'] = 'Moodleリポジトリと通信するため、MoodleではPHP cURL拡張モジュールが必須です。'; // ORPHANED
|
||||
$string['customcheck'] = 'その他のチェック';
|
||||
$string['database'] = 'データベース';
|
||||
$string['databasecreationsettingshead'] = 'ほとんどのMoodleデータが保存されるデータベース設定を行ってください。このデータベースはインストーラーにより、下記の設定が指定された形で自動的に作成されます。';
|
||||
@@ -49,7 +49,7 @@ $string['databasecreationsettingssub'] = '<b>タイプ:</b> インストーラ
|
||||
<b>ユーザ名:</b> インストーラーにより「root」に修正されました。<br />
|
||||
<b>パスワード:</b> あなたのデータベースパスワードです。<br />
|
||||
<b>テーブル接頭辞:</b> すべてのテーブル名に使用される任意の接頭辞です。';
|
||||
$string['databasesettingshead'] = 'ほとんどのMoodleデータが保存されるデータベース設定を行います。このデータベースは、アクセスするためのユーザ名およびパスワードとともにすでに作成されている必要があります。';
|
||||
$string['databasesettingshead'] = 'ほとんどのMoodleデータが保存されるデータベース設定を行います。このデータベースはアクセスするためのユーザ名およびパスワードとともにすでに作成されている必要があります。';
|
||||
$string['databasesettingssub'] = '<b>タイプ:</b> mysql または postgres7<br />
|
||||
<b>ホスト:</b> 例 localhost または db.isp.com<br />
|
||||
<b>データベース名:</b> 例 moodle<br />
|
||||
@@ -101,19 +101,19 @@ $string['databasesettingssub_postgres7'] = '<b>タイプ:</b> PostgreSQL<br />
|
||||
$string['databasesettingswillbecreated'] = '<b>メモ:</b> データベースが存在していない場合、インストーラーはデータベースの自動作成を試みます。';
|
||||
$string['dataroot'] = 'データディレクトリ';
|
||||
$string['datarooterror'] = 'あなたが指定した「データディレクトリ」が見つからないか、作成されませんでした。パスを訂正するか、ディレクトリを手動で作成してください。';
|
||||
$string['datarootpublicerror'] = 'あなたが指定した「データディレクトリ」は、ウェブ経由でアクセスすることができます。異なるディレクトリを使用してください。';
|
||||
$string['datarootpublicerror'] = 'あなたが指定した「データディレクトリ」はウェブ経由でアクセスすることができます。異なるディレクトリを使用してください。';
|
||||
$string['dbconnectionerror'] = 'あなたが指定したデータベースに接続できませんでした。データベース設定を確認してください。';
|
||||
$string['dbcreationerror'] = 'データベース作成エラー。設定で指定された名称のデータベースを作成できませんでした。';
|
||||
$string['dbhost'] = 'ホストサーバ';
|
||||
$string['dbprefix'] = 'テーブル接頭辞';
|
||||
$string['dbtype'] = 'タイプ';
|
||||
$string['dbwrongencoding'] = '選択したデータベースは、非推奨のエンコーディング ($a) で動作しています。代わりにユニコード (UTF-8) でエンコードされたデータベースの使用をお勧めします。下記の「DBエンコーディングテストをスキップ」をチェックすることで、このテストをバイパスできますが、将来的に問題が発生する恐れがあります。';
|
||||
$string['dbwrongencoding'] = '選択したデータベースは非推奨のエンコーディング ($a) で動作しています。代わりにユニコード (UTF-8) でエンコードされたデータベースの使用をお勧めします。下記の「DBエンコーディングテストをスキップ」をチェックすることで、このテストをバイパスできますが、将来的に問題が発生する恐れがあります。';
|
||||
$string['dbwronghostserver'] = '上記説明の「ホスト」ルールに従ってください。';
|
||||
$string['dbwrongnlslang'] = 'あなたのウェブサーバのNLS_LANG環境変数には、AL32UTF8文字セットを使用してください。OCI8を適切に設定するには、PHPドキュメンテーションをご覧ください。';
|
||||
$string['dbwrongnlslang'] = 'あなたのウェブサーバのNLS_LANG環境変数にはAL32UTF8文字セットを使用してください。OCI8を適切に設定するには、PHPドキュメンテーションをご覧ください。';
|
||||
$string['dbwrongprefix'] = '上記説明の「テーブル接頭辞」ルールに従ってください。';
|
||||
$string['directorysettingshead'] = 'Moodleのインストール先を確認してください。';
|
||||
$string['directorysettingssub'] = '<p><b>ウェブアドレス:</b>
|
||||
Moodleにアクセスする完全なウェブアドレスを指定してください。複数のURIよりアクセス可能な場合は、学生が利用する最も自然なURIを選択してください。末尾にスラッシュを付けないでください。</p>
|
||||
Moodleにアクセスする完全なウェブアドレスを指定してください。複数のURIよりアクセス可能な場合は学生が利用する最も自然なURIを選択してください。末尾にスラッシュを付けないでください。</p>
|
||||
<br />
|
||||
<br />
|
||||
<p><b>Moodleディレクトリ:</b>
|
||||
@@ -121,7 +121,7 @@ Moodleにアクセスする完全なウェブアドレスを指定してくだ
|
||||
<br />
|
||||
<br />
|
||||
<p><b>データディレクトリ:</b>
|
||||
アップロードされたファイルをMoodleが保存する場所が必要です。 このディレクトリは、ウェブサーバのユーザ (通常は「nobody」または「apache」) が読み込みおよび書き込みできるようにしてください。しかし、ウェブから直接アクセスできないようにしてください。データディレクトリがない場合、インストーラーは作成を試みます。</p>';
|
||||
アップロードされたファイルをMoodleが保存する場所が必要です。 このディレクトリはウェブサーバのユーザ (通常は「nobody」または「apache」) が読み込みおよび書き込みできるようにしてください。しかし、ウェブから直接アクセスできないようにしてください。データディレクトリがない場合、インストーラーは作成を試みます。</p>';
|
||||
$string['dirroot'] = 'Moodleディレクトリ';
|
||||
$string['dirrooterror'] = '「Moodleディレクトリ」設定が間違っているようです - インストール済みMoodleが見つかりませんでした。下記の値がリセットされました。';
|
||||
$string['download'] = 'ダウンロード';
|
||||
@@ -129,33 +129,33 @@ $string['downloadedfilecheckfailed'] = 'ダウンロードファイルのチェ
|
||||
$string['downloadlanguagebutton'] = '「 $a 」言語パックをダウンロードする';
|
||||
$string['downloadlanguagehead'] = '言語パックのダウンロード';
|
||||
$string['downloadlanguagenotneeded'] = 'デフォルトの言語パック「 $a 」でインストール処理を続けることができます。';
|
||||
$string['downloadlanguagesub'] = 'あなたは、言語パックをダウンロードして、この言語でインストールを継続することができます。<br /><br />もし、あなたが言語パックをダウンロードできない場合、インストールは英語で継続されます。 (インストールの完了後、さらに言語パックをダウンロードして、インストールすることができます。)';
|
||||
$string['downloadlanguagesub'] = 'あなたは言語パックをダウンロードして、この言語でインストールを継続することができます。<br /><br />もし、あなたが言語パックをダウンロードできない場合、インストールは英語で継続されます。 (インストールの完了後、さらに言語パックをダウンロードして、インストールすることができます。)';
|
||||
$string['environmenterrortodo'] = 'このバージョンのMoodleをインストールする前に、発見された動作環境の問題 (エラー) を解消してください!';
|
||||
$string['environmenthead'] = 'あなたの環境を確認しています ...';
|
||||
$string['environmentrecommendcustomcheck'] = 'このテストに不適合の場合、潜在的な問題が存在することを意味します。';
|
||||
$string['environmentrecommendinstall'] = '最適な動作のため、インストールおよび有効化してください。';
|
||||
$string['environmentrecommendversion'] = 'バージョン $a->needed 以上を推奨します。あなたは現在 $a->current を使用しています。';
|
||||
$string['environmentrequirecustomcheck'] = 'このテストには、パスする必要があります。';
|
||||
$string['environmentrequirecustomcheck'] = 'このテストにはパスする必要があります。';
|
||||
$string['environmentrequireinstall'] = '必ずインストールおよび有効化してください。';
|
||||
$string['environmentrequireversion'] = 'バージョン $a->needed 以上が必須です。あなたは、現在 $a->current を使用しています。';
|
||||
$string['environmentrequireversion'] = 'バージョン $a->needed 以上が必須です。あなたは現在 $a->current を使用しています。';
|
||||
$string['environmentsub'] = 'あなたのシステムに関する様々な要素が、システム要件に合致するか確認しています。';
|
||||
$string['environmentxmlerror'] = '環境データ ($a->error_code) の読み込み中にエラーが発生しました。';
|
||||
$string['error'] = 'エラー';
|
||||
$string['fail'] = '失敗';
|
||||
$string['fileuploads'] = 'ファイルアップロード';
|
||||
$string['fileuploadserror'] = 'これは有効にしてください。';
|
||||
$string['fileuploadshelp'] = '<p>あなたのサーバでは、ファイルのアップロードができないようです。</p>
|
||||
<p>Moodleのインストールは可能ですが、ファイルのアップロードができない場合は、コースファイルやユーザプロファイルのイメージをアップロードすることができません。</p>
|
||||
$string['fileuploadshelp'] = '<p>あなたのサーバではファイルのアップロードができないようです。</p>
|
||||
<p>Moodleのインストールは可能ですが、ファイルのアップロードができない場合はコースファイルやユーザプロファイルのイメージをアップロードすることができません。</p>
|
||||
<p>ファイルアップロードを可能にするには、あなた (またはシステム管理者) があなたのシステムのメインphp.iniファイルを編集して、<b>file_uploads</b> を「1」にする必要があります。</p>';
|
||||
$string['gdversion'] = 'GDバージョン';
|
||||
$string['gdversionerror'] = 'イメージの処理および作成を行うにはGDライブラリが必要です。';
|
||||
$string['gdversionhelp'] = '<p>あなたのサーバには、GDがインストールされていないようです。</p>
|
||||
$string['gdversionhelp'] = '<p>あなたのサーバにはGDがインストールされていないようです。</p>
|
||||
|
||||
<p>GDは、Moodleがイメージ (ユーザプロファイルアイコン等) を処理したり、新しいイメージ (ロググラフ等) を作成するためにPHPが必要とするライブラリです。Moodleは、GDなしでも動作します - イメージ処理等が使用できないだけです。</p>
|
||||
<p>GDはMoodleがイメージ (ユーザプロファイルアイコン等) を処理したり、新しいイメージ (ロググラフ等) を作成するためにPHPが必要とするライブラリです。MoodleはGDなしでも動作します - イメージ処理等が使用できないだけです。</p>
|
||||
|
||||
<p>Unix環境下で、GDをPHPにインストールするには、PHPを --with-gd パラメータでコンパイルしてください。</p>
|
||||
|
||||
<p>Windows環境下では、php.iniでphp_gd2.dllを参照している行のコメントアウトを取り除いてください。</p>';
|
||||
<p>Windows環境下ではphp.iniでphp_gd2.dllを参照している行のコメントアウトを取り除いてください。</p>';
|
||||
$string['globalsquotes'] = '安全では無いGlobalsのハンドリング';
|
||||
$string['globalsquoteserror'] = 'PHP設定を修正してください: register_globalsを「Off」および/またはmagic_quotes_gpcを「On」';
|
||||
$string['globalsquoteshelp'] = '<p>Magic Quotes GPCの無効化およびRegister Globalsの有効化の同時設定お勧めできません。</p>
|
||||
@@ -165,36 +165,36 @@ $string['globalsquoteshelp'] = '<p>Magic Quotes GPCの無効化およびRegister
|
||||
<p>あなたが php.ini にアクセスできない場合、Moodleディレクトリの中に .htaccess という名称のファイルを次のように記述することができます:</p>
|
||||
<blockquote><div>php_value magic_quotes_gpc On</div></blockquote>
|
||||
<blockquote><div>php_value register_globals Off</div></blockquote>';
|
||||
$string['globalswarning'] = '<p><strong>セキュリティ警告</strong>: Moodleを適切に動作させるため、<br />現在のPHP設定を変更する必要があります。<p/><p><code>register_globals=off</code> の<em>設定を行って</em>ください。<p>この設定は、<code>php.ini</code>、Apache/IIS <br />設定、または <code>.htaccess</code> ファイルの編集により管理することができます。</p>';
|
||||
$string['globalswarning'] = '<p><strong>セキュリティ警告</strong>: Moodleを適切に動作させるため、<br />現在のPHP設定を変更する必要があります。<p/><p><code>register_globals=off</code> の<em>設定を行って</em>ください。<p>この設定は<code>php.ini</code>、Apache/IIS <br />設定、または <code>.htaccess</code> ファイルの編集により管理することができます。</p>';
|
||||
$string['help'] = 'ヘルプ';
|
||||
$string['iconvrecommended'] = 'より良いパフォーマンスを得るため、ICONVライブラリのインストールを強くお勧めします。あなたのサイトが非ラテン言語をサポートしている場合、特にお勧めします。';
|
||||
$string['info'] = '情報';
|
||||
$string['installation'] = 'インストレーション';
|
||||
$string['invalidmd5'] = '無効なmp5ファイルです。';
|
||||
$string['langdownloaderror'] = '残念ですが、言語「 $a 」がインストールされていません。インストール処理は英語で継続されます。';
|
||||
$string['langdownloadok'] = '言語「 $a 」が正常にインストールされました。インストール処理は、この言語で継続されます。';
|
||||
$string['langdownloadok'] = '言語「 $a 」が正常にインストールされました。インストール処理はこの言語で継続されます。';
|
||||
$string['language'] = '言語設定';
|
||||
$string['magicquotesruntime'] = 'Magic Quotesランタイム';
|
||||
$string['magicquotesruntimeerror'] = 'これは無効にしてください。';
|
||||
$string['magicquotesruntimehelp'] = '<p>Moodleを正常に動作させるためには、Magic quotesランタイムを無効にする必要があります。</p>
|
||||
$string['magicquotesruntimehelp'] = '<p>Moodleを正常に動作させるためにはMagic quotesランタイムを無効にする必要があります。</p>
|
||||
|
||||
<p>通常はデフォルトで無効にされています ... php.iniの <b>magic_quotes_runtime</b> 設定を確認してください。</p>
|
||||
|
||||
<p>php.iniファイルにアクセスできない場合は、Moodleディレクトリの.htaccessファイルに次の行を追加してください:</p>
|
||||
<p>php.iniファイルにアクセスできない場合はMoodleディレクトリの.htaccessファイルに次の行を追加してください:</p>
|
||||
<blockquote><div>php_value magic_quotes_runtime Off</div></blockquote>';
|
||||
$string['mbstringrecommended'] = 'サイトパフォーマンスを改善するため、mbstringライブラリのインストールおよび稼動を強くお勧めします。あなたのサイトがラテン文字以外をサポートしている場合、特にお勧めします。';
|
||||
$string['memorylimit'] = 'Memory Limit';
|
||||
$string['memorylimiterror'] = 'PHPのmemory limitが低すぎます ... 後で問題が発生する可能性があります。';
|
||||
$string['memorylimithelp'] = '<p>現在、サーバのPHPメモリー制限が $a に設定されています。</p>
|
||||
<p>この設定では、Moodleのメモリーに関わるトラブルが発生します。 特に多くのモジュールを使用したり、多くのユーザがMoodleを使用する場合に、トラブルが発生します。</p>
|
||||
<p>この設定ではMoodleのメモリーに関わるトラブルが発生します。 特に多くのモジュールを使用したり、多くのユーザがMoodleを使用する場合に、トラブルが発生します。</p>
|
||||
<p>可能でしたら、PHPのメモリー制限上限を40M以上に設定されることをお勧めします。この設定を実現するために、いくつかの方法があります:
|
||||
<ol>
|
||||
<li>コンパイル可能な場合は、PHPを<i>--enable-memory-limit</i>オプションでコンパイルしてください。
|
||||
<li>コンパイル可能な場合はPHPを<i>--enable-memory-limit</i>オプションでコンパイルしてください。
|
||||
これにより、Moodle自身がメモリー制限を設定することが可能になります。</li>
|
||||
<li>php.iniファイルにアクセスできる場合は、<b>memory_limit</b>設定を40Mのように変更することができます。php.iniファイルにアクセスできない場合は、管理者に変更を依頼してください。</li>
|
||||
<li>いくつかのPHPサーバでは、下記の行を含む.htaccessファイルをMoodleディレクトリに作成することができます:
|
||||
<li>php.iniファイルにアクセスできる場合は<b>memory_limit</b>設定を40Mのように変更することができます。php.iniファイルにアクセスできない場合は管理者に変更を依頼してください。</li>
|
||||
<li>いくつかのPHPサーバでは下記の行を含む.htaccessファイルをMoodleディレクトリに作成することができます:
|
||||
<blockquote><div>php_value memory_limit 40M</div></blockquote>
|
||||
<p>しかし、この設定が<b>すべての</b>PHPページの動作を妨げる場合もあります。ページ閲覧中にエラーが表示される場合は、.htaccessファイルを削除してください。</p></li>
|
||||
<p>しかし、この設定が<b>すべての</b>PHPページの動作を妨げる場合もあります。ページ閲覧中にエラーが表示される場合は.htaccessファイルを削除してください。</p></li>
|
||||
</ol>';
|
||||
$string['missingrequiredfield'] = 'いくつかの必須入力フィールドが入力されていません。';
|
||||
$string['moodledocslink'] = 'このページのMoodle Docs';
|
||||
@@ -203,10 +203,10 @@ $string['mssqlextensionisnotpresentinphp'] = 'PHPのMSSQL拡張モジュール
|
||||
$string['mssql_n'] = 'SQL*Server UTF-8サポート (mssql_n)';
|
||||
$string['mysql'] = 'MySQL (mysql)';
|
||||
$string['mysql416bypassed'] = 'あなたのサイトがiso-8859-1 (ラテン) 言語のみ使用している場合、現在インストールされている MySQL 4.1.12 (またはそれ以上) を使用することができます。';
|
||||
$string['mysql416required'] = '将来すべてのデータをUTF-8に変換できるため、Moodle 1.6では、MySQL 4.1.16が要求される最低限のバージョンです。';
|
||||
$string['mysql416required'] = '将来すべてのデータをUTF-8に変換できるため、Moodle 1.6ではMySQL 4.1.16が要求される最低限のバージョンです。';
|
||||
$string['mysqlextensionisnotpresentinphp'] = 'PHPのMySQL拡張モジュールが適切に設定されていないため、MySQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。';
|
||||
$string['mysqli'] = 'Improved MySQL (mysqli)';
|
||||
$string['mysqliextensionisnotpresentinphp'] = 'PHPのMySQLi拡張モジュールが適切に設定されていないため、MySQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。MySQLi拡張モジュールは、PHP4では使用できません。';
|
||||
$string['mysqliextensionisnotpresentinphp'] = 'PHPのMySQLi拡張モジュールが適切に設定されていないため、MySQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。MySQLi拡張モジュールはPHP4では使用できません。';
|
||||
$string['name'] = '名称';
|
||||
$string['next'] = '次へ';
|
||||
$string['oci8po'] = 'Oracle (oci8po)';
|
||||
@@ -218,16 +218,16 @@ $string['opensslrecommended'] = 'Moodleネットワーキング機能を有効
|
||||
$string['pass'] = 'パス';
|
||||
$string['password'] = 'パスワード';
|
||||
$string['pgsqlextensionisnotpresentinphp'] = 'PHPのPGSQL拡張モジュールが適切に設定されていないため、PostgreSQLと通信できません。あなたのphp.iniファイルをチェックするか、PHPを再コンパイルしてください。';
|
||||
$string['php50restricted'] = 'PHP 5.0.x には、数多くの既知の問題があります。5.1.x にアップグレードするか、4.3.x または 4.4.x にダウングレードしてください。';
|
||||
$string['php50restricted'] = 'PHP 5.0.x には数多くの既知の問題があります。5.1.x にアップグレードするか、4.3.x または 4.4.x にダウングレードしてください。';
|
||||
$string['phpversion'] = 'PHPバージョン';
|
||||
$string['phpversionerror'] = 'PHPバージョンは少なくとも 4.3.0 または 5.1.0 をお使いください (5.0.x には既知の多数の問題があります)。';
|
||||
$string['phpversionhelp'] = '<p>Moodleには、少なくとも 4.3.0 または 5.1.0 のPHPバージョンが必要です (5.0.x には既知の多数の問題があります)。</p>
|
||||
$string['phpversionhelp'] = '<p>Moodleには少なくとも 4.3.0 または 5.1.0 のPHPバージョンが必要です (5.0.x には既知の多数の問題があります)。</p>
|
||||
<p>現在、バージョン $a が動作しています。</p>
|
||||
<p>PHPをアップグレードするか、新しいバージョンがインストールされているホストに移動してください!<br />
|
||||
(5.0.x の場合、バージョン 4.4.x にダウングレードすることもできます。)</p>';
|
||||
$string['postgres7'] = 'PostgreSQL (postgres7)';
|
||||
$string['postgresqlwarning'] = '<strong>メモ:</strong> あなたが接続問題を経験している場合、「Host Server」フィールドに「
|
||||
host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'」と入力して、「Database」「User」「Password」フィールドを空白にしてください。詳細は、<a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>をご覧ください。';
|
||||
host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'」と入力して、「Database」「User」「Password」フィールドを空白にしてください。詳細は<a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>をご覧ください。';
|
||||
$string['previous'] = '前へ';
|
||||
$string['qtyperqpwillberemoved'] = 'アップグレード中、RQP問題タイプは削除されます。あなたはこの問題タイプを使用していませんので、トラブルが発生することはありません。';
|
||||
$string['qtyperqpwillberemovedanyway'] = 'アップグレード中、RQP問題タイプは削除されます。あなたのデータベース内にRQP問題タイプが登録されています。アップグレードを続ける前に、http://moodle.org/mod/data/view.php?d=13&rid=797 から対応するプログラムをインストールしない場合、これらの問題は動作しなくなります。';
|
||||
@@ -238,33 +238,33 @@ $string['restricted'] = '使用禁止';
|
||||
$string['safemode'] = 'セーフモード';
|
||||
$string['safemodeerror'] = 'セーフモードが有効の場合、Moodleに問題が発生する場合があります。';
|
||||
$string['safemodehelp'] = '<p>セーフモードが有効にされている場合、Moodleには様々な問題が発生する場合があります。 特に新しいファイルを作成することができません。</p>
|
||||
<p>通常セーフモードは、被害妄想を持ったウェブホストで有効にされています。Moodleサイト用に別の新しいウェブホスティング会社を探してください。</p>
|
||||
<p>通常セーフモードは被害妄想を持ったウェブホストで有効にされています。Moodleサイト用に別の新しいウェブホスティング会社を探してください。</p>
|
||||
<p>セーフモード環境下で、インストール作業を続けることも可能ですが、後でいくつかの問題が発生することが予想されます。</p>';
|
||||
$string['serverchecks'] = 'サーバチェック';
|
||||
$string['sessionautostart'] = 'セッション自動スタート';
|
||||
$string['sessionautostarterror'] = 'これは無効にしてください。';
|
||||
$string['sessionautostarthelp'] = '<p>Moodleはセッションサポートを必要とします。また、セッションサポートなしでは動作しません。</p>
|
||||
<p>セッションは、php.iniファイルで有効にすることができます ... session.auto_startパラメータを探してください。</p>';
|
||||
<p>セッションはphp.iniファイルで有効にすることができます ... session.auto_startパラメータを探してください。</p>';
|
||||
$string['skipdbencodingtest'] = 'DBエンコーディングテストをスキップ';
|
||||
$string['status'] = '状態';
|
||||
$string['thischarset'] = 'UTF-8';
|
||||
$string['thisdirection'] = 'ltr';
|
||||
$string['thislanguage'] = '日本語';
|
||||
$string['unicoderecommended'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することをお勧めします。Moodleの新しいインストールは、ユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
|
||||
$string['unicoderequired'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することが必須です。Moodleの新しいインストールは、ユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
|
||||
$string['unicoderecommended'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することをお勧めします。Moodleの新しいインストールはユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
|
||||
$string['unicoderequired'] = 'あなたのすべてのデータをユニコードフォーマット (UTF-8) で保存することが必須です。Moodleの新しいインストールはユニコードをデフォルトキャラクタにセットしたデータベースで実行してください。アップグレードの場合、UTF-8移行処理を実行してださい (詳細は管理ページをご覧ください)。';
|
||||
$string['user'] = 'ユーザ';
|
||||
$string['welcomep10'] = '$a->installername ($a->installerversion)';
|
||||
$string['welcomep20'] = 'インストールが正常に完了したため、このページをご覧いただいています。あなたのコンピュータで <strong>$a->packname $a->packversion</strong> パッケージを起動してください。おめでとうございます!';
|
||||
$string['welcomep30'] = 'このリリース <strong>$a->installername</strong> には、<strong>Moodle</strong> で環境を作成するアプリケーションが含まれています。すなわち:';
|
||||
$string['welcomep30'] = 'このリリース <strong>$a->installername</strong> には<strong>Moodle</strong> で環境を作成するアプリケーションが含まれています。すなわち:';
|
||||
$string['welcomep40'] = 'パッケージには <strong>Moodle $a->moodlerelease ($a->moodleversion)</strong> も含まれています。';
|
||||
$string['welcomep50'] = 'このパッケージ内のすべてのアプリケーションの使用は個々のライセンスによって規定されています。全体の <strong>$a->installername</strong> パッケージは <a href=\"http://www.opensource.org/docs/definition_plain.html\">オープンソース</a> であり、<a href=\"http://www.gnu.org/copyleft/gpl.html\">GPL</a>ライセンスの下で配布されています。';
|
||||
$string['welcomep60'] = '次からのページは、あなたのコンピュータに <strong>Moodle</strong> を簡単に設定およびセットアップする手順にしたがって進みます。デフォルトの設定を使用することも、必要に応じて任意で設定を変更することもできます。';
|
||||
$string['welcomep60'] = '次からのページはあなたのコンピュータに <strong>Moodle</strong> を簡単に設定およびセットアップする手順にしたがって進みます。デフォルトの設定を使用することも、必要に応じて任意で設定を変更することもできます。';
|
||||
$string['welcomep70'] = '<strong>Moodle</strong>のセットアップを続けるには「次へ」ボタンをクリックしてください。';
|
||||
$string['wrongdestpath'] = '宛先パスが正しくありません。';
|
||||
$string['wrongsourcebase'] = 'ソースURIベースが正しくありません。';
|
||||
$string['wrongzipfilename'] = 'ZIPファイル名が正しくありません。';
|
||||
$string['wwwroot'] = 'ウェブアドレス';
|
||||
$string['wwwrooterror'] = '「ウェブアドレス」が正しくありません - インストール済みMoodleはそこに表示されません。下記の値はリセットされました。';
|
||||
$string['xmlrpcrecommended'] = '任意のxmlrpc拡張モジュールのインストールは、Moodleネットワーキング機能に有用です。';
|
||||
$string['ziprequired'] = 'MoodleではPHP Zip拡張モジュールが必須です。info-ZIPバイナリまたはPclZipライブラリは、今後使用されません。';
|
||||
$string['xmlrpcrecommended'] = '任意のxmlrpc拡張モジュールのインストールはMoodleネットワーキング機能に有用です。';
|
||||
$string['ziprequired'] = 'MoodleではPHP Zip拡張モジュールが必須です。info-ZIPバイナリまたはPclZipライブラリは今後使用されません。';
|
||||
?>
|
||||
|
||||
@@ -144,12 +144,12 @@ $string['fileuploadshelp'] = '<p>A transferência de ficheiros para o servidor p
|
||||
|
||||
<p>Moodle poderá ainda ser instalado, mas sem essa funcionalidade, não poderá enviar ficheiros de uma disciplina nem fotografias de utilizadores.</p>
|
||||
|
||||
<p>Para habilitar a transferência de ficheiros terá que editar (ou pedir ao administrador do sistema que o faça) o ficheiro principal php.ini do seu sistema, modificando o valor de <b>file_upload</b> para \'1\', e reiniciando o servidor Web.</p>';
|
||||
<p>Para activar a transferência de ficheiros terá que editar (ou pedir ao administrador do sistema que o faça) o ficheiro principal php.ini do seu sistema, modificando o valor de <b>file_upload</b> para \'1\', e reiniciando o servidor Web.</p>';
|
||||
$string['gdversion'] = 'Versão do GD';
|
||||
$string['gdversionerror'] = 'A biblioteca GD deverá estar instalada para processar e criar imagens.';
|
||||
$string['gdversionhelp'] = '<p>O seu servidor não parece ter GD instalado.</p>
|
||||
|
||||
<p>GD é uma biblioteca que o PHP precisa para permitir que o Moodle processe imagens (por exemplo, para criar os icones com as fotos dos utilizadores). Moodle poderá ainda funcionar sem GD - simplesmente essas funcionalidades não estarão disponíveis.</p>
|
||||
<p>GD é uma biblioteca que o PHP precisa para permitir que o Moodle processe imagens (por exemplo, para criar os ícones com as fotos dos utilizadores). Moodle poderá ainda funcionar sem GD - simplesmente essas funcionalidades não estarão disponíveis.</p>
|
||||
|
||||
<p>Para adicionar GD ao PHP, em Unix, compile o PHP usando o parâmetro --with-gd.</p>
|
||||
|
||||
|
||||
@@ -268,6 +268,6 @@ $string['wrongsourcebase'] = 'Chybné URL zdrojového serveru';
|
||||
$string['wrongzipfilename'] = 'Chybné meno súboru ZIP';
|
||||
$string['wwwroot'] = 'Web adresa';
|
||||
$string['wwwrooterror'] = 'Táto web adresa pravdepodobne nie je platná - táto inštalácia Moodle tu pravdepodobne nie je.';
|
||||
$string['xmlrpcrecommended'] = 'Pre beh sieťových funkcionalít (\"Moodle Networking\") je treba nainštalovať voliteľnú knižnicu xlmrpc.';
|
||||
$string['xmlrpcrecommended'] = 'Pre beh sieťových funkcionalít (\"Moodle Networking\") je treba nainštalovať voliteľnú knižnicu xlmrpc.'; // ORPHANED
|
||||
$string['ziprequired'] = 'Moodle v súčasnosti vyžaduje PHP zásuvný modul ZIP. Knižnice info-ZIP alebo PclZip už nie sú používané.';
|
||||
?>
|
||||
|
||||
@@ -12,25 +12,15 @@
|
||||
$string['admindirerror'] = 'Khaanadda Maammulka ee meesha la dhigey waa khalad';
|
||||
$string['admindirname'] = 'Khaanad Maamul';
|
||||
$string['caution'] = 'Taxaddar';
|
||||
$string['closewindow'] = 'Daaqaddan xidh';
|
||||
$string['configfilewritten'] = '\"config.php\" si guul leh ayaa loo sameeyey';
|
||||
$string['continue'] = 'Sii wad';
|
||||
$string['database'] = '$a';
|
||||
$string['dataroot'] = 'Khaanadda \"data\"da';
|
||||
$string['error'] = 'Cillad';
|
||||
$string['help'] = 'Gacan-siin';
|
||||
$string['info'] = 'Maclluumaad';
|
||||
$string['language'] = 'Luqad';
|
||||
$string['name'] = 'Magac';
|
||||
$string['next'] = 'Ka ku xiga';
|
||||
$string['ok'] = 'Waayahay';
|
||||
$string['password'] = 'Isgarad-erey';
|
||||
$string['previous'] = 'Kii hore';
|
||||
$string['gdversion'] = 'Nooca GD';
|
||||
$string['moodledocslink'] = 'Qoraallada Moodle ee loogu talagalay boggan';
|
||||
$string['sessionautostarterror'] = 'Kani waa in uu damisnaadaa';
|
||||
$string['status'] = 'Darajo';
|
||||
$string['thischarset'] = 'UTF-8';
|
||||
$string['thisdirection'] = 'ltr';
|
||||
$string['thislanguage'] = 'Soomaali';
|
||||
$string['user'] = 'Isticmaale';
|
||||
$string['user'] = 'Isticmaale';
|
||||
$string['wwwroot'] = 'Cinwaan web';
|
||||
?>
|
||||
|
||||
@@ -39,7 +39,7 @@ $string['continue'] = 'Наставак';
|
||||
$string['ctyperecommended'] = 'Инсталирање опционе PHP екстензије ctype се строго препоручује да би се унапредило функционисање сајта, поготово ако Ваш сајт подржава не-латиничне језике.';
|
||||
$string['ctyperequired'] = 'PHP екстензије ctype је сада обавезна за Moodle, да би се унапредило функционисање сајта и да би се нудила вишејезична компатибилност.';
|
||||
$string['curlrecommended'] = 'Инсталирање опционе Curl библиотеке је врло препоручљиво, јер је она неопходна за успешно коришћење функција за умрежавање.';
|
||||
$string['curlrequired'] = 'PHP екстензију cURL сада је обавезна за Moodle да би се комуницирало са Moodle репозиторијумима';
|
||||
$string['curlrequired'] = 'PHP екстензију cURL сада је обавезна за Moodle да би се комуницирало са Moodle репозиторијумима'; // ORPHANED
|
||||
$string['customcheck'] = 'Друге провере';
|
||||
$string['database'] = 'База података';
|
||||
$string['databasecreationsettingshead'] = 'Сада је потребно конфигурисати подешавања базе података у којој ће се чувати највећи део Moodle података. Та база података ће бити креирана аутоматски приликом инсталације, са подешавањима специфицираним испод.';
|
||||
@@ -226,12 +226,14 @@ $string['password'] = 'Лозинка';
|
||||
$string['pgsqlextensionisnotpresentinphp'] = 'PHP није био прописно конфигурисан са PGSQL екстензијом тако да може комуницирати са PostgreSQLом. Молимо Вас да проверите своју php.ini датотеку или опет компајлирате PHP.';
|
||||
$string['php50restricted'] = 'PHP 5.0.x има више познатих проблема, молимо унапредите PHP на верзије 5.1.x или инсталирајте верзију 4.3.x односно 4.4.x';
|
||||
$string['phpversion'] = 'PHP верзија';
|
||||
$string['phpversionerror'] = 'PHP верзија мора бити бар 4.3.0 или 5.1.0 (5.0.x функционише уз бројне уочене проблеме)'; // ORPHANED
|
||||
$string['phpversionerror'] = 'PHP верзија мора бити бар 4.3.0 или 5.1.0 (5.0.x функционише уз бројне уочене проблеме)';
|
||||
$string['phpversionhelp'] = '<p>Moodle захтева најмање PHP верзију 4.3.0 или 5.1.0 (5.0.x функционише уз бројне уочене проблеме).</p>
|
||||
<p>Тренутно имате верзију $a</p>
|
||||
<p>Морате надоградити PHP или преместити Moodle инсталацију на web сервер са новијом верзијом PHP-a!</br>
|
||||
(У случају верзије 5.0.x било би добро да је снизите на 4.4.x верзију)</p>';
|
||||
$string['postgres7'] = 'PostgreSQL (postgres7)';
|
||||
$string['postgresqlwarning'] = '<strong>Напомена:</strong>Ако наиђете на неке проблеме са конекцијом, можете покушати да поставите поље Host Server као host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'
|
||||
и да оставите празна поља База података, Корисник и Лозинка. Више информација на <a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>';
|
||||
$string['previous'] = 'Претходни';
|
||||
$string['qtyperqpwillberemoved'] = 'Током надоградње, RQP типови питања биће уклоњени. Нећете користити овај тип питања, тако да не очекујте проблеме у вези с тим.';
|
||||
$string['qtyperqpwillberemovedanyway'] = 'Током надоградње биће уклоњен RQP тип питања. Како имате нека RQP питања у својој бази, препоручује се да поново инсталирате додатак са http://moodle.org/mod/data/view.php?d=13&rid=797 пре наставка надоградње да би она могла и даље несметано да се користе.';
|
||||
@@ -272,6 +274,6 @@ $string['wrongsourcebase'] = 'Погрешан изворни URL базе.';
|
||||
$string['wrongzipfilename'] = 'Погрешан назив архиве.';
|
||||
$string['wwwroot'] = 'Веб адреса';
|
||||
$string['wwwrooterror'] = 'Наведена \'веб адреса\' се чини невалидном - ова Moodle инсталација изгледа није на њој. Вредност наведена испод је ресетована.';
|
||||
$string['xmlrpcrecommended'] = 'Инсталирање опционог xmlrpc проширења је корисно за функционалност Moodle умрежавање.';
|
||||
$string['xmlrpcrecommended'] = 'Инсталирање опционог xmlrpc проширења је корисно за функционалност Moodle умрежавање.'; // ORPHANED
|
||||
$string['ziprequired'] = 'PHP екстензија Zip сада је обавезна за Moodle, бинарне info-ZIP датотеке и библиотека PclZip више се не користе.';
|
||||
?>
|
||||
|
||||
@@ -39,7 +39,7 @@ $string['continue'] = 'Nastavak';
|
||||
$string['ctyperecommended'] = 'Instaliranje opcione PHP ekstenzije ctype se strogo preporučuje da bi se unapredilo funkcionisanje sajta, pogotovo ako Vaš sajt podržava ne-latinične jezike.';
|
||||
$string['ctyperequired'] = 'PHP ekstenzije ctype je sada obavezna za Moodle, da bi se unapredilo funkcionisanje sajta i da bi se nudila višejezična kompatibilnost.';
|
||||
$string['curlrecommended'] = 'Instaliranje opcione Curl biblioteke je vrlo preporučljivo, jer je ona neophodna za uspešno korišćenje funkcija za umrežavanje.';
|
||||
$string['curlrequired'] = 'PHP ekstenziju cURL sada je obavezna za Moodle da bi se komuniciralo sa Moodle repozitorijumima';
|
||||
$string['curlrequired'] = 'PHP ekstenziju cURL sada je obavezna za Moodle da bi se komuniciralo sa Moodle repozitorijumima'; // ORPHANED
|
||||
$string['customcheck'] = 'Druge provere';
|
||||
$string['database'] = 'Baza podataka';
|
||||
$string['databasecreationsettingshead'] = 'Sada je potrebno konfigurisati podešavanja baze podataka u kojoj će se čuvati najveći deo Moodle podataka. Ta baza podataka će biti kreirana automatski prilikom instalacije, sa podešavanjima specificiranim ispod.';
|
||||
@@ -226,12 +226,14 @@ $string['password'] = 'Lozinka';
|
||||
$string['pgsqlextensionisnotpresentinphp'] = 'PHP nije bio propisno konfigurisan sa PGSQL ekstenzijom tako da može komunicirati sa PostgreSQLom. Molimo Vas da proverite svoju php.ini datoteku ili opet kompajlirate PHP.';
|
||||
$string['php50restricted'] = 'PHP 5.0.x ima više poznatih problema, molimo unapredite PHP na verzije 5.1.x ili instalirajte verziju 4.3.x odnosno 4.4.x';
|
||||
$string['phpversion'] = 'PHP verzija';
|
||||
$string['phpversionerror'] = 'PHP verzija mora biti bar 4.3.0 ili 5.1.0 (5.0.x funkcioniše uz brojne uočene probleme)'; // ORPHANED
|
||||
$string['phpversionerror'] = 'PHP verzija mora biti bar 4.3.0 ili 5.1.0 (5.0.x funkcioniše uz brojne uočene probleme)';
|
||||
$string['phpversionhelp'] = '<p>Moodle zahteva najmanje PHP verziju 4.3.0 ili 5.1.0 (5.0.x funkcioniše uz brojne uočene probleme).</p>
|
||||
<p>Trenutno imate verziju $a</p>
|
||||
<p>Morate nadograditi PHP ili premestiti Moodle instalaciju na web server sa novijom verzijom PHP-a!</br>
|
||||
(U slučaju verzije 5.0.x bilo bi dobro da je snizite na 4.4.x verziju)</p>';
|
||||
$string['postgres7'] = 'PostgreSQL (postgres7)';
|
||||
$string['postgresqlwarning'] = '<strong>Napomena:</strong>Ako naiđete na neke probleme sa konekcijom, možete pokušati da postavite polje Host Server kao host=\'postgresql_host\' port=\'5432\' dbname=\'postgresql_database_name\' user=\'postgresql_user\' password=\'postgresql_user_password\'
|
||||
i da ostavite prazna polja Baza podataka, Korisnik i Lozinka. Više informacija na <a href=\"http://docs.moodle.org/en/Installing_Postgres_for_PHP\">Moodle Docs</a>';
|
||||
$string['previous'] = 'Prethodni';
|
||||
$string['qtyperqpwillberemoved'] = 'Tokom nadogradnje, RQP tipovi pitanja biće uklonjeni. Nećete koristiti ovaj tip pitanja, tako da ne očekujte probleme u vezi s tim.';
|
||||
$string['qtyperqpwillberemovedanyway'] = 'Tokom nadogradnje biće uklonjen RQP tip pitanja. Kako imate neka RQP pitanja u svojoj bazi, preporučuje se da ponovo instalirate dodatak sa http://moodle.org/mod/data/view.php?d=13&rid=797 pre nastavka nadogradnje da bi ona mogla i dalje nesmetano da se koriste.';
|
||||
@@ -272,6 +274,6 @@ $string['wrongsourcebase'] = 'Pogrešan izvorni URL baze.';
|
||||
$string['wrongzipfilename'] = 'Pogrešan naziv arhive.';
|
||||
$string['wwwroot'] = 'Web adresa';
|
||||
$string['wwwrooterror'] = 'Navedena \'Web adresa\' se čini nevalidnom - ova Moodle instalacija izgleda nije na njoj. Vrednost navedena ispod je resetovana.';
|
||||
$string['xmlrpcrecommended'] = 'Instaliranje opcionog xmlrpc proširenja je korisno za funkcionalnost Moodle umrežavanje.';
|
||||
$string['xmlrpcrecommended'] = 'Instaliranje opcionog xmlrpc proširenja je korisno za funkcionalnost Moodle umrežavanje.'; // ORPHANED
|
||||
$string['ziprequired'] = 'PHP ekstenzija Zip sada je obavezna za Moodle, binarne info-ZIP datoteke i biblioteka PclZip više se ne koriste.';
|
||||
?>
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ To add more languages to Moodle, you can either:
|
||||
|
||||
For more information, see the Moodle Documentation:
|
||||
|
||||
http://docs.moodle.org/en/Translation
|
||||
http://docs.moodle.org/19/en/Translation
|
||||
|
||||
|
||||
Cheers,
|
||||
|
||||
+15
-6
@@ -114,7 +114,7 @@ $string['configdisablecourseajax'] = 'Do not use AJAX when editing main course p
|
||||
$string['configenablecalendarexport'] = 'Enable exporting or subscribing to calendars.';
|
||||
$string['configenablecourserequests'] = 'This will allow any user to request a course be created.';
|
||||
$string['configenableglobalsearch'] = 'This setting enables global text searching in resources and activities, it is not compatible with PHP 4.';
|
||||
$string['configenablegroupings'] = 'This setting enables groupings of groups.';
|
||||
$string['configenablegroupings'] = 'This setting enables the creation of groupings and the \'Available for group members only\' option. Groupings are a standard feature in Moodle 2.0 onwards whereas \'Available for group members only\' remains an experimental feature.';
|
||||
$string['configenablehtmlpurifier'] = 'Use HTML Purifier instead of KSES for cleaning of untrusted text. HTML Purifier is actively developed and is believed to be more secure, but it is more resource intensive. Expect minor visual differences in the resulting html code. Please note that embed and object tags can not be enabled, MathML tags and old lang tags are not supported. ';
|
||||
$string['configenablerssfeeds'] = 'This switch will enable RSS feeds from across the site. To actually see any change you will need to enable RSS feeds in the individual modules too - go to the Modules settings under Admin Configuration.';
|
||||
$string['configenablerssfeedsdisabled'] = 'It is not available because RSS feeds are disabled in all the Site. To enable them, go to the Variables settings under Admin Configuration.';
|
||||
@@ -209,8 +209,8 @@ $string['configcronremotepassword'] = 'This means that the cron.php script canno
|
||||
</pre>If this is left empty, no password is required.';
|
||||
$string['configrcache'] = 'Use the cache to store database records. Remember to set \'cachetype\' as well!';
|
||||
$string['configrcachettl'] = 'Time-to-live for cached records, in seconds. Use a short (<15) value here.';
|
||||
$string['configrecaptchaprivatekey'] = 'String of characters used to communicate between your Moodle server and the recaptcha.net server. Obtain one for this site by visiting http://recaptcha.net';
|
||||
$string['configrecaptchapublickey'] = 'String of characters used to display the reCAPTCHA element in the signup form. Generated by http://recaptcha.net';
|
||||
$string['configrecaptchaprivatekey'] = 'String of characters used to communicate between your Moodle server and the recaptcha server. Obtain one for this site by visiting http://www.google.com/recaptcha';
|
||||
$string['configrecaptchapublickey'] = 'String of characters used to display the reCAPTCHA element in the signup form. Generated by http://www.google.com/recaptcha';
|
||||
$string['configregenloginsession'] = 'Regeneration of the session id during each login request is highly recommended for security reasons. This setting might not be compatible with some authentication plugins.';
|
||||
$string['configrequestedstudentname'] = 'Word for student used in requested courses';
|
||||
$string['configrequestedstudentsname'] = 'Word for students used in requested courses';
|
||||
@@ -358,7 +358,7 @@ $string['enableajax'] = 'Enable AJAX';
|
||||
$string['enablecalendarexport'] = 'Enable calendar export';
|
||||
$string['enablecourserequests'] = 'Enable course requests';
|
||||
$string['enableglobalsearch'] = 'Enable global search';
|
||||
$string['enablegroupings'] = 'Enable groupings';
|
||||
$string['enablegroupings'] = 'Enable groupings and \'Available for group members only\'';
|
||||
$string['enablehtmlpurifier'] = 'Enable HTML Purifier';
|
||||
$string['enablerecordcache'] = 'Enable Record Cache';
|
||||
$string['enablerssfeeds'] = 'Enable RSS feeds';
|
||||
@@ -396,6 +396,8 @@ $string['filtersettings'] = 'Manage filters';
|
||||
$string['filtersettingsgeneral'] = 'General filter settings';
|
||||
$string['filteruploadedfiles'] = 'Filter uploaded files';
|
||||
$string['forcelogin'] = 'Force users to login';
|
||||
$string['forceloginforprofileimage'] = 'Force users to login to view user pictures';
|
||||
$string['forceloginforprofileimage_help'] = 'If enabled, users must login in order to view user profile pictures and the default user picture will be used in all notification emails.';
|
||||
$string['forceloginforprofiles'] = 'Force users to login for profiles';
|
||||
$string['forcetimezone'] = 'Force default timezone';
|
||||
$string['framename'] = 'Frame name';
|
||||
@@ -450,6 +452,7 @@ $string['incompatibleblocks'] = 'Incompatible blocks';
|
||||
$string['install'] = 'Install selected language pack';
|
||||
$string['installedlangs'] = 'Installed language packs';
|
||||
$string['intcachemax'] = 'Int. cache max';
|
||||
$string['intlrecommended'] = 'Intl extension is used to improve internationalization support, such as locale aware sorting.';
|
||||
$string['invalidsection'] = 'Invalid section.';
|
||||
$string['invaliduserchangeme'] = 'Username \"changeme\" is reserved -- you cannot create an account with it.';
|
||||
$string['iplookup'] = 'IP address lookup';
|
||||
@@ -492,6 +495,8 @@ $string['location'] = 'Location';
|
||||
$string['locationsettings'] = 'Location settings';
|
||||
$string['log'] = 'Logs';
|
||||
$string['loginhttps'] = 'Use HTTPS for logins';
|
||||
$string['loginpasswordautocomplete'] = 'Prevent password autocompletion on login form.';
|
||||
$string['loginpasswordautocomplete_help'] = 'Having this off will let users save their account password in their browser. Switching this setting on will result in your site no longer following XHTML strict validation rules.';
|
||||
$string['loglifetime'] = 'Keep logs for';
|
||||
$string['longtimenosee'] = 'Unsubscribe users from courses after';
|
||||
$string['longtimewarning'] = '<b>Please note that this process can take a long time.</b>';
|
||||
@@ -509,6 +514,8 @@ $string['maintenancemode'] = 'In Maintenance Mode';
|
||||
$string['mediapluginmov'] = 'Enable .mov filter';
|
||||
$string['mediapluginmp3'] = 'Enable .mp3 filter';
|
||||
$string['mediapluginmpg'] = 'Enable .mpg filter';
|
||||
$string['mediapluginogg'] = 'Enable .ogg filter';
|
||||
$string['mediapluginogv'] = 'Enable .ogv filter';
|
||||
$string['mediapluginram'] = 'Enable .ram filter';
|
||||
$string['mediapluginrm'] = 'Enable .rm filter';
|
||||
$string['mediapluginrpm'] = 'Enable .rpm filter';
|
||||
@@ -585,6 +592,7 @@ $string['performance'] = 'Performance';
|
||||
$string['pgcluster'] = 'PostgreSQL Cluster';
|
||||
$string['pgclusterdescription'] = 'PostgreSQL version/cluster parameter for command line operations. If you only have one postgresql on your system or you are not sure what this is, leave this blank.';
|
||||
$string['php50restricted'] = 'PHP 5.0.x has a number of known problems, please upgrade to 5.1.x or downgrade to 4.3.x or 4.4.x';
|
||||
$string['php533warning'] = 'PHP 5.3.3 and upwards is recommended';
|
||||
$string['phpfloatproblem'] = 'Detected unexpected problem in handling of PHP float numbers - $a';
|
||||
$string['pleaseregister'] = 'Please register your site to remove this button';
|
||||
$string['pleaserefreshregistration'] = 'Your site has been registered with moodle.org, please consider updating the registration if significant changes happened since your last update, on $a';
|
||||
@@ -711,6 +719,7 @@ $string['smtppass'] = 'SMTP password';
|
||||
$string['smtpuser'] = 'SMTP username';
|
||||
$string['soaprecommended'] = 'Installing the optional soap extension is useful for web services and some contrib modules.';
|
||||
$string['spamcleaner'] = 'Spam cleaner';
|
||||
$string['splrequired'] = 'The SPL PHP extension is now required by Moodle.';
|
||||
$string['stats'] = 'Statistics';
|
||||
$string['statscatdepth'] = 'Maximum parent categories';
|
||||
$string['statsfirstrun'] = 'Maximum processing interval';
|
||||
@@ -765,7 +774,7 @@ $string['uploadpicture_userupdated'] = 'Picture updated for user $a.';
|
||||
$string['uploadpicture_cannotsave'] = 'Cannot save picture for user $a. Check original picture file.';
|
||||
$string['updatetimezones'] = 'Update timezones';
|
||||
$string['upgrade197notice'] = '<p>Moodle 1.9.7 contains a number of security fixes to user passwords and backups to protect the user data on your site. As a result some of your settings and permissions relating to backups may have changed.<br />
|
||||
See the <a href=\"http://docs.moodle.org/en/Moodle_1.9.7_release_notes\" target=\"_blank\">Moodle 1.9.7 release notes</a> for full details.</p>';
|
||||
See the <a href=\"http://docs.moodle.org/dev/Moodle_1.9.7_release_notes\" target=\"_blank\">Moodle 1.9.7 release notes</a> for full details.</p>';
|
||||
$string['upgrade197noticesubject'] = 'Moodle 1.9.7 upgrade security notices';
|
||||
$string['upgrade197salt'] = 'To reduce the risk of password theft, you are strongly recommended to set a password salt.<br />See the <a href=\"$a\" target=\"_blank\">password salting documentation</a> for details.';
|
||||
$string['upgradeforumread'] = 'A new feature has been added in Moodle 1.5 to track read/unread forum posts.<br />To use this functionality you need to <a href=\"$a\">update your tables</a>.';
|
||||
@@ -827,7 +836,7 @@ $string['verifychangedemail'] = 'Restrict domains when changing email';
|
||||
$string['warningcurrentsetting'] = 'Invalid current value: $a';
|
||||
$string['webproxy'] = 'Web proxy';
|
||||
$string['webproxyinfo'] = 'Fill in following options if your Moodle server can not access internet directly. Internet access is required for download of environment data, language packs, RSS feeds, timezones, etc.<br /><em>PHP cURL extension is highly recommended.</em>';
|
||||
$string['xmlrpcrecommended'] = 'Installing the optional xmlrpc extension is useful for Moodle Networking functionality.';
|
||||
$string['xmlrpcrecommended'] = 'The xmlrpc extension is needed for hub communication, and useful for web services and Moodle networking';
|
||||
$string['xmlstrictheaders'] = 'XML strict headers';
|
||||
$string['ziprequired'] = 'The Zip PHP extension is now required by Moodle, info-ZIP binaries or PclZip library are not used anymore.';
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@ $string['uploadfiletoobig'] = 'Sorry, but that file is too big (limit is $a byte
|
||||
$string['uploadnofilefound'] = 'No file was found - are you sure you selected one to upload?';
|
||||
$string['uploadnotregistered'] = '\'$a\' was uploaded OK but submission did not register!';
|
||||
$string['uploadsuccess'] = 'Uploaded \'$a\' successfully';
|
||||
$string['usernosubmit'] = 'Sorry, you are not allowed to submit an assignment.';
|
||||
$string['viewfeedback'] = 'View assignment grades and feedback';
|
||||
$string['viewsubmissions'] = 'View $a submitted assignments';
|
||||
$string['yoursubmission'] = 'Your submission';
|
||||
|
||||
+12
-7
@@ -36,9 +36,14 @@ $string['auth_nologintitle'] = 'No login';
|
||||
$string['auth_cas_proxycas_key'] = "Proxy mode";
|
||||
$string['auth_cas_logoutcas_key'] = "Logout CAS";
|
||||
$string['auth_cas_multiauth_key'] = "Multi-authentication";
|
||||
$string['auth_cas_proxycas'] = "Turn this to 'yes'' if you use CASin proxy-mode";
|
||||
$string['auth_cas_logoutcas'] = "Turn this to 'yes'' if tou want to logout from CAS when you deconnect from Moodle";
|
||||
$string['auth_cas_multiauth'] = "Turn this to 'yes'' if you want to have multi-authentication (CAS + other authentication)";
|
||||
$string['auth_cas_certificate_check_key'] = "Server validation";
|
||||
$string['auth_cas_certificate_path_key'] = "Certificate path";
|
||||
$string['auth_cas_proxycas'] = "Turn this to ''yes'' if you use CASin proxy-mode";
|
||||
$string['auth_cas_logoutcas'] = "Turn this to ''yes'' if tou want to logout from CAS when you deconnect from Moodle";
|
||||
$string['auth_cas_multiauth'] = "Turn this to ''yes'' if you want to have multi-authentication (CAS + other authentication)";
|
||||
$string['auth_cas_certificate_check'] = "Turn this to ''yes'' if you want to validate the server certificate";
|
||||
$string['auth_cas_certificate_path'] = "Path of the CA chain file (PEM Format) to validate the server certificate";
|
||||
$string['auth_cas_certificate_path_empty'] = "If you turn on Server validation, you need to specify a certificate path";
|
||||
$string['accesCAS'] = "CAS users";
|
||||
$string['accesNOCAS'] = "other users";
|
||||
$string['CASform'] = "Authentication choice";
|
||||
@@ -120,7 +125,7 @@ $string['auth_emailnowexists'] = 'The email address you tried to assign to your
|
||||
$string['auth_emailtitle'] = 'Email-based self-registration';
|
||||
$string['auth_emailnoinsert'] = 'Could not add your record to the database!';
|
||||
$string['auth_emailnoemail'] = 'Tried to send you an email but failed!';
|
||||
$string['auth_emailrecaptcha'] = 'Adds a visual/audio confirmation form element to the signup page for email self-registering users. This protects your site against spammers and contributes to a worthwhile cause. See http://recaptcha.net/learnmore.html for more details. <br /><em>PHP cURL extension is required.</em>';
|
||||
$string['auth_emailrecaptcha'] = 'Adds a visual/audio confirmation form element to the signup page for email self-registering users. This protects your site against spammers and contributes to a worthwhile cause. See http://www.google.com/recaptcha/learnmore for more details. <br /><em>PHP cURL extension is required.</em>';
|
||||
$string['auth_emailrecaptcha_key'] = 'Enable reCAPTCHA element';
|
||||
$string['auth_emailsettings'] = 'Settings';
|
||||
$string['auth_emailupdatemessage'] = 'Dear $a->fullname,
|
||||
@@ -187,7 +192,7 @@ $string['auth_ldap_graceattr_desc'] = 'Optional: Overrides gracelogin attribute
|
||||
$string['auth_ldap_gracelogins_desc'] = 'Enable LDAP gracelogin support. After password has expired user can login until gracelogin count is 0. Enabling this setting displays grace login message if password is expired.';
|
||||
$string['auth_ldap_groupecreators'] = 'List of groups or contexts whose members are allowed to create groups. Separate multiple groups with \';\'. Usually something like \'cn=teachers,ou=staff,o=myorg\'';
|
||||
$string['auth_ldap_groupecreators_key'] = 'Group creators';
|
||||
$string['auth_ldap_host_url'] = 'Specify LDAP host in URL-form like \'ldap://ldap.myorg.com/\' or \'ldaps://ldap.myorg.com/\' Separate multipleservers with \';\' to get failover support.';
|
||||
$string['auth_ldap_host_url'] = 'Specify LDAP host in URL-form like \'ldap://ldap.myorg.com/\' or \'ldaps://ldap.myorg.com/\' Separate multipleservers with \';\' to get failover support.<br/><br/>NOTE: If you do not set this value Moodle will not try to get/update user information from LDAP, but the locking of the fields you specify below will be respected.';
|
||||
$string['auth_ldap_ldap_encoding'] = 'Specify encoding used by LDAP server. Most probably utf-8, MS AD v2 uses default platform encoding such as cp1252, cp1250, etc.';
|
||||
$string['auth_ldap_login_settings'] = 'Login settings';
|
||||
$string['auth_ldap_memberattribute'] = 'Optional: Overrides user member attribute, when users belongs to a group. Usually \'member\'';
|
||||
@@ -251,11 +256,11 @@ $string['auth_ldaptitle'] = 'LDAP server';
|
||||
$string['auth_ldapnotinstalled'] = 'Cannot use LDAP authentication. The PHP LDAP module is not installed.';
|
||||
$string['auth_ntlmsso'] = 'NTLM SSO';
|
||||
$string['auth_ntlmsso_enabled_key'] = 'Enable';
|
||||
$string['auth_ntlmsso_enabled'] = 'Set to yes to attempt Single Sign On with the NTLM domain. <strong>Note:</strong> this requires additional setup on the webserver to work, see <a href=\"http://docs.moodle.org/en/NTLM_authentication\">http://docs.moodle.org/en/NTLM_authentication</a>';
|
||||
$string['auth_ntlmsso_enabled'] = 'Set to yes to attempt Single Sign On with the NTLM domain. <strong>Note:</strong> this requires additional setup on the webserver to work, see <a href=\"http://docs.moodle.org/19/en/NTLM_authentication\">http://docs.moodle.org/19/en/NTLM_authentication</a>';
|
||||
$string['auth_ntlmsso_ie_fastpath'] = 'Set to yes to enable the NTLM SSO fast path (bypasses certain steps and only works if the client\'s browser is MS Internet Explorer).';
|
||||
$string['auth_ntlmsso_ie_fastpath_key'] = 'MS IE fast path?';
|
||||
$string['auth_ntlmsso_subnet_key'] = 'Subnet';
|
||||
$string['auth_ntlmsso_subnet'] = 'If set, it will only attempt SSO with clients in this subnet. Format: xxx.xxx.xxx.xxx/bitmask';
|
||||
$string['auth_ntlmsso_subnet'] = 'If set, it will only attempt SSO with clients in this subnet. Format: xxx.xxx.xxx.xxx/bitmask. Separate multiple subnets with \',\' (comma).';
|
||||
$string['ntlmsso_attempting'] = 'Attempting Single Sign On via NTLM...';
|
||||
$string['ntlmsso_failed'] = 'Auto-login failed, try the normal login page...';
|
||||
$string['ntlmsso_isdisabled'] = 'NTLM SSO is disabled.';
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user