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

Ich brauch nen Bier, es ist zwar noch nicht nach 4, aber es ist nach Oli.

Yanick Witschi
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge