tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
15
ZUGRIFFE
866
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    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
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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:
    Code :
    1
    
    <script type="text/javascript" src="tinymce.js"><!-- --></script>
    Selbiges könnte auch bei dem <textarea> , welches für den Editor verwendet wird, der Fall sein.
     

  3. #3
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    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:

    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>
    interessant finde ich auch, dass meine eigentliche Initfunction gar nicht mehr da zu sein schein ?! sondern s. oben.

    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
     

  4. #4
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Ändere doch erstmal das mit den fehlenden schliessenden </script>-Tags und schaue dann weiter
     

  5. #5
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    ähm wie das?

    also hier mal mein dramatisch guter XSL-Code

    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>
    dann ist <xsl:apply-templates/> und 2 x <xsl:text><!-- --></xsl:text> eigentlich meine ganze transformation. Der rest wird ja einfach so dazugeschrieben.
    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
     

  6. #6
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Zitat Zitat von roman0906 Beitrag anzeigen

    also hier mal mein dramatisch guter XSL-Code
    Ist das alles
    Falls ja, ist das kein XSL.

    Und wie sieht das XML dazu aus?
     

  7. #7
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    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
     

  8. #8
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Ok, ....dann erzeuge diesen Kommentar nicht per <xsl:text> sondern über das dafür bestimmte Element:

    Code :
    1
    
    <xsl:comment/>
    Inhalt brauch es ja keinen

    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.
     

  9. #9
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    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
     

  10. #10
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Jo, über den Browser gehts bei mir auch nicht...keine Ahnung, warum.

    Daher mein Vorschlag: machs mit PHP
     

  11. #11
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    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
     

  12. #12
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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);
    ?>
     

  13. #13
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    Vielen Dank
     

  14. #14
    roman0906 roman0906 ist offline Mitglied
    Registriert seit
    Jan 2009
    Beiträge
    19
    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
     

  15. #15
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    nur was ich nicht so recht verstanden hab, warum muss ich in der php.ini "php_domxml.dll" auskommentieren?
    ..wer sagt das ?

    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

  1. tinymce
    Von andrii im Forum PHP
    Antworten: 23
    Letzter Beitrag: 14.05.09, 09:43
  2. TinyMCE
    Von schutzgeist im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 12.01.08, 09:21
  3. TinyMCE
    Von d-braun im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 07.05.07, 19:11
  4. CMS mit TinyMCE , PHP, MySQL
    Von EmilPopov im Forum PHP
    Antworten: 0
    Letzter Beitrag: 12.06.06, 13:56
  5. Tinymce
    Von domiweber im Forum PHP
    Antworten: 1
    Letzter Beitrag: 04.04.06, 01:42

Stichworte