Das ginge dann so:
1.) Im Ordner der Extension die Datei "ext_typoscript_constants.txt" anlegen.
2.) In der Datei die nötigen Konstanten nach folgendem Muster definieren:
#cat=meinekategorie;type=;label=meinekonstante:meinerklärungstext plugin.user_meineextension_pi1.meinekonstante = meinwert
3.) Die Konstante müßte jetzt im Constant-Editor im T3-Backend zu sehen und editierbar sein (evtl. Cache leeren vorher)
4.) Im Ordner der Extension die Datei "ext_typoscript_setup.txt" anlegen.
5.) In der Datei die nötigen Variablen nach folgendem Muster definieren:
plugin.user_meineextension_pi1 {
meinekonstante = {$plugin.user_meineextension_pi1.meinekonstante}
}
6.) Im externen PHP-Skript kann man auf die Variable nun wie folgt zugreifen:
$conf=$GLOBALS["TSFE"]->tmpl->setup["plugin."]["user_meineextension_pi1"."."];
echo $conf["meinekonstante"];
das dürfte schwierig werden - Du müsstest ja die richtige Seite mit dem Plugin aufrufen.
Ich nutze eine andere Möglichkeit. Als Grundlage dient das php cronscript aus direct_mail - das lädt das komplette T3-Framework. Jetzt braucht man nur die ID des CEs, um die Flexform auszulesen:
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tt_content','uid='.$cid);
$row=$GLOBALS['TYPO3_DB']->sql_fetch_assoc($res);
$flex=t3lib_div::xml2array($row['pi_flexform']);
Jetzt hat man die Flexform im Array und kann sie auswerten - die manuelle Methode.
Hallo Babyschlumpf,
constants- und setup.txt sind schon vorhanden.
Wenn ich jetzt irgendeine Konstante auslesen will, passiert nichts.
Im BE constant-editor steht was drin.
Hallo steffenk
habe ich auch versucht.
Wo kommt "$cid" her?
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tt_content','uid='.$cid);
$cid ist die ID des Contentelements mit der Flexform.
Wie kann ich die uid auslesen?
die musst Du dem Skript mitgeben - versuchs doch erstmal mit hardcoded.
Langsam verstehe ich gar nichts mehr.
Ist das die PageUid, wo das Plugin installiert ist?
Hardcoded alles schön und gut
$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery('*','tt_content','uid='.$cid);
aber welche ziffer von 1 bis ? trage ich da ein?
Wo kommt diese her? Wie kann man die evtl auslesen?
ich versteh nicht, wie Du einen Cron hinbekommen willst, wenn Du mit ID eines CEs nichts anfangen kannst.
Die ID wird Dir beim Mouseover im BE angezeigt, ausserdem steht sie da, wenn man das Plugin bearbeitet.
Aha, beim Bearbeiten des CE steht ganz oben Pagecontent [100].
Den Cron bekomme ich ja hin, der Funktioniert auch.
Das was ich brauche, sind Variablen aus der Konfig.
Nun muß ich nur noch checken, weshalb ein Fehler beim Aufruf dieser Methode
kommt.
$flex=t3lib_div::xml2array($row['pi_flexform']);
Jetzt funktioniert es, so wie ich es haben will.
Danke steffenk
Aus danp_documentdirs habe ich mir zwei Funktionen geliehen, die genau den Feldnamen auslesen, welcher beötigt wird.