webForumDet fria alternativet

Pussla ihop forumlänkkoderna

ASP

5 svar · 307 visningar · startad av brorsan

Medlem sedan nov. 2001402 inlägg
Frågan#1

Med tanke på att jag inte har pluggat asp är det här svårt. skulle vara supertacksam om nån ville hjälpa till att pussla ihop detta.

Mitt mål är att allt som börjar på http:// ftp:// news:// mailto: och helst även www. ska bli en länk och att denna länk ska kortas ned till max 40 tecken per rad. Nedkortningen kan ske genom att mittendelar av länken göms eller ännu hellre genom att den länk man ser radbryts på var 40:de tecken medans länken man skickas till hålls intakt.

Jag har t.ex hittat de här koderna i andra trådar men vet inte hur jag pusslar ihop dem med det jag har. Variant 1:

<%= convertlinks(RS("Text"))%>

'----------------------------------------------------
' * ConvertLinks *
' Fixa så att länkar blir länkade i HTML-koden.
' Nedanstånde kod kommer från [url]www.ojmnet.com[/url] 
'----------------------------------------------------
Function ConvertLinks(svalue)
svalue = ConvertLinksHREF(svalue, "http://")
svalue = ConvertLinksHREF(svalue, "ftp://")
svalue = ConvertLinksHREF(svalue, "news://")
svalue = ConvertLinksHREF(svalue, "mailto:")
ConvertLinks = svalue
End Function

Function ConvertLinksHREF(svalue, sHREF)
Dim iPos1, iPos2, sTemp, sTemp1, sTemp2
iPos2 = 1
iPos1 = InStr(1, svalue, sHREF, 1)
Do While iPos1 > 0
iPos2 = FindLinkEnd(svalue, iPos1 + Len(sHREF))
If iPos2 > 0 Then
sTemp1 = Mid(svalue, iPos1, iPos2 - iPos1)
sTemp2 = "<A HREF=" & Chr(34) & sTemp1 & Chr(34) & ">" & sTemp1 & "</A>"
svalue = Left(svalue, iPos1 - 1) & sTemp2 & Mid(svalue, iPos2)
iPos2 = iPos1 & Len(sTemp2) + 1
Else
iPos2 = iPos1 + Len(sHREF)
End If
iPos1 = InStr(iPos2, svalue, sHREF, 1)
Loop
ConvertLinksHREF = svalue
End Function

Function FindLinkEnd(svalue, iPos1)
Dim iPos2, i, iLen, iTempPos
Dim sValidChars
sValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz12345678  90-.@/"
iLen = iPos1 + Len(Mid(svalue, iPos1)) - 1
End Function
'----------------------------------------------------

Variant 2:

Function ShortenLinkName(sHTML, lFirstLength, lLastLength)
	Dim objRegExp
	Set objRegExp = New RegExp
	objRegExp.Global = True
	objRegExp.IgnoreCase = True
	
	objRegExp.Pattern = "(<a [^>]+>)([\s\S]{" & lFirstLength & "}?)([\s\S]+?)([\s\S]{" & lLastLength & "}?)(</a>)"
	
	ShortenLinkName = objRegExp.Replace(sHTML, "$1$2...$4$5")
	Set objRegExp = Nothing
End Function

variant 3:

Set objRegExp = New regexp
sURL = "http://www.blablabla.com/jättelånglänk.htm"
objRegExp.Pattern = "(.{25})(.{4,})(.{6})"
sText = objRegExp.Replace(sURL, "$1...$3")
'Resultat: sText = "http://www.blablabla.com/...nk.htm"

Nu skulle jag vilja få ihop någon av de koderna i min forumkod (förstår inte aspkod själv ännu precis vilket gör det knepigt, jag kan typ bara if then satser och så än så länge). varArray-koden nedan kan i alla fall ersättas av koden ovan gissar jag eftersom den bara är till för att korta ned för långa ord och urler som kan förstöra layouten.

ska över huvud taget koden ovan in i själva "inläggskoden" för varje inlägg som loopas eller ska den ligga någonstans var som helst i början på sidan?

response.write "<table width=""100%"" bgcolor="""&color&""" class=""text_medium"" cellpadding=""5"" cellspacing=""0"">"
response.write "<tr>"

response.write "<td width=""30%"" valign=""top"">"
response.write "<a href=""site.asp?id="&rs("fromid")&"""><b>"&rs("username")&"</b></a><br>"

if rs("gender") = "Kille" then
response.write "Kille "
else
response.write "Tjej "
end if

dteDOB = rs("born")
intAge = convAge(dteDOB)
response.write intAge
response.write " i "&rs("city")&""

response.write "<br>"
response.write ConvDate(rs("date"), TRUE)

response.write "</td>"

response.write "<td width=""70%"" valign=""top"">"

strNyText = ""
strText = rs("message")

varArray = split (strText, " ")
for i = 0 to ubound(varArray)
    strNyText = strNyText & Left(varArray( i ), 50) & " "
next
strComText = server.HTMLEncode(strNyText)
strComText = Replace(strComText,vbcrlf,"<BR>")

Response.Write strComText

response.write "</td>"
response.write "</tr>"
response.write "</table>"

som sagt, supertacksam för svar.
david

Medlem sedan juni 200032 967 inlägg
#2

Whoa...

[kod]-taggar, för böveln!

Sedan kanske vi kan titta lite. :)

Medlem sedan juni 200032 967 inlägg
#3

edit: iiih, dopfelpost!

Medlem sedan nov. 2001402 inlägg
#4

Förlåt @nders, jag har inte hängt här inne på webbforum så mycket sen ni la till de funktionerna, jag tittade efter nåt sett att iframa koden, men såg inget uppenbart sätt bland alla tecken och grejer när jag skulle göra posten. Jag får väl lära mig...

Medlem sedan juni 200032 967 inlägg
#5

[kod]-taggarna har alltid funnits. :)
Ungefär sedan Sundsvall brann.

http://www.webforum.nu/misc.php?do=bbcode

(i listan saknas dock de svenska översättningarna av code och quote, kod och citat.)

Medlem sedan nov. 2001402 inlägg
#6

:) Hoppas att det ser ut som det ska nu då. Jag är rätt säker på att det var en stor ommöblering här typ 2002-2003 (jag var stammis 2001). Kan inte svära på att kodtaggen kom 2002-2003, men jag har för mig det faktiskt. De gjorde i alla fall om i stort sett hela forumupplägget om jag inte är helt ute och cyklar.

263 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)