Pluginintegration in den Installer

Heute habe ich wieder an den Einstellungen des neuen Installers gearbeitet. So ist es möglich, dass Standardplugins und Standardskins eines Installers direkt während der Installation Einstellungen anfordern können.

Ich habe das Ganze mit dem Plugin Memcached entwickelt. Ist dieses Plugin als Standardplugin mit dabei, bekommt der User folgende Maske zu sehen:

Das Design des Instasllers ist übrigens noch nicht final, ich habe einfach ein wenig rumprobiert.

Die Frage ist jetzt aber: Wie wird diese Maske generiert? Wenn man es sicht leicht machen möchte, kann man jetzt sagen, dass es im Plugin einfach ein PHP-File gibt, das per Include eingebunden werden kann. Das geht so nicht, da dann die Einstellungen in anderen Installationstypen, wie zum Beispiel dem APS Installer nicht mehr klappen.

Aus diesem Grund werden die Einstellungen über die package.xml generiert. Das sieht im Falle des Memcached-Plugins so aus:

<?xml version="1.0" encoding="UTF-8"?>
<contentlion_package>
	<!-- gekürzt -->
	<settings>
		<group name="memcached" reciever="SettingsMemcached">
			<name lang="de">
				Memcached Server
			</name>
			<description lang="de">
				Die Einstellungen zum Caching-Server
			</description>
			<string id="host">
				<description lang="de">
					Host
				</description>
			</string>
			<integer id="port" min="0">
				<description lang="de">
					Port
				</description>
			</integer>
		</group>
	</settings>
</contentlion_package>

Einstellungsgrupppen

Man kann die Einstellungen in verschiedene Gruppen aufteilen, die dann jeweils ihre eigene Seite haben. In unserem Fall gibt es eine Gruppe, im Core, der an der Stelle genauso vorgeht, wird es mehrere geben.

Diese Einstellungsgruppen habe einen Namen und eine Beschreibung, die auf der Einstellungsseite (oder in anderen Installern auch anderswo) angezeigt werden.

Einstellungen

Die Einstellungen selbst sind dann im group-Tag integriert. Hier gibt es verschiedene Datentypen, die man abfragen kann. Dabei habe ich mich auch etwas an APS orientiert, weil ich diese Einstellungen damit auch abgedeckt haben möchte. Zu den Datentypen gehören:

  • string: Einfacher Text
  • password: Password(feld)
  • integer: Zahl ohne Nachkommastellen
  • float: Zahl mit Nachkommastellen
  • email: E-Mail Adresse

Je nach Datentyp gibt es auch noch einige Attribute, um diese zu validieren:

  • id: Datenname zum wiedererkennen der Einstellung
  • is_required: Ist diese Einstellung verpflichtend?
  • min: Mindestwert bei Zahlen
  • min_length: Mindest-Länge einer Zeichenfolge
  • max: Maximalwert bei Zahlen
  • max_length: Maximal-Länge einer Zeichenfolge
  • regex: Regulärer Ausdruck zur Validierung

Validieren und Speichern

Natürlich müssen diese Daten auch noch validiert und gespeichert werden. Das wird über eine Klasse gemacht, die ins Plugin integriert werden kann. Diese wird dann bei der Einstellungsgruppe im Attribut reciever genannt.

Ich bin mir allerdings noch nicht 100%tig sicher, wie diese Klasse strukturiert werden soll. Denn die anderen ContentLion-Klassen sind währen der Installation noch nicht verfügbar. Im Fall von Memcached wäre es aber gut, diese vorher schon nutzen zu können. Ich werde euch auf dem Laufendem halten ;)

Dieser Beitrag wurde unter Core veröffentlicht. Setze ein Lesezeichen auf den Permalink.

3 Antworten auf Pluginintegration in den Installer

  1. Die Struktur für das Speichern und Validieren der Settings steht jetzt fest, mehr dazu später.

  2. JuKu sagt:

    Cool, bin gespannt! ;)

    Hast du bei dem Einstellungstyp integer “number” aus PHP5 genommen? :)
    Oder woher kommt der Hoch- & Runter-Button? :)

  3. stevieswebsite sagt:

    Nicht PHP5, HTML5 ;-)

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>