Technikai fórum
csoportok feltöltése
Néhány kurzus alá sok csoportot kell felraknom 1.5.3+ ban. A helpben találtam leírást -csoportok feltöltése néven - hogy milyen legyen a feltöltendő csv, csak az nem derül ki honnan tudom indítani az uploadot?
A felhasználók tömegesnél az adminisztrációból megy és itt? Tudja valaki az okosat?
Nos, első lépésben ellenőrízni kell, hogy a hitelesítés mi alapján történik. Ehhez adminisztrátorként be kell menni az Adminisztrációs felületre és ott a Felhasználó szakasz alatt a Hitelesítést kell választani. A helyes beállítás a "Csak kézzel létrehozott felhasználói azonosítól". Ha nem ez lenne beállítva, a művelet (feltöltés) erejéig át kell állítani.
A további eljárásnak a lényege az lesz, hogy úgy teszünk, mintha új felhasználókat rendelnénk (töltenénk fel) az oldalhoz, akár így van ez, akár nem.
Ha a csoportba való feltöltés során valóban feltöltünk új felhasználókat is, a művelet előtt be kell állítani, hogy mely mezőket szeretnénk zárolni a felhasználói rekorban. Például ne változtathassa meg a nevét, mert általában név szerint keresünk (Én egyszer rég kerestem X Y-ont, de sehogysem akaródzott megtalálni, majd pár nap múlva megláttam a képét, s kiderült, hogy Tapsi Hapsi-nak nevezte át magát. ) Aztán célszerű – a későbbiekben a beiratkozások miatt kitölteni az Azonosítószám nevű mezőt (ez szintén egyedi azonosító) – zárolni, nehogy megváltoztassa, mert az sok bajt okozhat.
Ha belőttem a zárolásokat (Figyelem: ezt hitelesítési tipusonként külön-külön kell elfátszani!), jöhet a CSV összeállítása. A következő mezők kellenek:
- username;
- password;
- lasztname;
- firstname;
- email;
- course1, course2, .. course5;
- group1, group2 .. group5.
Ahol a course1-től 5-ig alatt azoknak a kurzusoknak a rövid nevét adjuk meg, amikre be szeretnénk iratni a tanulókat. A group1-től 5-ig alatt azoknak a csoportoknak a neve szerepeljen – !kurzusonként –, amelyekbe be akarom sorolni a tanulókat. Azért csak öt, mert csak öt ismétlődésre van megírva a kód. Jobban mondva a tömb ami tárolja az infókat csak öt kurzust képes kezelni.
No, de azért szeretjük a szabad forráskódot mert máris módosíthatjuk.
A bátrak a következő állományt módosítsák:
http://host/moodle/admin/uploaduser.php
Nekem már csak 1,6-os forrás van kéznél, abban a 109. sorban kezdődik a móka (a kuezusok felsorolása.) Nos, kinek mennyi kurzusra van szüksége, annyival toldja meg a sort.
Fihyelem!: A kurzusból és csoprtból ugyanannyinak kell lenni. (már nem emlékszem, hogy 1.5.x-ben létezik-e a type mező, de ha igen, azt is szinkronba kell hozni)
Íme a forrás:
// make arrays of valid fields for error checking
$required = array("username" => 1,
"password" => !$createpassword,
"firstname" => 1,
"lastname" => 1,
"email" => 1);
$optionalDefaults = array("institution" => 1,
"department" => 1,
"city" => 1,
"country" => 1,
"lang" => 1,
"auth" => 1,
"timezone" => 1);
$optional = array("idnumber" => 1,
"icq" => 1,
"phone1" => 1,
"phone2" => 1,
"address" => 1,
"url" => 1,
"description" => 1,
"mailformat" => 1,
"maildisplay" => 1,
"htmleditor" => 1,
"autosubscribe" => 1,
"idnumber" => 1,
"icq" => 1,
"course1" => 1,
"course2" => 1,
"course3" => 1,
"course4" => 1,
"course5" => 1,
"group1" => 1,
"group2" => 1,
"group3" => 1,
"group4" => 1,
"group5" => 1,
"type1" => 1,
"type2" => 1,
"type3" => 1,
"type4" => 1,
"type5" => 1,
"password" => $createpassword,
"oldusername" => $allowrenames);
Aztán ugyanezt el kell játszani a beirató eljárás megfelelő soraival is (kb. a 196. sor tájékán)
Ismét egy forrás:
$user->confirmed = 1;
$user->timemodified = time();
$linenum++;
$username = $user->username;
$addcourse[0] = $user->course1;
$addcourse[1] = $user->course2;
$addcourse[2] = $user->course3;
$addcourse[3] = $user->course4;
$addcourse[4] = $user->course5;
$addgroup[0] = $user->group1;
$addgroup[1] = $user->group2;
$addgroup[2] = $user->group3;
$addgroup[3] = $user->group4;
$addgroup[4] = $user->group5;
$addtype[0] = $user->type1;
$addtype[1] = $user->type2;
$addtype[2] = $user->type3;
$addtype[3] = $user->type4;
$addtype[4] = $user->type5;
No és a következő jellegű sorokban is javítani kelll az 5-öt...
for ($i=0; $i<5; $i++) {
Vissza az eredeti témához! Kész a feltöltendő CSV állomány. Létrehoztam minden kurzust, benne minden csoportot. Jöjjön a feltöltés!
A nyitó oldalon az Adminisztrációs blokkban válasszuk a Felehasználó menüpontot, majd a Felhasználók feltöltése menüpontot. Ott az űrlap segítségével feltöltjül a CSV állományt.
Ha a feltöltendő felhasználók már benn vannak a rendszerben, mindenkire kapunk egy hibaüzenetet, hogy már létezik, nem hajlandó létrehozmi, majd kurzusonként egy nyugtázást – hogy az xy kurzusra beíratta. Ha sok embert töltünk így fel érdemes a nyugtázó oldalról egy másolatot (mentést) Ikészíteni, hogy utólag is át lehessen nézni a listát, nem tartalmaz-e olyan hibaüzenetet, amely elkerülte a figyelmünket.
Azt hiszem kész....
Amit írtál az a következő lépés lesz, ha felraktam a csoportokat. A kurzusban még nincs létrehozva az a közel 200 csoport ami kell ott. De nem szeretném egyenként létrehozni, hanem feltölteni csv-ből.
A help ír ilyet: (Upload Groups)
Ennek a segítségével csoportokat tölthet fel a Moodle-ba.
Íme egy példa egy megfelelő importálási állományra:
groupname,idnumber,lang,description,picture
group1, Phil101, en, this group requires extra attention!, 0
group2, Math243, , ,
Ez mind rendben. Megcsináltam ennek megfelelően a csv-t. De hogyan töltöm fel?
Sziasztok!
Az lenne a kérdésem, hogy lehet-e globális csoportokat létrehozni és ahhoz embereket rendelni, amit a moodle felületen mindenhonnan elérek.
Az szeretném, hogy csinálok minden osztálynak egy csopotot, és ha egy osztályt kell beíratni egy kurzusra, akkor csak ezt a csoportot kellene hozzáadni a szerepek hozzárendelésénél, nem a sok ember közül válogatni.
kösz
A problémára két megoldást javaslok.
Az első módszer a kézi beiratás egyszerű állomány segítségével. A súgó jól leírja, hogy milyen mezőket kell tartalmazzon a fájl. Minden osztályra kell készíteni egy ilyet kurzusonként és feltölteni a szerverre.
Ehhez hasonló az, ha külső adatbázist használsz a beiratásokra. Egy táblát kell létrehozni és az beiratkozási beállításoknál megadni a mezőhozzárendeléseket.
A másik megoldás, ha metakurzusokat használsz. Erről a 2007-es MoodleMoot-on tartottam előadást, érdemes megnézni annak az anyagát. A lényeg, hogy készítesz egy kurzust (nevezzük osztályfőnöki kurzusnak), ahova beiratod a diákokat. Ez után minden tantárgyi kurzust metakurzussá kell alakítani és megadni neki a megfelelő osztály kurzusát alkurzusként.
A globális csoportokkal nem tudod megoldani ezt a problémát. Azok csak arra valók, hogy bizonyos jogokat meghatározott felhasználókhoz rendelj. A kurzustagság nem ilyen.
Jó példa a globális csoportok használatára, ha létrehozol egy Shared Question Creator csoportot olyan felhasználóknak, akik a "feladatbank" (globális kérdés adatbázis) kérdéseit szerkeszthetik és egy Shared Question User csoportot azoknak, akik használhatják ezeket a kérdéseket. Így bármely tantárgyi kurzus esetében ezek a felhasználók el tudják érni a központi kérdéseket és azokból irathatnak tesztet.
Jó munkát!
Szia!
Az első megoldáson már én is gondolkoztam, azt fogom alkalmazni. A másodikat pedig - ha időm engedi - akkor tesztelem :) (metakurzust még nem használtam soha). Köszönöm a tippeket!
Üdv
Csak a teljesség kedvéért...
Közben eszembe jutott még egy módja az első megoldásnak. Az Felhasználók -> Fiókok -> Felhasználók feltöltése menüpontban nem csak felhasználókat tudsz feltölteni, hanem a meglévő felhasználók adatait is módosítani. Ilyen lehet például a kurzustagság is. Tegnap kipróbáltam, elég, ha csak a következő néhány adatot adod meg (az első sor a mezőket írja le):
username,course1
tesztuser,kon08
Ezzel a módszerrel akár a kurzuson belüli csoportbeosztásokat is lehet automatizálni, ha a group1 mezőt hozzátesszük.
Jó munkát!