- <?php
- /** Szobalista feltöltésére szolgáló felület kódja
- * @package koliportal
- */
- $sql_i = array();
-
-
- /** Egy épület adatainak ellenőrzése
- *
- * Ellenrőzi a feltöltött CSV fájl egy sorát.
- *
- *
- * @param array $arr A rekord mezői tömbben
- * @return mixed true: ha minden megfelelő, egyébként hibaüzenet
- */
- function check_building_row($arr)
- {
- if (!isset($arr["bsname"])
- || (strlen($arr["bsname"]) < 2)
- || (strlen($arr["bsname"]) > 8)) {
- return "Túl rövid/hosszú rövid név (2-8 karakter lehet csak)!";
- }
-
- if (!isset($arr["bname"]) || (strlen($arr["bname"]) < 2)) {
- return "Hiányzó teljes név!";
- }
-
- return true;
- }
-
-
- if (count($_POST) > 0)
- {
- debug_echo("post OK");
- if (isset($_FILES["blist"]) &&
- is_uploaded_file($_FILES["blist"]["tmp_name"]))
- {
-
- $f = fopen($_FILES["blist"]["tmp_name"], 'r');
- if ($f === false)
- {
- myerr("Fájlmegnyitási hiba a szerveren.");
- }
-
- $current_blist = get_buildings_list();
-
- while (!feof ($f))
- {
- $line = fgets($f, 1024);
- if ($line === false)
- break;
-
- // kihagyja az üres sorokat
- if (0 == strlen(trim($line)))
- continue;
-
- $arr = csv2array($line, $CSV_BUILDINGLIST_FSEQ);
-
- $chk = check_building_row($arr);
- if (true !== $chk)
- {
- $errs[] = $chk;
- $errc++;
- $sql_i = array();
- break;
- }
-
- if (isset($current_blist[$arr["bid"]]))
- {
- $sql_i[] = sprintf("UPDATE buildings SET bname = '%s',
- bsname = '%s' WHERE bid = '%d'", $arr["bname"], $arr["bsname"],
- $arr["bid"]);
- } else {
- $sql_i[] = sprintf("INSERT INTO buildings (bname, bsname)
- VALUES ('%s', '%s')",
- $arr["bname"], $arr["bsname"]);
- }
- }
- fclose($f);
-
- } else {
- myerr("Töltsön fel helyes fájlt!");
- }
-
- } else {
- /* nincs semmi tennivalónk? */
- ?>
-
- <?php
- }
-
- ?>
- <h2>Épületlista feltöltése</h2>
-
- <p id="szobalist_upload_form">
- <form enctype="multipart/form-data" id="buildinslist_upload" method="post" action="<?= $_SERVER["PHP_SELF"] ?>?action=<?= $action ?>">
- Épületlista:
- <input type="file" id="blist" name="blist" /><br />
- <input type="submit" value="feltölt" />
- <input type="hidden" id="sz" name="sz" value="sz" />
- </form>
- </p>
-
- <?php
- show_errors($errs);
- ?>
-
- <p>
- <?php
- if (count($sql_i) > 0)
- {
- t_start();
- $c = 0;
- reset($sql_i);
- while (list(, $i) = each($sql_i))
- {
- //echo $i . "\n";
- mysql_query($i, $database)
- or myerr("Adatfeltöltési hiba! ($i)");
- $c++;
- }
- t_commit();
- printf("%d rekord sikeresen feltöltve/módosítva.", $c);
- }
- ?>
- </p>