eigener Wysiwyg Editor: Darstellungsproblem

Hallo,

hey das hast du echt gut hin bekommen. Hmm aber kannst du mir mal sagen, was passiert, wenn du dann auf Speichern klickst? Macht er dann einen Eintrag in die DB oder was löst das aus?

Gruß Blümchen

EDIT: Für das was du noch machen willst denke ich brauchst du eher JavaScript, willst du denn nicht mal im JavaScript Forum Fragen? Ich kann dir da leider nicht weiter helfen, da ich mit JavaScript mich nur sehr wenig auskenne.

Aber hmm wenn ich mir das richtig überlege hat reptiler nicht in dem von Ihm genannten Tread das mal erklärt wie man das mit den Farben und so machen kann?
 
Zuletzt bearbeitet von einem Moderator:
Blümchen hat gesagt.:
Aber hmm wenn ich mir das richtig überlege hat reptiler nicht in dem von Ihm genannten Tread das mal erklärt wie man das mit den Farben und so machen kann?
Hallo,
da hat er aber nur erklärt, wie man mit Javascript BBCode Tags in ein Textarea einfügen kann.

mfg
forsterm
 
Hallo,

ach so das wusste ich nicht ich habe mir das nicht alles durch gelesen, denn ich brauche das gerade noch nicht.

Gruß Blümchen
 
@blümchen:Ja das wir in einen Datenbank ab gespeichert.

@forsterm: Hast recht ich brauch die bb Tags nicht :)

Also wo mein Problem liegt ist der. Ich verstehe diesen Javascript Code nicht.
Code:
<script language="javascript">
//<!--
var uagent = navigator.userAgent.toLowerCase();
var ie_ok = -1;
var gecko_ok = -1;
 
if(uagent.indexOf("gecko") && navigator.productSub >= 20030210)
{ gecko_ok=1; }
if(uagent.indexOf("msie") != -1 && uagent.indexOf("opera")== -1 && (uagent.indexOf("msie 5.5") || uagent.indexOf("msie 6.")))
{ ie_ok = 1; }
 
function InitToolbarButtons()
{
kids = document.getElementsByTagName('div');
for (var i=0; i < kids.length; i++) 
{
	if (kids[i].className == "imagebutton") 
	{
	 kids[i].onclick = tbclick;
	}
}
}
function tbmousedown(e)
{
if(gecko_ok==1)
{
	e.preventDefault();
}
}
function tbmouseout(id)
{
document.images[id].src="mycms/editor/images/buttons/"+ id +"n.gif";
}
function tbmouseover(id)
{
document.images[id].src="mycms/editor/images/buttons/"+ id +"a.gif";
}
function tbclick()
{
if(this.id == 'createlink')
{
	 if(ie_ok == 1)
	 {
	 edit.document.execCommand('createlink'); 
	 edit.focus();
	 }
 
	 if(gecko_ok == 1)
	 { 
	 var szURL = prompt("Enter a URL:", "");
	 document.getElementById('edit').contentWindow.document.execCommand("CreateLink",false,szURL);
	 } 
}
else
{
if(gecko_ok == 1)
{
	document.getElementById('edit').contentWindow.document.execCommand(this.id, false, null);
}
if(ie_ok == 1)
{
	edit.document.execCommand(this.id, false, null);
	edit.focus();
} 
}
}
function Start()
{
if(gecko_ok == 1)
{
	 document.getElementById('edit').contentWindow.document.designMode = "on";
	 try
	 {
	 document.getElementById('edit').contentWindow.document.execCommand("undo", false, null);
	 }
	 catch (e)
	 {
	 gecko_ok = -1;
	 }
}
}
function processData()
{
if(ie_ok==1) var htmlCode = edit.document.body.innerHTML;
if(gecko_ok==1) var htmlCode = document.getElementById('edit').contentWindow.document.body.innerHTML;
document.form_content.content.value = htmlCode;
 
if(document.form_content.content.value == '')
{
	alert('Da is nix drinnen ... das nicht gut!');
	return false;
}
}
//-->
</script>

kann mir das jemand erklären?
Gruß
Kalicki
 
Zuletzt bearbeitet:
Hallo,

darf ich mla das Script sehen wo die Daten dann in die DB speichert und wie sieht bei dir die DB aus?

Kannst mir auch via PM schicken wenn du es hier net machen willst.

Gruß Blümchen
 
Hallo Burschen,
also zum js-Code:

1. Überprüfung ob IE oder Gecko - Browser
2. InitToolbarButtons:
diese Fkt geht alle divs mit name "imagebutton" durch und unterlegt sie mit einer onClick Eigenschaft, so dass beim Klicken tbclick() ausgeführt wird
3. tbmousedown - keine Ahnung
4. tbmouseover / -out
Nur ne graphische Spielerein, wenn du über die ICONs fährst. Wenn du zwei Bilder hast (dieses "..."+id+"n..." und "..."+id+"a..."), springen die beim Maus drüberbewegen um.
5. tbclick
Es wird über this.name (einzelne Tag Namen) das übergeben, was execCommand ausführen soll (also Bold, Underline,...), ausser bei "createLink", wird noch ein prompt eingebaut und daher extra. Die möglichen Übergabewerte von execCommand kann man sich in zig. Dokus anschauen, auf jeden Fall formatiert er dann automatisch den Text HTML - mäßig so, wie verlangt.
6. Start überprüft ob Gecko und macht das ganze dann editierbar.
7 processData()
zeigt den konstruierten HTML - Code an. Je nach dem ob IE oder Gecko greift er anders auf die edit.htm zu.


Und genau DIESER HTML - Code ist es, den man dann später in die DB - speichern will. Kleiner Tip am Rande, falls man sich die Inhalte der DB anzeigen lassen will, aber keinen Bock auf HTML - Tags hat: html_entity_decode() (php).

Ich hoffe, ich konnte helfen. Wenn was nicht klar geworden ist, einfach her damit!

Bis die Tage.
 
@ Blümchen:
Wo is das Problem bei der DB - Sache?
Du hast eine "hidden" textarea im Editor namens "edit" in der dann der vollständig formatierte Code drinsteht. Also fügst du auf der im <form> - Tag definierten action - Seite einfach
$text = $_POST['edit']
ein.
Und dann einfach:
$query = "INSERT INTO tabelle VALUE text='".$text."'";
wobei die Tabelle halt dann eine text - Spalte enthalten muss:
create table tabelle (
id int primary key auto_increment not null,
text text);
die "id", weil´s besser ist! ;)

War das deine Frage?
 

Neue Beiträge

Zurück