Seite 1 von 1

Smilie Popup erstellen

Verfasst: 08.11.2007 17:19
von Totti_8
Hallo zusammen,

ich bin noch recht neu in php und möchte gerne für ein gästebuch ein popup mit smilies einfügen. Das Öffnen des popups funktioniert auch soweit ganz gut, aber jetzt weiß ich nicht, wie man von diesem popup einen eintrag in ein formular des großen fensters bekomme, wenn man auf einen "smilie" klickt. Wie lautet der befehl dazu bzw. was muss man machen?

MfG
Totti

Verfasst: 08.11.2007 17:41
von Boecki91
Du versuchst sozusagen eine Funktion von phpBB2 zu imitieren, am besten ist du schaust dir die Komplettlösung aus phpBB2 an.
Wird wahrscheinlich über JavaScript laufen.

Verfasst: 09.11.2007 14:05
von Totti_8
Ich habe bereits nach einer solchen Funktion im PhpBB Script gesucht, aber nirgends eine für mich verständliche antwort gefunden.

Verfasst: 09.11.2007 15:34
von gn#36
Um den Popup JavaScript Code anzusehen solltest du einen Blick in die Datei posting_body.tpl deines Styles und die posting.php werfen.

In der posting_body.tpl findet sich etwas ähnliches wie das hier:

Code: Alles auswählen

<a href="posting.php?mode=smilies" onclick="window.open('posting.php?mode=smilies', '_phpbbsmilies', 'HEIGHT=300,resizable=yes,scrollbars=yes,WIDTH=700');return false;" target="_phpbbsmilies" class="nav">Weitere Smilies ansehen</a>
In der posting.php solltest du mal nach "smilies" suchen (in Kombination mit $mode) ;)

Verfasst: 09.11.2007 16:01
von Totti_8
Das habe ich bereits gefunden, allerdings sehe ich in der posting.php nirgendwo html oder javacode.

Ich habe allerdings im Quelltext eines solchen smilie fenster geguckt und diese funktion gefunden:

Code: Alles auswählen

<script language="javascript" type="text/javascript">
<!--
function emoticon(text) {
	text = ' ' + text + ' ';
	if (opener.document.forms['post'].message.createTextRange && opener.document.forms['post'].message.caretPos) {
		var caretPos = opener.document.forms['post'].message.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		opener.document.forms['post'].message.focus();
	} else {
	opener.document.forms['post'].message.value  += text;
	opener.document.forms['post'].message.focus();
	}
}
//-->
</script>
damit kann ich aber wenig bzw. nichts anfangen. ich habe versucht, diese funktion in mein gästebuch einzubauen, aber es hat nicht funktioniert, bzw. der linkt von den smilies wird nicht angezeigt und im quelltext wird die funktion auch nicht angezeigt :(

edit: mittlerweile wird die funktion angezeigt, aber es funktioniert trotzdem nicht. Hab aber alles von 'post' in den namen von meinem textfeld umbenannt :(

edit:

Code: Alles auswählen

function emoticon(text) {
	text = ' ' + text + ' ';
	if (opener.document.Guestbook.eintrag.message.createTextRange && opener.document.Guestbook.eintrag.message.caretPos) {
		var caretPos = opener.document.Guestbook.eintrag.message.caretPos;
		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
		opener.document.Guestbook.eintrag.message.focus();
	} else {
	opener.document.Guestbook.eintrag.message.value  += text;
	opener.document.Guestbook.eintrag.message.focus();
	}
}
Ich habe das jetzt so gemacht, aber es funktioniert einfach nicht und je mehr ich darauf gucke, desto weniger finde ich den Fehler...
Kann mir hier niemand helfen? Ich sehe immer nur, dass die Hits von dem Topic raufgehen, aber niemand postet, das kann doch nicht sein... :(


Problem Gelöst!
Ich Vollidiot habe ".message" nicht gelöscht, omg -.-