phpDocumentor koliportal
[ class tree: koliportal ] [ index: koliportal ] [ all elements ]

Source for file page.assign.php

Documentation is available at page.assign.php

  1. <?php
  2. /** Szobabeosztás vezérlése
  3. *
  4. * A szobabeosztást vezérlő programrészlet.
  5. *
  6. * @package koliportal
  7. */
  8. /*
  9. - páros szobák (nem1 != nem2) és első hely
  10. -
  11. JOIN-nal mellérakni a neveket
  12. FIXME: csak diákokat lehessen beosztani a szobákba
  13. */
  14.  
  15. /** függvények behúzása */
  16. (dirname(__FILE__) . "/../lib/lib.assign.php");
  17. /** függvények behúzása */
  18. (dirname(__FILE__) . "/inc_tabla_func.php");
  19. /** Időbélyeges szövegmegjelenítés
  20. *
  21. * Fejlesztői funkció, amely a naplózásban segít.
  22. *
  23. * @param string $text a kiírandó szöveg
  24. */
  25. function show_log($text)
  26. {
  27. $out = '<p class="log"><span class="logdt">[';
  28. $out .= strftime("%Y-%m-%d %H:%M:%S");
  29. $out .= ']</span> ';
  30. $out .= $text;
  31. $out .= "</p>\n";
  32. echo $out;
  33. }
  34. /** hr tag kiírása
  35. *
  36. * Elválasztásra szolgál.
  37. */
  38. function show_line()
  39. {
  40. $out = '<hr width="75%" align="left">';
  41. echo $out;
  42. }
  43. /* lekérdezés a páros szobákhoz, különböző neműek és egymást
  44. jelölték be első helyen */
  45. /* FIXME: minden épületnél ellenőrizni helyek és a diákok számát */
  46. /* FIXME: ágykombinációk kialakítása, hogy pontosan beférjenek a userek */
  47.  
  48. /* FIXME: szoba típusa sql-be, mert pl jászon vannak olyan szobák, ahova
  49. csak lányok kerülhetnek, illetve fordítva */
  50. $blist = get_buildings_list();
  51.  
  52. /* ha kaptunk paramétert $_GET -ben */
  53. if (isset($_GET["bid"]) && is_numeric($_GET["bid"]) && isset($blist[$_GET["bid"]]))
  54. {
  55. $bid = (int)($_GET["bid"]);
  56. $barr = $blist[$bid];
  57. show_log(sprintf("Szobabeosztás kezdése, épület: %s (%s)", $barr["bsname"], $barr["bname"]));
  58. //debug_echo(sprintf("%s épület start!", $barr["bsname"]), DEBUG_H1);
  59. foreach ( array(ST_HETEROGEN, ST_FEMALE, ST_MALE) as $st)
  60. {
  61. show_log(sprintf("szobatípus: %s (%s)", $st, get_stname($st)));
  62. $students = get_student_list($bid, $st);
  63. show_log("\tTalálat: " . count($students) . " fő");
  64. if (1 > count($students)) {
  65. //debug_echo("Nincsenek $st hallgatók.");
  66. show_log(sprintf("Nincsenek %s típusú szobát kérő hallgatók.", $st));
  67. } else {
  68. $rooms = get_roomlist($bid, $st);
  69. $rooms = strip_extra_rooms($rooms, $st, count($students));
  70.  
  71. //debug_echo("roomlist $st ok");
  72. show_log(sprintf("szobalista lekérdezve: %d db (space: %d) OK", count($rooms), sum_room_space($rooms)));
  73. if (1 > count($rooms)) {
  74. //debug_echo(sprintf("Nincsenek %s típusú szobák.", $st));
  75. show_log(sprintf("nincsenek %s típusú szobák", $st));
  76. } else {
  77. show_log(sprintf("hallgatók beosztása a szobákba"));
  78. assign_students_to_rooms($rooms, $students, $st);
  79. }
  80. }
  81. }
  82. /* megmaradt diákok bepakolása szobákba */
  83. //debug_echo("megmaradt diákok bepakolása szobákba", DEBUG_H2);
  84. show_log("Az előzőekből kimaradt hallgatók beosztása");
  85. foreach ( array(ST_FEMALE, ST_MALE) as $st)
  86. {
  87. //debug_echo("megmaradt $st beosztás", DEBUG_H1);
  88. show_log("Megmaradt $st hallgatók beosztása");
  89. $students = collect_unassigned_students($bid, $st);
  90. show_log(sprintf("Megmaradt $st hallgatók: %d fő", count($students)));
  91. //debug_echo("Megmarad diákok: " . count($students));
  92. if (count($students) > 0)
  93. {
  94. $rooms = get_roomlist($bid, $st);
  95. assign_unassigned_students_to_rooms($rooms, $students);
  96. }
  97. }
  98. } // $blist if
  99. ?>

Documentation generated on Wed, 18 May 2005 19:24:38 +0200 by phpDocumentor 1.3.0RC3