Zum Inhalt springen

Ajax in selbst erstellte Extension einbinde (eID)

Erstellt am 13. Mai 2013 · 32 Antworten · letzte Antwort am 15. Mai 2013 · Seite 2 von 2

Tags: JavaScript & AJAX, Frage

PhilippParth ·

Habe gerade die php datei durchforstet und google befragt.

und leider keine Antwort bekommen!!

Kannst du mir bitte sagen wo du diese Informationen her hast 😃?

LG
Philipp

PhilippParth ·

Ich komm einfach nicht weiter und habe auch ehrlich gesagt keine Ahnung was ich wie oder wo machen soll.

Hoffe um dein verständniss und das du mir bitte weiter helfen kannst.

$id = $_GET['eID'];
$GLOBALS['TSFE'] = TYPO3\CMS\Frontend\Utility\EidUtility::initExtensionTCA($id); 
$GLOBALS['TSFE'] =  TYPO3\CMS\Frontend\Utility\EidUtility::connectDB(); 		
$TESTSQL = "SELECT * FROM `tx_xxxx_xxxx`";
$TESTQuery = mysql_query($TESTSQL);
$TESTArray = mysql_fetch_array($TESTQuery);
$TESTID = $TESTArray['inserate'];
echo $TESTID['id']

Lg Philipp

vince ·

hallo,

hab mir mal die EidUtitlity näher angeschaut.

zu der Zeile:

$GLOBALS['TSFE'] = TYPO3\CMS\Frontend\Utility\EidUtility::initExtensionTCA($id);

Die methode erwartet den Extensionkey als Parameter. (für eine einfache DB-Abfrage brauchst Du das nicht, also erstmal weglassen).

Sobald die Verbindung hergestellt ist, kannst über $GLOBALS['TYPO3_DB'] deine Abfragen abschicken.
Class reference ist hier:
http://doxygen.frozenkiwi.com/typo3/html/de/d07/classt3lib__DB.html

also für dein Beispiel:

$GLOBALS['TSFE'] =  TYPO3\CMS\Frontend\Utility\EidUtility::connectDB(); 
$TESTArray = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("*", "tx_xxxx_xxxx" );

Hab's auch in einer 6.0.4 Intallation getestet, läuft.

Die Methode EidUtility::connectDB() scheint ab 6.1 deprecated zu sein, ab da wird die Verbindung wohl immer automatisch aufgebaut.

Gruß,
Vince.

PhilippParth ·

Hallo,

erstmals danke für die ganze mühe.

ich habe es jetzt durch getestet leider funktionierts immer noch nicth 🙁.

<br />
<b>Fatal error</b>:  Class 'TYPO3\CMS\Frontend\Utility\EidUtility' not found in <b>/www/htdocs/w00f05c6/typo3conf/ext/db_verwaltung/lib/class.eintragen.php</b> on line <b>3</b><br />

Kein ahnung was fehlt...

vince ·

hmm, also bei mir läuft folgender PHP-Code:

if (!defined ('PATH_typo3conf')) die ('Could not access this script directly!');

class test {

    public function main() {
		$this->initTSFE();
		$res = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows("*", "table" );	
		return $res[0]['field'];

	}
	protected function initTSFE() { 
		$GLOBALS['TSFE'] =  TYPO3\CMS\Frontend\Utility\EidUtility::connectDB(); 		
	} 
}

$output = t3lib_div::makeInstance('test');
echo $output->main();

Ansonsten schau mal ob unter /typo3/sysext/frontend/Classes/Utility/EidUtility.php was liegt.

PhilippParth ·

Ich habe mir jetzt mal deinen Code copiert.

Bei mir scheiterts schon bei der ersten If abfrage!

eID problem?

Lg
Philipp

vince ·

was passiert, wenn Du in das PHP-Skript nur ein simples echo "hello" ohne alles schreibst?

PhilippParth ·

Habe isch schon getestet ob es am ajax liegt aber da funktioniert es einband frei!.

Meiner sicht aus wird es nicht richtig bzw gar nicht ins system eingebunden.

lG
Philipp

vince ·

ok, wie genau schaut der Eintrag in der ext_lcoalconf aus?
bei mir schaut's so aus:

$TYPO3_CONF_VARS['FE']['eID_include']['eID_test'] = 'EXT:extension_key/pfad/class.test.php';
PhilippParth ·

So sieht sie aus 🙂

<?php
if (!defined('TYPO3_MODE')) {
die ('Access denied.');
}

$TYPO3_CONF_VARS['FE']['eID_include']['buero'] = 'typo3conf/ext/db_verwaltung/lib/class.eintragen.php';

t3lib_extMgm::addPItoST43($_EXTKEY, 'pi1/class.tx_dbverwaltung_pi1.php', '_pi1', 'list_type', 1);

?>

vince ·

versuch's mal mit

$TYPO3_CONF_VARS['FE']['eID_include']['buero'] = 'EXT:db_verwaltung/lib/class.eintragen.php';
vince ·

hmm, ich weiß langsam auch net mehr weiter 😉

funktioniert's ohne if-abfrage? konfigurations-cache gelöscht?

PhilippParth ·

hmmm,

ich tests nochmal ohne if 😃....

ich kann dir die extension a schicken 😃 kannste live testen ist vielleicht angenehmer!

LG
philipp