Zum Inhalt springen

Eigene Extension darf keine Datensätze in Sysfolder erstellen

Erstellt am 24. November 2007 · 2 Antworten · letzte Antwort am 25. November 2007

Tags: Frage

heinrich.​peters ·

Moin,

ich bin gerade am verzweifeln, meine Extension soll den Wert von 3 Radiobuttons in einem Sysfolder speichern. Wenn ich nur ein update machen muss, klappt es auch alles ohne Probleme, muss ich aber für einen neuen User neue Datensätze erstellen bekomme ich im BE immer Fehler:

Versuch einen Datensatz auf Seite 'HWI-Mentoring' (127) einzufügen, wo diese Tabelle, tx_hpmentoring_choice, nicht erlaubt ist (msg#1.1.11) Versuch einen Datensatz auf Seite 'HWI-Mentoring' (127) einzufügen, wo diese Tabelle, tx_hpmentoring_choice, nicht erlaubt ist (msg#1.1.11) Versuch einen Datensatz auf Seite 'HWI-Mentoring' (127) einzufügen, wo diese Tabelle, tx_hpmentoring_choice, nicht erlaubt ist (msg#1.1.11)

Inserten mache ich folgender Maßen:

$tce = t3lib_div::makeInstance('t3lib_TCEmain');
$data = array();
$cmd = array();
$table = 'tx_hpmentoring_choice';
$data[$table]['NEW'.$menteeID.$i] = array (
	'mentee_id' => (string)$menteeID,
	'group_id' => (string)$group_id,
	'choice_mentee' => (string)$i,
	'assessment_mentor' => '2',
	'pid' => (string)$this->mentoring_pid
);
$tce->start($data,$cmd);
$tce->process_datamap();

Ich weiß wirklich nicht weiter, Google spuckt auch nichts gescheites aus 😢
Jemand 'ne Idee?

Gruß,
Heiner

maik ·

Hmmm, das kann eigentlich nicht sein. Bist du sicher, das es sich um einen SysOrdner handelt???

Sonst Setz mal allowTableOnStandardPages für die Tabelle in der die besagten Datensätze gespeichert werden.

t3lib_extMgm::allowTableOnStandardPages('Tabelle_der_Datensätze');

Das muss in die ext_tables.php rein.

Dann dürfen die Datensätze auch auf normalen Seiten geschrieben werden.

heinrich.​peters ·

Moin maik,
bei der Seite 'HWI-Mentoring' (127) handelt es sich definitiv um einen SysOrdner aber ich habe in ext_tables.php auch schon folgenes drinstehen:

t3lib_extMgm::allowTableOnStandardPages('tx_hpmentoring_choice');
t3lib_extMgm::addToInsertRecords('tx_hpmentoring_choice');

$TCA["tx_hpmentoring_choice"] = array (
	"ctrl" => array (
		'title'     => 'LLL:EXT:hp_mentoring/locallang_db.xml:tx_hpmentoring_choice',		
		'label'     => 'uid',	
		'tstamp'    => 'tstamp',
		'crdate'    => 'crdate',
		'cruser_id' => 'cruser_id',
		'default_sortby' => "ORDER BY crdate",	
		'delete' => 'deleted',	
		'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'tca.php',
		'iconfile'          => t3lib_extMgm::extRelPath($_EXTKEY).'icon_tx_hpmentoring_choice.gif',
	),
	"feInterface" => array (
		"fe_admin_fieldList" => "mentee_id, group_id, choice_mentee, assessment_mentor",
	)
);

Was ich überhaupt nicht verstehe: Löschen von Datensätzen geht, ändern auch und was am seltsamsten ist:
Manchmal (nicht immer!) legt er auch Datensätze an. Ich konnte noch nicht nachvollziehen, wann. Die Daten waren jedenfalls jedesmal die gleichen und an der Konfiguration habe ich auch nichts geändert.
Als dreckigen Work-Around schreibe ich im Moment erstmal direkt (also über exec_INSERTquery) meine Daten in die DB:

$insertArray = array (
	'pid' => (string)$this->mentoring_pid,
	'mentee_id' => (string)$menteeID,
	'group_id' => (string)$group_id,
	'choice_mentee' => (string)$i,
	'assessment_mentor' => '2'
);
$res = $GLOBALS['TYPO3_DB']->exec_INSERTquery($table,$insertArray);

Ich weiß im Moment leider keinen anderen Weg - und so langsam drängt bei mir echt die Zeit #angry#

Gruß,
Heiner