Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Thema bewerten Ansicht
  #1  
Alt 05.07.06, 14:06
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33
Custom Tags im RTE

Hallo,

ich nutze die Extension Custom Tags um diverse Kürzel und Formatierungen für meine Redakteure einfach zugänglich zu machen.

---
Kurz für alle die diese Extension nicht kennen:
Ich gebe beispielsweise folgenden Satz im RTE ein:
"Der Artikel kostet <product>club3d.gf5200.preis</produkt>"
Daraus wird dann auf der Webseite
"Der Artikel kostet 99,00 € *"
---

Problem an dem Ganzen ist, wenn ich im RTE einen beliebigen Text in spitzen Klammern schreibe, werden diese in HTML Zeichen umgewandelt.

Statt <hallo> steht dann nach dem Speichern im RTE Fenster und im Quelltext der ausgegebenen Seite &lt;hallo&gt;. Die Custom Tags funktionieren somit also nicht.

Nun steht in der Dokumentation von htmlArea man soll folgenden Code zum TSConfig hinzufügen wenn die Custom Tags nicht gehen:

Typoscript-Code:
1:
2:
RTE.default.proc.allowTags = list-of-allowed-tags
RTE.default.proc.HTMLparser_rte.tags.mycustomtag.protect =1

Das hat bei mir aber irgendwie keine Wirkung (die "list-of-allowed-tags" hab ich natürlich angepasst).

Kann mir jemand sagen, wie ich HTMLarea dazu bringe (das zu tun was ich will ) < und > nicht mehr umzuwandeln. Zumindest für meine Custom Tags nicht?

Viele Grüße
das Nom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #2  
Alt 06.07.06, 13:46
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

Hallo,

also gut, jetzt bin ich einen Schritt weiter. Saudumme Sache:

Wie testet dasNom seine Custom Tags?
Auf einer Page mit einer selbstgeschriebenen Extension die ein HTMLarea Feld hat.
Hat dasNom schonmal seine Custom Tags in einem "normalen" Text-Element getestet?
Äh, nein...
Warum nicht?
Tja, das hätte ich wohl tun sollen, denn da funktioniert das mit den Tags. Jetzt muss ich nur noch rausfinden, was ich tun muss damit das überall, vor allem in meinen Extensions geht...

Irgendwelche Tipps?

Viele Grüße
dasNom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #3  
Alt 07.07.06, 08:44
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

Hallo nochmal,

okay, wie man den RTE in die eigene Extension integriert steht hier: http://typo3.org/documentation/docum...rent/view/5/1/

So wie das dort zu lesen ist, habe ich das mal umgesetzt. Ich hoffe zumindest, dass ich das habe, jedenfalls funktioniert es nicht. Folgendes habe ich gemacht:

Datei ext_localconf.php
PHP-Code:
if (!defined ('TYPO3_MODE'))  die ('Access denied.');
t3lib_extMgm::addUserTSConfig('options.saveDocNew.user_tariftable_features=1');
t3lib_extMgm::addUserTSConfig('options.saveDocNew.user_tariftable_cat=1');

  
## Extending TypoScript from static template uid=43 to set up userdefined tag:
t3lib_extMgm::addTypoScript($_EXTKEY,'editorcfg','
  tt_content.CSS_editor.ch.user_tariftable_pi1 = < plugin.user_tariftable_pi1.CSS_editor'
,43);

t3lib_extMgm::addPItoST43($_EXTKEY,'pi1/class.user_tariftable_pi1.php','_pi1','list_type',1);

$TYPO3_CONF_VARS['BE']['RTE_reg']['user_tariftable'] = array('objRef' => 'EXT:pi1/class.user_tariftable_base.php:&user_tariftable_base'); 
Die letzte Zeile ist von mir.

PHP-Code:
<?php
  
require_once(PATH_t3lib.'class.t3lib_rteapi.php');

  class 
user_tariftable_base extends t3lib_rteapi {


    
// External:
    
var $RTEdivStyle;                // Alternative style for RTE <div> tag.
    // Internal, static:
    
var $ID 'rte';                // Identifies the RTE ...
    
var $debugMode FALSE;            // Debug mode

    /**
    * Returns true if the RTE is available. Here you check if the browser requirements are met.
    * If there are reasons why the RTE cannot be displayed you simply enter them as text in ->errorLog
    *
    * @return    boolean        TRUE if this RTE object offers an RTE
    */
    
function isAvailable()    {

      global 
$CLIENT;

      if (
TYPO3_DLOG)    t3lib_div::devLog('Checking for availability...','rte');

      
$this->errorLog = array();
        if (!
$this->debugMode)    {    // If debug-mode, let any browser through
        
if ($CLIENT['BROWSER']!='msie')     $this->errorLog[] = '"rte": Browser is not MSIE';
        if (
$CLIENT['SYSTEM']!='win')         $this->errorLog[] = '"rte": Client system is not Windows';
        if (
$CLIENT['VERSION']<5)             $this->errorLog[] = '"rte": Browser version below 5';
      }
      if (!
count($this->errorLog))    return TRUE;
    }

    
/**
    * Draws the RTE as an iframe for MSIE 5+
    *
    * @return    string        HTML code for RTE!
    */

    
function drawRTE(&$pObj,$table,$field,$row,$PA,$specConf,$thisConfig,$RTEtypeVal,$RTErelPath,$thePidValue)    {

      
// Draw form element:
      
if ($this->debugMode)    {    // Draws regular text area (debug mode)
        
$item parent::drawRTE($pObj,$table,$field,$row,$PA,$specConf,$thisConfig,$RTEtypeVal,$RTErelPath,$thePidValue);
      } else {    
// Draw real RTE (MSIE 5+ only)
        // Adding needed code in top:
        
$pObj->additionalJS_pre['rte_loader_function'] = $this->loaderFunc($pObj->formName);
        
$pObj->additionalJS_submit[] = "
        if(TBE_RTE_WINDOWS['"
.$PA['itemFormElName']."'])    { document.".$pObj->formName."['".$PA['itemFormElName']."'].value = TBE_RTE_WINDOWS['".$PA['itemFormElName']."'].getHTML(); } else { OK=0;
        /*...*/
        // Transform value:
        $value = $this->transformContent('rte',$PA['itemFormElValue'],$table,$field,$row,$specConf,$thisConfig,$RTErelPath,$thePidValue);
        // Register RTE windows:
        $pObj->RTEwindows[] = $PA['itemFormElName'];
        $item = '
                '.$this->triggerField($PA['itemFormElName']).'
                 <input type="
hidden" name="'.htmlspecialchars($PA['itemFormElName']).'" value="'.htmlspecialchars($value).'" />
                <div id="
cdiv'.count($pObj->RTEwindows).'" style="'.htmlspecialchars($RTEdivStyle).'">
                <iframe
                src="'.htmlspecialchars($rteURL).'"
                id="'.$PA['
itemFormElName'].'_RTE"
                style="
visibility:visibleposition:absoluteleft:0pxtop:0pxheight:100%; width:100%;"></iframe>
                </div>';
      }
      // Return form item:
      return $item;
    }
  }

?>
Das ist das PHP Skript aus der Dokumentation.

Wenn ich jetzt im RTE-Feld meiner Extension einen Custom Tag eingebe, klappt das aber noch immer nicht. Aus < und > wird immernoch &lt; und &gt;.

Was habe ich falsch gemacht / übersehen?

Viele Grüße
dasNom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #4  
Alt 06.08.06, 19:13
Benutzerbild von steffenK
Forum Aktivist
 
Registriert seit: 25.11.05
Alter: 46
Beiträge: 94

Hi dasNom,

damit das kein Selbstgespräch wird, misch ich mich mal ein.

Ich bin noch nicht an der Stelle wie Du, da der Schritt im normalen Textfeld versagt, trotz des Hinzufügens in der TSConfig.
Nach Speichern sind die wieder in Entities umgewandelt.

Vielleicht bist Du ja schon etwas weiter und kannst noch einen Tipp geben.

un das zu verdeutlichen: wenn ich im rte mein Tag im quelltext eingebe (<codebox>der Text zwischen den tags</codebox>) dann macht er daraus:
<codebox></codebox>der Text zwischen den tags</codebox><//codebox>
__________________
vg Steffen

Geändert von steffenK (06.08.06 um 19:29 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #5  
Alt 07.09.06, 13:42
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

Hallo,

ich bin nun etwas weiter gekommen, leider aber noch nicht so weit wie ich gerne wäre. Folgendes hat sich in der Zwischenzeit ereignet:

Erstmal hab ich das, was ich im vorhergehenden Posting geschrieben habe wieder verworfen.

Dann habe ich herausgefunden, wie man die im TSConfig festgelegte Verhaltensweise für den RTE in eine selbstgebastelte Extension überträgt. Das geht so:

Ich ändere die Ausgabe des Content in meinem Skript etwas ab.

Alt:
PHP-Code:
$out $this->cObj->wrap($Feature['faq'],$this->conf[$sIsTab]['faq.']['wrap']); 
Neu:
PHP-Code:
$out $this->cObj->wrap($this->formatStr($Feature['faq']),$this->conf[$sIsTab]['faq.']['wrap']); 
Die beiden oben angegebenen Codeschnipsel unterscheiden sich in folgendem Punkt:

PHP-Code:
$this->formatStr($Feature['faq']) 
Hier die dazugehörige Funktion die ich in meine Extensionklasse eingefügt habe:

PHP-Code:
function formatStr($sStr) {
    if (
is_array($this->conf['general_stdWrap.']))  {
      
$sStr $this->cObj->stdWrap($sStr,$this->conf['general_stdWrap.']);
    }
    return 
$sStr;
  } 
Hier wird geprüft ob 'general_stdWrap.' in der Typoscript-Config der Extension gesetzt wurde. Wenn ja, greift die RTE Config.

Da ich keine speziellen Wünsche an das Verhalten des RTE in meiner Extension hatte, habe ich einfach die Standardconfig übernommen. Und zwar so:

Typoscript-Code:
1:
plugin.MEINE_EXTENSION_pi1.general_stdWrap.parseFunc < tt_content.text.20.parseFunc

(Diese Lösung habe ich aus einer Typo3 Mailingliste deren Link mir unglücklicherweise verloren ging)

Danach war alles so wie ich mir das gewünscht habe. Naja, fast alles...

Aus
Code:
<CustomTag>Blahblahblah</CustomTag>
wird immer noch
Code:
&lt:CustomTag&gt;Blahblahblah&lt:/CustomTag&gt;
Die Angabe der in der CustomTag-Doku angegebenen Zeilen:
Typoscript-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
RTE.default.proc {
allowTags = CustomTag, ....
HTMLparser_rte.tags.CustomTag.protect = 1
}

RTE.default.proc.entryHTMLparser_db = 1
RTE.default.proc.entryHTMLparser_db {
htmlSpecialChars = -1
allowTags = CustomTag, ...
}
zeigt keinerlei Wirkung.

Viele Grüße
dasNom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #6  
Alt 07.09.06, 21:04
Benutzerbild von steffenK
Forum Aktivist
 
Registriert seit: 25.11.05
Alter: 46
Beiträge: 94

da dasNom nicht weitergekommen ist, hier eine wichtige Hilfe:
Typoscript-Code:
1:
2:
tt_content.text.20.parseFunc.denyTags =
tt_content.text.20.parseFunc.allowTags = *
__________________
vg Steffen
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #7  
Alt 11.09.06, 06:31
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

Hallo steffenK,

Danke für den Tip. Leider hat das bei mir nichts gebracht. Der RTE macht immernoch das selbe.

Viele Grüße
dasNom
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #8  
Alt 21.09.06, 13:40
Benutzerbild von Alfred57
Forum Aktivist
 
Registriert seit: 22.08.06
Ort: Graz
Beiträge: 77

Hallo,

ich habe auch dieses Proplem mit Custom Tags. Gibt es bei Typo3 irgendetwas, wo es keine Probleme gibt? Das mache ich dann.
Noch etwas ist mir unklar:
Wo gebe ich meine Style Regel ein? Im "Ergebnis" Feld?
Bei der Installation habe ich die Meldung erhalten nicht geeignet für Typo3 4.01 - so ähnlich. Liegt es etwa daran?

Alfred
__________________
http://www.wigl-design.at

Geändert von Alfred57 (21.09.06 um 14:02 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #9  
Alt 25.09.06, 11:05
Benutzerbild von DasNom
Forum Newbie
 
Registriert seit: 24.11.05
Ort: Immenstadt
Beiträge: 33

Hallo Alfred,

Zitat:
Zitat von Alfred57
ich habe auch dieses Proplem mit Custom Tags. Gibt es bei Typo3 irgendetwas, wo es keine Probleme gibt?
Das mit den CustomTags im RTE scheint tatsächlich desöfteren vor zu kommen. Ich habe nun schon einige verzweifelte Postings im Netz dazu gelesen.
Typo3 an sich ist wohl an dieser Misere unschuldig. Das Problem ist meiner Meinung nach allein der RTE. Obwohl dessen Konfiguration in den letzten Jahren immer einfacher wurde, ist sie noch immer sehr undurchsichtig und schon garnicht einfach.
Sollte ich dahinter kommen, wie man diese Sache mit den CustomTags hinbekommt, poste ich die Lösung.

Zitat:
Wo gebe ich meine Style Regel ein? Im "Ergebnis" Feld?
Bei der Installation habe ich die Meldung erhalten nicht geeignet für Typo3 4.01 - so ähnlich. Liegt es etwa daran?
Wie man die Style-Regeln eingibt findest Du in der RTE-Dokumentation (oder besser "FAQ":sad:

typo3.org: Documentation: htmlArea RTE (Users Manual)

Edit:
Ich seh gerade dass die "FAQ" für den RTE Deine Frage eigentlich nicht beantwortet. Hier eine ganz gute Anleitung für den RTE:

Cast Iron Coding: Recommended Configuration for htmlArea

Viele Grüße
dasNom

Geändert von DasNom (25.09.06 um 11:15 Uhr).
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
  #10  
Alt 25.09.06, 14:32
Benutzerbild von Alfred57
Forum Aktivist
 
Registriert seit: 22.08.06
Ort: Graz
Beiträge: 77

Hallo DasNom,

ich gebe Dir vollkommen Recht, ich glaube auch, dass es am RTE liegt. Mein RTE ist sowieso "komisch". Bei der Modus Demo Einstellung (sollten ja alle Erweiterungen sichtbar sein) sind fast keine Erweiterungen vorhanden. Bei Typical auch nur wenige.
Soll ich den RTE neu installieren, oder fehlt mir ein "Knopf" zum Einstellen?

Alfred
__________________
http://www.wigl-design.at
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!Spurl this Post!Reddit! Diesen Post bei linksilo.de bookmarken!
Mit Zitat antworten
Antwort


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are An


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
div und p-tags Armin TYPO3 4.x Rich Text Editor 3 03.01.08 17:11
Custom Tag in Typo3 martin_s TYPO3 4.x Rich Text Editor 1 06.06.07 17:46
custom page title Dr.Schmidt TYPO3 4.x Fragen und Probleme 4 20.09.06 13:44
Code-Tags im RTE parchegroup TYPO3 4.x Rich Text Editor 1 04.08.06 23:01
Verschachtelte Tags... sissi TemplaVoila 2 27.08.05 23:54


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 Uhr.


Powered by vBulletin® Version 3.6.8 Patch Level 2 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0
Template-Modifikationen durch TMS