---
title: "xhtml div<->p"
url: "https://www.typo3.net/d/23973-xhtml-div-p"
source: "typo3.net"
tags: ["Frontend","Barrierefreiheit","Frage"]
created: "2005-04-21"
last_reply: "2005-04-25"
replies: 11
solved: false
page: 1
pages: 1
lang: "de"
---

# xhtml div<->p

Frontend › Barrierefreiheit · 11 Antworten · gestartet 2005-04-21

## Eröffnungsbeitrag

**just2b** · 2005-04-21 · [Beitrag #1](https://www.typo3.net/d/23973-xhtml-div-p/1)

Hallo,

ich mache meine Seite gerade xhtml trans 1.0 valide und kämpfe mit der ee_blog Extension und ich bekomm 2 Fehler nicht weg.

1. ein normaler content wird in ein <p></p> gewrappt und die ext. stellt nun dort ein div hinein, und das ist nicht valide. Ich hab 2 Möglichkeiten: Bei der ext. beim pi_wrapInBaseClass vorher das </p> und nachher wieder aufmachen

```php
function main($content, $conf) {
			$this->orig_templateCode = $this->cObj->fileResource($conf['templateFile']);
			 
			if (isset($this->piVars['showUid'])) {
				return $this->pi_wrapInBaseClass($this->view('singleView.', $content, $conf));
			} else {
				return $this->pi_wrapInBaseClass($this->view('listView.', $content, $conf));
			}
			 
		}
```

*oder* ich bastle an dem Template-Setup/Constants

2. Problem: non SGML character number => Wo/wie beheb ich das? Im RTE händisch nachbessern oder gibts da was anderes?

Template-Constants:

```typoscript
#clear.gif's entfernen 
content.headerSpace = 0|0 
content.space = 0|0
styles.content.typo3_powered.number = 
PAGE_TARGET = _self
content.pageFrameObj = _self
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.nonWrappedTag = 

##### Linksplit
styles.content.imgtext.captionSplit = 1
styles.content.imgtext.comment_CSL-LinkList =
# Bad Massage bei Formularen
styles.content.mailform.badMess = Bitte füllen Sie noch folgende(s) Feld(er) aus:

styles.content.imgtext.maxW = 610
styles.content.imgtext.colSpace = 10
styles.content.imgtext.textMargin = 10
styles.content.imgtext.rowSpace = 10
plugin.meta.author = Georg Ringer
plugin.meta.copyright = Georg Ringer
plugin.meta.email = mail-et-ringerge.org
#content.wrap.header = |
content.wrap.header1 = <span class="ueberschrift">|</span>
content.wrap.header = <br />|
styles.content.bulletlist.altWrap =
```

Setup:

```typoscript
age = PAGE
page {
	config.doctype = xhtml_trans
	config.xhtml_cleaning = all
	config.language=de
}

page.typeNum = 0
page.config.removeDefaultJS = 1 
page.config.admPanel = 1

page.10 = TEMPLATE
page.10 {
template = FILE
template.file = fileadmin/ringergeorg/template1.htm
workOnSubpart = DOCUMENT_BODY


# Entfernung der CLEAR.gif's
tt_content.image.20.spaceBelowAbove = 0
#tt_content.header.stdWrap.space = 0|0
tt_content.stdWrap.space = 0|0
tt_content.stdWrap.spaceBefore = 0
tt_content.stdWrap.spaceAfter = 10
lib.stdheader.stdWrap.space = 0|0
#tt_content.textpic.20.noStretchAndMarginCells = 1
#tt_content.image.20.noStretchAndMarginCells = 1


# Hier wird das CLEAR.GIF hinter den Überschriften rausgenommen
tt_content.text.20.parseFunc.tags.typohead.stdWrap.space = 0|0

# Folgender Code löscht das Margin 0 0 0 0 aus dem P Tag
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes {
	P.style=
}

# schwarzer Rahmen weg rund um PopUp-Bilder weg
tt_content.image.20{
	1.imageLinkWrap = 1
	1.imageLinkWrap {
		enable = 1
		title = ?
	bodyTag = <BODY bgColor="white" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
		wrap = <A href="javascript:close();"> | </A>
		JSwindow = 1
		JSwindow.newWindow = 1
		JSwindow.expand = 0,0
	}
}
#tt_content.image.20.1.imageLinkWrap {
#bodyTag = <BODY bgColor="#ffffff" leftmargin="0" topmargin="0"
#marginwidth="0" marginheight="0">
#}

tt_content.image.20.1.imageLinkWrap {
bodyTag = <BODY bgColor="#cccccc" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
width = 960m
title = Bild von www.ringerge.org
JSwindow.expand = 0,20
wrap = <A href="javascript:close();"> | </a><br /><table align="right"><tr><td><font face="verdana,arial,helvetica,sans-serif" size="2" color="#666666">&copy; Georg Ringer 2005 </font></td></tr></table>
}

lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.nonWrappedTag =

# CSS-Angaben für p-tags bereinigen
tt_content.text.20.parseFunc.nonTypoTagStdWrap.encapsLines.addAttributes {
P.style=
PRE.style=;
}

###### <<< CLEANING ENDE >>> ######

# Table-tags korrekt auflösen
tt_content.text.20.parseFunc.externalBlocks=table
tt_content.text.20.parseFunc.externalBlocks.table.stdWrap.HTMLparser=1
tt_content.text.20.parseFunc.externalBlocks.table.stdWrap.HTMLparser.keepNonMatchedTags=1

# Mehrfach Bildbeschriftung/Bild-Link
tt_content.image.20.captionSplit = 1
tt_content.image.20.caption >
tt_content.textpic.20.captionSplit = 1
tt_content.textpic.20.caption >

# Formular: Error & Bestätigung
tt_content.mailform.20.goodmess = Vielen Dank für Ihre Anfrage
tt_content.mailform.20.goodmess = Fehler!!


tt_content.text.20.parseFunc.tags.typolist.default.split.1.wrap = <li>|</li>
tt_content.text.20.parseFunc.tags.typolist.default.wrap = |

# RTE-EINSTELLUNGEN
#no wrapping of RTE lines
tt_content.text.20.parseFunc {
	nonTypoTagStdWrap.encapsLines.nonWrappedTag >
	#nonTypoTagStdWrap.encapsLines.wrapNonWrappedLines = <p>|</p>
nonTypoTagStdWrap.encapsLines.wrapNonWrappedLines = <br />|<br />

}
lib.parseFunc_RTE.nonTypoTagStdWrap.encapsLines.addAttributes.P.class >

###### <<< DIV. EINSTELLUNGEN ENDE >>> ######
```

Ich sag mal schon herzlichen Dank für jede Hilfe!!!
georg

## Antworten

### [#2](https://www.typo3.net/d/23973-xhtml-div-p/2) · jenses · 2005-04-22

```php
function main($content, $conf) {
         $this->orig_templateCode = $this->cObj->fileResource($conf['templateFile']);
         
         if (isset($this->piVars['showUid'])) {
            return $this->view('singleView.', $content, $conf);
         } else {
            return $this->view('listView.', $content, $conf);
         }
         
      }
[quote]
Damit ist der DIV-Tag weg.

Dein anderes Problem verstehe ich nicht.

jenses[/quote]
```

### [#3](https://www.typo3.net/d/23973-xhtml-div-p/3) · just2b · 2005-04-22

Hallo jenses,

danke für deine bemühungen, aber so funktioniert das leider nicht, denn => Struktur jetzt:

```html
<p> <div 1> div2> ERWEITERUNG </div2> </div1> </p>
```

der Hauptcontent steht zwischen den p-Tags, was ja nicht valide ist. es nutzt mir leider nichts, das wrapInBaseClass (=div1) wegzulöschen, da von der Ext. noch genug andere divs angelegt werden.. :/

Hier kannst du dir das live anschauen => <http://82.165.8.199/typo3cms_georg/homepage/index.php?id=644> und hier der Validator dazu: <http://validator.w3.org/check?verbose=1&uri=http%3A//82.165.8.199/typo3cms_georg/homepage/index.php%3Fid%3D644>

Problem 2 müsste hier auch ersichtlich sein

DANKE

### [#4](https://www.typo3.net/d/23973-xhtml-div-p/4) · Unbekannter Benutzer · 2005-04-22

Komme erst jetzt zu antworten.
Der Code sieht ja mittlerweile etwas anders aus.
Meine Codeänderung hätte genau ein DIV entfernt,
aber dadurch wird dein Code nicht valide, der Fehler steckt auch nicht in der Blog-Extension.
In Zeile 75 öffnest du einen p-Tag, ohne ihn wieder zu schließen :

```html
<p><a name="1046"></a><br /><img src="typo3temp/GB/9205e9b793.gif" width="194" height="30" border="0" alt="Anzeige nach Kategorien" title="Anzeige nach Kategorien" />
```

Danach kommt der Extension-Code mit einem öffnenden Div, klar, daß der Validator da meckert ;-).

jenses

### [#5](https://www.typo3.net/d/23973-xhtml-div-p/5) · just2b · 2005-04-22

> **Anonymous schrieb:**
>
> Komme erst jetzt zu antworten.
> Der Code sieht ja mittlerweile etwas anders aus.
> Meine Codeänderung hätte genau ein DIV entfernt,
> aber dadurch wird dein Code nicht valide, der Fehler steckt auch nicht in der Blog-Extension.
> In Zeile 75 öffnest du einen p-Tag, ohne ihn wieder zu schließen :
>
> ```html
> <p><a name="1046"></a><br /><img src="typo3temp/GB/9205e9b793.gif" width="194" height="30" border="0" alt="Anzeige nach Kategorien" title="Anzeige nach Kategorien" />
> ```
>
> Danach kommt der Extension-Code mit einem öffnenden Div, klar, daß der Validator da meckert ;-).
>
> jenses

ja mir ist ja e klar, warum es nicht stimmt.. unklar ist mir "nur" wie ich das ändern kann.. und da gibts eben die 2 varianten:
a) in der ext. vorher das <p> zu schließen
b) template/setup so gestalten, dass kein <p>... nur wie gehts?

### [#6](https://www.typo3.net/d/23973-xhtml-div-p/6) · just2b · 2005-04-23

das mit den illegal characters hab ich beseitigt.. bleibt das <p> <=> <div> problem....

### [#7](https://www.typo3.net/d/23973-xhtml-div-p/7) · jenses · 2005-04-25

Aber laut Quelltext wird das p-tag doch schon vor der Extension gesetzt,
der Fehler muß also woanders stecken.

jenses

### [#8](https://www.typo3.net/d/23973-xhtml-div-p/8) · just2b · 2005-04-25

> **jenses schrieb:**
>
> Aber laut Quelltext wird das p-tag doch schon vor der Extension gesetzt,
> der Fehler muß also woanders stecken.
>
> jenses

ja das ist mir schon klar, dass der Fehler vom restlichen  Typo kommt... aber beseitigen kann ich die Fehlermeldung auch so, dass ich in der ext. die <p>-Tags einsetze.... nur wie???

### [#9](https://www.typo3.net/d/23973-xhtml-div-p/9) · jenses · 2005-04-25

Versuch's mal hiermit :

```php
function main($content, $conf) {
         $this->orig_templateCode = $this->cObj->fileResource($conf['templateFile']);
         
         if (isset($this->piVars['showUid'])) {
            return '</p>'.$this->pi_wrapInBaseClass($this->view('singleView.', $content, $conf)).'<p>';
         } else {
            return '</p>'.$this->pi_wrapInBaseClass($this->view('listView.', $content, $conf)).'<p>';
         }
         
      }
```

jenses

### [#10](https://www.typo3.net/d/23973-xhtml-div-p/10) · just2b · 2005-04-25

Hallo Jenses,

danke, es hat nun endlich funktioniert!!

hab nicht gewusst, dass es hier noch eine class.tx_eeblog_pi2.php gibt....

lg georg

### [#11](https://www.typo3.net/d/23973-xhtml-div-p/11) · jenses · 2005-04-25

Hast du es mit dem Code von oben hinbekommen ?

### [#12](https://www.typo3.net/d/23973-xhtml-div-p/12) · just2b · 2005-04-25

> **jenses schrieb:**
>
> Hast du es mit dem Code von oben hinbekommen ?

der code hat für die class.tx_eeblog_pi2.php gepasst, in der  class.tx_eeblog_pi1.php hab ich es dann mit folgendem angepasst:

```php
		function main($content, $conf) {
			$this->orig_templateCode = $this->cObj->fileResource($conf['templateFile']);

			switch((string)$conf['CMD']) {
				case 'singleView':
				list($t) = explode(':', $this->cObj->currentRecord);
				$this->internal['currentTable'] = $t;
				$this->internal['currentRow'] = $this->cObj->data;
				return '</p>'.$this->pi_wrapInBaseClass($this->singleView($content, $conf)).'<p>';
				break;
				default:
				if (strstr($this->cObj->currentRecord, 'tt_content')) {
					$conf['pidList'] = $this->cObj->data['pages'];
					$conf['recursive'] = $this->cObj->data['recursive'];
				}

				return '</p>'.$this->pi_wrapInBaseClass($this->listView($content, $conf)).'<p>';;
				break;
			}
		}
```

---

Quelle: „xhtml div<->p“, typo3.net, https://www.typo3.net/d/23973-xhtml-div-p
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
