avtrekkeren Skrevet 9. januar 2006 Del Skrevet 9. januar 2006 På hw.no (og de andre sidene) har dere de siste diskusjonene fra forumet i menyen til høyre, feks "Blabbedi blabla dublibbediblibb... (5)" osv. Hvordan gjør dere dette? Er det noe funksjoner integrert i IPB, eller er det en nedlastbar mod noenplass, eller har dere laget mod selv? Jeg hadde slik funsksjon selv på min side, men etter at jeg gikk over fra phpbb til IPB (jada, med lisens! - kosta meg 185 dollar ), så har jeg ikke funnet noen mod som gjorde det samme. Lenke til kommentar
pej Skrevet 9. januar 2006 Del Skrevet 9. januar 2006 Vi henter ut X antall tråder fra databasen, og sorterer etter lastpost-feltet i tabellen. Deretter forkortes strengen til X antall tegn om nødvendig, og voila. Her er pseudokode for vår metode: Hent ut alle tråder, sorter etter lastpost med limit 0,10 f.eks. Loop gjennom alle trådene. - if (tittel på tråd > max_length) -- Forkort tittel, og legg til "..." på slutten. - Print ut. Eks: <li>$title ($replycount)</li> Ferdig loop. Lenke til kommentar
albe Skrevet 9. januar 2006 Del Skrevet 9. januar 2006 Du kan jo oppdatere til SMF (http://www.simplemachines.org). SMF har denne funksjonen integrert (SSI-kall). Og Forresten, med SMF trenger du ikke betale lisens, fordi det er gratis software Men du finner sikkert en gratis mod for IPB som gjør det samme også... Lenke til kommentar
avtrekkeren Skrevet 9. januar 2006 Forfatter Del Skrevet 9. januar 2006 Vi henter ut X antall tråder fra databasen, og sorterer etter lastpost-feltet i tabellen. Deretter forkortes strengen til X antall tegn om nødvendig, og voila. Her er pseudokode for vår metode: Hent ut alle tråder, sorter etter lastpost med limit 0,10 f.eks. Loop gjennom alle trådene. - if (tittel på tråd > max_length) -- Forkort tittel, og legg til "..." på slutten. - Print ut. Eks: <li>$title ($replycount)</li> Ferdig loop. 5412012[/snapback] Tusen takk, får prøve å friske opp mine php-kunnskaper, men det virket enkelt i allefall Du kan jo oppdatere til SMF (http://www.simplemachines.org).SMF har denne funksjonen integrert (SSI-kall). Og Forresten, med SMF trenger du ikke betale lisens, fordi det er gratis software Men du finner sikkert en gratis mod for IPB som gjør det samme også... 5412090[/snapback] Har allerede betalt for en livsvarig lisens Lenke til kommentar
john.einar Skrevet 9. januar 2006 Del Skrevet 9. januar 2006 Vi henter ut X antall tråder fra databasen, og sorterer etter lastpost-feltet i tabellen. Deretter forkortes strengen til X antall tegn om nødvendig, og voila. Her er pseudokode for vår metode: Hent ut alle tråder, sorter etter lastpost med limit 0,10 f.eks. Loop gjennom alle trådene. - if (tittel på tråd > max_length) -- Forkort tittel, og legg til "..." på slutten. - Print ut. Eks: <li>$title ($replycount)</li> Ferdig loop. 5412012[/snapback] Når dere først snakker om algoritmen deres kan jeg kanskje påpeke at dere leifer litt i forkortelseskoden ders. Dere forkorter sånn at html escapes blir partsielle og vi ender opp med å få tittler som dette: "Easynote A8500, 13,3&q... (0)" Burde kanskje postet dette på tilbakemeldinger til forumet, men men. Lenke til kommentar
avtrekkeren Skrevet 9. januar 2006 Forfatter Del Skrevet 9. januar 2006 Yay, har endelig fått d til å funke Tusen takk for hjelpa! Lenke til kommentar
avtrekkeren Skrevet 10. januar 2006 Forfatter Del Skrevet 10. januar 2006 Oops, kom på en ting - denne koden vil jo vise *alle* forumene som jeg har, selv de som er gjemt for vanlige members (Staff Forum etc). Hvordan gjør dere dette? For å bare vise siste fra hw.no delen? Lenke til kommentar
pej Skrevet 10. januar 2006 Del Skrevet 10. januar 2006 Du bruker en WHERE i SQL-spørringen for å filtrere ut de forumene du vil ha og ikke vil ha. F.eks hvis "Staff Forum" har forumid 3: SELECT * FROM blabla WHERE forumid != 3 Edit: Flytter denne til PHP-forumet istedenfor. Lenke til kommentar
avtrekkeren Skrevet 10. januar 2006 Forfatter Del Skrevet 10. januar 2006 Du bruker en WHERE i SQL-spørringen for å filtrere ut de forumene du vil ha og ikke vil ha. F.eks hvis "Staff Forum" har forumid 3: SELECT * FROM blabla WHERE forumid != 3 Edit: Flytter denne til PHP-forumet istedenfor. 5413555[/snapback] Ah, takker Gjorde noe lignende etterhvert, funker fint nå Lenke til kommentar
mikaelandre Skrevet 10. januar 2006 Del Skrevet 10. januar 2006 versjon 1.3 av IPB gjør dette automatisk... den har ssi eksportering, ligger i fila ssi.php. også noe greier i mappa ssi_templates. men hvordan det er med versjon 2 vet jeg ikke... Lenke til kommentar
avtrekkeren Skrevet 10. januar 2006 Forfatter Del Skrevet 10. januar 2006 (endret) Nei, dette gjøres ikke automatisk, i allefall ikke i 2.1.x. Man kan få de siste postene opp fra et spesielt forum (news export), men ikke bare topics og replies. Dette er de tre tingene man kan bruke ssi.php til: +-------------------------------------------------------------------------- | To show the last 10 topics and posts in the news forums... +-------------------------------------------------------------------------- include("http://domain.com/forums/ssi.php?a=news&show=10"); You can adjust the "show" attribute to display a different amount of topics. +-------------------------------------------------------------------------- | To show the board statistics +-------------------------------------------------------------------------- include("http://domain.com/forums/ssi.php?a=stats"); +-------------------------------------------------------------------------- | To show the active users stats (x Members, X Guests, etc) +-------------------------------------------------------------------------- include("http://domain.com/forums/ssi.php?a=active"); Førstnevnte gir hele første posten i tråden, ikke bare topic title. Anyways, spørsmål - hvordan får jeg spesialtegn som feks ' til å vises riktig, og ikke som #&; eller i den duren? Endret 10. januar 2006 av KriFos Lenke til kommentar
Gjest Slettet+6132 Skrevet 12. januar 2006 Del Skrevet 12. januar 2006 (endret) Du kan jo oppdatere til SMF (http://www.simplemachines.org).SMF har denne funksjonen integrert (SSI-kall). Og Forresten, med SMF trenger du ikke betale lisens, fordi det er gratis software Men du finner sikkert en gratis mod for IPB som gjør det samme også... 5412090[/snapback] Hva er det med alle disse "Bytt til SMF"-postene i det siste? Han sier jo at han har betalt en særdeles dyr lisens, så hvorfor bytte nå? Trådstarter: Du kjører en spørring mot din database som henter ut alle public forums og sorterer etter den siste post. Anyways, spørsmål - hvordan får jeg spesialtegn som feks ' til å vises riktig, og ikke som #&; eller i den duren? Kjør en str_replace() på alle html-spesialtegn før forkortingen av strengen. Endret 12. januar 2006 av Slettet+6132 Lenke til kommentar
MC2 Skrevet 13. januar 2006 Del Skrevet 13. januar 2006 ikke bruk str_replace, bruk heller: htmlentities til å fjerne html kode og html_entity_decode til å legge til html koden igjen. Lenke til kommentar
avtrekkeren Skrevet 13. januar 2006 Forfatter Del Skrevet 13. januar 2006 (endret) Hmm, hvordan gjør jeg det da? Her er forresten den ferdige koden: <?PHP // Connection to database $db_user = "dbusername"; $db_passwd = "dbpassword"; $db_name = "dbname"; $db = mysql_connect("localhost", $db_user, $db_passwd); mysql_select_db($db_name, $db); // Fetch info from DB $result = mysql_query( "SELECT * FROM `ibf_topics` WHERE `forum_id` NOT IN (#,#,#,#,#) ORDER BY `last_post` DESC LIMIT 0, 10", $db ); // Draw table echo "<table>"; while ($myrow = mysql_fetch_array($result)) { // Fetch topic title and link id $title=$myrow["title"]; $tid=$myrow["tid"]; $posts=$myrow["posts"]; $max_lenght = "23"; // Shorten topic title if (strlen($title) > $max_lenght) $title = substr_replace($title, '...', $max_lenght); // Print topic title echo " <tr><td><a href=\"http://www.yourboardurl.com/index.php?showtopic=$tid \" target=\"_blank\">$title ($posts)</a></td></tr> "; } echo "</table>"; ?> Endret 13. januar 2006 av KriFos Lenke til kommentar
MC2 Skrevet 13. januar 2006 Del Skrevet 13. januar 2006 jeg klarer ikke å se hvor du har lagt str_replace som fjerner html kode... Lenke til kommentar
avtrekkeren Skrevet 13. januar 2006 Forfatter Del Skrevet 13. januar 2006 Nei jeg har jo ikke det... Hvordan skal jeg gjøre det? Blir det kanskje sånn? $title = htmlentities ($title); $title = html_entity_decode ($title); Er litt grønn... egentlig veldig - brukte 5 timer på denne lille kodesnutten Lenke til kommentar
MC2 Skrevet 13. januar 2006 Del Skrevet 13. januar 2006 (endret) altså... med koden du postet her, når den skriver ut, skriver den med ting som dette: #&;. Hvis den gjør det, bare legg inn // Print topic title $title = html_entity_decode($title); echo " <tr><td><a href=\"http://www.yourboardurl.com/index.php?showtopic=$tid \" target=\"_blank\">".$title." "(".$posts." )</a></td></tr> "; EDIT: liten syntax feil, fikset. Endret 13. januar 2006 av MC2 Lenke til kommentar
avtrekkeren Skrevet 13. januar 2006 Forfatter Del Skrevet 13. januar 2006 Ser ikke ut til å fikse problemet, men oppdaget en ting - har kun dette problemet når jeg har forkortet meldingen til et visst antall tegn... F.eks. når jeg har $max_lenght = "21"; altså til 21 tegn (som jeg bruker i koden på sida mi), så vises den aktuelle setningen slik: Help with Montalban... (7) Mens når jeg bruker $max_lenght = "23"; altså 23 tegn, vises setningen slik: Help with Montalban'... (7) Virker som at en spesialkarakter ikke teller ' som 1 tegn, men som 3 tegn. Derfor, når koden min forkorter en setning som gjør at ' blir forkortet, så viser den begynnelsen på html-koden for ', her altså . Håper det made sense ... Lenke til kommentar
MC2 Skrevet 13. januar 2006 Del Skrevet 13. januar 2006 du kan prøve å gjøre dette: // Shorten topic title $title = html_entity_decode($title); if (strlen($title) > $max_lenght) $title = substr_replace($title, '...', $max_lenght); Lenke til kommentar
avtrekkeren Skrevet 13. januar 2006 Forfatter Del Skrevet 13. januar 2006 (endret) Hjalp ikke... :/ Må på en eller annen måte få ' til å telles som ett tegn og ikke flere før den blir forkortet, men hjalp ikke med det som ble nevnt. edit: eller omvendt, hva om jeg teller antall tegn i spesialkarakterene, og så legger dette resultatet til max_lenght med if? Hmm... edit2: feks om det er to spesialtegn: "It's nice to see you're fine" - denne setningen er egentlig 28 tegn, men pga at ' telles som 5 (& # 3 9 ; ). blir det da 26 tegn + 2 spesialtegn (2x5=10) = 26 + 10 = 36 tegn istedet for 28 tegn. (Måtte skrive koden med mellomrom ellers hadde forumet laget en ' ut av det... ) Dette burde virke - men jeg vet ikke hvordan jeg skal få det til: 1. Finne antall spesial-tegn ($scharnumber) i $string 2. Finne antall tegn ($scharvalue) som spesial-tegnene "koster" (feks ' to ganger = 10) 3. Legge til $scharvalue, minus $scharnumber til $max_lenght, før forkortingen foregår. Endret 13. januar 2006 av KriFos Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå