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! &Uuml;hekordne aine ("
   Response.Write yldinfo("algoppeaasta") & "/" & liiteaasta
   Response.Write " õa.)</blink></b>" & vbNewLine
  else
   eitoimu = true
   Response.Write "<b><blink>NB! Aine on l&otilde;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&otilde;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>
(&otilde;ppet&ouml;&ouml;: <%=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 & " &otilde;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%>  &otilde;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"-->