webForumDet fria alternativet

Forumbyggnad

4 svar · 424 visningar · startad av SoulGod

SoulGodMedlem sedan aug. 20051 200 inlägg
#1

Jag har ett forum på min sida, som är extremt tråkigt och funktionsfattigt.
Jag vill bygga in en ny fuktion..
Smilies på sidan ( som wf har ) som man bara kan klicka, så kommer dom in.
Likaså även "**-taggar" och liknande skall finnas där.

Jag vet tyvärr inte hur man skall börja med någon av dessa.
Hur gör jag för att mina besökare ska kunna klicka på en smiley, så kommer dom in i textrutan?**

PeddaMedlem sedan juni 20006 032 inlägg
#2

Detta använder jag för att infoga smilies.

Textarean i exemplet heter "meddelande" och formuläret heter "postForm".

Javascript:

var cPos,
    fObj,
    ieC = Boolean(document.selection && document.selection.createRange);

function smilie(str) {
    if (ieC) {
	if (typeof cPos != "undefined")
	    cPos.text = str;
	else
	    fObj.value = str;
    }

    else if (typeof window.HTMLTextAreaElement != "undefined")
	fObj.value = fObj.value.substring(0, fObj.selectionStart) + str + fObj.value.substring(fObj.selectionEnd);

    else fObj.value += str;
}

function sC() {
    cPos = document.selection.createRange().duplicate();
}

window.onload = function() {
    fObj = document.forms["postForm"].elements["meddelande"];

    if (ieC) {
	fObj.onclick  = function() { sC(); }
	fObj.onkeyup  = function() { sC(); }
	fObj.onselect = function() { sC(); }
    }
}

och länkarna:

<a href="#" onclick="smilie(' :e'); return false;"><img src="smilies/biggrin.gif" alt="stort flin" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :q'); return false;"><img src="smilies/confused.gif" alt="undrande" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :h'); return false;"><img src="smilies/cool.gif" alt="lugn" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :x'); return false;"><img src="smilies/cry.gif" alt="gr&aring;ter" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :P'); return false;"><img src="smilies/drool.gif" alt="dreglar" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :p'); return false;"><img src="smilies/happy.gif" alt="glad" width="18" height="18" border="0" /></a>  
<a href="#" onclick="smilie(' x('); return false;"><img src="smilies/mad.gif" alt="arg" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :('); return false;"><img src="smilies/sad.gif" alt="ledsen" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :t'); return false;"><img src="smilies/sleepy.gif" alt="s&ouml;mnig" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :)'); return false;"><img src="smilies/smile.gif" alt="leende" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :o'); return false;"><img src="smilies/suprised.gif" alt="f&ouml;rv&aring;nad" width="18" height="18" border="0" /></a> 
<a href="#" onclick="smilie(' :bla'); return false;"><img src="smilies/tongue.gif" alt="retsam" width="18" height="18" border="0" /></a>

/red
Glömde ju koden för att ändra tecknen till bilder
Variabeln $text innehåller texten som ska presenteras på sidan.

$smile_search = array(
":e", 
":q", 
":h", 
":x", 
":P",
":p", 
"x(", 
":(", 
":t", 
":)", 
":o", 
":bla"
);
$smile_replace = array(
"<img src='smilies/biggrin.gif' width='18' height='18' alt='stort flin' />",
"<img src='smilies/confused.gif' width='18' height='18' alt='undrande' />",
"<img src='smilies/cool.gif' width='18' height='18' alt='lugn' />",
"<img src='smilies/cry.gif' width='18' height='18' alt='gråter' />",
"<img src='smilies/drool.gif' width='18' height='18' alt='dreglar' />", 
"<img src='smilies/happy.gif' width='18' height='18' alt='glad' />", 
"<img src='smilies/mad.gif' width='18' height='18' alt='arg' />", 
"<img src='smilies/sad.gif' width='18' height='18' alt='ledsen' />", 
"<img src='smilies/sleepy.gif' width='18' height='18' alt='sömnig' />", 
"<img src='smilies/smile.gif' width='18' height='18' alt='leende' />", 
"<img src='smilies/suprised.gif' width='18' height='18' alt='förvånad' />", 
"<img src='smilies/tongue.gif' width='18' height='18' alt='retsam' />"
);
					
$text = str_replace($smile_search, $smile_replace, $text);
PeddaMedlem sedan juni 20006 032 inlägg
#3

Du frågade ju också om s.k bbcode.
Ett exempel hittar du här http://www.webforum.nu/showthread.php?t=105075&highlight=bbcode

SoulGodMedlem sedan aug. 20051 200 inlägg
#4

För att krångla till saker ännu mer ..
Pedda & jag pratade om att jag har en större lista av smileys jag vill ha,
som jag nu läst in i databasen.
Databasen heter smilies, och består av
name & pic

name är själva kommandot som används för att "göra" smileyn, och pic är ju då bilden =)

Hur gör jag då?
Vet att jag lär läsa in det i en array, men vet inte hur.

PeddaMedlem sedan juni 20006 032 inlägg
#5

Det skulle kunna se ut något sånt här

<?php 
$forum = mysql_query("SELECT * FROM forum") or die ("Kunde inte ansluta till forum.");
$smilies = mysql_query("SELECT * FROM smilie") or die ("Kunde inte ansluta till smilie.");
	
while ($cur_forum = mysql_fetch_array($forum)) {
	$text = $cur_forum['text'];
	while ($cur_smilies = mysql_fetch_array($smilies)) {
		$text = str_replace($cur_smilies['name'], "<img src='smilies/".$cur_smilies['pic']."' />", $text);
	}
	echo $text;
}
?>
133 ms totalt · 3 externa anrop · v20260731065814-full.fb544a5a
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)