Hallo lieber Kommunity,
ich habe ein kleines problem das mich jetzt schon ein wenig länger bedrückt.
Ich habe schon viel im Inet nachgeschaut und auch einiges zu dem Problem gefunden aber leider funktioniert es bei mir immer noch nicht, deswegen hoffe ich das ich hier bei euch rat oder hilfer finde.
zum Problem:
Ich habe eine extension geschrieben (meine erste),
und ich wollte jetzt in dieser einwenig ajax einbinden da ich ein kleines Formular habe und kein pagebrowse wollte.
Leider schaffe ich es nicht die Ajax datei bzw die php datei wo die ajax datei zugreift mit dem Typo3 (datenbank usw) zu verbinden ....
Ich habe es mit dem eID probiert leider kein erfolgt
ext_localconf.php
$TYPO3_CONF_VARS['FE']['eID_include']['EIDEINTRAG'] = 'EXT:db_verwaltung/lib/xxx.xxxEintragen.php';
Jquery datei
$.get('http://www.xxx.it/typo3conf/ext/db_verwaltung/lib/xxx.xxxEintragen.php?eID=EIDEINTRAG&holen=ja' , function(data){
alert(data);
});
weiß jemand vielleicht weiter?
LG
Philipp
hallo,
ich mache das immer so:
var params= { "holen" : "ja", "param2" : "wert2"};
$.ajax({
url: '/?eID=EIDEINTRAG',
data: params,
success: function(data) {
alert(data);
}//success
});//ajax
Gruß,
Vince.
Hallo Vince,
schonmal danke für die schnelle Antwort.
Muss bei Url nicht der Absolute pfad eingetragen werden damit es funktioniert?
Lg
philipp
Ich habe jetzt deine variante der Ajax abfrage geteste leider kein erfolgt
<br />
<b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'xxxxxxxx'@'localhost' (using password: NO) in <b>/www/htdocs/xxxxxxxx/typo3conf/ext/db_verwaltung/lib/class.xxx.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in <b>/www/htdocs/xxxxxxxx/typo3conf/ext/db_verwaltung/lib/class.xxx.php</b> on line <b>20</b><br />
<br />
<b>Warning</b>: mysql_fetch_array() expects parameter 1 to be resource, boolean given in <b>/www/htdocs/xxxxxxxx/typo3conf/ext/db_verwaltung/lib/class.xxx.php</b> on line <b>21</b><br />
Habe ich vieleicht irgendwas vergessen ......
Lg
Philipp
na das sieht doch schonmal ganz gut aus. Zumindest wird das Skript angesteuert.
Jetzt musst Du nur noch die DB-Verbindung aufbauen.
das sieht bei mir folgendermaßen aus:
$id = $_GET['id'];
$GLOBALS['TSFE'] = t3lib_div::makeInstance('tslib_fe', $GLOBALS['TYPO3_CONF_VARS'], $id , '');
$GLOBALS['TSFE']->connectToDB();
$GLOBALS['TSFE']->initFEuser();
$GLOBALS['TSFE']->checkAlternativeIdMethods();
$GLOBALS['TSFE']->determineId();
$GLOBALS['TSFE']->getCompressedTCarray();
$GLOBALS['TSFE']->initTemplate();
$GLOBALS['TSFE']->getConfigArray();
// Get linkVars, absRefPrefix, etc
TSpagegen::pagegenInit();
Du brauchst nicht unbedingt alle obigen Aufrufe, aber kann ja nicht schaden.
Ach ja: dem Ajax-Aufruf am besten noch die Seiten-ID üebrgeben, damit das richtige typoscript geladen wird.
Gruß,
Vince.
leider wars das immer noch nicht #angry#
<b>Fatal error</b>: Class 't3lib_div' not found in <b>/www/htdocs/w00f05c6/typo3conf/ext/db_verwaltung/lib/class.eintragen.php</b> on line <b>21</b>
Nächter schöne Fehler 😃
LG
Philipp
was für eine Typo3-Version benutzt Du?
die Klasse müsste zu finden sein unter /t3lib/class.t3lib_div.php bzw. /typo3_src/t3lib
(je nachdem, wie die Symlinks so ausschauen)
Typo3 6.0.4!
Also mal in den Datein rumschnüfflen 🙂
Danke schonmal führ die Hilfe.
Lg
philipp
Hehe xD
in der class.t3lib_div.php steht folgendes
<?php
/*
* @deprecated since 6.0, the classname t3lib_div and this file is obsolete
* and will be removed with 6.2. The class was renamed and is now located at:
* typo3/sysext/core/Classes/Utility/GeneralUtility.php
*/
require_once __DIR__ . '/../typo3/sysext/core/Classes/Utility/GeneralUtility.php';
?>
und die andere datei existiert gar nicht!
LG
Philipp
ok, das PHP-Bespiel von mir läuft unter 4.7, in Deinem Fall bringt der Code-Schnipsel dann nicht so viel.
Aus dem Kopf weiß ich da jetzt nichts, sollte man aber googlen können 😉
Hallo Vince,
schonmal danke für deine Hilfer.
habe bis jetzt rausgefunden das man es so schreiben muss soviel ich verstanden habe.
$GLOBALS['TSFE'] = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('tslib_fe', $GLOBALS['TYPO3_CONF_VARS'], $id , '');
leider kommt da schon wieder die nächste fehlermeldung 🙁
Lg
Philipp
hab grad gesehen, dass eine Klasse Namens EidUtility gibt. Das könnte passen
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
ich hab "typo3 6.0 eID Db Connection" bei Google eingegeben 😉
Ich stehe gerade mal aufn schlauch :o aber mal schauen was sich machen lässt.
Danke dir 🙂.
lg
philipp
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
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.
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...
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.
Ich habe mir jetzt mal deinen Code copiert.
Bei mir scheiterts schon bei der ersten If abfrage!
eID problem?
Lg
Philipp