Avatar billede boysen Nybegynder
16. juni 2003 - 13:05 Der er 29 kommentarer og
1 løsning

Ord skal være link?!

Hmmm lidt svært at lave en passende overskrift.

Jeg arbejder på et nyhedssystem, og jeg savner en lille feature.
Jeg ønsker at brugeren som tilføjer en nyhed, kan vælge at en del af teksten skal være et link.

Lige nu kan man kun indsætte et link ved at skrive det i nyheden, men det ser ikke så fikst ud.

Giver lige et eksempel.

Nuværende nyhed:
"Ny verdensrekord - Læs mere på www.guinessrekordbog.dk"  - "www.guinessrekordbog.dk" er linket.

Kommende (?) nyhed:
"Ny verdensrekord - Læs om rekordforsøget." - "rekordforsøget" skal være linket.

Man skal som bruger kunne f.eks. markere teksten "rekordforsøget", og i et felt skrive " www.guinessrekordbog.dk". I teksten skal "rekordforsøget" så linke til guinessrekordbog.dk

Er det forståeligt - Ellers er det bare at spørge.

Ved ikke lige med pointsummen, men der er flere hvis det er påkrævet.

Venlig hilsen
Michael Boysen
Avatar billede thb Nybegynder
16. juni 2003 - 13:17 #1
prøv at kigge her http://www.eksperten.dk/spm/355093
Lidt det samme bare med noget andet kode.. :)

Thomas
Avatar billede netro Nybegynder
16. juni 2003 - 13:20 #2
Er det ikke bare at bede brugeren sætte noget uden om det, der skal være linket?

Streng = "Bla bla {link}www.jubii.dk{/link} bla bla"
Avatar billede boysen Nybegynder
16. juni 2003 - 13:27 #3
Thomas - Som du selv skrev: Puha der er meget kode, men jeg vil lige kigge på sagerne.

Netro - Det er det garanteret, men jeg er kun på "flet-andres-kodestumper-sammen-niveau". Kunne du lokkes til at smide lidt kode?

Venlig hilsen
Michael Boysen
Avatar billede netro Nybegynder
16. juni 2003 - 13:33 #4
Streng = "Bla bla {link}www.jubii.dk{/link} bla bla"

Pos1 = InStr(Streng, "{link}")
Pos2 = InStr(Streng, "{/link}")

Link = Mid(Streng, Pos1 + 6, Pos2 - Pos1)

Streng = Replace(Streng, "{link}", "<a href='" & Link & "'>"
Streng = Replace(Streng, "{/link}", "</a>"

Response.Write Streng


F.eks...
Avatar billede netro Nybegynder
16. juni 2003 - 13:36 #5
Lige en rettelse:

Link = Mid(Streng, Pos1 + 6, Pos2 - Pos1 - 6)
Avatar billede boysen Nybegynder
16. juni 2003 - 14:35 #6
Hmmm jeg kan ikke få det til at virke - Tror ikke helt jeg fatter hvordan det sættes ind.

I min kode har jeg:
response.write "<p>" & data("news_text") & "</p>"

Det må være news_text jeg skal bruge, ( ik´ :-) )
Jeg tror at Streng skal erstattes med news_text, men hvor skal jeg indsætte de foskellige dele af koden.
Hvis det hjælper skal jeg gerne smide noget mere af koden, men jeg kan ikke lige overskue om det vil hjælpe.

/Michael Boysen
(Godt man ikke er bange for at virke sinke-agtig :-))
Avatar billede netro Nybegynder
16. juni 2003 - 15:10 #7
For at lette både overblikket og øge fleksibiliteten, kan du lægge det ind i en funktion:

Function MakeLinks(Streng)
  MakeLinks = Streng
  Pos1 = InStr(MakeLinks, "{link}")
  Pos2 = InStr(MakeLinks, "{/link}")
  If Pos1 > 0 Then
      Link = Mid(MakeLinks, Pos1 + 6, Pos2 - Pos1 - 6)
      MakeLinks = Replace(MakeLinks, "{link}", "<a href='" & Link & "'>")
      MakeLinks = Replace(MakeLinks, "{/link}", "</a>")
  End If
End Function


Og den kan du så kalde, hvor det skal være med:

Response.Write "<p>" & MakeLinks(data("news_text")) & "</p>"
Avatar billede boysen Nybegynder
16. juni 2003 - 15:35 #8
Ja nu sker der da lidt, men det fungerer stadig ikke.

Testsiden kan ses her:
http://www.rokkerne.dk/newstest/

Muligvis har jeg ikke helt fanget idéen. Jeg kan nemlig ikke helt lure, hvordan man vælger det ord ud, som skal dække over linket.

Lige umiddelbart bliver outputtet fuldstændig mage til det, man skriver når man tilføjer en nyhed.

Michael Boysen
Avatar billede netro Nybegynder
16. juni 2003 - 15:43 #9
Tester det lige...
Avatar billede netro Nybegynder
16. juni 2003 - 15:49 #10
Funktionen fungerer efter hensigten, men lad mig se lidt mere kode, der hvor du mener, det går galt.
Avatar billede boysen Nybegynder
16. juni 2003 - 15:57 #11
Jeg ved ikke om der går noget galt, men umiddelbart gør funktionen ingen forskel.

Du kan lige se hvordan man tilføjer en nyhed:
http://www.rokkerne.dk/newstest/news.asp

Bruger: tester
PW: test

Jeg skal vel på en eller anden måde fortælle systemet, hvilket ord som skal dække over hvilket link - Forstår du hvad jeg mener?

Michael Boysen
Avatar billede netro Nybegynder
16. juni 2003 - 15:59 #12
Ja, jeg tror, jeg har misforstået dig (eller ikke læst spm. ordentligt).
Jeg skal lige ned og købe ind, så vender jeg tilbage med et nyt svar.
Avatar billede netro Nybegynder
16. juni 2003 - 16:06 #13
Må der angives mere end ét link i hver nyhed?
Avatar billede boysen Nybegynder
16. juni 2003 - 16:16 #14
Ja der må i princippet angives "et uendeligt antal" links.

Tak fordi du ofrer din tid.
Michael Boysen
Avatar billede netro Nybegynder
16. juni 2003 - 16:55 #15
Så skulle den være, som du vil have den.


<%
Streng = "Ny verdensrekord - Læs mere på {l}www.guinessrekordbog.dk{l}www.guinessrekordbog.dk{l} og igen en ny verdensrekord - Læs om {l}www.guinessrekordbog.dk{l}rekordforsøget{l}"

Function MakeLinks(Streng)
  MakeLinks = Streng
  ArrLinks = Split(MakeLinks, "{l}")
  For i = 1 To UBound(ArrLinks) - 2 Step 3
      MakeLinks = Replace(MakeLinks, "{l}" & ArrLinks(i) & "{l}" & ArrLinks(i+1) & "{l}", "<a href='" & ArrLinks(i) & "'>" & ArrLinks(i+1) & "</a>")
  Next
End Function

Response.Write "<p>" & MakeLinks(Streng) & "</p>"
%>
Avatar billede boysen Nybegynder
16. juni 2003 - 17:03 #16
Muligvis er jeg total idiot, men jeg kan stadig ikke se forskellen :-)

Prøv lige at tilføje en nyhed incl. et link, for at se om det virker for dig.

Michael Boysen
Avatar billede boysen Nybegynder
16. juni 2003 - 17:09 #17
Er nødt til at smutte til fodbold nu - Vender tilbage senere i aften.

Bedste hilsner
Michael Boysen
Avatar billede netro Nybegynder
16. juni 2003 - 17:23 #18
Det burde nu fungere, hvis du udskriver således. Gør du det?

Response.Write "<p>" & MakeLinks(data("news_text")) & "</p>"
Avatar billede netro Nybegynder
16. juni 2003 - 17:32 #19
Avatar billede netro Nybegynder
16. juni 2003 - 17:32 #20
Du skal også lige huske at sætte "http://" foran "www".
Avatar billede boysen Nybegynder
16. juni 2003 - 23:57 #21
Hej igen

Det trak lidt ud med kampen (3. halvleg du ved)

Jeg tror du har misforstået mig totalt :-)
Det jeg ønsker er en mulighed for at erstatte et link med et ord........
Nyt eksempel:

Eks. 1:
Michael Boysen fik løst sit problem på http://www.eksperten.dk
Her giver linket sig selv.

Eks. 2:
Michael Boysen fik løst sit problem ved at spørge på denne suveræne side.
"Denne suveræne side" skal dække over linket http://www.eksperten.dk

Eksempel 2 er det jeg ønsker. Det er jo ikke så lækkert at læse links i deres fulde længde. Som det er nu har jeg ikke mulighed for selv at bestemme, hvilken del af min tekst som skal link til hvad.
Håber det er mere klart?!

Venlig hilsen
Michael Boysen
Avatar billede netro Nybegynder
17. juni 2003 - 01:42 #22
Min funktion erstatter da også links med valgfrie ord.
Som på http://www.opfinderen.dk/link.asp, hvor www.guinessrekordbog.dk erstattes af rekordforsøget.
Avatar billede boysen Nybegynder
17. juni 2003 - 11:41 #23
Ret mig hvis jeg stadig ikke fatter en hat!

Jeg ved ikke om du har kigget på den side, hvor man indtaster nyheder?
Her er i alt fald tekstbokse til overskrift og indhold.
Hvordan skal jeg skrive i indholdsboksen, hvis jeg ønsker at tilføje samme nyhed som du har gjort?

Umiddelbart ville jeg gætte på noget i denne stil:
Ny verdensrekord - Læs mere på www.guinessrekordbog.dk og igen en ny verdensrekord - Læs om {l}rekordforsøget{/l}

Men det virker ikke, og jeg kan stadig ikke se, hvordan jeg vælger hvor det jeg vælger som link {l}link{/l} peger hen?!

Lidt skidt formuleret, men jeg er på vej på job derfor lidt hastigt overstået.

Hav en god dag
Michael Boysen
Avatar billede netro Nybegynder
17. juni 2003 - 16:28 #24
Hvis du lige forstår syntaksen, er det faktisk meget nemt.
Lad os sige, jeg vil lave en tekst, der ser ud som følger:

"Ny verdensrekord - Læs om rekordforsøget."

Her vil jeg have "rekordforsøget" til at linke til "http://www.guinessrekordbog.dk", hvilket jeg opnår ved at skrive:

"Ny verdensrekord - Læs om {l}http://www.guinessrekordbog.dk{l}rekordforsøget{l}."

Hvis jeg vil have flere links i samme nyhed, kan jeg gøre det på samme vis:

"På {l}http://www.google.com{l}denne side{l} kan du finde alt, hvad en {l}http://www.hkhkronprinsen.dk{l}kronprins{l} kan ønske sig."

Dette giver følgende tekst:

"På denne side kan du finde alt, hvad en kronprins kan ønske sig."

Se begge eksempler her: http://www.opfinderen.dk/link.asp

I dit tilfælde ser det altså sådan ud:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Function MakeLinks(Streng)
  MakeLinks = Streng
  ArrLinks = Split(MakeLinks, "{l}")
  For i = 1 To UBound(ArrLinks) - 2 Step 3
      MakeLinks = Replace(MakeLinks, "{l}" & ArrLinks(i) & "{l}" & ArrLinks(i+1) & "{l}", "<a href='" & ArrLinks(i) & "'>" & ArrLinks(i+1) & "</a>")
  Next
End Function

Response.Write "<p>" & MakeLinks(data("news_text")) & "</p>"

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Avatar billede netro Nybegynder
17. juni 2003 - 16:33 #25
Du gør det ellers rigtigt i nyheden fra 16-06-2003.

Husker du at kalde funktionen?
Avatar billede netro Nybegynder
17. juni 2003 - 22:01 #26
Prøv lige at give mig hele den linie, hvor du udskriver nyheden, hvis du stadig ikke kan få det til at fungere.
Avatar billede boysen Nybegynder
18. juni 2003 - 00:02 #27
Hej mester

Nu har jeg omsider fået det til at virke.

Tusind tak for din tålmodighed :-)

Bedste hilsner
Michael Boysen
Avatar billede netro Nybegynder
18. juni 2003 - 02:49 #28
Det er godt! Og hvad var der så galt...?
Avatar billede boysen Nybegynder
18. juni 2003 - 15:55 #29
Det er næsten for pinligt........... Jeg sad i al for lang tid og baksede med den forkerte response.write sætning :-)

Man skal som regel dumme sig før man lærer!
Avatar billede netro Nybegynder
09. december 2003 - 13:54 #30
Man lærer af sine fejl, ja...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester