Fejlesztés:Kezelő oldal kérdéstípusokhoz

Innen: MoodleDocs

Sablon:Moodle 2.0

A kérdéstípusokhoz kezelő oldalra van szükségünk, hasonlóan az admin/modules.php, admin/blocks.php vagy admin/filter.php fájlokhoz. Ez az MDL-6751.

Követelmények

Kiderítendő, mely kérdéstípusok és azoknak melyik verziója van telepítve.

Kiderítendő, az egyes típusokból hány darab létezik, ezekről és a hozzájuk kapcsolódó környezetről lista készítendő.

A rendszergazdának lehetőséget kell biztosítani annak meghatározására, hogy mely kérdéstípusok hozhatók létre. (Szükség lehet valamely telepített kérdéstípus meghagyására, hogy a régi teszteredményeket ellenőrizni lehessen, de előfordulhat, hogy a rendszergazda nem kíván az adott típusból új kérdéseket létrehozni, ezért ez kiiktatható.)

Ha az adatbázisban nincs adott típusú kérdés, lehetővé kell tenni a törlést.

Minden kérdéstípushoz legyen külön beállítási oldal.

Egyes kérdéstípusok megkövetelhetik egyéb típusok telepítését (pl. a számításos függhet a számjegyesen, amely viszont függhet a kiegészítendőtől). Ezen függőségek látsszanak, más típusoktól függő kérdéstípusok pedig ne legyenek törölhetők.

(Technikai) a qtype_xxx_version beállítási változók áthelyezendők a config_plugins táblázatba.

Tervezés

A fő "Kérdéstípusok kezelése" oldal a többi XXX kezelése oldalhoz hasonlóan táblázatot fog használni. A táblázatnak "Kérdés típusa", "Kérdések száma", "Verzió", "Igényel", "Elérhető?", "Törlés" és "Beállítások" oszlopai lesznek.

A "Kérdések száma" oszlopban ugrópont mutat arra a jelentésre, amely felsorolja az összes olyan kérdéskategóriát, amelyek ezt a kérdéstípust tartalmazzák. Ennek formája egy "Környezet", "Kérdéskategória", "Kérdések" és "Rejtett kérdések" oszlopokból álló táblázat. A környezet az adott környezetre mutató ugrópont lesz, ha a felhasználó ahhoz hozzáférhet. A kérdéskategória az adott kategóriához tartozó kérdésbank képernyőjére mutató ugrópont lesz.

Adott típusú kérdések létrehozásának szabályozásához a moodle/question:add képességet lecseréljük egy qtype/shortanswer:add képességkészlettel. Az "Elérhető?" oszlopban a rendszerkörnyezetben az adott képességgel rendelkező szerepek felsorolása szerepel (vagy a "Nincs szerep"). Az egyes szerepnevek a megfelelő szerepszerkesztő oldalra mutató ugrópontok lesznek, így az engedély könnyen módosítható lesz. Emellett ha a képességet valamely környezet felülírja, akkor az oszlopban az értékhez hozzákapcsolódik a "kivételekkel". Az adott szavak egy új jelentésre, az MDL-16343 sz. "Képességek ellenőrzése" jelentésre mutató ugrópontok lesznek. (Ezek az ugrópontok csak a megfelelő képességekkel felruházottal számára jelennek meg mint ugrópontok.)

Az új képességek miatt módosul a kérdésbank kódja. (Adott típusú kérdések létrehozásának tényleges megakadályozásához a rendszergazdáknak a "Tilt" használatával kell kizárni azokat a tanárokat, akik szerepeket írhatnak fölül. Azért említem meg ezt itt, mert ezt dokumentálni kell.)

A törlő ugrópont a modulok és blokkok törlő ugrópontjához hasonlít, kivéve, hogy csak akkor törölhet kérdéseket, ha nincsenek létrehozva példányok és egyéb kérdéstípusok nem függnek tőlük. A kérdéstípusoknak tájékoztatni kell arról, hogy vannak-e tőlük függő kérdések. Ezt frissítő segédprogramokkal kell ideális esetben ellenőrizni.

Ha egy kérdéstípushoz saját beállítási oldalra van szükség, akkor a segédprogramjainak könyvtárában egy settings.php fájlt kell létrehozni. Ha egy kérdéstípusnak van ilyen beállítási állománya, akkor ahhoz egy "Beállítások" ugrópontot kell létrehozni a "Beállítások" oszlopban. Ezek is szereplnek majd a rendszergazda faszerkezetében - a modulokhoz és blokkokhoz hasonlóan.

A beállítási változókra a fő lib/db/upgrade.php kódban kerül sor. Emiatt módosul az adminlib.php-ben a install/upgrade_plugins kód is.

Lásd még