Procedural File: lib.groups.php
Source Location: /include/lib/lib.groups.php
Page Details
A groups tömbökön különböző műveletek végző függvények kódjai
Itt azok a függvények találhatóak, amelyek a $groups tömbön végeznek különféle műveleteket.
Functions
array calc_points(
array $groups, array $table_full
)
|
|
Csoportok pontszámainak kiszámítása és sorrendezési
Kiszámítja minden csoport pontszámát, majd a tömböt eszerint sorba is rendezi. A pontszám jelenleg attól függ, hogy csoporttagok hanyadik helyen jelölték meg egymás. A lista elejéhez közelebb eső jelölések kevesebb pontot érnek, de növekvő sorrenbe lesznek rendezve a csoportok a függvény végén, s majd a szobabeosztás is ez alapján fog történni.
Parameters:
array |
$groups: |
Csoporttömb |
array |
$table_full: |
Kívánságmátrix |
API Tags:
Return: | Csoporttömb, pontszám szerint sorbarendezve |
cmp_group_by_points [line 317]
int cmp_group_by_points(
array $a, array $b
)
|
|
Két csoport összehasonlítása pontszám szerint
Az usort() függvényhez szükséges segédfüggvény, amely két csoportot hasonlít össze a pontszámuk szerint.
Parameters:
array |
$a: |
Az első csoport |
array |
$b: |
A második csoport |
API Tags:
Return: | Az usort() által várt 1, -1, vagy 0 |
debug_groups_selftest [line 409]
void debug_groups_selftest(
array $groups, array $table_full
)
|
|
Csoportellenőrzés
A függvény leellenőrzi, hogy tényleg mindenki belevaló-e a csoportba, mindenki bejelölt-e mindenkit a csoportból. Fejlesztői (?) funkció, az csoportképző algoritmus helyességének vizsgálatára.
Parameters:
array |
$groups: |
Az ellenőrizni kívánt csoport |
array |
$table_full: |
Az ellenőrzéshez használt kívánságmátrix |
drop_groupslike [line 507]
array drop_groupslike(
array $from, int $t
)
|
|
Azon csoportok kiszűrése, amelyekben szerepel a megadott felhasználó
A megadott csoportokat tartalmazó tömbből meghagyja azokat, amelyek nem tartalmazzák a $t tömbben lévő egyik felhasználói azonosítót sem. Erre olyankor van szükség, amikor beosztottunk egy hallgatót, illetve egy csoportot valamelyik szobába, de mivel egy hallgató több csoportban is szerepelhet, ezért a többi olyan csoportot, amiben szerepel meg kell szüntetni, hiszen egy embert csak egy szobába lehet beosztani.
Parameters:
array |
$from: |
A kezdeti csoportlista |
int |
$t: |
A törlendő hallgatói azonosító |
API Tags:
Return: | A megszűrt csoportlista |
void groups_filter(
array $g, int $space
)
|
|
Csoportlista szűrése létszám alapján
Kiszűri egy csoportlistából a megadott létszámú csoportokat.
Parameters:
array |
$g: |
A szűrendő csoport |
int |
$space: |
A keresett létszám |
void group_to_room(
array $group, array $rd
)
|
|
Csoport beosztása egy szobába
Egy csoport minden tagját elhelyezi a megadott szobában.
Parameters:
array |
$group: |
A csoport, tömb a csoportba tartozó hallgatók azonosítóival |
array |
$rd: |
A szoba adatait tartalmazó tömb |
bool is_group(
array $g, array $newg
)
|
|
Csoport keresés csoportlistában
Eldönti, hogy a megadott csoportlistában szerepel-e már valamilyen csoport, benne van-e az adott csoporttömbben a $newg csoport.
Parameters:
array |
$g: |
A keresés alanya, csoporttöb |
array |
$newg: |
A keresett csoport |
API Tags:
Return: | true, ha megtalálható a $g csoportömbben a $newg, egyébként false |
array make_2groups(
array $table, mixed $keys, int $stype, array $key
)
|
|
Kétfős csoportok kialakítása
A megadott adatok alapján létrehoz egy tömböt, amelyek két fős csoportokat tartalmaz. A csoportokat a $table tömb kölcsönös élei alapján rakja össze. Egy csoport többször is szerepelhet a kimeneti tömbben, ezt később még szűrni kell.
Parameters:
array |
$table: |
A kapcsolatokat tartalmazó táblázat |
array |
$key: |
A $table indexeihez tartozó valódi felhasználói azonosítók (users.sid) |
int |
$stype: |
A kapcsolat típusa. Jelenleg két részre van bonta: páros szoba és nem páros szoba |
API Tags:
Return: | A kétfős csoportokat tartalamzó tömb |
void make_ngroups(
array $groups, array $table, array $students, int $spacemax
)
|
|
2-nél nagyobb létszámú csoportok létrehozása
A megkapott, kétfős csoportokat próbálja meg kibővíteni mindig egy-egy új hallgató hozzáadásával. Maximum $spacemax fős csoportokat hoz létre.
Parameters:
array |
$groups: |
Kiindulási csoportok |
array |
$table: |
Kívánságmátrix |
array |
$students: |
A kívánságmátrixban szereplő hallgatói azonosítók indexfolytonosan |
int |
$spacemax: |
Maximum ennyi fős csoportokat kell létrehozni |
array sort_groups(
array $groups
)
|
|
Csoportok sorrendezése
Sorrendezi a csoportokat, folyonos indexeléssel látja el mind a főtömböt, mind az egyes altömbök "users" tömbjét.
Parameters:
array |
$groups: |
Sorrendezni kívánt csoport tömbje |
API Tags:
Return: | Rendezett csoportlista |
strip_not11_groups [line 32]
array strip_not11_groups(
array $groups, array $table, array $students, int $stype
)
|
|
Első-első kívánságot nem tartalmazó csoportok kiszűrése
Kiszűri azokat a csoportokat, amelyek 1-1-es jelölés esetén csak az egyik hallgatót tartalmazzák. 1-1-es jelölés: két diák egymást jelölte meg első helyen a kívánságlistájukban. ST_HETEROGEN esetén azokat a csoportokat is kiszűri, amelyekben egyforma neműek vannak.
Parameters:
array |
$groups: |
A szűrendő csoportok |
array |
$table: |
Használt kívánságmátrix |
array |
$students: |
A kívánságmátrixban található hallgatói azonosítók folytonosan indexelve |
int |
$stype: |
Fiú-Lány 1-1 kívánsot keresünk-e? Ha igen, akkor ST_HETEROGEN, más esetben ettől eltérő értéke legyen. |
API Tags:
Return: | Megszűrt csoportlista |
array uniq_groups(
array $groups
)
|
|
Többször jelenlévő csoportok törlése
A függvény egy kivételével törli a $groups tömb azon elemeit, amelyek ["users"] altömbjének azonos elemei vannak. Folytonosan indexelt $groups tömb szükséges a helyes működéshez!
Parameters:
array |
$groups: |
Csoportlista |
API Tags:
Return: | Megszűrt csoportlista |
|
|