%@LANGUAGE="VBSCRIPT"%>
<% Option Explicit %>
<%
Dim oConn, rs, SQL
' nombreforo es el nombre del foro que abrimos
Dim f, nombreforo, resto
' f = id del foro a desplegar
f=CInt(Request.QueryString("f"))
resto=CStr(Request.QueryString("resto"))
Conectar
Registro rs
SQL="SELECT * FROM Foros;"
rs.Open SQL, oConn
Intro
ListaForos
PieDePagina
LimpiarRS (rs)
LimpiarConexion
%>
<%
'------------------------------------------------------------------------------------------
Sub ListaForos
'Imprime la tabla con los foros
do until rs.EOF
%>
<% if f=rs.Fields("IdForo") then%>
<%else%>
<%end if%>
"><%=rs.Fields("NombreForo")%>
---<%=rs.Fields("Descripcion")%>
(<%=rs.Fields("Total")%> mensajes /
Ultimo:<%=Fecha(rs.Fields("Ultimo"))%>)
<%
' Despliega los mensajes del foro, si procede
if f=rs.Fields("IdForo") then
nombreforo=rs.Fields("NombreForo")
ListaMensajes f
end if
rs.MoveNext
loop
End Sub
'------------------------------------------------------------------------------------------
Sub ListaMensajes(foro)
Dim rs2, rs3, respuestas, I, cuantos
Dim incremento
if resto="si" then
incremento=0
else
incremento=1
end if
Registro rs2
Registro rs3
SQL="SELECT IdMensaje, Autor, FechaHora, Tema FROM Mensajes WHERE IdPadre=0 AND IdForo="&foro&" ORDER BY FechaHora DESC;"
rs2.Open SQL, oConn, 1, 2
cuantos=rs2.RecordCount
I=1
do while not rs2.EOF and I<=15
SQL="SELECT IdMensaje FROM Mensajes WHERE IdCabecera="&rs2.Fields("IdMensaje")&";"
I=I+incremento
rs3.Open SQL, oConn,3,2
'Resto uno porque la consulta me devuelve el propio mensaje
respuestas=(rs3.RecordCount)-1
'Pinto la lista
%>
">
<%=Cortar(rs2.Fields("Tema"), 40)%> por
<%=Cortar(rs2.Fields("Autor"), 15)%>
<%=Fecha(rs2.Fields("FechaHora"))%>
(<%=respuestas%> respuestas)
<%
rs2.MoveNext
rs3.Close
loop
LimpiarRS(rs2)
set rs3=nothing
if cuantos>15 and resto<>"si" then
'Quedaban mensajes
Response.Write("")
Response.Write("Desplegar el resto de mensajes anteriores de este foro")
Response.Write("
")
end if
End Sub
'------------------------------------------------------------------------------------------
Function Cortar (str, longitud)
' Corta una cadena 'str' a la longitud especificada. Corta por la izda
if Len(str) => longitud+4 then
Cortar=Left(str, longitud)&"..."
else
Cortar=str
end if
End Function ' Cortar
'------------------------------------------------------------------------------------------
Sub Intro
%>
Navega polos foros e cliquea nas mensaxes para ver o seu contido. Para escribir unha nova mensaxe, abre un foro e cliquea no enlace inferior: "Escribir no foro..."