Dieser Artikel befasst sich beispielhaft mit dem lesen und schreiben von Dateien unter Verwendung des Joomla!1.5-Frameworks. Bei der Entwicklung einer Komponente ist es oft praktisch, Konfigurationseinstellungen in einer config-Datei, in unserem Fall config.php, festzuhalten.
Zunächst muss also diese Datei angelegt werden, anschließend sollen im Backend getätigte Einstellungen dort überschrieben, gespeichert, und wieder ausgelesen werden.
Das Backend-Script enthält ein Formular in dem Einstellungen über beispielsweise Textfelder, Checkboxes oder Selects erfasst und geändert werden können. Zunächst muss die Konfigurationsdatei gefunden und eingelesen werden:
if (JFile::exists( ‘components/com_gmaps/config.php’ )) {
include(’components/com_gmaps/config.php’ );
$configfile=JFile::read( ‘components/com_gmaps/config.php’ ) or die(’config-file cannot be read’);
}
else{
echo “<h3> configfile administrator/components/com_gmaps/config.php does not exist!</h3>”;
}
Die Konfigurationsdatei enthält ein Array, in dem die Einstellungen gespeichert sind, nach erfolgeichem Einlesen der config.php stehen dessn Inhalte im weiteren Programmverlauf zur Verfügung.
<?php
$gm_config["db_table"]=”jos_cbe”;
$gm_config["column_name"]=”zipcode”;
$gm_config["map_height"]=”600px”;
$gm_config["map_width"]=”500px”;
?>
Der Anwender tätigt nun also seine Backend-Einstellungen und klickt auf “speichern”. Das Backend-Script stellt nun via Überprüfunge eines $_GET-Parameters (bei Klick des Submitbuttons wird die URL aufgerufen, die im <form>-tag für die Eignschaft action eingetragen wurde: “index.php?option=com_component_name&action=change)”, in diesem Beispiel der von uns eingesetzte Parameter “action” fest, ob eine Veränderung stattgefunden hat, wenn ja werden alle Einträge in der config.php mit den Daten aus dem abgesendeten Formular überschrieben, dies könnte in etwa wie folgt passieren:
if($_GET['action']==’change’){
…
}
else{
…
}
Im obigen If-Zweig passiert nun das Austauschen der Inhalte, Im else-Zweig wird das Backend-Formular zur Eingabe der Konfigurationsdaten angezeigt. Weiteres in Teil II.