Zum Inhalt springen

Version 4.7: Externe URL öffnet nicht im neuen Fenster

Erstellt am 6. Mai 2012 · 15 Antworten · letzte Antwort am 25. Juni 2012

Tags: Links, TYPO3 4, Frage

Shaahira ·

Hallo alle zusammen,

vielleicht stehe ich nur total auf dem Schlauch, aber mit meiner neuen Installation der Version 4.7 kriege ich es nicht hin, dass sich ein externer Link (im RTE) in einem neuen Fenster öffnet.

Im TS

config.extTarget = _blank

bringt ebenso wenig wie in den Constants

styles.content.links.extTarget = _blank

Habe ich was übersehen? Hier mein TS:

config {
  doctype = xhtml_trans
  xhtml_cleaning = all
  linkVars = L
  sys_language_uid = 0
  language = de
  locale_all = de_DE
  fileTarget = _blank
  extTarget = _blank
  simulateStaticDocuments = 1
  simulateStaticDocuments_addTitle = 20
}
[browser = msie] && [version = < 7.0]
  config.doctypeSwitch = 1
[global]

# clean HTML tags
lib.stdheader.3 >
lib.stdheader.stdWrap.dataWrap >

# page configuration
page = PAGE
page {
  typeNum = 0
  10 = USER
  10.userFunc = tx_templavoila_pi1->main_page
  config.metaCharset = utf-8
  config.additionalHeaders = Content-Type:text/html;charset=utf-8
}

lib.banner = IMAGE
lib.banner {
  file = fileadmin/templates/img/mrl-logo.png
  wrap = <a href="index.php?id=1"> | </a>
}

Hat vielleicht jemand noch einen Tipp für mich?

Viele Grüße ... Shaahira

Julian.​Hofmann ·

Hallo.

Was kommt denn im HTML raus? In "TYPO3 4.7 - Die Neuerungen" von Patrick und Sebastian steht u.a. zu Änderungen am RTE

Das Einfu?gen eines externen Links erfolgt nun HTML5 konform
mittels data-htmlarea-external="1"

Evtl. hat es damit as zu tun... Bin in 4.7 (noch) nicht so tief drin.

Viele Grüße
Julian

Shaahira ·

Hallo Julian,

danke für deine Antwort. Nach data-htmlarea-external="1" habe ich auch schon gegoogelt, aber nichts gefunden, was mir geholfen hätte.

Meine Links sehen enthalten keine weiteren Attribute, sie sehen einfach so aus: <a href="www.domain.de">

Jetzt ist mir eben noch aufgefallen, dass ich mich falsch ausgedrückt habe: Wenn ich einem externen Link ein Target zuweise im RTE, dann öffnet dieser auch in einem neuen Fenster. Mir geht es um die Links, die der RTE automatisch setzt - diese sind quasi einfach nur "nackt" - ohne Klasse und target.

Vielleicht fällt ja noch jemandem was dazu ein ... wäre super.

Ergänzend auch mal noch mein TSConfig:

RTE.default {
  buttons.link.properties.class.allowedClasses := removeFromList(external-link,external-link-new-window,internal-link-new-window,internal-link,download,mail)
  RTEHeightOverride = 600 
  RTEWidthOverride = 800 
  contentCSS = fileadmin/templates/css/rte_mrl-sprechstunde.css
  useCSS = 0
  buttons.textstyle.tags.span.allowedClasses = crossheadline_gray, crossheadline_red, text_red, headline_presenter
  buttons.blockstyle.tags.div.allowedClasses = crossheadline_gray, crossheadline_red, text_red, headline_presenter
  showTagFreeClasses = 1
  
  ## Shown and hidden buttons of RTE
  showButtons = textstyle, textstylelabel, blockstyle, blockstylelabel, bold, italic, underline, left, center, right, subscript, superscript, outdent, indent, orderedlist, unorderedlist, insertcharacter, line, link, image, removeformat, table, toggleborders, tableproperties, rowproperties, rowinsertabove, rowinsertunder, rowdelete, rowsplit, columninsertbefore, columninsertafter, columndelete, columnsplit, cellproperties, cellinsertbefore, cellinsertafter, celldelete, cellsplit, cellmerge, insertcharacter, undo, redo, copy, cut, paste, textcolor, bgcolor, chMode
  hideButtons = formatblock, strikethrough,lefttoright, righttoleft, textindicator, emoticon, user, spellcheck, justifyfull, acronym, showhelp, about, findreplace, inserttag, fontstyle, fontsize

  keepButtonGroupTogether = 1
  showStatusBar =  1

  ## enables following table-options
  disableSpacingFieldsetInTableOperations = 0
  disableAlignmentFieldsetInTableOperations = 0
  disableColorFieldsetInTableOperations = 0
  disableLayoutFieldsetInTableOperations = 0
  disableBordersFieldsetInTableOperations = 0
  
  proc {
    ## <br> is not been converted to <p>
    dontConvBRtoParagraph = 1
    
    ## allowed attributes in p, div tags
    keepPDIVattribs = align, class, style, id
    
    ## allowed tags outside p, div tags
    allowTagsOutside = img,hr,span
    
    ## allowed tags outside <p>
    allowTags = font, table, tbody, tr, th, td, h1, h2, h3, h4, h5, h6 div, p, br, span, ul, ol, li, re, blockquote, strong, em, b, i, u, sub, sup, strike, a, img, nobr, hr, tt, q, cite, abbr, acronym, center
    denyTags = 
    
    ## Content to database
    entryHTMLparser_db = 1
    entryHTMLparser_db {
      
      ## tags are allowed/denied
      allowTags < RTE.default.proc.allowTags
      denyTags < RTE.default.proc.denyTags
          
      ## align attribute are allowed
      tags {
        p.fixAttrib.align.unset >
        p.allowedAttribs = class, style, align
        div.fixAttrib.align.unset >
        hr.allowedAttribs = class, style
        span.allowedAttribs = class, style

        ## b und i tags werden ersetzt (em / strong)
        b.remap = strong
        i.remap = em
        
        # img tags are allowed
        img >
      }
    }
    ## end of content to database
    
  }
  ## end of proc
  
}
## end of RTE.default

Danke und viele Grüße

Shaahira

brt ·

hatte auch das selbe Problem, ist vielleicht nicht die beste Lösung, aber zumindest funktioniert dieser "Workaround":

lib.parseFunc.makelinks.http.extTarget = _blank
lib.parseFunc.tags.link.typolink.extTarget = _blank
lib.parseFunc_RTE.makelinks.http.extTarget = _blank
lib.parseFunc_RTE.tags.link.typolink.extTarget = _blank

plugin.tt_news.displaySingle {
	content_stdWrap.parseFunc.makelinks.http.extTarget = _blank
	content_stdWrap.parseFunc.tags.link.typolink.extTarget = _blank
	linksItem_stdWrap.parseFunc.makelinks.http.extTarget = _blank
	linksItem_stdWrap.tags.link.typolink.extTarget = _blank
}

tt_content.image.20.1.imageLinkWrap.typolink.extTarget = _blank

Wäre auch sehr dankbar falls wer die Ursache dieses Phänomens erklären bzw. eine bessere Lösung zeigen könnte.

Finde das Problem jedenfalls sehr merkwürdig, kann doch nicht sein, daß "config.extTarget = _blank" plötzlich wirkungslos ist?

igorshmigor ·

Habt ihr im Constant-Editor den Wert für extTarget angepasst?
Target for external links [styles.content.links.extTarget]
Schuld scheint das static template von CSS styled content zu sein.
Dort steht:

3263: lib.parseFunc {
3264: 	makelinks = 1
3265: 	makelinks.http.keep = {$styles.content.links.keep}
3266: 	makelinks.http.extTarget < lib.parseTarget
3267: 	makelinks.http.extTarget =
3268: 	makelinks.http.extTarget.override = {$styles.content.links.extTarget}

sprich, es sieht so aus, als ob der extTarget auf leer gesetzt wird, es sei denn, in den Konstanten wurde ein Wert für externe Targets angegeben.

Seirerman ·

Hab einen Backport von css-styled_content 4.5 gemacht.
\typo3\sysext\css_styled_content\static\setup.txt, ab Zeile 68:

lib.parseFunc {
	makelinks = 1
	makelinks.http.keep = {$styles.content.links.keep}
#	makelinks.http.extTarget < lib.parseTarget
#	makelinks.http.extTarget =
#	makelinks.http.extTarget.override = {$styles.content.links.extTarget}
	makelinks.http.extTarget = {$styles.content.links.extTarget}
	makelinks.mailto.keep = path
	tags {
		link = TEXT
		link {
			current = 1
			typolink.parameter.data = parameters : allParams
#			typolink.extTarget < lib.parseTarget
#			typolink.extTarget =
#			typolink.extTarget.override = {$styles.content.links.extTarget}
			typolink.extTarget = {$styles.content.links.extTarget}

Die Zeile nach den drei # stammt jeweils aus CSC 4.5, und damit funktioniert es wieder.

igorshmigor ·
brt schrieb
styles.content.links.extTarget = _blank

hat leider keine wirkung 🙁

Bei mir schon.
Kann es sein, dass Du das ins Setup geschrieben hast, statt in die Konstanten?

brt ·
igorshmigor schrieb
brt schrieb
styles.content.links.extTarget = _blank

hat leider keine wirkung 🙁

Bei mir schon.
Kann es sein, dass Du das ins Setup geschrieben hast, statt in die Konstanten?

nein, habs direkt in das Feld "Konstanten" im Root-Template geschrieben.

igorshmigor ·

Dann verwendest Du wahrscheinlich das Introduction Package, kann das sein?
Schau mal in die Datei fileadmin/default/TypoScript/System/CssStyledContent/constants.ts.
Dort steht:

// Remove targets
styles.content.links.extTarget =

Damit wird Deine Konfiguration wahrscheinlich wieder überschrieben.
Habe festgestellt, dass man normalerweise auch gar nichts bei styles.content.links.extTarget eintragen muss, weil der Standard-Wert dieser Konstanten von CSS Styled Content eigentlich bereits auf _blank gesetzt wird. Es ist also bestimmt nur die Konfiguration des Introduction Package, die hier für Verwirrung sorgt.

brt ·
igorshmigor schrieb

Dann verwendest Du wahrscheinlich das Introduction Package, kann das sein?

leider nein. habe nochmal alles überprüft, sehr merkwürdig...

igorshmigor ·

Verwendest Du einen xhtml-Doctype? Wenn ja, dann liegt es daran, denn XHTML unterstützt das target-Attribut für Links nicht.

brt ·
igorshmigor schrieb

Verwendest Du einen xhtml-Doctype? Wenn ja, dann liegt es daran, denn XHTML unterstützt das target-Attribut für Links nicht.

Bingo! 🙂 Mit dem default-Doctype (HTML 4.0) klappts, auch ohne "styles.content.links.extTarget".

Vielen lieben Dank für die äußerst geduldige Leitung zur Lösung des Problems!

Seirerman ·
igorshmigor schrieb

Verwendest Du einen xhtml-Doctype? Wenn ja, dann liegt es daran, denn XHTML unterstützt das target-Attribut für Links nicht.

Das stimmt so nicht ganz. XHTML Strict unterstützt target nicht, XHTML Transitional aber sehr wohl.
HTML 4 stammt noch aus dem letzten Jahrtausend. Darauf würd ich nicht mehr setzen...

SelfHTML

brt ·
Seirerman schrieb
igorshmigor schrieb

Verwendest Du einen xhtml-Doctype? Wenn ja, dann liegt es daran, denn XHTML unterstützt das target-Attribut für Links nicht.

Das stimmt so nicht ganz. XHTML Strict unterstützt target nicht, XHTML Transitional aber sehr wohl.
HTML 4 stammt noch aus dem letzten Jahrtausend. Darauf würd ich nicht mehr setzen...

SelfHTML

Ja, mit HTML 4 gibts tatsächlich Probleme, da Extensions wie zB. Slimbox xhtml-tags einfügen ( <... /> ) wird es schwierig gültigen HTML 4 code zu erzeugen.