Runonce Code Beispiele: Unterschied zwischen den Versionen
Aus Contao Community Documentation
K (→Code Beispiele) |
K (→Code Beispiele) |
||
Zeile 5: | Zeile 5: | ||
{{Achtung|Artikel wird grad überarbeitet, bitte nichts dran ändern solange dieser Hinweis noch besteht. Dringende Hinweise über IRC an mich. (BugBuster)}} | {{Achtung|Artikel wird grad überarbeitet, bitte nichts dran ändern solange dieser Hinweis noch besteht. Dringende Hinweise über IRC an mich. (BugBuster)}} | ||
== Code Beispiele == | == Code Beispiele == | ||
+ | Code Beispiele für die [[Runonce|Runonce]] Funktionalität. | ||
Der Class Name muss bei den OOP Varianten eineindeutig im System sein! | Der Class Name muss bei den OOP Varianten eineindeutig im System sein! | ||
===Datenbank Insert=== | ===Datenbank Insert=== |
Version vom 13. November 2011, 22:54 Uhr
betrifft | |
---|---|
TYPOlight Version | ab 2.7 |
Contao Version | ab 2.9 |
Inhaltsverzeichnis
Hinweis
Achtung: Artikel wird grad überarbeitet, bitte nichts dran ändern solange dieser Hinweis noch besteht. Dringende Hinweise über IRC an mich. (BugBuster) |
Code Beispiele
Code Beispiele für die Runonce Funktionalität. Der Class Name muss bei den OOP Varianten eineindeutig im System sein!
Datenbank Insert
<?php class BannerRunonceJob extends Controller { public function __construct() { parent::__construct(); $this->import('Database'); } public function run() { $arrInsert=array( 'action' => 'runonce', 'text' => 'runonce' ); $this->Database->prepare("INSERT INTO tl_log %s")->set($arrInsert)->execute(); } } $objBannerRunonceJob = new BannerRunonceJob(); $objBannerRunonceJob->run(); ?>
Code Beispiel Spezialfall
Universal Runonce von Andreas Schempp, /system/runonce.php, für Contao 2.9. Die eigendliche liegt im config Verzeichnis des Moduls und wird in Contao 2.9 über die Universal Runonce aufgerufen, ab Contao 2.10 direkt.
class UniversalRunonce extends Controller { /** * Initialize the object */ public function __construct() { parent::__construct(); // Fix potential Exception on line 0 because of __destruct method (see http://dev.contao.org/issues/2236) $this->import((TL_MODE=='BE' ? 'BackendUser' : 'FrontendUser'), 'User'); $this->import('Database'); } /** * Execute all runonce files in module config directories */ public function run() { $this->import('Files'); $arrModules = scan(TL_ROOT . '/system/modules/'); foreach ($arrModules as $strModule) { if ((@include(TL_ROOT . '/system/modules/' . $strModule . '/config/runonce.php')) !== false) { $this->Files->delete('system/modules/' . $strModule . '/config/runonce.php'); } } } } /** * Instantiate controller */ if (version_compare(VERSION, '2.10', '<')) { $objUniversalRunonce = new UniversalRunonce(); $objUniversalRunonce->run(); }
Wenn nun jeder Modulentwickler diese Universal Runonce für Contao 2.9 verwenden würde, wäre das Problem des Überschreibens dort beseitigt. Logisch, oder? Also, los!
--BugBuster 14:17, 13. Nov. 2011 (CET)