$plk = trim(file_get_contents('data/txt/przedmioty.txt'));
$plk = myString::uncomment_and_trim($plk);
$plk = explode("\r\n", $plk);
$tmpCount = count($plk);
for ($i = 0; $i < $tmpCount; $i++) {
$wiersz = explode(':', trim($plk[$i]));
if ($plk[$i][0] === '@') {
if (trim($wiersz[0]) === '@KIERUNEK') {
$kierunek = trim($wiersz[1]);
$rodzajstudiow = trim($wiersz[2]);
$c = new Criteria();
$cton1 = $c->getNewCriterion(KierunekPeer::NAZWA, $kierunek);
$cton2 = $c->getNewCriterion(RodzajstudiowPeer::NAZWA, $rodzajstudiow);
$cton1->addAnd($cton2);
$c->add($cton1);
$c->addJoin(RodzajstudiowPeer::RODZAJSTUDIOW_ID, KierunekPeer::RODZAJSTUDIOW_ID);
$objKierunek = KierunekPeer::doSelectOne($c);
if (!$objKierunek) {
die('error przedmioty #1');
}
} else if (trim($wiersz[0]) === '@SEMESTR') {
$semestr = trim($wiersz[1]);
$rok = (int) floor(($semestr + 1) / 2);
if ($semestr % 2 === 1) {
$zimalato = 1;
} else {
$zimalato = 0;
}
};
} else {
$nazwa = trim($wiersz[0]);
$rodzajzajec = trim($wiersz[1]);
$liczbagrup = trim($wiersz[2]);
$godz = trim($wiersz[3]);
$zal = trim($wiersz[4]);
$skrot = trim($wiersz[5]);
$c = new Criteria();
$c->add(RodzajzajecPeer::NAZWA, $rodzajzajec);
$objRodzajzajec = RodzajzajecPeer::doSelectOne($c);
if (!$objRodzajzajec) {
die('error przedmioty #3');
}
$slug = myString::string2slug($nazwa . ' ' . $objKierunek->getSlug() . ' ' . $objRodzajzajec->getSlug() . ' ' . $semestr);
$przedmiot = new Przedmiot();
$przedmiot->setNazwa($nazwa);
$przedmiot->setRodzajzajec($objRodzajzajec);
$przedmiot->setLiczbagrup($liczbagrup);
$przedmiot->setGodz($godz);
$przedmiot->setZal($zal);
$przedmiot->setSkrot($skrot);
$przedmiot->setSlug($slug);
$przedmiot->setKierunek($objKierunek);
$przedmiot->setZimalato($zimalato);
$przedmiot->setSemestr($semestr);
$przedmiot->setRok($rok);
$przedmiot->setOdbywaSie(1);
$przedmiot->save();
}
}
Listing 23.11. Przetwarzanie pliku przedmioty.txt
Rozdział 23. Administracja kontami użytkowników