webForumDet fria alternativet

Hur får jag in länkfunktionen i forumet?

ASP

11 svar · 360 visningar · startad av magnusfeldth

Medlem sedan jan. 20034 480 inlägg
Frågan#1

Jag använder bland annat följande funktion för att få in smilies i ett forum:

<%
Function Smiley(text)

text = server.HTMLEncode(text)
text = Replace(text,vbCrLf,"<br>")
text = Replace(text,":-)","<img src=""images/smiley_glad.gif"">")
text = Replace(text,"[img]","<img src=""")
text = Replace(text,"[/img]",""">")

Response.Write text

End Function
%>

och denna för att få fram dem:

<% =Smiley(strText) %>

Hur gör jag för att få in länkar, dvs att tex http://www.webforum.nu blir en länk osv...
även, hur gör man för att långa länkar ska delas upp (så som de gör på wF)

Medlem sedan sep. 20026 425 inlägg
#2

Sök i forumet! En sökning på länkar gav till exempel denna tråd: http://www.webforum.nu/showthread.php?s=&forumid=22&threadid=75258&highlight=l�nkar

En bra start.

Medlem sedan jan. 20034 480 inlägg
#3

Jag kopierade från Palle så koden blev följande:

 <%
Function Smiley(text)

text = server.HTMLEncode(text)
text = Replace(text,vbCrLf,"<br>")
text = Replace(text,"[img]","<img src=""")
text = Replace(text,"[/img]",""">")

Set regExp = New regexp
	regExp.Global = true
	regExp.IgnoreCase = true

	regExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"
	str = regExp.Replace(str, "<a href=""redir.asp?url=$1"">$1</a>")
				
	regExp.Pattern = "\[url =(.*)\](.*)\[/url\]" 
	makeOutput = regExp.Replace(str, "<a href=""redir.asp?url =ht tp://$1"">$2</a>")
	
Response.Write text

	

End Function
%>
<% =Smiley(strText) %>

Jag har hackat upp koden lite så att inte wF ska ändra den genom att lägga in några mellanslag.

Felet är att texten inte blir länkar, inget felmess kommer.

Medlem sedan mars 20023 561 inlägg
#4

Bara en liten parantes... Lite konstigt att kalla funktionen för Smiley när extra funktionalitet har tillkommit. Bättre att kalla den för FixText eller något liknande. ;)

Medlem sedan jan. 20034 480 inlägg
#5

namnet kan fixas till senare ;)

Medlem sedan apr. 20022 743 inlägg
#6

Ett tips är att inte använda

text = Replace(text,"[img]","<img src=""")
text = Replace(text,"[/img]",""">")

Vad händer om någon skriver

Medlem sedan apr. 20022 743 inlägg
#7

hmm.. Du kan ju testa detta:

<%
Function Smiley(text)
	text = server.HTMLEncode(text)
	text = Replace(text, vbCrLf, "<br>")

	Set regExp = New regexp
		regExp.Global = true
		regExp.IgnoreCase = true

		regExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"
		text = regExp.Replace(str, "<a href=""redir.asp?url=$1"">$1</a>")
				
		regExp.Pattern = "\[url =(.*)\](.*)\[/url\]" 
		text = regExp.Replace(str, "<a href=""redir.asp?url =ht tp://$1"">$2</a>")

		regExp.Pattern = "\[img](.*)\[/img\]" 
		text = regExp.Replace(str, "<img src=""$1"">")
	Set regExp = Nothing
	
	Smiley = text
End Function
%>
<% =Smiley(strText) %>

Är ingen hejjare på RegExp men värt ett försök ;)

Och koden är som sagt lite "upphackad" så inte wF ska strula

Medlem sedan jan. 20034 480 inlägg
#8

Får det inte att fungera, det blir ingen text alls?!

Jag bifogar koden i txt-dokument för att inte behöva hacka upp den... kan nån se om jag glömt justera den nånstans?

Medlem sedan apr. 20022 743 inlägg
#9

Testa denna då (bifogade filen)

Medlem sedan jan. 20034 480 inlägg
#10

Sorry, blir ingen text alls nu heller. Vad tusan kan det vara?

Medlem sedan jan. 20034 480 inlägg
#11

Har nästan fått den att funka nu... har justerat genom att skriva

  regExp.Pattern = "((?:mailto\:|(?:news|(?:ht|f)tp(?:s?))\://){1}\S+)"
  text = regExp.Replace([b]text[/b], "<a href=""$1"">$1</a>")

Men jag får inte

  regExp.Pattern = "\[url =(.*)\](.*)\[/url\]" 
  text = regExp.Replace(text, "<a href=""$1"">$2</a>")

att fungera... skriver jag exakt (obs, upphackat här...ironi) [url = htt p ://www .minsida.se/]hej[/ url] så får jag utskrivet htt p://<a%20href=/ och den skriver länken som htt p://ww w.minsida.se">hej weird

Medlem sedan feb. 200473 inlägg
#12

Testa:

strText = ReplaceTags("\[ URL=(.*?)\](.*?)\[\/URL\]", "<a href=""$1"">$2</a>", strText)

(spacen mellan [ och URL skall inte vara där. Fick lägga in den, eftersom annars blev det fel här i forumet.)

260 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)