Skripti http://oppe.admin.ut.ee/ained/tulemus/ained.asp kood
VÄRVIDE TÄHENDUSED
|
Serveripoolne skript
|
|
Kliendipoolne skript
|
|
Link
|
|
Include-lause
|
|
Freimid
|
|
Kommentaarid
|
|
Objekti link
|
|
HTML ja tavaline tekst
|
<%
'Tartu Ülikooli õppeaineregistri WWW-liides
'Autor: Aulis Sibola
'Juhendaja: Jaanus Pöial
'Konkreetse õppetooli ained ühel lehel
'Ühe õppetooli ainete (õppetool edastatakse kujul TTII.OO) kohta andmete
'väljastus. Põhimõte on sama, mis konkreetse aine info väljastuse korral,
'ainult nüüd tehakse tsükkel üle õppetooli kõikide ainete.
'Eeldusainete korral kontrollitakse, kas eeldusaine on samast õppetoolist
'ja siis suunatakse siia samasse faili vastava aine kohale; muidu on
'viide konkreetsele ainele.
'Õppejõudude ja õppekavade ainetesse on siin lingid nagu ühe aine korral.
%>
<!--#INCLUDE file="header.lisamine"-->
<%
'Kuna ainete leidmine võib pikaks venida, suurendatakse skripti timeouti
'kümnele minutile, s.t. kümne minuti pärast (kui töö pole lõpetatud)
'teatatakse kasutajale süsteemne veateade skripti pikale venimisest.
Server.ScriptTimeout = 600
'Kui küsitakse vale pikkusega koodi järgi:
if len(Request.ServerVariables("QUERY_STRING")) <> 7 then
Response.Redirect("algus.asp")
end if
'Muutuja ainekood järgi otsitakse.
ainekood = Request.ServerVariables("QUERY_STRING")
'Ülakoma (') pole aine koodis lubatud:
if InStr(ainekood,"'") then
Response.Redirect("algus.asp")
end if
'Õppeaasta arvutamine:%>
<!--#INCLUDE file="jooksevaasta.inc"-->
<%
'Kuna vaja läheb õppeaastat kujul a/a, siis on vajalik ka järgmine aasta:
JargmAasta = JooksevAasta + 1
'Ühenduse loomine:
Set yhendus = Server.CreateObject("ADODB.Connection")
'Andmebaasi avamine:
yhendus.Open "Aineregister"
'Teaduskonna, instituudi ja õppetooli koodi selgitamine:
tk = mid(ainekood,1,2)
ins = mid(ainekood,3,2)
ot = mid(ainekood,6,2)
'Aine(te) leidmine tabelist DBA_Aine:
'Päringustring:
Paring = "select kood, teaduskond, instituut, oppetool, nr, maht, " & _
"keel, loengutunde, praksitunde, seminaritunde, " & _
"omatootunde, eksam, arvestus, algoppeaasta, " & _
"loppoppeaasta from DBA_Aine where " & _
"teaduskond = '" & tk & "' and " & _
"instituut = '" & ins & "' and " & _
"oppetool = '" & ot & "'"
'päring andmebaasis:
Set yldinfo = yhendus.Execute(Paring)
'Ei leitud, järelikult oli õppetooli kood vale:
if yldinfo.EOF then
%>
<head>
<title>Vale kood</title>
</head>
<!--#INCLUDE file="body.htm"-->
<h2>Teie poolt sisestatud koodiga õppetooli ei leidu andmebaasis.</h2>
<!--#INCLUDE file="footer.htm"-->
<%
'Töö lõpetamine:
Response.End
else
%>
<head>
<title>Ained</title>
</head>
<!--#INCLUDE file="body.htm"-->
<%
end if
'Tehakse tsükkel üle kõigi ainete:
do while not yldinfo.EOF
'Muutuja ainekood saab nüüd väärtuseks aine numbri (ID-kood) tabelis:
ainekood=yldinfo("kood")
'Ainele viitamise koht (juhuks kui kasutaja soovib näha ainult seda ainet):
Response.Write vbNewLine & "<a name=" & yldinfo("teaduskond") & yldinfo("instituut") & _
"." & yldinfo("oppetool") & "." & yldinfo("nr") & _
"></a>"
'Aine toimumise kontroll:
eitoimu = false
'Kui aine on lõpetatud (võib olla ühekordne ja seega saab toimuda):
if Not(IsNull(yldinfo("loppoppeaasta"))) then
if yldinfo("algoppeaasta") = yldinfo("loppoppeaasta") then
if yldinfo("algoppeaasta") <> JooksevAasta then
eitoimu = true
end if
liiteaasta = yldinfo("algoppeaasta") + 1
Response.Write "<b><blink>NB! Ühekordne aine ("
Response.Write yldinfo("algoppeaasta") & "/" & liiteaasta
Response.Write " õa.)</blink></b>" & vbNewLine
else
eitoimu = true
Response.Write "<b><blink>NB! Aine on lõpetatud (alates "
Response.Write yldinfo("loppoppeaasta")
Response.Write ". a.)</blink></b>" & vbNewLine
end if
end if
'Aine nime selgitamine:
'Päringustring:
Paring = "select nimi, inimi from DBA_Tekst where " & _
"lõppaasta is null and aine = " & ainekood
'Päring andmebaasis:
Set nimed = yhendus.Execute(Paring)
%>
<p align=center>
<font size=+2><b><%=nimed("nimi")%></b></font>
<br>
<%if len(nimed("inimi")) > 0 then%>
(<%=nimed("inimi")%>)
<br>
<%end if%>
<a href=aine.asp?<%=yldinfo("teaduskond")&yldinfo("instituut")&"."&yldinfo("oppetool")&"."&yldinfo("nr")%>><%=yldinfo("teaduskond")&yldinfo("instituut")&"."&yldinfo("oppetool")&"."&yldinfo("nr")%></a>
<br>
</p>
<%
'Nimede sulgemine:
nimed.close
'Kas maht on tundides või ainepunktides:
if yldinfo("loengutunde") + yldinfo("praksitunde") + yldinfo("seminaritunde") = yldinfo("maht") then
ainepunkt = "T"
elseif yldinfo("loengutunde") = 0 and yldinfo("praksitunde") = 0 and yldinfo("seminaritunde") = 0 and yldinfo("omatootunde") = yldinfo("maht") then
ainepunkt = "T"
else
ainepunkt = "AP"
end if
'Millised tunnid väljastada:
'Loengutunnid:
if yldinfo("loengutunde") > 0 then
prpluss = " + "
sempluss = " + "
omapluss = " + "
ltunde = yldinfo("loengutunde") & " L"
else
prpluss = ""
sempluss = ""
omapluss = ""
ltunde = ""
end if
'Praktikumitunnid:
if yldinfo("praksitunde") > 0 then
sempluss = " + "
omapluss = " + "
prtunde = prpluss & yldinfo("praksitunde") & " P"
else
prtunde = ""
end if
'Seminaritunnid:
if yldinfo("seminaritunde") > 0 then
omapluss = " + "
semtunde = sempluss & yldinfo("seminaritunde") & " S"
else
semtunde = ""
end if
'Iseseiseva töö tunnid:
if yldinfo("omatootunde") > 0 then
omatunde = omapluss & yldinfo("omatootunde") & " i"
else
omatootunde = ""
end if
'Mitu eksamit/arvestust on:
'Eksamid:
if yldinfo("eksam") > 1 then
if yldinfo("arvestus") > 0 then
exam = yldinfo("eksam") & " eksami ja "
else
exam = yldinfo("eksam") & " eksamiga"
end if
elseif yldinfo("eksam") = 1 then
if yldinfo("arvestus") > 0 then
exam = "eksami ja "
else
exam = "eksamiga"
end if
else
exam = ""
end if
'Arvestused:
if yldinfo("arvestus") > 1 then
arvestus = yldinfo("arvestus") & " arvestusega"
elseif yldinfo("arvestus") = 1 then
arvestus = "arvestusega"
else
arvestus = ""
end if
%>
<p align=right>
<%if yldinfo("eksam") > 0 or yldinfo("arvestus") > 0 then%>
Lõpeb <%=exam&arvestus%><br>
<%end if%>
Maht: <b><%=yldinfo("maht")&" "&ainepunkt%></b>
<%if yldinfo("loengutunde") > 0 or yldinfo("praksitunde") > 0 or yldinfo("seminaritunde") > 0 or yldinfo("omatootunde") > 0 then%>
<br>
(õppetöö: <%=ltunde&prtunde&semtunde&omatunde%>)
<%end if%>
</p>
<hr>
<ul type=square>
<%
'Aine toimumiskava leidmine andmebaasist
if eitoimu then
lugemine = false
else
lugemine = true
'Päringustring:
Paring = "select alg, lopp, tyyp, loengutund, praksitund, " & _
"seminaritund, praksikohustus, seminarikohustus, " & _
"ref_arv, kt_arv, eksam, arvestus " & _
"from DBA_ajakava where " & _
"aine = " & ainekood & " and aasta = " & JooksevAasta
'Päring andmebaasis:
Set ajakava = yhendus.Execute(Paring)
if ajakava.EOF then
lugemine = false
end if
end if
'Aine lugejate selgitamine
'Päringustring:
Paring = "select amet, enimi, pnimi " & _
"from DBA_lektor, DBA_tavalugeja, DBA_amet " & _
"where DBA_lektor.kood = DBA_tavalugeja.lektor and " & _
"DBA_amet.nimi = DBA_lektor.amet and " & _
"(DBA_tavalugeja.aastani is Null or " & _
"DBA_tavalugeja.aastast = " & JooksevAasta & ") and " & _
"dba_tavalugeja.aine = " & ainekood & _
" order by DBA_amet.kood, DBA_lektor.sort"
'Päring andmebaasis:
Set lugejad = yhendus.Execute(Paring)
'Väljade lugemine:
recount = 0
do while not lugejad.EOF
recount = recount + 1
lugejad.MoveNext
loop
if recount then lugejad.MoveFirst
'Lugevate õppejõudude algus:
if not lugejad.EOF then
Response.Write "<li>"
if lugemine then
Response.Write JooksevAasta & "/" & JargmAasta & " õa. "
if recount = 1 then
Response.Write "loeb"
else
Response.Write "loevad:"
end if
end if
end if
'Õppejõudude väljastus:
count = 0
do while not lugejad.EOF
count = count + 1
link = "<a href=oppejoud.asp?eesnimi=" & _
Server.URLEncode(lugejad("enimi")) & "&perenimi=" & _
Server.URLEncode(lugejad("pnimi")) & "&otsing=eesjapere>"
Response.Write " " & vbNewLine & lugejad("amet") & " " & link & lugejad("enimi") & " " & _
lugejad("pnimi") & "</a>"
if count <> recount then
Response.Write ","
end if
lugejad.MoveNext
loop
Response.Write vbNewLine
'Lugejate sulgemine:
lugejad.close
'Kas loetakse 'mitte-eesti keeles':
if lugemine and yldinfo("keel") <> "eesti" then%>
<p><li><i>Ainet loetakse <%=yldinfo("keel")%> keeles.</i>
<%end if
Response.Write "<p>"
'Kuulajaskond koosneb kahest osast (aine on õppekavas kohustuslik ja mitte)
'Õppekavad, kus aine on kohustuslik
'Päringustring:
Paring = "select õppekava, aste from Kuulajaskond, DBA_aste " & _
"where Kuulajaskond.aine = " & ainekood & " and " & _
"Kuulajaskond.aste = DBA_aste.nimi and " & _
"Kuulajaskond.kohustus <> 0 and " & _
"(Kuulajaskond.õppekava is not null or " & _
"Kuulajaskond.aste is not null) " & _
"order by Kuulajaskond.õppekava, DBA_aste.kood"
'Päring andmebaasis:
Set kuulajad = yhendus.Execute(Paring)
'Väljade lugemine:
recount = 0
do while not kuulajad.EOF
recount = recount + 1
kuulajad.MoveNext
loop
if recount then kuulajad.MoveFirst
'Väljastus
count = 0
eelkava = ""
if not kuulajad.EOF then%>
<li>Aine on kohustuslik järgmis(t)es õppekava(de)s (ja astme(te)s): <i><b>
<%end if
do while not kuulajad.EOF
count = count + 1
if (kuulajad("aste") <> " ") And Not(IsNull(kuulajad("õppekava"))) then
koolon = ": "
else
koolon = ""
end if
kavlink = "<a href=oppekava.asp?oppekava=" & _
Server.URLEncode(kuulajad("õppekava")) & _
"&aste=&otsing=kava&kohus=molemad>"
astlink = "<a href=oppekava.asp?oppekava=&aste=" & _
Server.URLEncode(kuulajad("aste")) & _
"&otsing=aste&kohus=molemad>"
kavastlink = "<a href=oppekava.asp?oppekava=" & _
Server.URLEncode(kuulajad("õppekava")) & "&aste=" & _
Server.URLEncode(kuulajad("aste")) & _
"&otsing=kavajaaste&kohus=molemad>"
if eelkava <> kuulajad("õppekava") then
if kuulajad("aste") <> " " then
Response.Write kavlink & kuulajad("õppekava") & "</a>" & _
koolon & kavastlink & kuulajad("aste") & "</a>"
else
Response.Write kavlink & kuulajad("õppekava") & "</a>"
end if
if not(IsNull(kuulajad("õppekava"))) then
eelkava = kuulajad("õppekava")
else
eelkava = ""
end if
else
if IsNull(kuulajad("õppekava")) then
Response.Write astlink
else
Response.Write kavastlink
end if
Response.Write kuulajad("aste") & "</a>"
end if
if count <> recount then
Response.Write ", "
end if
kuulajad.MoveNext
loop
kuulajad.close
Response.Write vbNewLine & "</b></i>" & vbNewLine
'Õppekavad, kus aine ei ole kohustuslik
'Päringustring:
Paring = "select õppekava, aste from Kuulajaskond, DBA_aste " & _
"where Kuulajaskond.aine = " & ainekood & " and " & _
"Kuulajaskond.aste = DBA_aste.nimi and " & _
"Kuulajaskond.kohustus = 0 and " & _
"(Kuulajaskond.õppekava is not null or " & _
"Kuulajaskond.aste is not null) " & _
"order by Kuulajaskond.õppekava, DBA_aste.kood"
'Päring andmebaasis:
Set kuulajad = yhendus.Execute(Paring)
'Väljade lugemine:
recount = 0
do while not kuulajad.EOF
recount = recount + 1
kuulajad.MoveNext
loop
if recount then kuulajad.MoveFirst
'Väljastus
count = 0
eelkava = ""
if not kuulajad.EOF then%>
<li>Aine on valikaine järgmis(t)es õppekava(de)s (ja astme(te)s): <i>
<%end if
do while not kuulajad.EOF
count = count + 1
if (kuulajad("aste") <> " ") And Not(IsNull(kuulajad("õppekava"))) then
koolon = ": "
else
koolon = ""
end if
kavlink = "<a href=oppekava.asp?oppekava=" & _
Server.URLEncode(kuulajad("õppekava")) & _
"&aste=&otsing=kava&kohus=molemad>"
astlink = "<a href=oppekava.asp?oppekava=&aste=" & _
Server.URLEncode(kuulajad("aste")) & _
"&otsing=aste&kohus=molemad>"
kavastlink = "<a href=oppekava.asp?oppekava=" & _
Server.URLEncode(kuulajad("õppekava")) & "&aste=" & _
Server.URLEncode(kuulajad("aste")) & _
"&otsing=kavajaaste&kohus=molemad>"
if eelkava <> kuulajad("õppekava") then
if kuulajad("aste") <> " " then
Response.Write kavlink & kuulajad("õppekava") & "</a>" & _
koolon & kavastlink & kuulajad("aste") & "</a>"
else
Response.Write kavlink & kuulajad("õppekava") & "</a>"
end if
if not(IsNull(kuulajad("õppekava"))) then
eelkava = kuulajad("õppekava")
else
eelkava = ""
end if
else
if IsNull(kuulajad("õppekava")) then
Response.Write astlink
else
Response.Write kavastlink
end if
Response.Write kuulajad("aste") & "</a>"
end if
if count <> recount then
Response.Write ", "
end if
kuulajad.MoveNext
loop
kuulajad.close
Response.Write vbNenLine & "</i><p>" & vbNewLine
'Eeldusained
'Kohustuslikud:
'Päringustring:
Paring = "select teaduskond, instituut, oppetool, nr " & _
"from dba_aine, dba_eeldus where " & _
"dba_aine.kood = dba_eeldus.eeldusaine and " & _
"dba_eeldus.aine = " & ainekood & " and " & _
"dba_eeldus.tyyp <> 0 " & _
"order by teaduskond, instituut, oppetool, nr"
'Päring andmebaasis:
Set eeldus = yhendus.Execute(Paring)
'Väljade lugemine:
recount = 0
do while not eeldus.EOF
recount = recount + 1
eeldus.MoveNext
loop
if recount then eeldus.MoveFirst
'Väljastus:
if not eeldus.EOF then
if recount = 1 then%>
<li>Kohustuslik eeldusaine:
<%else%>
<li>Kohustuslikud eeldusained:
<%end if
end if
count = 0
do while not eeldus.EOF
count = count + 1
'Kui eeldusaine on antud õppetoolist, siis viidatakse siia faili, muidu
'konkreetse aine peale:
if tk = eeldus("teaduskond") and ins = eeldus("instituut") and ot = eeldus("oppetool") then
%><a href=#<%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%>><i><b><%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%></b></i></a><%
else
%><a href=aine.asp?<%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%>><i><b><%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%></b></i></a><%
end if
if count <> recount then
Response.Write ", " & vbNewLine
end if
eeldus.MoveNext
Loop
eeldus.close
'Soovituslikud:
'Päringustring:
Paring = "select teaduskond, instituut, oppetool, nr " & _
"from dba_aine, dba_eeldus where " & _
"dba_aine.kood = dba_eeldus.eeldusaine and " & _
"dba_eeldus.aine = " & ainekood & " and " & _
"dba_eeldus.tyyp = 0 " & _
"order by teaduskond, instituut, oppetool, nr"
'Päring andmebaasis:
Set eeldus = yhendus.Execute(Paring)
'Väljade lugemine:
recount = 0
do while not eeldus.EOF
recount = recount + 1
eeldus.MoveNext
loop
if recount then eeldus.MoveFirst
'Väljastus:
if not eeldus.EOF then
if recount = 1 then%>
<li>Soovituslik eeldusaine:
<%else%>
<li>Soovituslikud eeldusained:
<%end if
end if
count = 0
do while not eeldus.EOF
count = count + 1
'Kui eeldusaine on antud õppetoolist, siis viidatakse siia faili, muidu
'konkreetse aine peale:
if tk = eeldus("teaduskond") and ins = eeldus("instituut") and ot = eeldus("oppetool") then
%><a href=#<%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%>><i><%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%></i></a><%
else
%><a href=aine.asp?<%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%>><i><%=eeldus("teaduskond")&eeldus("instituut")&"."&eeldus("oppetool")&"."&eeldus("nr")%></i></a><%
end if
if count <> recount then
Response.Write ", " & vbNewLine
end if
eeldus.MoveNext
Loop
eeldus.close
'Annotatsioon
'Päringustring:
Paring = "select annotatsioon from dba_sisu where " & _
"aine = " & ainekood & " and lopetus is Null"
'Päring andmebaasis:
Set sisu = yhendus.Execute(Paring)
'Väljastus:
%>
</ul>
<p>
<%=sisu("annotatsioon")%>
<%
sisu.close
if not eitoimu then%>
<hr>
<%
if ajakava.EOF then%>
<font size=+1><b>!</b></font> <%=JooksevAasta&"/"&JargmAasta%> õa. ei toimu
<%else
Response.Write "<table>" & vbNewLine
Response.Write "<tr><td>Toimumiskava " & Jooksevaasta & "/" & JargmAasta & " õa.:</td>" & vbNewLine
count = 0
do while not ajakava.EOF
count = count + 1
if count > 1 then
Response.Write "<tr><td></td>" & vbNewLine
end if
if ajakava("tyyp") = "N" then
Response.Write "<td>" & nadalad(ajakava("alg"),ajakava("lopp")) & "</td>" & vbNewLine
elseif ajakava("tyyp") = "K" then
Response.Write "<td>" & korduv(ajakava("lopp")) & "</td>" & vbNewLine
elseif ajakava("tyyp") = "U" then
Response.Write "<td>" & kuu(ajakava("alg"),ajakava("lopp")) & "</td>" & vbNewLine
end if
Response.Write "<td>" & nadal(ajakava("loengutund"),ajakava("praksitund"),ajakava("seminaritund"),ajakava("praksikohustus"),ajakava("seminarikohustus")) & "</td>" & vbNewLine
Response.Write "<td>" & kontroll(ajakava("kt_arv"),ajakava("ref_arv")) & "</td>" & vbNewLine
Response.Write "<td>" & loppexam(ajakava("eksam"),ajakava("arvestus")) & "</td></tr>" & vbNewLine
ajakava.MoveNext
loop
Response.Write "</table>" & vbNewLine
ajakava.close
end if
end if
yldinfo.MoveNext
if not yldinfo.EOF then
Response.Write "<br><br><hr size=5 noshade>" & vbNewLine
end if
loop 'tsükkel üle ainete
'Üldise info sulgemine:
yldinfo.close
yhendus.close
%>
<!--#INCLUDE file="toimumisfunc.inc"-->
<!--#INCLUDE file="footer.htm"-->