Zum Inhalt springen

Mail aus Backendmodul versenden / Fatal error: Call to a member function enableFields()

Erstellt am 18. Juni 2012 · 1 Antwort · letzte Antwort am 24. Januar 2013

Tags: E-Mail-Versand, Frage

alisha ·

Hi,
ich entwickle eine Extension, die neben einem Frontendplugin noch ein bAckend-Modul hat, aus dem u.a. mails versendet werden sollen. Ich benutze die gleiche Technik zum Mailversand wie im Frontendplugin und dort funktioniert alles..
mir ist nicht klar, warum diese Fehlermeldung kommt, wenn eine Mail aus dem Backend versendet werden soll:
Fatal error: Call to a member function enableFields() on a non-object in /../typo3_src-4.5.16/typo3/sysext/cms/tslib/class.tslib_content.php on line 7093

ich habe in meiner Backend-controller-Klasse den
Aufruf

$mail = $this->sendTemplateEmail(
				$empfaenger,
				array($this->settings['anmeldungSender'] => $this->settings['anmeldungSenderName']),
			 	$this->settings['anmeldungSubject'],
			 	'BestaetigungManuelleAnmeldung',
			 	array('application'=>$newApplication)
				);

Ich verwende den code von http://forge.typo3.org/projects/typo3v4-mvc/wiki/How_to_use_the_Fluid_Standalone_view_to_render_template_based_emails

Das FLUID-Template ist auch schlicht...

<p>Hallo {application.vorname} {application.name}</p>
<f:cObject typoscriptObjectPath="lib.mailanmeldebestaetigung"></f:cObject> usw...

lib.mailanmeldebestaetigung wird im TS definiert:

lib.mailanmeldebestaetigung = COA
lib.mailanmeldebestaetigung { 
      20 = RECORDS
      20.tables = tt_content
      20.source = 32
}

Hat jemand eine Idee? Das wäre super!

littlejumper ·

Ich hatte heut ein ähnliches Problem.
Der Fehler wurde vor langer Zeit hier behandelt: http://forge.typo3.org/issues/3912

Kurioserweise trat der Fehler auch in der Version 4.5.22 auf.

Ich habe das Problem folgendermaßen gelöst:

function enableFields($table, $show_hidden = 0) {
    $sys_page_helper = $_GLOBALS['TSFE']->sys_page;
    if (!is_object( $sys_page_helper )) {
        error_log('$_GLOBALS[\'TSFE\']->sys_page is no object! I have to instance it. IN '.__FILE__.':'.__LINE__);
        $sys_page_helper = t3lib_div::makeInstance( "t3lib_pageSelect" );
    }
    return $sys_page_helper->enableFields(
        $table,
        $show_hidden ? $show_hidden : ($table == 'pages' ? $GLOBALS['TSFE']->showHiddenPage : $GLOBALS['TSFE']->showHiddenRecords)
    );
}

Aber das ist nur eine Quick'n'Dirty Lösung!