Wie kann man getFileName() in scheduler nutzen? [Gelöst]

  • rabe69 rabe69
    R2-D2
    0 x
    97 Beiträge
    0 Hilfreiche Beiträge
    12. 07. 2010, 15:19

    Hallo,

    ich habe einen Scheduler Task geschrieben, in dem ich gerne auf eine Variable, welche in den Extension-Einstellungen (ext_conf_template.txt bzw. localconf.php) gesetzt bzw. überschrieben wird, zugreifen will.

    Abfragen kann ich diesen Wert ohne Probleme mit

    1. unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extkey]['font_path'])

    Nun möchte ich aber hier nicht einen Pfad ala "typo3conf/ext/extensionname/res/fonts/xyz.ttf" sondern stattdessen "EXT:extensionname/res/font/xyz.ttf" angeben.

    Um einen derartigen Pfad in die "Vollversion" zu ändern, gibt es normalerweise eine System-Methode, die es ermöglicht das Wort "EXT:" mit dem Extensionverzeichnis zu ersetzen.

    Aber irgendwie klappt deren Aufruf innerhalb meiner eigenen Scheduler Methode nicht.

    Wenn ich diesen statischen Methodenaufruf mache, wird einfach nichts zurückgegeben:

    1. $font_path = t3lib_TStemplate::getFileName(unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extkey]['font_path']));

    Die PHP Variable $extkey ist natürlich richtig gesetzt.

    Hat jemand eine Ahnung was man hier anders machen muss?


  • 1
  • 0 x
    3273 Beiträge
    157 Hilfreiche Beiträge
    13. 07. 2010, 09:31

    Hallo rabe69.

    Ich gehe mal stark davona us, dass die TStemplarte-Klasse nicht vollständig/sauber initialisiert ist. Das zu klären bzw. sicherzustellen dürfte die eine Lösung sein.
    Eine vermutlich einfachere ist in der t3lib_div zu finden: [url=http://www.typo3-unleashed.net/typo3apidocs/latest/d3/d3d/classt3lib__div.html#a664486ee2cae1bc34533188ad7879f5e]getFileAbsFileName()[/url]

    [quote="phpdoc-API"]Returns the absolute filename of a relative reference, resolves the "EXT:" prefix (way of referring to files inside extensions) and checks that the file is inside the PATH_site of the TYPO3 installation and implies a check with t3lib_div::validPathStr(). Returns false if checks failed. Does not check if the file exists.
    [/quote]

    Viele Grüße
    Julian

    Kleiner Hinweis:
    das Forum hier ist leider nicht mehr so frequentiert :-(
    Für schnellere Hilfe und mehr Leser, guck mal
    - auf stackoverflow ( https://stackoverflow.com/questions/tagged/typo3 )
    - oder in die slack-Channels ( https://typo3.org/community/meet/chat-slack )

  • rabe69 rabe69
    R2-D2
    0 x
    97 Beiträge
    0 Hilfreiche Beiträge
    13. 07. 2010, 11:55

    Hallo Julian,

    vielen Dank für den Tipp.
    Ich habe gar nicht gesehen, dass die Methode getFileAbsFileName() auch die EXT: Syntax auflösen kann!

    Meine Lösung für dieses Problem sieht jetzt so aus:

    1. $extConfLocal = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extkey]);
    2. $font = t3lib_div::getFileAbsFileName($extConfLocal['font_path']);

    Der zuvor beschrieben Zugriff auf den Parameter mit

    1. unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$extkey]['font_path'])

    funktioniert NICHT!

  • 1