[TYPO3-german] Seite als Startseite markieren oder: Was macht "Als Anfang der Website benutzen"/"Use as Root Page"?

Stefan Frömken firma at sfroemken.de
Wed Feb 23 12:55:32 CET 2011


Hallo Elmar,

Antworten unten im Text

Stefan

Am 22.02.2011 14:45, schrieb Elmar A.:
> Hallo
>
> Leider werde ich da bei Google überhaupt nicht zu fündig:
>
> Was macht "Use as Root Page"? Sollte das Typo3 nicht sagen, dass die
> Seite, bei der diese Option aktiviert ist als Startseite benutzt wird?
Hab mal im Quellcode rumgewühlt und das hier gefunden:

------------------------
// workaround to give nav_hide pages a complete different icon
// although it's not a separate doctype
// and to give root-pages an own icon
if ($table === 'pages') {
	if ($row['nav_hide']) {
		$recordType[2] = $recordType[1] . '-hideinmenu';
	}
	if ($row['is_siteroot']) {
		$recordType[3] = $recordType[1] . '-root';
	}
	if ($row['module']) {
		$recordType[4] = 'contains-' . $row['module'];
	}
}
------------------------

Also in erster Linie veränderst Du mit dem Setzen dieser Option wohl nur 
das kleine Icon VOR der Seite selbst. Aus diesem kleinen Zettel wird 
dann eine kleine Weltkugel.

Dann habe ich das hier noch gefunden:

------------------------
if (isset($row['is_siteroot']) && $row['is_siteroot'] != 0 && 
$GLOBALS['BE_USER']->getTSConfigVal('options.pageTree.showDomainNameWithTitle')) 
{
$rows = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows('domainName,sorting', 
'sys_domain',
'pid=' . $GLOBALS['TYPO3_DB']->quoteStr($row['uid'] . 
t3lib_BEfunc::deleteClause('sys_domain') . 
t3lib_BEfunc::BEenableFields('sys_domain'), 'sys_domain'), '', 
'sorting', 1);
if (is_array($rows) && count($rows) > 0) {
$title = sprintf('%s [%s]', $title, 
htmlspecialchars($rows[0]['domainName']));
}
}
------------------------

In TYPO3 4.5.0 hab ich das getestet und diese Funktion hat keine 
Auswirkung. Evtl. liegt das daran, dass dieser Code noch für den alten 
pagetree in < 4.5.0 zuständig war. So musste damals also das TSconfig 
UND diese is:siteroot-Option gesetzt sein, um einen evtl. hinterlegten 
Domainnamen als Suffix im Seitentitel zu sehen.
Seit 4.5.0 wird wohl eher dieser Code genommen:

------------------------
$suffix = ($domain !== '' ? ' [' . $domain . ']' : '');
------------------------

Kurz: Wenn die TSconfig (options.pageTree.showDomainNameWithTitle) 
gesetzt ist und ein Domain-Record existiert, dann wird der Domainname 
angezeigt. Völlig egal ob is_siteroot gesetzt ist oder nicht.

Jetzt wird's schon wichtiger:

------------------------
if (!$page['is_siteroot']) {
	$pidList[] = $page['pid'];
}
------------------------
Denn wenn Du das cObject CONTENT in Verbindung mit pidList verwendest, 
dann erhälst Du nur die Datensätze, deren Elternseite den Haken bei 
is_siteroot NICHT haben.

Weitere Bedingungen an diese Option fallen mir jetzt nicht ein und sind 
mir auch nicht bekannt.

Stefan

>
> Wir hatten jetzt die unglückliche Situation, dass ein Kunde auf seiner
> Seite bei einem Sysordner versehentlich den Seitentyp auf "Standard"
> gestellt hat, und da diese Seite vor der eigentlichen Startseite im
> Seitenbaum liegt, hat Typo3 diese als Startseite gewählt (was ohne
> Template natürlich fehlschlägt).
>
> Wenn ich der Seite einen "System Record" "Domain" hinzufüge, findet
> Typo3 auch die richtige Startseite (egal wieviele Standardseiten davor
> sind).
>
> Also, warum reicht "Use as Root Page" nicht aus, um eine Seite als
> Startseite zu markieren, bzw was mache oder verstehe ich falsch?
>
>
> Gruß
> Elmar



More information about the TYPO3-german mailing list