Zum Inhalt springen

Seiten übers Frontend erstellen/kopieren ?

Erstellt am 25. August 2007 · 2 Antworten · letzte Antwort am 10. Februar 2010

Tags: Frage

karlchen ·

ich probier's mal mit einem anderen Titel....

Ziel des ganzen soll sein,übers Frontend bestimmte Seiten zu kopieren bzw neu anzulegen. OHNE das der User im BE oder FE eingeloggt ist.

ich habe gelesen das man mit den Funktionen:

$tce = t3lib_div::makeInstance('t3lib_TCEmain');
	

		
	$cmd =  array();
	$cmd['pages'][1]['copy']=19;
	$tce->start($data,$cmd);
	$tce->process_datamap();
	$tce->process_cmdmap();
	
	debug($tce,'tce nach dem kopieren');

einfach und schnell seiten kopieren kann, in dem Fall hier wird die Seite mit der ID 1 in die Seite mit der ID 19 kopiert.

Im einem Backend Modul wird auch alles kopiert, jedoch nicht in einem Frontend Plugin,
ich habe schon mal debug($tce); durchgeführt.
und hier wird mit einer Vielzahl anderen Informationen eine errorlog ausgegeben.

[errorLog] => Array
        (
            [0] => [1.1.11]: Attempt to insert record on page '%s' (%s) where this table, %s, is not allowed
        )

allerdings kann ich damit nicht wirklich was anfangen um mich damit auf Fehlersuche zu begeben.

kann mir vielleicht jemand weiterhelfen und einen Tipp geben wie ich diese oder eine ähnlich Funktion ins Frontend bekomme ?

karlchen

batomo ·

Bin auf den Eintrag hier gestossen und habe eine Lösung gefunden.

Ursache für die Fehlermeldung ist, dass die allowedTables nicht gesetzt wurde, das bestimmt welche Tabellen in dem Seitentyp eingefügt werden dürfen.

Also z.B. für SysFolder (type=254) alles erlauben:
$GLOBALS['PAGES_TYPES'][254]['allowedTables'] = '*';

Kann man jetzt so von Hand setzen oder besser die Defaulteinstellungen laden:

global $PAGES_TYPES;
require_once(PATH_t3lib . 'stddb/tables.php');