Runonce: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K
K
Zeile 2: Zeile 2:
 
[[Category:Dev Snippets]]
 
[[Category:Dev Snippets]]
 
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}
 
{{AppliesTo|TLVersion=ab 2.7|Version=ab 2.9}}
{{Hinweis|In Arbeit...}}
 
  
Liveupdate nutzt diese, die Extensions nutzen diese auch: die Datei TL_ROOT/system/runonce.php
+
Live Update nutzt diese, die Extensions nutzen diese auch: die Datei <code>TL_ROOT/system/runonce.php</code>
  
Diese Datei tut genau das, was der Name schon vermuten läßt. Sie wird nur einmal ausgeführt und anschließend gelöscht.
+
Diese Datei tut genau das, was der Name schon vermuten lässt. Sie wird nur einmal ausgeführt und anschließend gelöscht.<br />
 
Bei jedem Seitenaufruf wird dazu geprüft, ob diese vorhanden ist und ggf. ausgeführt.
 
Bei jedem Seitenaufruf wird dazu geprüft, ob diese vorhanden ist und ggf. ausgeführt.
  
Zeile 25: Zeile 24:
 
  //
 
  //
 
  // Update database
 
  // Update database
  try { $objDatabase->execute("UPDATE `tl_demo_table` SET `demo_counter`=0 WHERE `demo_browser`='Unknown'");
+
  try {  
 +
    $objDatabase->execute("UPDATE `tl_demo_table` SET `demo_counter`=0 WHERE `demo_browser`='Unknown'");
 
  } catch (Exception $e) { $errors[] = $e->getMessage(); }
 
  } catch (Exception $e) { $errors[] = $e->getMessage(); }
 
  //
 
  //
 
  // Insert database
 
  // Insert database
  try { $objDatabase->execute("INSERT INTO `tl_demo_table` (`id`, `demo_counter`) VALUES (0, '10')");  
+
  try {  
 +
    $objDatabase->execute("INSERT INTO `tl_demo_table` (`id`, `demo_counter`) VALUES (0, '10')");  
 
  } catch (Exception $e) { $errors[] = $e->getMessage(); }
 
  } catch (Exception $e) { $errors[] = $e->getMessage(); }
 +
?>
 +
 +
===Datenbank Insert, OOP Variante===
 +
Quelle: Forum.
 +
<?php
 +
class RunonceJob extends Frontend
 +
{
 +
    public function __construct()
 +
    {
 +
        parent::__construct();
 +
    }
 +
    public function run()
 +
    {
 +
        $arrInsert=array(
 +
            'action'    => 'runonce',
 +
            'text'      => 'runonce'
 +
        );
 +
        $this->Database->prepare("INSERT INTO tl_log %s")->set($arrInsert)->execute();
 +
    }
 +
}
 +
$objRunonceJob = new RunonceJob();
 +
$objRunonceJob->run();
 
  ?>
 
  ?>

Version vom 7. Juni 2010, 23:14 Uhr


betrifft
TYPOlight Version ab 2.7
Contao Version ab 2.9


Live Update nutzt diese, die Extensions nutzen diese auch: die Datei TL_ROOT/system/runonce.php

Diese Datei tut genau das, was der Name schon vermuten lässt. Sie wird nur einmal ausgeführt und anschließend gelöscht.
Bei jedem Seitenaufruf wird dazu geprüft, ob diese vorhanden ist und ggf. ausgeführt.

Anwendungsbeispiele

Löschen einer Datei

<?php @error_reporting(0); @ini_set("display_errors", 0); 
try { 
    $file = TL_ROOT . '/system/modules/demo/delete_me.gif';
    $objFiles = Files::getInstance();
    $objFiles->delete(substr($file, strlen(TL_ROOT)));
} catch (Exception $e) { $errors[] = $e->getMessage(); }
?>

Datenbank Insert / Update

<?php @error_reporting(0); @ini_set("display_errors", 0); 
$objDatabase = Database::getInstance();
//
// Update database
try { 
    $objDatabase->execute("UPDATE `tl_demo_table` SET `demo_counter`=0 WHERE `demo_browser`='Unknown'");
} catch (Exception $e) { $errors[] = $e->getMessage(); }
//
// Insert database
try { 
    $objDatabase->execute("INSERT INTO `tl_demo_table` (`id`, `demo_counter`) VALUES (0, '10')"); 
} catch (Exception $e) { $errors[] = $e->getMessage(); }
?>

Datenbank Insert, OOP Variante

Quelle: Forum.

<?php
class RunonceJob extends Frontend
{
   public function __construct()
   {
       parent::__construct();
   }
   public function run()
   {
       $arrInsert=array(
           'action'    => 'runonce',
           'text'      => 'runonce'
       );
       $this->Database->prepare("INSERT INTO tl_log %s")->set($arrInsert)->execute();
   }
}
$objRunonceJob = new RunonceJob();
$objRunonceJob->run();
?>
Ansichten
Meine Werkzeuge

Contao Community Documentation

Ich überlege gerade warum Contao Developer einen Hangout mit Bildübertragung machen... abgesehen von TheTril sind wir da alle relativ hässliche Typen wo Audio deutlich reichen würde. *g*

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge