Zum Inhalt springen

Word past & copy -> MsoNormal entfernen?

Erstellt am 6. Januar 2009 · 6 Antworten · letzte Antwort am 10. Januar 2009

Tags: Frage

sichmann ·

Hallo Leute, beim einfügen mittels STRG-V aus Word in den RTE wird alles entfernt, bis auf die Besch... Klasse class="MsoNormal".

Wie kann ich dies Klasse entfernen? Gibt es die Möglichkeit eine Klasse zu verbieten?

Das geht nicht: disallowedClasses = MsoNormal

Mein TS:

TCEMAIN.permissions.groupid = 1
TCEMAIN.permissions.user = show, editcontent, edit, delete, new
TCEMAIN.permissions.group = show, editcontent, edit, new
mod.SHARED {
  defaultLanguageFlag = de.gif
  defaultLanguageLabel = deutsch
}
RTE.default {

  hidePStyleItems = div,blockquote,pre,address,h6
  contentCSS = fileadmin/css/typo3-RTE.css
  showTagFreeClasses = 1
  showButtons = *
  hideButtons = lefttoright, righttoleft, fontstyle, fontsize, showhelp, textcolor, bgcolor, left, strikethrough, underline, inserttag, user, findreplace
  keepButtonGroupTogether = 1
  classesCharacter = mono,file,directory,infoHeadline,questionHeadline,stopHeadline,underline,strikethrough,farbe1, farbe2, farbe3, farbe4, farbe5, farbe6, farbe7, farbe8, sehr_klein, klein, normal, gross, sehr_gross
  classesParagraph = code,note,important,warning,info,question,stop,citation,csc-frame-frame1,csc-frame-frame2,align-center,align-left,align-right,align-justify,Absatzformat1, Absatzformat2,Absatz2_farbe1_linie, Absatz2_farbe2_linie, Absatz2_farbe3_linie, Absatz2_farbe4_linie,Absatz2_farbe5_linie, Absatz2_farbe6_linie, Absatz2_farbe7_linie, Absatz2_farbe8_linie,farbe1, farbe2, farbe3, farbe4, farbe5, farbe6, farbe7, farbe8, sehr_klein, klein, normal, gross, sehr_gross 
  allowedClasses = mono,file,directory,infoHeadline,questionHeadline,stopHeadline,code,note,important,warning,info,question,stop,citation,csc-frame-frame1,csc-frame-frame2,align-center,align-left,align-right,align-justify,underline,strikethrough,Absatzformat1, Absatzformat2,Absatz2_farbe1_linie, Absatz2_farbe2_linie, Absatz2_farbe3_linie, Absatz2_farbe4_linie ,Absatz2_farbe5_linie, Absatz2_farbe6_linie, Absatz2_farbe7_linie, Absatz2_farbe8_linie,farbe1, farbe2, farbe3, farbe4, farbe5, farbe6, farbe7, farbe8, sehr_klein, klein, normal, gross, sehr_gross
disallowedClasses = MsoNormal  
proc {
    allowedClasses < RTE.default.allowedClasses
  }
  FE {
    proc  {
      allowedClasses < RTE.default.allowedClasses
    }
  }
  ignoreMainStyleOverride = 0
  mainStyleOverride = body.htmlarea-content-body {font-family:'Trebuchet MS', sans-serif;}
}

RTE.colors {
  color1 {
    name = My color 1
    value = #ff0000
  }
}
RTE.default.colors = color1
RTE.classesAnchor {
  externalLink {
    class = external-link
    type = url
    image >
    titleText =
  }
  externalLinkInNewWindow {
    class = external-link-new-window
    type = url
    image >
    titleText =
  }
  internalLink {
    class = internal-link
    type = page
    image >
    titleText =
  }
  internalLinkInNewWindow {
    class = internal-link-new-window
    type = page
    image >
    titleText =
  }
  download {
    class = download
    type = file
    image >
    titleText =
  }
  mail {
    class = mail
    type = mail
    image >
    titleText =
  }
}
RTE.default.proc {
keepPDIVattribs = align,class,style,id
allowedClasses < RTE.default.classesParagraph
}
#####Kopieren aus Word heraus säubern....

RTE.default.enableWordClean.HTMLparser {
   allowTags (
     a, abbr, acronym, address, blockquote, b, bdo, big, br, caption, center, cite, code, col, colgroup, del, dfn, div, em, h1, h2, h3, h4,  h5, h6, hr, i, img, ins, kbd, li, link, ol, p, pre, q, samp, sdfield,  small, strike, strong, sub, sup, table, thead, tbody, tfoot, td, th,  tr, tt, u, ul, var
          )

    #Linksalat ausschalten.
     tags {
        p {
           allowedAttribs = id, title, dir, lang, xml:lang, class
           fixAttrib.align.unset = 0
           # style=Attribute  abschalten
           fixAttrib.style.unset = 0
        }
        #  Überschriften:
        div < .p
        h1 < .p
        h2 < .p
        h3 < .p
        h4 < .p
        h5 < .p
        h6 < .p
     }
  }

#angry#

Danke für Eure Mühe!

froemken ·

Was möchtest du genau?
Möchtest du, dass bestimmte Klassen schon während des Kopierens in den Editor verschwinden? Das geht nicht.

und...diese allowClasses greifen erst, wenn du den Inhalt speicherst.

Stefan

sichmann ·
froemken schrieb

Was möchtest du genau?
Möchtest du, dass bestimmte Klassen schon während des Kopierens in den Editor verschwinden? Das geht nicht.

und...diese allowClasses greifen erst, wenn du den Inhalt speicherst.

Stefan

Danke für die Antwort, ich möchte das beim Speichern nur die Klasse "MsoNormal" verschwindet. Denn beim Einkopieren aus Word wird immer diese Klasse mitgeliefert, so auf jeden Fall bei Word 2003.

Die Klasse stört ja theoretisch nicht, aber aus Gründen der Quellcodesauberkeit, möchte ich dies weghaben.

Ne Idee?

Gruß Susi

froemken ·

Es gibt ja diese Proc-Klasse in der unter anderem auch der HTML-Parser zu finden ist.

Mit Hilfe diesen HTML-Parsers kannst du angeben welche Classes entfernt sollen beim Transport in die Datenbank.

Meine Mini-Doku zu Proc: http://wiki.winboard.org/index.php/TYPO3_RTE_API#Das_Proc-Objekt

Hier findest du dann das Unterobjekt: HTMLparser in dem du dann mit tags.[name] deinen gewünschten ansprechen kannst.

und dann kannst du mit: https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/Functions/HtmlparserTags.html

auf die einzelnen Attribute zugreifen und löschen.

Leider war ich mit meiner Doku noch nicht soweit, von daher fehlt noch ein Beispiel.

Stefan

sichmann ·

Super, ich danke Euche.....

Kenn jemand von Euch das Problem mit dem Firefox und er Umschaltung von HTML-Code auf Normalansicht im RTE? Das Zurückschalten dauert bei mir ca. 40 Sekunden?????

Nutze TYPO3 4.2.3 und Firefox 3.0.5

Ach ja, nun geht endlich alles mit dieser RTE - TSconfig:

TCEMAIN.permissions.groupid = 1
TCEMAIN.permissions.user = show, editcontent, edit, delete, new
TCEMAIN.permissions.group = show, editcontent, edit, new
mod.SHARED {
  defaultLanguageFlag = de.gif
  defaultLanguageLabel = deutsch
}
RTE.default {

  hidePStyleItems = div,blockquote,pre,address,h6
  contentCSS = fileadmin/css/RTE.css
  showTagFreeClasses = 1
  showButtons = *
  hideButtons =  fontstyle, fontsize, outdent, indent, formattext, bidioverride, big, bold, citation, code, definition, deletedtext, emphasis, insertedtext,  italic, keyboard,  monospaced, quotation, sample, small, strikethrough, strong, subscript, superscript, underline, variable, textcolor, bgcolor, textindicator, emoticon, spellcheck, showhelp, about, outdent, indent, lefttoright, righttoleft, user
  keepButtonGroupTogether = 1
  classesCharacter = mono,file,directory,infoHeadline,questionHeadline,stopHeadline,underline,strikethrough,farbe1,farbe2,farbe3,farbe4,farbe5,farbe6,farbe7,farbe8,farbe9,farbe10,farbeschwarz,farbeweiss,sehr_klein,klein,normal,gross,sehr_gross
  classesParagraph = code,note,important,warning,info,question,stop,citation,csc-frame-frame1,csc-frame-frame2,align-center,align-left,align-right,align-justify,Absatzformat1,Absatzformat2,Absatz2_farbe1_linie,Absatz2_farbe2_linie,Absatz2_farbe3_linie,Absatz2_farbe4_linie,Absatz2_farbe5_linie,Absatz2_farbe6_linie,Absatz2_farbe7_linie,Absatz2_farbe8_linie,farbe1,farbe2,farbe3,farbe4,farbe5,farbe6,farbe7,farbe8,farbe9,farbe10,farbeschwarz,farbeweiss,sehr_klein,klein,normal,gross,sehr_gross
  allowedClasses = mono,file,directory,infoHeadline,questionHeadline,stopHeadline,code,note,important,warning,info,question,stop,citation,csc-frame-frame1,csc-frame-frame2,align-center,align-left,align-right,align-justify,underline,strikethrough,Absatzformat1,Absatzformat2,Absatz2_farbe1_linie,Absatz2_farbe2_linie,Absatz2_farbe3_linie,Absatz2_farbe4_linie,Absatz2_farbe5_linie,Absatz2_farbe6_linie,Absatz2_farbe7_linie,Absatz2_farbe8_linie,farbe1,farbe2,farbe3,farbe4,farbe5,farbe6,farbe7,farbe8,farbe9,farbe10,farbeschwarz,farbeweiss,sehr_klein,klein,normal,gross,sehr_gross
 
proc {
    allowedClasses < RTE.default.allowedClasses
    
  }
  FE {
    proc  {
      allowedClasses < RTE.default.allowedClasses
    }
  }
  ignoreMainStyleOverride = 0
  mainStyleOverride = body.htmlarea-content-body {font-family:'Arial', sans-serif;}
}


RTE.classesAnchor {
  externalLink {
    class = external-link
    type = url
    image >
    titleText =
  }
  externalLinkInNewWindow {
    class = external-link-new-window
    type = url
    image >
    titleText =
  }
  internalLink {
    class = internal-link
    type = page
    image >
    titleText =
  }
  internalLinkInNewWindow {
    class = internal-link-new-window
    type = page
    image >
    titleText =
  }
  download {
    class = download
    type = file
    image >
    titleText =
  }
  mail {
    class = mail
    type = mail
    image >
    titleText =
  }
}
RTE.default.proc {
keepPDIVattribs = align,class,style,id
allowedClasses < RTE.default.classesParagraph
}
#####Kopieren aus Word heraus säubern....

RTE.default.enableWordClean.HTMLparser {
   allowTags (
     a, abbr, acronym, address, blockquote, b, bdo, big, br, caption, center, cite, code, col, colgroup, del, dfn, div, em, h1, h2, h3, h4,  h5, h6, hr, i, img, ins, kbd, li, link, ol, p, pre, q, samp, sdfield,  small, strike, strong, sub, sup, table, thead, tbody, tfoot, td, th,  tr, tt, u, ul, var
          )
    # das kann man noch wesentlich strenger fassen; aus Word kommen ja  nur wenige echte HTML-Tags.
    # Um den Linksalat von Word zu verhindern, kann man z. B. Links  auch ausschalten.
     tags {
        p {
           allowedAttribs = id, title, dir, lang, xml:lang, class
           fixAttrib.align.unset = 0
           # das ist wichtig, um die unsinngen style=Attribute  loszuwerden.
           fixAttrib.style.unset = 0
           fixAttrib.class.unset = 1
        }
        # und anwenden auf alle Überschriften:
        div < .p
        h1 < .p
        h2 < .p


        h3 < .p
        h4 < .p
        h5 < .p
        h6 < .p
     }
  } 
TCEFORM.tt_content.bodytext.RTEfullScreenWidth= 100%

CSS dazu:

@charset "UTF-8";
img {
border:0;
}
/* #############################
Absatzformate
*/

p.csc-frame-frame1 {
background:#EDEBF1;
border:1px solid #000;
padding:5px;
}
p.csc-frame-frame2 {
background:#F5FFAA;
border:1px solid #000;
padding:5px;
}
p.align-center {
text-align:center;
}
p.align-left {
text-align:left;
}
p.align-right {
text-align:right;
}
p.align-justify {
text-align:justify;
}
p.indent {
margin-left:1.5em;
}
table.contenttable {
font-size:0.8em;
}
p sup, p sub {
font-size:0.7em;
}
p.code {
font-family:"Courier New", Courier, monospace;
}
p.note {
background:#dfd;
padding: 1em;
border-bottom: 1px #bdb dotted;
}
p.important {
background:#ffd;
padding:1em;
border-bottom:1px #ddb dotted;
}
p.warning {
background:#fdd;
padding:1em;
border-bottom:1px #dbb dotted;
}
p.info {
padding:1.5em 1.5em 1.5em 4em;
background-color: #f7f7ef;
background-image: url(../img/icons/ausrufez-blau.gif);
background-repeat: no-repeat;
background-position: 10px 10px;
}
p.question {
background:#A43F15 url(../img/icons/fragez-blau.gif) 10px 10px no-repeat;
color:#fff;
padding:1.5em 1.5em 1.5em 4em;
}
p.stop {
background:#fff url(../img/icons/stop.gif) 10px 10px no-repeat;
padding:1.5em 1.5em 1.5em 4em;
border:1px solid #a43f15;
}
p.citation {
background:#fff url(../img/icons/sprechblase.gif) 10px 10px no-repeat;
color:#187ba2;
padding:1.5em 1.5em 1.5em 4em;
border:1px solid #187ba2;
font-style:italic;
}

p.Absatzformat1 {
padding-top: 6px;
padding-right: 4px;
padding-bottom: 6px;
padding-left: 4px;
background-image: url(../layoutbilder/Bilder/titel_bg_20.jpg);
background-repeat: repeat-y;
padding-left:10px;
margin-bottom: 5px;
font-weight:bold;

}
p.Absatzformat2 {
letter-spacing: 1px;
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #DFB358;
border-bottom-width: 1px;
}
p.Absatz2_farbe1_linie {
letter-spacing: 1px;
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #00509e;
border-bottom-width: 1px;
}
p.Absatz2_farbe2_linie {
padding-top: 3px;
padding-right: 10px;
padding-bottom: 3px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #e2001a;
border-bottom-width: 1px;
}
p.Absatz2_farbe3_linie {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #036cb0;
border-bottom-width: 1px;
}
p.Absatz2_farbe4_linie {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: dotted;
border-bottom-color: #a4cae1;
border-bottom-width: 1px;
}
p.Absatz2_farbe5_linie {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
margin-bottom:10px;
padding-left: 0px;
border-bottom-style: dotted;
border-bottom-color: #9bcd66;
border-bottom-width: 1px;
text-transform:uppercase;
}
p.Absatz2_farbe6_linie {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #0099d8;
border-bottom-width: 1px;
font-weight:bold;
color: #000;
}
p.Absatz2_farbe7_linie {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #dfeef5;
border-bottom-width: 1px;
font-weight:bold;
color: #016b45;
}
p.Absatz2_farbe8_linie {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #fecc01;
border-bottom-width: 1px;
font-weight:bold;
color: #908449;
}

p.Absatz2_farbe9_linie {
padding-top: 10px;
padding-right: 10px;
padding-bottom: 10px;
padding-left: 0px;
border-bottom-style: solid;
border-bottom-color: #979797;
border-bottom-width: 1px;
font-weight:bold;
color: #908449;
}
p.farbe1 {
font-weight: bold;
color: #00509e;
}
p.farbe2 {
color: #e2001a;
font-weight: bold;
}
p.farbe3 {
color: #036cb0;
font-weight: bold;
}
p.farbe4 {
color: #a4cae1;
font-weight: bold;
}
p.farbe5 {
color: #9bcd66;
font-weight: bold;
}
p.farbe6 {
color: #0099d8;
font-weight: bold;
}
p.farbe7 {
color: #dfeef6;
font-weight: bold;

}
p.farbe8 {
font-weight: bold;
color: #fecc01;
}
p.farbe9 {
font-weight: bold;
color: #9979797;
}
p.farbeschwarz {
font-weight: bold;
color: #000000;
}
p.farbeweiss {
font-weight: bold;
color: #ffffff;
}

span.farbe1 {
font-weight: bold;
color: #00509e;
}
span.farbe2 {
color: #e2001a;
font-weight: bold;
}
span.farbe3 {
color: #036cb0;
font-weight: bold;
}
span.farbe4 {
color: #a4cae1;
font-weight: bold;
}
span.farbe5 {
color: #9bcd66;
font-weight: bold;
}
span.farbe6 {
color: #0099d8;
font-weight: bold;
}
span.farbe7 {
color: #dfeef6;
font-weight: bold;

}
span.farbe8 {
font-weight: bold;
color: #fecc01;
}
span.farbe9 {
font-weight: bold;
color: #9979797;
}
span.farbeschwarz {
font-weight: bold;
color: #000000;
}
span.farbeweiss {
font-weight: bold;
color: #ffffff;
}
.sehr_klein {
font-size:70%;
}
.klein{
font-size:85%;
}
.normal{
font-size:100%;
}
.gross{
font-size:120%;
}
.sehr_gross{
font-size:140%;
}

Gruss und Danke!

froemken ·

Wir arbeiten mit McAfee und dieser Virenscanner blocked und checked Ewigkeiten an diesen ganzen JavaScripts rum. Allein für die LLXML-Extension, um ein paar Felder der sr_feuser_register anzupassen benötigt meine Kiste über 10 Sekunden und die Festplatten-LED leuchtet auf wie bekloppt.

Wenn's der Virenscanner wirklich nicht ist, dann bleibt nur probieren aus.
Ich würd mal mit den rtehtmlarea-Extension-Eigenschaften anfangen. Da gibt's sowas um Firefox den Zugriff auf die Clipboard zu ermöglichen und "enable compressed Scripts", dass je nach Browser schon mal Probleme machen soll.
Ist aber nur ne Idee wo ich mal ansetzen würde.

Stefan

sichmann ·

Danke für die Tipps, es liegt aber definitiv am Firefox 3, ich habe den Firefox 2.0.20 installiert und siehe da, keine Probleme mehr.

Gruß Susi