Jump to content

Handbuch:HTML-Formular Tutorial

From mediawiki.org
This page is a translated version of the page Manual:HTMLForm Tutorial and the translation is 100% complete.

HTML-Formular ist ein mÀchtiger und einfacher Helfer, um Formulare in MediaWiki zu erstellen. Dieses Tutorial hilft Manual:Spezialseiten -Entwicklern beim Einstieg in HTML-Formular.

(Da HTML-Formular ein Front-End-Helfer ist, wird davon ausgegangen, dass Du eine Front-End-Erweiterung entwickelst, d. h. eine spezielle Seite)

Der Rest dieser Seite befasst sich mit den Grundlagen der Erstellung einer generischen speziellen Seitenerweiterung namens MyForm. Dies hÀngt nicht direkt mit diesem Tutorial zusammen, aber es schadet nichts, zu zeigen, wie die Erweiterung aussehen sollte. Am Ende der Seite zeigt das Special:MyForm "Hello World" an.

Überspringe den Teil fĂŒr Neulinge und gehe direkt zum Themenbereich HTML-Formular

Ansonsten fangen wir an ...

Dateien und Umgebung

Diese ErlĂ€uterungen gelten fĂŒr MediaWiki Version 1.23 und höher.

HTML-Formular-Klassen befinden sich in /mediawiki/includes/HTMLForm.php. Der Code ist ziemlich sauber und gut genug dokumentiert, was MediaWiki-Programmierer erfreuen sollte.

Deine SpecialPage befindet sich in einer Erweiterung namens MyForm. Du findest sie, indem Du auf Special:MyForm zugreifst.

Den Front-End-Code Deiner SpecialPage findest Du hier: /mediawiki/extensions/MyForm/MyForm_body.php Diese obige Datei, die sowohl View / Controller als auch das Modell (Hauptdatei Deiner Erweiterung) enthÀlt, befindet sich unter: /mediawiki/extensions/MyForm/MyForm.php Die i18n -Dateien befinden sich im Ordner: /mediawiki/extensions/MyForm/i18n Dann .hooks, .alias ... etc.

MyForm.php

Neue Erweiterungen sollten stattdessen Erweiterungsverwaltung verwenden.
<?php
/**
 * Notwendige Beschreibung von @file, @authors und Lizenz
 * @FILLME!
 * NĂŒtzlich, um an diesen wichtigen Teil zu erinnern
 */
 
// Vermeide eine illegale Bearbeitung, kostet nicht viel, ist aber bei korrekter Installation unnötig
if ( !defined( 'MEDIAWIKI' ) ) { 
	die( -1 ); 
} 

// Extension Declaration
$wgExtensionCredits['specialpage'][] = [
	'path' => __FILE__,
	'name' => 'MyForm',
	'author' => 'My Name',
	'version' => '0.1.0',
	'url' => 'https://www.mediawiki.org/',
	'descriptionmsg' => 'myf-desc',
];

// A var to ease the referencing of files
$dir = __DIR__ . '/';

// i18n file referencing
$wgExtensionMessagesFiles['MyForm'] = $dir . 'MyForm.i18n.php';
// View file referencing
$wgAutoloadClasses['SpecialMyForm'] = $dir . 'MyForm_body.php';
// SpecialPage referencing
$wgSpecialPages['MyForm'] = 'SpecialMyForm';

// The Logic for your extension should be somewhere around here.

// NO PHP Closing bracket "? >". This is pure code.

LocalSettings.php

Vergesse nicht, deine Erweiterung zu installieren, indem du folgendes hinzufĂŒgst: require_once( "$IP/extensions/MyForm/MyForm.php" );. Verwende bei Anwendung der Erweiterungsverwaltung stattdessen wfLoadExtension( 'MyForm' );.

MyForm.i18n.php

Diese Datei enthÀlt alle Nachrichten, die in Deinem Formular verwendet werden. Gehe mit den IDs der Nachrichten vorsichtig um. Sie werden spÀter in diesem Lernprogramm spezifiziert.

<?php
// Internationalisation for MyForm extension
// @FILLME!

$messages = [];

// English
$messages['en'] = [
    'myf-desc' => 'A generic extension used by the HTMLForm tutorial'
];

// Message documentation (Message documentation)
$messages['qqq'] = [
	'myf-desc' => '{{desc}}'
];

// French
$messages['fr'] = [
    'myf-desc' => 'Une extension générique utilisée par le tutoriel d\'HTMLForm'
];

// More langages


// NO PHP Closing bracket "? >". This is pure code.

MyForm_body.php

Zu guter Letzt die Datei, die uns am meisten interessiert.

<?php
/**
 * Notwendige Beschreibung von @file, @authors und Lizenz
 * @FILLME!
 * Immer gut, um sich an diesen wichtigen Teil zu erinnern
 */
 
// Vermeide eine illegale Bearbeitung, kostet nicht viel, ist aber bei korrekter Installation unnötig
if ( !defined( 'MEDIAWIKI' ) ) { 
	die( -1 ); 
}  

// Unsere SpecialPage
class SpecialMyForm extends SpecialPage {
    public function __construct() {
        // Der erste Eintrag muss der Name Deiner speziellen Seite sein
        // Ein zweite Eintrag "right" (Rechte) kann hinzugefĂŒgt werden, um den Zugriff auf die SpecialPage einzuschrĂ€nken
        parent::__construct( 'MyForm' );
    }

    /**
     * Der Einstiegspunkt fĂŒr die Seite
     * @param string|null $par
     */
    public function execute( $par ) {
        $this->setHeaders();
        $this->getOutput()->addHTML( 'Hello World' );
    }

    protected function getGroupName() {
        return 'other';
    }
}

// NO PHP Closing bracket "? >". This is pure code.

Handbuch:HTML-Formular Tutorial 2