Fejlesztés:Kezelő oldal kérdéstípusokhoz
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.