Leichtgewicht

Teil 3: Serie: PHP-Frameworks Teil 3 - Seagull

Lassen Sie sich nun vom Generator zuerst die Grundstruktur des Moduls anlegen. Das Modul ist nach dem Speichern im Verzeichnis modules/frameworks zu finden. Je nach den getroffenen Angaben gibt es Sprachdateien und Templates. Das Modul selbst ist in der Tabelle modules registriert.

Die zugehörige SQL-Datei findet sich im Verzeichnis data. Sie enthält den Namen des Modules, Beschreibung, Bild und Autor. Diese Angaben können Sie natürlich auch ändern, müssen dann aber das Modul neu installieren:

INSERT INTO module VALUES
({SGL_NEXT_ID}, 1, 'frameworks', 'Frameworks', 'Eine neue Beschreibung für das Modul', '', '48/module_default.png', 'Tobias Hauser', NULL, 'NULL', 'NULL');

Zentral ist die Konfigurationsdatei conf.ini. Sie enthält alle nötigen Einstellungen für das Modul. Die Einstellungen beziehen sich jeweils auf einen sogenannten Manager - sein Name wird in eckigen Klammern über die entsprechenden Konfigurationseinstellungen geschrieben. Der Manager ist die zentrale Klasse für die jeweilige Funktionalität - ein Modul kann verschiedene Manager beinhalten.Der Manager holt die Daten und Templates und sorgt für die Darstellung. Da wir unsere Methode list genannt haben, heißt der Manager ListMgr.php und befindet sich im Unterverzeichnis classes. Er liefert bereits Code für die wichtigsten Operationen und liest die Inhalte aus der Tabelle aus.Hier können Sie nun eingreifen. Unter anderem macht es Sinn, den Seitentitel zu ändern. Dies geschieht über die Eigenschaft pageTitle. Hier beispielhaft der Code für die Listenausgabe selbst (Änderung fett hervorgehoben):

PHP-Frameworks Teil III - Seagull

© Archiv

Assistent: Der Generator hilft, Module anzulegen.
function _cmd_list(&$input,&$output) {
SGL::logMessage(null, PEAR_LOG_
DEBUG);
$output->template = 'listList.html';
$output->pageTitle =
'Frameworks-Liste';
// only execute if CRUD option
selected
if (true) {
$query = " SELECT id, name,
licence_id FROM {$this->conf['table']['list']}";
$limit = $_SESSION['aPrefs']
['resPerPage'];
$pagerOptions = array(
'mode' => 'Sliding',
'delta' => 3,
'perPage' => $limit,);
$aPagedData = SGL_DB::getPagedData
($this->dbh, $query, $pagerOptions);
if (PEAR::isError($aPagedData)) {
return false;
}
$output->aPagedData = $aPagedData;
$output->totalItems = $aPagedData
['totalItems'];
if (is_array($aPagedData['data'])&& count($aPagedData['data'])) {
$output->pager = ($aPagedData
['totalItems'] <= $limit) ? false : true;
}
}
}

Wenn Sie einen Blick in die Ausgabe werfen, sehen Sie, dass bisher nur zwei Spalten angezeigt werden. Die dritte Spalte ist im Template noch nicht vorgesehen. Im Code sehen Sie, dass die Datei listList.html als Template zum Einsatz kommt. Die Standardtemplates in Seagull sind mit Flexy, einer PEAR-Erweiterung für Templates registriert. Allerdings gibt es auch eine Smarty-Unterstützung.

Mehr zum Thema

HTML5: Quick Reference Guide
Ratgeber: "HTML5"

Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
internet, webdesign, google, content, ranking, seo, suchmaschine
Ratgeber: Urheberrecht

Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden…
Die besten HTML5-Tipps
Neue Tipps & Tricks für blitz.io

Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste…
image.jpg
Ratgeber: Webentwicklung

Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
internet, webdesign, meteor, webapplikationen
Ratgeber

Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…