Zum Inhalt springen

Seitenstruktur als Tabelle exportieren?

Erstellt am 1. Juli 2016 · 2 Antworten · letzte Antwort am 7. Juli 2016

Tags: Seiten & Seitenbaum, Import & Export, TYPO3 6.x, Frage

jofoet3 ·

Hallochen ihr Lieben,

ich habe mal eine Frage, bei der ich überhaupt nicht weiter komme.
Kann ich irgendwie die Seitenstruktur als Tabelle ausspielen?
Ich habe hier eine riesige Seite mit mehreren tausend Unterseiten und würde wegen eines Relaunch gern diverse Unterabschnitte ausspielen, um den beteiligten Redakteuren einerseits einen guten Überblick und eine Arbeitsgrundlage geben.
Das wäre mit einer Tabelle am sinnvollsten.
Ich habe auch schon daran gedacht, mir das aus der Datenbank direkt zu holen, aber mit fällt kein geeignetes Statement ein, die Seiten inkl. der Unterseiten zu schnappen und diese auch noch miteinander zu verbundlen.

Im Backend kann man ja per Modul "Liste" eine Ebene abgreifen, aber leider ohne die Unterseiten mit zu bekommen. Das ist richtig schade, denn das wäre genial, wenn das dort gehen würde.

Hat jemand einen Ansatz, wie ich an sinnvolle, zusammenhängende Daten kommen könnte?

🙂

jofoet3 ·

Hmm, ich könnte mir natürlich ein kleinen PHP-Script machen... aber wenns noch einfacher ginge, bitte mal Bescheid geben. 🙂

... ok, hab nun zum Freitag noch angefangen zu scripten und habe nun die Struktur schon mal in ein Array laden lassen.
Ich gieße das mal in eine Tabellenstruktur und kann das Script gern mal posten, wenn andere auch das Problem haben.

Dennoch, wer einen einfacheren Weg kennt, immer raus damit! 😉

jofoet3 ·

Ok, ich habs per PHP gut raus spielen können.
Vielleicht nützt ja jemandem die kleine Funktion was bei eigenen Projekten:

// Funktion zum erfassen der Seitenstruktur (Nur echte, offene Seiten unendlicher Tiefe)
function pages($setPDO,$pid,$multidimensional,$p_name = '')
{        
        $pagetree = array();
        
        // Abfrage
	$link = new PDO('mysql:host='.$setPDO['host'].';dbname='.$setPDO['db'].';charset=utf8',$setPDO['user'],$setPDO['pwd']);
        $query = $link->query("SELECT * FROM pages WHERE pid = '".$pid."' AND deleted <> '1' AND doktype < '10' AND hidden <> '1' ORDER BY sorting");
	$query->execute();
	// gefundene Datensätze durchgehen	
	while($daten = $query->fetch(PDO::FETCH_OBJ))
	{

                $pagetree[$daten->uid]['unterpfad'] = $p_name.'/';
                $pagetree[$daten->uid]['pfad'] = $p_name.'/'.$daten->title;
                $pagetree[$daten->uid]['uid'] = $daten->uid;
                $pagetree[$daten->uid]['title'] = $daten->title;
                
                
                // Aufruf der Fkt. für evtl. existierende Unterseiten in multidimensionalem oder Eindimensionalem Array() 
                if($multidimensional == '1')
                {    
                    $pagetree[$daten->uid]['pid'] = pages($setPDO,$daten->uid,$multidimensional,$p_name.'/'.$daten->title);
                }
                else
                {
                    $pagetree += pages($setPDO,$daten->uid,$multidimensional,$p_name.'/'.$daten->title);
                }
	}
        return $pagetree;
		
}


// Hauptprogramm

// DB-Zugang
$setPDO['db'] = 'dbname';
$setPDO['user'] = 'username';
$setPDO['pwd'] = 'passwort';
$setPDO['host'] = 'localhost';
// initial Variablen (am besten gleich aus einem Formular übergeben, bei großen Seiten)
$multidimensional = '0'; // "0", also ein Eindimensionales Array, lässt sich prima durchlaufen, um z.B. eine CSV-Tabelle zu erstellen
$subdomain = 'www.abc.de';
$uid = '1';
// Aufruf Funktion
$pagetree = pages($setPDO,$uid,$multidimensional);