Runonce: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K
K (Löschen einer Datei)
Zeile 13: Zeile 13:
 
==Anwendungsbeispiele==
 
==Anwendungsbeispiele==
 
===Löschen einer Datei===
 
===Löschen einer Datei===
 
 
  <?php @error_reporting(0); @ini_set("display_errors", 0);  
 
  <?php @error_reporting(0); @ini_set("display_errors", 0);  
 
  try {  
 
  try {  
     $file = TL_ROOT . '/system/modules/demo/delete_me.gif';
+
    // Datei relativ zu TL_ROOT
 +
     $file = 'system/modules/demo/delete_me.gif';  
 
     $objFiles = Files::getInstance();
 
     $objFiles = Files::getInstance();
     $objFiles->delete(substr($file, strlen(TL_ROOT)));
+
     $objFiles->delete($file);
 
  } catch (Exception $e) { $errors[] = $e->getMessage(); }
 
  } catch (Exception $e) { $errors[] = $e->getMessage(); }
 
  ?>
 
  ?>
 +
Die Fehlerausgaben, sollte es welche geben, werden in diesem Beispiel unterdrückt.
  
 
===Datenbank Insert / Update===
 
===Datenbank Insert / Update===

Version vom 7. Juni 2010, 22:44 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.

In der Extension legt man diese Datei dann ab im Pfad wie wie oben bereits angegeben.


Anwendungsbeispiele

Löschen einer Datei

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

Die Fehlerausgaben, sollte es welche geben, werden in diesem Beispiel unterdrückt.

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();
?>

Hinweis

Achtung.png Achtung: Vorsicht damit bei Extensions mit Abhängigkeiten zu weiteren Extensions.

Bringen 2 Extensions jeweils eine runonce.php mit, wird nur eine ausgeführt!

Hier ist der Author nicht sicher, ob die erste oder die letzte davon.

Ansichten
Meine Werkzeuge

Contao Community Documentation

marcules: ich hätte gedacht du sieht mehr aus wie alan cox

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge