ERLEDIGT
JA
JA
ANTWORTEN
15
15
ZUGRIFFE
866
866
EMPFEHLEN
-
Hallo,
ich versuche gerade einen kleinen "Editor" einzubauen. Das Ganze t auch einwandfrei, solange die "Grundseite" nicht mit XSL transformiert wurde. Soll heissen, wenn ich den transformierten inhalt in das Seitengerüst stecke ist alles in bester Ordnung. Sobald ich aber aber die Seite per XSL erzeuge ist der Ofen aus ...
"tinyMCE is not defined"
... tiny_mce/langs/de.js
"tinymce ist not defined"
... tiny_mce/themes/advanved/editor_template.js
... tiny_mce/plugins/table/editor_plugins.js
Mir ist völlig schleierhaft was hier nicht stimmt. Wenn wenigstens das manuell zusammengebaute auch nicht funktionieren würde ...
Hat zufällig jemand einen Ansatzpunkt?
Gruß
Roman
-
Moin Roman,
zeige bitte mal das Ergebnis der Transformation.
Ich würde bspw. folgendes vermuten(aus eigener Erfahrung
):
Bei der Transformation wird aus inhaltsleeren Elementen, wie z.B. der Einbindung eines externen JS:
Code :1
<script type="text/javascript" src="tinymce.js"></script>
folgendes
Code :1
<script type="text/javascript" src="tinymce.js"/>
Was zwar in XML OK ist, aber nicht in HTML...möglicherweise wird das Skript dann nicht gefunden.
Ein Workaround wäre evtl., dass du inhaltsleere, aber lt. HTML nicht leere Elemente(also solche, die einen schliessenden Tag erfordern) mit einem HTML-Kommentar versiehst:Selbiges könnte auch bei dem <textarea> , welches für den Editor verwendet wird, der Fall sein.Code :1
<script type="text/javascript" src="tinymce.js"><!-- --></script>
-
Hi,
das ist ein interessanter Ansatz, an sowas hätte ich nie gedacht, aber ...
hier mal mein Ergebnis der body fehlt komplett warum auch immer - wenn man die initfunction rausnimmt kommt es so an wie es soll. Es scheint, als würde sich irgendwie XSL und Javascript an der Stelle beissen, warum auch immer:
interessant finde ich auch, dass meine eigentliche Initfunction gar nicht mehr da zu sein schein ?! sondern s. oben.HTML-Code:<html> <head> <script onload="tinymce.dom.ScriptLoader._onLoad(this,'http://localhost/tiny_mce/langs/de.js',0);" src="http://localhost/tiny_mce/langs/de.js" type="text/javascript"/> <script onload="tinymce.dom.ScriptLoader._onLoad(this,'http://localhost/tiny_mce/themes/advanced/editor_template.js',1);" src="http://localhost/tiny_mce/themes/advanced/editor_template.js" type="text/javascript"/> <script onload="tinymce.dom.ScriptLoader._onLoad(this,'http://localhost/tiny_mce/plugins/table/editor_plugin.js',2);" src="http://localhost/tiny_mce/plugins/table/editor_plugin.js" type="text/javascript"/> </head> </html>
Mir fällt irgendwie gar nichts dazu ein.
Ich habe mir jetzt eine temporäre Lösung gebastelt, da ich sowiso durch einige "Schichten" muss, passe ich mir das Dokument immer schon unterwegs an und spucke das fertige HTML aus, das tut wunderbar, ist aber eine nicht optimale Lösung, weil ich jetzt 2 Wege habe um im Prinzip eine Sache zu bearbeiten (noch fix vorgegebene Dokumente die per Javascript "vorgegeben" editiert werden können) ...
Gruß
Roman
-
Ändere doch erstmal das mit den fehlenden schliessenden </script>-Tags und schaue dann weiter
-
ähm wie das?
also hier mal mein dramatisch guter XSL-Code
dann ist <xsl:apply-templates/> und 2 x <xsl:text><!-- --></xsl:text> eigentlich meine ganze transformation. Der rest wird ja einfach so dazugeschrieben.HTML-Code:<html> <head> <title>Editor</title> <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon"/> <link rel="stylesheet" href="../style.css" type="text/css"/> <script language="javascript" type="text/javascript" src="../tiny_mce/tiny_mce.js"><xsl:text><!-- --></xsl:text></script> <script language="javascript" type="text/javascript"> tinyMCE.init({ language : 'de', theme : "advanced", mode : "textareas", plugins : "table", theme_advanced_toolbar_location : "top", theme_advanced_buttons1: "bold,italic,underline,separator,justifyleft,justifycenter,justifyright,justifyfull,bullist,numlist,undo,redo,code", theme_advanced_buttons2: "tablecontrols", table_styles : "Header 1=header1;Header 2=header2;Header 3=header3", table_cell_limit : 1000, table_row_limit : 10, table_col_limit : 10, theme_advanced_buttons3: "" }); </script> </head> <body> <form method="post" action="test.php?f=fullpath?l=label"> <div align="center"> <textarea id="elm1" name="elm1" rows="30" cols="80" style="width: 90%"><xsl:text><!-- --></xsl:text> <xsl:apply-templates/> </textarea> <input type="submit" value="weiter" /> </div> </form> </body> </html>
Hab ich dich jetzt richtig verstanden, ich soll, sofern ich das grade richtig gesehen habe, in den TinyMCE-Dateien an den RegExp rumbasteln?
Gruß
Roman
-
-
Naja das ist der Ausschnitt für das hier an dieser stelle klammernde Element

<xsl:template match="....">
hab ich mir gespart und was nicht dazu gehört
und bei <xsl:apply-templates/> gehts natürlich noch "rein", aber das ist nur damit wollte ich keinen langweilen, das ist quasi <absatz> nach <p> usw. eine recht kurz und knapp gehalten Umsetzung XML nach HTML
Gruß
Roman
-
Ok, ....dann erzeuge diesen Kommentar nicht per <xsl:text> sondern über das dafür bestimmte Element:
Inhalt brauch es ja keinenCode :1
<xsl:comment/>
Beim <textarea> benötigst du den Kommentar nicht...da hast du ja das <xsl:apply-templates />
Es gäbe da noch einen einfacheren Weg, und zwar könntest du das Dokument per saveHTML() statt per saveXML() ausgeben(falls du die Transformation per PHP vornimmst)...allerdings erzeugt das nur HTML-Code, welcher nicht valide wäre, falls du das Dokument als XHTML auszeichnen willst.
-
sorry bin jetzt erst dazugekommen ...
also der Kommentar auf die Art bringt das gleiche Ergebnis.
Code :1 2
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <?xml-stylesheet href="../test.xsl" type="text/xsl"?>
Das schreib ich einfach an den XML-Datei-Start und lasse den Browser den Rest machen
also kein PHP
Gruß
Roman
-
Jo, über den Browser gehts bei mir auch nicht...keine Ahnung, warum.
Daher mein Vorschlag: machs mit PHP
-
Hi,
ist doch immer wieder schön wenn man an sich selbst zweifelt
- es aber dann jemand Anderen auch so ging *g*
na gut, dann werde ich mal mein Glück versuchen.
Danke und Gruß
Roman
PS: da ich noch nie PHP zum XSL transformieren verwendet habe, hast du zufällig ein schönes Tutorial zur Hand, bevor ich das NET durchsuche
-
Kein Tutorial, aber eine Funktion

PHP-Code:<?php
function transform($xsl,$xml)
{
$xslDoc= new DOMDocument;
$xslDoc->load($xsl);
$xmlDoc= new DOMDocument;
$xmlDoc->load($xml);
$xp = new XsltProcessor;
$xp->importStylesheet($xslDoc);
$doc = $xp->transformToDoc($xmlDoc) or die('Transformation error!');
$doc->preserveWhiteSpace=true;
$doc->formatOutput=true;
return $doc;
}
$doc=transform('pfad/zur/xsl.xsl','pfad/zur/xml.xml');
echo $doc->saveXML($doc->documentElement);
?>
-
Vielen Dank
-
Hi,
das funktioniert ja wirklich
nur was ich nicht so recht verstanden hab, warum muss ich in der php.ini "php_domxml.dll" auskommentieren?
Nochmal vielen Dank
Gruß
Roman
-
..wer sagt das ?nur was ich nicht so recht verstanden hab, warum muss ich in der php.ini "php_domxml.dll" auskommentieren?

Ich würde mal vermuten, dass so Konflikten mit dieser Erweiterung(dom_xml) aus dem Wege gegangen werden soll...die gepostete Funktion erfordert die DOM-API, welche ab PHP5 Bestandteil von PHP ist.
Ähnliche Themen
-
tinymce
Von andrii im Forum PHPAntworten: 23Letzter Beitrag: 14.05.09, 09:43 -
TinyMCE
Von schutzgeist im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 12.01.08, 09:21 -
TinyMCE
Von d-braun im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 07.05.07, 19:11 -
CMS mit TinyMCE , PHP, MySQL
Von EmilPopov im Forum PHPAntworten: 0Letzter Beitrag: 12.06.06, 13:56 -
Tinymce
Von domiweber im Forum PHPAntworten: 1Letzter Beitrag: 04.04.06, 01:42





Zitieren


Login





