Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Mit RAD: ein Modul mit Views

Der Modul-Assistent schreibt ein Modul mit zwei Views und Richtlinien; lesen Sie die Ausgabe, korrigieren Sie den Template-Ordner von Hand und wissen Sie, wann Modul über vorhandenen Tabellen das Richtige ist.

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/extension-development/part-3-extension-developer/tutorials/rad-module.md

On this page

This page is a translation. Read the English original

Mit RAD: ein Modul mit Views

Tutorial 4. Zwei Assistenten schreiben Module. Der Modul-Assistent (/setup/modulewizard) schreibt ein Modul mit Views und Richtlinienfunktionen; er ist auch das Werkzeug für „View für ein vorhandenes Modul“ und „Richtlinienfunktion und Einschränkung“. Modul über vorhandenen Tabellen (/setup/moduleextension) schreibt ein Modul, Klassen für persistente Objekte und Seiten für Tabellen, die bereits existieren. Dieses Tutorial verwendet den ersten. Die gezeigte Ausgabe wurde vom Generator des Assistenten (expModuleWizard::files()) mit denselben Eingaben erzeugt; jede PHP-Datei hat php -l bestanden.

1. Das Formular

FeldWert
Name der Extensionmysite_hello
Modulhello
TitelHello module
Ansichtenworld: read Name? und, in der nächsten Zeile, admin: administrate
Richtlinienread und administrate

Das Feld für die Views nimmt eine View pro Zeile auf: einen Namen, einen Doppelpunkt, dann Wörter. Die Regel des Assistenten (expModuleWizard::viewList()): Ein großgeschriebenes Wort ist ein geordneter Parameter, ein kleingeschriebenes Wort eine Richtlinie, und ein angehängtes ? kennzeichnet einen Parameter, der weggelassen werden darf.

2. Die Dateien

.gitignore
LICENSE
README.md
composer.json
design/mysite_hello/templates/hello/admin.tpl
design/mysite_hello/templates/hello/world.tpl
doc/examples.php
extension.xml
ezinfo.php
modules/hello/admin.php
modules/hello/module.php
modules/hello/world.php
settings/design.ini.append.php
settings/menu.ini.append.php
settings/module.ini.append.php

Die erzeugte modules/hello/module.php:

<?php
$Module = array( 'name' => 'Hello module' );

$ViewList = array();

$ViewList['world'] = array(
    'script' => 'world.php',
    'functions' => array( 'read' ),
    'default_navigation_part' => 'ezsetupnavigationpart',
    'unordered_params' => array( 'name' => 'Name' ),
);

$ViewList['admin'] = array(
    'script' => 'admin.php',
    'functions' => array( 'administrate' ),
    'default_navigation_part' => 'ezsetupnavigationpart',
);

$FunctionList = array();

$FunctionList['read'] = array();

$FunctionList['administrate'] = array();

Jede View verlangt ihre Richtlinie, so wie es sein soll. Der optionale Parameter Name? wurde zu einem ungeordneten Parameter, die Adresse lautet also /hello/world/(name)/Ada (so steht es auch in der Tabelle der erzeugten README).

Das View-Skript beginnt mit der richtigen Warnung und einer absichtlich sicheren Voreinstellung:

// Everything in $Params came out of the address, which means it came from
// whoever typed it. The declared type is nothing: cast, and check.
$name = isset( $Params['Name'] )
          ? (int) $Params['Name'] : 0;

Das (int) geht von einer ID aus. Ersetzen Sie es für einen Namen durch eine Prüfung auf eine Zeichenkette, wie in View-Parameter.

3. Eine Korrektur vor der Verwendung

Der Assistent schreibt die Templates nach design/mysite_hello/templates/, in ein Design, das nach der Erweiterung benannt ist. Die Design-Kette durchsucht nur Designs, die ein Siteaccess verwendet (SiteDesign, AdditionalSiteDesignList[], StandardDesign), daher werden diese Templates nicht gefunden, und die Views antworten mit einer leeren Seite. Verschieben Sie sie nach standard (oder in Ihr Admin-Design):

mv extension/mysite_hello/design/mysite_hello extension/mysite_hello/design/standard
php bin/php/ezcache.php --clear-id=template-override,design_base

Die erzeugten Templates verwenden das Box-Markup der klassischen Administration; schreiben Sie sie für admin4-Seiten mit den gemeinsamen Komponenten neu (Admin-Seiten im admin4-Stil).

4. Das Menü

settings/menu.ini.append.php fügt das Modul dem Menü eines Navigationsteils hinzu ([NavigationPartMenu_ezsetupnavigationpart] mit Menu[]=hello, MenuTitle[hello] und MenuURL[hello]=/hello/world). Prüfen Sie das Ergebnis in Ihrem Administrationsdesign und passen Sie es an; das linke Menü von admin4 gruppiert Links so, wie es in Admin-Seiten im admin4-Stil beschrieben ist.

5. Einschalten, gewähren, öffnen

./console exp:ini add 'site.ini/ExtensionSettings/ActiveExtensions[]' mysite_hello global
php bin/php/ezpgenerateautoloads.php -e
php bin/php/ezcache.php --clear-all

Gewähren Sie einer Rolle hello/read (Benutzer > Rollen und Richtlinien) und öffnen Sie dann /hello/world/(name)/Ada.

Modul über vorhandenen Tabellen

/setup/moduleextension ist für Daten gedacht, die bereits Tabellen haben. Es liest deren Struktur und schreibt unter anderem eine Klasse für persistente Objekte pro Tabelle (classes/<class>.php), eine Verbindungs- und eine Registry-Klasse, das Modul mit seiner function_definition.php und einer Funktionssammlung, eine View und ein Template zum Entfernen, eine nach der Erweiterung benannte Einstellungsdatei, einen Menüeintrag und share/db_schema.dba. Verwenden Sie es, wenn Sie Administrationsseiten für Daten bauen, die ein anderes System schreibt; für neue Daten entwerfen Sie Tabelle und Klasse selbst (Persistente Objekte und Ihre eigenen Tabellen).

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x