jorgis Skrevet 21. februar 2004 Del Skrevet 21. februar 2004 Holder på med et "one-click smiley insert"-skript, slik at når man trykker på en thumb av en smiley, legges den inn i teksten i form av BBCode. (mye det samme som er på forumet her). Problemet oppstår når dette skal "parses" om til korrekt HTML. Alle smileyer og tilhørende BBCode hentes dynamiskt fra en mappe, og det er meningen skal være hovedkraften i skriptet. Derfor lagres alle smiley-BBCodes i et array. For parsingen av BB-kodene brukes to arrays og en str_replace-greie. I array #1 er BB-kodene, og i array #2 er det som BB-kodene skal oversettes til. Problemet er at jeg må ha innholdet i arrayet med smileyer inn i array #1. Hvordan får jeg dette til? En annen ting er at arrayet inneholder _alle_ smileyene som er tilgjengelig for bruk. Jeg trenger bare akkurat de som er i bruk i akkurat den "posten". Hvordan gjør jeg dette? PS: Hvis dere ikke skjønner bæret av hva jeg snakker om, kan jeg poste litt kode. Lenke til kommentar
TiMMi- Skrevet 22. februar 2004 Del Skrevet 22. februar 2004 Skjønte ikke helt hva du mente... får vi noe kode? Lenke til kommentar
jorgis Skrevet 22. februar 2004 Forfatter Del Skrevet 22. februar 2004 Jepp. Er litt komplisert å forklare (og også å skjønne? ) Smileyene sankes inn fra mappen smileys på denne måten: if ($handle = opendir('smileys')) { while (false !== ($file = readdir($handle))) { if ($file != "." && $file != "..") { $filnavn = str_replace(".gif","",$file); $filnavn = str_replace("$filnavn",":$filnavn:",$filnavn); } } closedir($handle); } Filnavnene modifiseres til de får rett BB-Code-form. $filnavn inneholder navnene på alle filene i mappen. BB-Code oversettes på denne måten: $bbcodes = array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[url]','[/url]','[img=',']','[code]','[//code]','' . $filnavn . '');//BB-codes som skal brukes legges her $htmlcodes = array('<b>','</b>','<i>','</i>','<u>','</u>',' ',' ','<img src="','">','','','<img src="smileys/' . $file . '">');// Her er erstatningene, i lik rekkefølge $nyhet = str_replace("\n","<br>",$nyhet); //fikser linjeskift $nyhet = preg_replace("/\[url=([a-z]+?:\/\/)(.*?)\](.*?)\[\/url\]/i", "<a href=\"\\1\\2\" target=\"_blank\">\\3</a>", $nyhet); //fikser [url]-taggen $nyhet = str_replace($bbcodes, $htmlcodes, $nyhet); // setter inn erstatninger for BBcode Problemet består av å kun legge til variablene til smileyene som er i bruk i akkurat den nyheten. Slik det er nå, består $filnavn av alle smileynavnene, men jeg trenger bare akkurat de som er i bruk. ...er selvfølgelig også åpen for alternative måter å "parse" BB-koden på... 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å