Schnellnavigation:

Kategorien

« Dezember 2017»
S M T W T F S
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            

Kopieren Sie diesen Link in Ihren RSS-Reader

RSS 0.91Nachrichten
RSS 2.0Nachrichten

In eigener Sache

Peter Linzenkirchner, Lisardo EDV Beratung in Augsburg. Freelance und Partner für Design- und Webagenturen in Augsburg und München. Pixelgenaue Templates, valides HTML, barrierearm. TYPO3-Projekte, Extension-Programmierung und mehr ... 

Eine Extension kann Konfigurationsvariablen enthalten, die im Extensions-Manager eingestellt werden können/müssen. Dazu muss zunächste eine Datei mit dem Namen ext_conf_template.txt in der Root der Extension erstellt werden. Darin werden die Auswahl- bzw. Einstellungsmöglichkeiten definiert (hier ein Beispiel aus der captcha-Extension):

  1. # cat=basic; type=boolean; label=Use TTF: When set the captcha will get generated using TTF font rendering functions which will result in much more readable captchas
  2. useTTF=0
  3.  
  4. # cat=basic; type=integer; label=Image width: The width of the captcha image
  5. imgWidth=95

Diese Variablen werden im Extensions-Manager bei der Installation der Extension abgefragt und können dort eingestellt werden. Sie werden automatisch serialisiert in der localconf.php der TYPO3-Installation abgelegt.

Innerhalb einer Frontend-Extension kann nur auf diese Variablen so zugegriffen werden:

  1. $_EXTCONF=unserialize($_EXTCONF);
  2.  
  3. $useTTF=$_EXTCONF['useTTF'];
  4.  
  5. // usw.
  6.  

Von ausserhalb der Extension – wie das z. B. in der captcha.php der captcha-Extension nötig ist, kann so zugeriffen werden:

  1. // Pfade einstellung und localcon.php laden
  2. define('TYPO3_MODE','FE');
  3. define(PATH_this,dirname(__FILE__).'/');
  4. define(PATH_site,dirname(dirname(dirname(dirname(dirname(__FILE__))))).'/');
  5. define(PATH_typo3conf,PATH_site.'typo3conf/');
  6. require_once(PATH_typo3conf.'localconf.php');
  7. //
  8. $config=unserialize($TYPO3_CONF_VARS['EXT']['extConf']['captcha']);

Die captcha-Extension wirft in manchen Installationen folgenden Fehler:

TYPO3 Fatal Error: Extension key “lang” was NOT loaded! (t3lib_extMgm::extPath)

Das liegt daran, dass die captcha.php versucht, das halbe Backend nachzuladen, was aber überhaupt nicht erforderlich ist. Der einfachste Fix geht so, dass die ersten Zeilen der Extension, in denen verschiedene Klassen des Backends nachgeladen werden, durch andere ersetzt werden.

Diese Zeilen:

  1. define(PATH_t3lib,PATH_site.'t3lib/');
  2. define(PATH_tslib,PATH_site.'typo3/sysext/cms/tslib/');
  3. require_once(PATH_t3lib.'class.t3lib_div.php');
  4. require_once(PATH_t3lib.'class.t3lib_extmgm.php');
  5. require_once(PATH_t3lib.'config_default.php');

ersetzen durch diese:

  1. define(PATH_typo3conf,PATH_site.'typo3conf/');
  2. require_once(PATH_typo3conf.'localconf.php');
  3. $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['captcha']=
  4.       unserialize($TYPO3_CONF_VARS['EXT']['extConf']['captcha']);

Damit wird das Nachladen vieler Klassen umgangen und die Konfiguration direkt aus der localconf.php übernommen.

 

 

Kategorien: API/Extensions  
Links:
Trackback-Link  (Bitte kopieren)
 
| Mehr
  •  
  • Kommentare
  •  
Gravatar: transunion credit report customer service

Vielen Dank für die nützlichen Informationen! Ich half Ihren Rat! Ich möchte mehr darüber zu lesen. Prompt, welche Literatur zu studieren?

Gravatar: my pillow
my pillow am
05Dezember2017

Das liegt daran, dass die captcha.php versucht, das halbe Backend nachzuladen, was aber überhaupt nicht erforderlich ist.

Mein Kommentar

Benachrichtige mich, wenn jemand einen Kommentar zu dieser Nachricht schreibt.

Besuchen Sie mich auf Google+