webForumDet fria alternativet

Forumbyggnad

PHP

4 svar · 424 visningar · startad av SoulGod

Medlem sedan aug. 20051 200 inlägg
Frågan#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?**

Medlem sedan juni 20006 031 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);
Medlem sedan juni 20006 031 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

Medlem 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.

Medlem sedan juni 20006 031 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;
}
?>
254 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)