Runonce Code Beispiele: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K (Code Beispiel Spezialfall)
K (Code Beispiel Spezialfall)
Zeile 6: Zeile 6:
 
== Code Beispiele ==
 
== Code Beispiele ==
 
== Code Beispiel Spezialfall ==
 
== Code Beispiel Spezialfall ==
Universal Runonce von Andreas Schempp, /system/runonce.php
+
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.
 
<source lang="php">
 
<source lang="php">
 
class UniversalRunonce extends Controller
 
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');
 +
  }
  
/**
+
  /**
* Initialize the object
+
  * Execute all runonce files in module config directories
*/
+
  */
public function __construct()
+
  public function run()
{
+
  {
parent::__construct();
+
    $this->import('Files');
+
    $arrModules = scan(TL_ROOT . '/system/modules/');
// 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');
+
    foreach ($arrModules as $strModule)
$this->import('Database');
+
    {
}
+
      if ((@include(TL_ROOT . '/system/modules/' . $strModule . '/config/runonce.php')) !== false)
 
+
      {
 
+
        $this->Files->delete('system/modules/' . $strModule . '/config/runonce.php');
/**
+
      }
* 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');
+
}
+
}
+
}
+
 
}
 
}
  
Zeile 48: Zeile 47:
 
if (version_compare(VERSION, '2.10', '<'))
 
if (version_compare(VERSION, '2.10', '<'))
 
{
 
{
$objUniversalRunonce = new UniversalRunonce();
+
  $objUniversalRunonce = new UniversalRunonce();
$objUniversalRunonce->run();
+
  $objUniversalRunonce->run();
 
}
 
}
 
</source>
 
</source>
Wenn nun jeder Modulentwickler diese UniversalRunonce für Contao 2.9 verwenden würde und die eigendliche im config Verzeichnis des Moduls, wäre das Problem des Überschreibens dort beseitigt. Logisch, oder? Also, los!
+
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!
  
 
----
 
----
 
--[[Benutzer:BugBuster|BugBuster]] 14:17, 13. Nov. 2011 (CET)
 
--[[Benutzer:BugBuster|BugBuster]] 14:17, 13. Nov. 2011 (CET)

Version vom 13. November 2011, 22:31 Uhr


betrifft
TYPOlight Version ab 2.7
Contao Version ab 2.9

Hinweis

Achtung.png Achtung: Artikel wird grad überarbeitet, bitte nichts dran ändern solange dieser Hinweis noch besteht. Dringende Hinweise über IRC an mich. (BugBuster)

Code Beispiele

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)

Ansichten
Meine Werkzeuge

Contao Community Documentation

Pelle: gibt's ein besseres Wort für "beschränkt"?
Thomas: "Kunde"

Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge