NOOP> Dokumentation: Konfiguration - Strict NOOP! Framework

Konfiguration

Einleitung

Auf dieser Seite können Sie erfahren, welche Konfigurationsangaben es gibt und wofür man sie braucht.

Das komplette Framework besitzt mindestens eine Konfigurationsdatei, die config.json. Die Konfigurationsdatei befindet sich direkt im Stammverzeichnis des Frameworks. Neben dieser Datei gibt es auch eine Vorlage mit dem Namen config.json-dist, welche aktuell so aussieht:

Details
{
	"admins":
	[
		{"id": 1, "name": "admin"}
	],
	"base": "/",
	"cache":
	{
		"default": 86400,
		"extensions": {},
		"targets": {}
	},
	"contact":
	{
		"allowTypes": "application/pdf,audio/*,image/*,text/*,video/*",
		"attachments": 0,
		"domain": "name.tld",
		"enabled": false,
		"defaultAddress": "contact@name.tld",
		"linkPrivacy": "",
		"list": {},
		"mode": "default",
		"sendCopyToIssuer": false,
		"subject": "NOOP! Framework - Contact"
	},
	"debugMode": false,
	"defaultLangCode": "en",
	"defaultPage": "index.html",
	"email":
	{
		"embeds":
		[
			{"file": "public/img/html5_32.png", "headers": {}, "mime": "image/png", "name": "html5_32.png"},
			{"file": "public/img/noop.svg", "headers": {}, "mime": "image/svg+xml", "name": "noop.svg"},
			{"file": "public/img/tidy_32.gif", "headers": {}, "mime": "image/gif", "name": "tidy_32.gif"}
		],
		"sender": "noreply@name.tld",
		"signature": "",
		"simulate": true,
		"smtp":
		{
			"enabled": false,
			"headerRemoveBCC": true,
			"host": "",
			"logging": false,
			"noEHLOBeforeSTARTTLS": false,
			"password": "",
			"port": 465,
			"protocol": "ssl",
			"user": ""
		},
		"subjectExample": "NOOP! Framework - Example"
	},
	"git": "",
	"identity":
	{
		"ceo": "Noop Frameworkson",
		"ceoTitle": "No object oriented programming framework in PHP.",
		"city": "Random Datacenter",
		"country": "DEU",
		"email": "noop@example.com",
		"fax": "+01 234 567 890 13",
		"logoASCII": "NOOP! Framework",
		"mobile": "+01 987 654 321 09",
		"name": "NOOP! Framework",
		"street": "Random Rack 211",
		"telephone": "+01 234 567 890 12",
		"taxID": "US0123456789",
		"taxOffice": "Tax office Bielefeld :D",
		"type": "Company",
		"website": "noop.cisco211.de",
		"zipCode": "D-01234"
	},
	"maintenanceMode":
	{
		"enabled": true,
		"whitelistIPs":
		[
			"127.0.0.1"
		]
	},
	"mysql":
	{
		"config": false,
		"database": "noop",
		"enabled": false,
		"host": "127.0.0.1",
		"password": "",
		"persistent": true,
		"port": 3306,
		"user": "noop"
	},
	"order":
	{
		"emailAddress": "sales@name.tld",
		"emailSubject": "NOOP! Framework - Order: {amount}x {itemName} ({itemNumber})",
		"enabled": false,
		"linkPrivacy": "",
		"orders":
		[
			{
				"currency": "",
				"descriptionFoot": "",
				"descriptionHead": "",
				"enabled": false,
				"expired": false,
				"id": "",
				"itemNumber": "",
				"linkDetails": "",
				"maxAmount": 0,
				"name": "",
				"orderNumber": "B{year}{month}{day}{hour}{minute}{second}",
				"payments":
				[
					"bankTransfer"
				],
				"purpose": "{orderNumber} {itemNumber}-{amount}: {email}",
				"value": 0,
				"vat": -1
			}
		],
		"scanDirectory": ""
	},
	"pageEnabled":
	{
		"makeData": false
	},
	"payment":
	{
		"bankTransfer":
		{
			"enabled": false,
			"iban": "",
			"name": "",
			"payee": "",
			"swift": ""
		},
		"vats": [19]
	},
	"recaptcha":
	{
		"enabled": false,
		"score": 0.5,
		"secret": "",
		"sitekey": "",
		"version": 2
	},
	"security":
	{
		"forceHTTPS": false,
		"strictBrowser": false,
		"strictHTTPS": false,
		"strictIP": false,
		"useCSP": false
	},
	"session":
	{
		"database": false,
		"domain": "name.tld",
		"enabled": true,
		"gc_divisor": 100,
		"gc_maxlifetime": 3600,
		"gc_probability": 1,
		"httpOnly": true,
		"lifetime": 3600,
		"name": "__noop",
		"path": "/",
		"secure": true,
		"singleton": true
	},
	"sitemap":
	{
		"defaultChangeFrequency": "weekly",
		"defaultPriority": 0.5,
		"enabled": false,
		"useURL": ""
	},
	"static":
	{
		"allow":
		{
			"exeFile": false,
			"incFile": true,
			"phpCode": false,
			"phpFile": true,
			"rawFile": true,
			"tplFile": true
		},
		"enabled": true,
		"indexDirectory":
		[
			"noop/schema/*",
			"noop/test/*"
		],
		"indexFile": "index.html",
		"tree":
		{
			"enabled": false,
			"patternLevel0": "/^[A-Z]{2}[A-Za-z0-9]{1,6}$/",
			"patternLevel1": "/^[a-z0-9_]{1,8}\\.html$/"
		}
	},
	"title": "NOOP! Framework",
	"verify": {}
}

Wie man sehen kann, befinden sich alle Einstellungen in einem Objekt und sind teilweise zur Gruppierung zusammengehörender Einstellungen in weitere Objekte unterteilt. Für das Framework spielt es keine Rolle, was genau in dieser Datei steht, solange die Syntax korrekt ist. Das bedeutet, wenn Einstellungen fehlen, verwendet das Framework Standardwerte, welche im Programmcode definiert wurden, um ein Fehler im Programm selbst zu vermeiden. Wenn wichtige Einstellungen fehlen, dann funktioniert das Framework natürlich nicht richtig. Dadurch ist es ebenfalls möglich, Einstellungen hinzuzufügen, die Sie eventuell durch eigene Erweiterungen am Framework benötigen.

Seit NOOP v1.106 ist es möglich, dass die auf JSON basierende Konfiguration nun auch Kommentare erlaubt. Die Syntax dafür ist an die Programmiersprache C angelehnt. Einzeilige Kommentare können per // begonnen werden. Mehrzeilige Kommentare werden per /* begonnen und mittels */ abgeschlossen. Kommentare können innerhalb der Datei beliebig positioniert werden, also z.B. auch zwischen Schlüssel und Wert. Normale Zeichenketten, welche Kommentarsymbolik enthalten, werden nicht als Kommentar interpretiert. Beachten Sie, dass dieses Feature nicht Bestandteil der offiziellen JSON-Spezifikation ist. Wenn Sie externe Werkzeuge für die Bearbeitung von JSON verwenden, stellen Sie sicher, dass ihr Werkzeug dies auch unterstützt. Sollte dies nicht der Fall sein, müssen Sie die Kommentare zuvor entfernen.

Übersicht

Nun folgt eine an der Konfigurationsstruktur angelehnte Auflistung, welche gleichzeitig als Inhaltsverzeichnis dient. Dabei bestimmt die Zahl im Listenpunkt die aktuelle Verschachtelungstiefe, der Name ist der klickbare Link und gefolgt von einem Doppelpunkt kommt der zugehörige Datentyp. Wenn Sie auf einen dieser Links klicken, springt ihr Browser zur jeweiligen Beschreibung. Unten rechts im Bildschirm, können Sie ⇧ Nach Oben anklicken, um wieder nach oben zu springen.

admins: Array<Objekt>

In diesem Array können Sie angeben, welche Benutzer Administratorrechte haben. Diese Einstellung ist für später reserviert und kann sich bis dahin verändern.

base: String

/

Mit dieser Einstellung wird der absolute Pfadanteil vom DocumentRoot aus bestimmt. Je nachdem, wo sich der DocumentRoot befindet und wo genau das Framework installiert wurde, muss diese Einstellung angepasst werden. Im Template kann dieser Wert mittels <!--!!base!!--> platziert werden, vor allem für das <base> innerhalb des <head>, was dann so aussehen würde: <base href="<!--!!base!!-->"/>

Nehmen wir an, der DocumentRoot befindet sich auf /var/www und das Framework wurde nach /var/www/noop installiert, dann muss die Einstellung auf /noop/ gestellt sein.

cache: Objekt

Dieses Objekt betrifft alle Einstellungen, die für das Caching relevant sind. NOOP selbst hat keinen Zwischenspeicher für Seiten. Stattdessen gibt NOOP den Browser des Nutzers die Anweisung, wie lange der jeweils geladene Inhalt im Zwischenspeicher des Browsers gehalten werden soll.

default: Integer

86400

Mit dieser Einstellung kann man angeben, wie lange eine Seite standardmäßig im Cache gehalten werden soll. Der Wert wird in beliebig großen, größer gleich 0 Sekunden angegeben und immer dann verwendet, wenn auf einem anderen Weg diese Angabe bisher noch nicht gemacht wurde.

  • 60 = 1 Minute
  • 3600 = 1 Stunde
  • 86400 = 1 Tag
  • 604800 = ~1 Woche
  • 2628000 = ~1 Monat
  • 31536000 = ~1 Jahr

extensions: Objekt

{}

In diesem Objekt kann man Cache-Laufzeiten für Dateiendungen zuordnen. Im Schlüssel gibt man die gewünschte Dateiendung ohne Punkt an. Der Wert bestimmt die Cache-Laufzeit für die angegebene Dateiendung wie bei der Standardeinstellung (cache.default) in Sekunden.

Nehmen wir einmal an, wir haben 3 verschiedene Bildformate, wollen aber, dass diese unterschiedlich lang im Zwischenspeicher gehalten werden sollen. Dabei wollen wir, dass gif-Dateien rund eine Woche, jpg-Dateien nur einen Tag und png-Dateien rund einen Monat lang im Zwischenspeicher gehalten werden sollen. Das würde dann als Einstellung so aussehen:

{
	"gif": 604800,
	"jpg": 86400,
	"png": 2628000
}

targets: Objekt

{}

In diesem Objekt kann man Cache-Laufzeiten für aufrufbare URLs zuordnen. Im Schlüssel gibt man die gewünschte URL vom DocumentRoot aus an. Die URL ist dabei relativ zum Stammverzeichnis von NOOP selbst, d.H. wenn man z.B. die Cache-Laufzeit der statischen Startseite bestimmen will, lautet die URL dann static/index.html. In der Regel kann man aber die Cache-Laufzeit einer statischen Seite in der statischen Seite selbst angeben. Der Wert bestimmt die Cache-Laufzeit für die angegebene URL wie bei der Standardeinstellung (cache.default) in Sekunden.

Nehmen wir einmal an, wir haben 3 verschiedene Seiten und wollen das jede davon eine andere Cache-Laufzeit hat. Die erste Seite (foo.html) ein Tag, die zweite Seite (bar.html) zwei Tage und dritte Seite (baz.html) 3 Tage:

{
	"static/foo.html": 86400,
	"static/bar.html": 172800,
	"static/baz.html": 259200
}

contact: Objekt

Dieses Objekt betrifft alle Einstellungen, die für das Kontaktformular relevant sind. Das Kontaktformular ermöglicht die Kommunikation per E-Mail, ohne die E-Mail selbst preisgeben zu müssen.

allowTypes: String

application/pdf,audio/*,image/*,text/*,video/*

Bestimmt welche Arten von Dateien hochgeladen werden dürfen. Siehe hier für eine Beschreibung des Formats.

attachments: Integer

0

Anzahl erlaubter Dateianhänge. Ein Wert kleiner 1 deaktiviert Dateianhänge.

domain: String

name.tld

Die für das Kontaktformular und E-Mails verwendete Domain. Diese Einstellung wird als Empfänger-Domain benutzt, wenn der mode auf domain gestellt ist.

enabled: Boolean

false

Mit dieser Einstellung kann man das Kontaktformular aktivieren und deaktivieren.

defaultAddress: String

contact@name.tld

Die standardmäßige E-Mail-Adresse, an der eine E-Mail versendet wird, wenn jemand das Kontaktformular verwendet. Diese E-Mail muss immer richtig und erreichbar sein, da sie in allen Modis des Kontaktformulars kontaktiert werden kann.

linkPrivacy: String

(leer)

Eine URL zu der Datenschutzerklärung. Wenn dieser Wert leer ist, wird keine Zustimmung zur Datenschutzerklärung benötigt.

list: Objekt

{}

Mit dieser Einstellung kann man Kontakte definieren. Dabei ist der Parameter der Name des Kontakts und der Wert die E-Mail-Adresse. Diese Einstellung wird benutzt, wenn der mode auf list gestellt ist.

mode: String

default

Der Modus, in dem das Kontaktformular laufen soll. Mit dem Modus wird bestimmt, an wem die E-Mails verschickt werden können. Dabei sind folgende Einstellungen möglich:

  • default
    Nur die defaultAddress als Empfänger verwenden. Das Kontaktformular kann damit per /contact aufgerufen werden.
  • domain
    Neben der defaultAddress zusätzlich E-Mail-Adressen verwenden, die alle zur eingestellten domain gehören. Dadurch wird ermöglicht, dass sich der Empfänger über den in der URL angegebenen Namen bestimmen lässt (z.B.: /contact/Name). Der angegebene Name wird dann mit der domain zur E-Mail-Adresse für den Empfänger zusammengesetzt.
  • list
    Neben der defaultAddress zusätzlich E-Mail-Adressen verwenden, die bei list vorkommen. Dadurch wird ermöglicht, dass sich der Empfänger über den in der URL angegebenen Listeneintrag bestimmen lässt (z.B.: /contact/Name). Der angegebene Listeneintrag wird in der list herausgesucht, um die E-Mail-Adresse des Empfängers zu ermitteln.

Wir wollen eine E-Mail an einen Kontakt namens MaxMustermann versenden können und rufen mit /contact/MaxMustermann das Kontaktformular auf. Im Modus default wird das nicht funktionieren. Im Modus domain wird die E-Mail-Adresse MaxMustermann@domain für den Empfänger zusammengesetzt. Dabei ist mit domain die Einstellung domain gemeint. Im Modus list wird in der Liste die E-Mail-Adresse vom Eintrag MaxMustermann als Empfänger verwendet. Nicht existierende Einträge funktionieren nicht.

sendCopyToIssuer: Boolean

false

Wenn diese Einstellung aktiviert wird, wird ebenfalls eine E-Mail an denjenigen versendet, der das Kontaktformular benutzt hat.

subject: String

NOOP! Framework - Contact

Der in den E-Mails zu verwendende Betrefftext.

debugMode: Boolean

false

Mit dieser Einstellung kann der Debugmodus aktiviert und deaktiviert werden. Wenn der Debugmodus aktiviert ist, wird beispielsweise der Caching-Mechanismus deaktiviert. Der Debugmodus sollte nur aktiviert sein, wenn man gerade an der Seite arbeitet.

defaultLangCode: String

en

Mit dieser Einstellung kann der standardmäßig verwendete Sprachcode nach ISO 639-1 (zweistellig) verwendet werden. Der Wert wird immer dann verwendet, wenn auf einem anderen Weg diese Angabe bisher noch nicht gemacht wurde. Im Template kann dieser Wert mittels <!--!!langCode!!--> platziert werden, welcher unter anderem beim lang im <html> verwendet wird.

In HTML5 wird das lang im <html> vorausgesetzt, also sollte das <html> so aussehen: <html lang="<!--!!langCode!!-->">

defaultPage: String

index.html

Diese Einstellung legt fest, welche Startseite verwendet wird, wenn man das Framework im Browser ohne Pfadangabe aufruft. Wenn die Startseite in keiner Form existiert, wird eine Fehlerseite ausgegeben. Die Startseite kann jede beliebige Seite sein, die in NOOP existiert und aufrufbar ist.

Man hat eine index.htm und will diese als Startseite verwenden. Dazu stellt man defaultPage auf index.htm und legt eine index.htm im static/ an. Beim Abruf der Webseite ohne weitere Pfadangabe wird der Inhalt von index.htm angezeigt.

email: Objekt

Dieses Objekt betrifft alle Einstellungen, die mit dem Versand von E-Mails zu tun haben.

embeds: Array<Objekt>

[{"file": "public/img/html5_32.png", "headers": {}, "mime": "image/png", "name": "html5_32.png"}, {"file": "public/img/noop.svg", "headers": {}, "mime": "image/svg+xml", "name": "noop.svg"}, {"file": "public/img/tidy_32.gif", "headers": {}, "mime": "image/gif", "name": "tidy_32.gif"}]

Der Standardwert selbst stellt schon ein gutes Beispiel dar. Die verwendeten Dateien werden mit NOOP ausgeliefert und im Standard-Template verwendet:

[
	{"file": "public/img/html5_32.png", "headers": {}, "mime": "image/png", "name": "html5_32.png"},
	{"file": "public/img/noop.svg", "headers": {}, "mime": "image/svg+xml", "name": "noop.svg"},
	{"file": "public/img/tidy_32.gif", "headers": {}, "mime": "image/gif", "name": "tidy_32.gif"}
]

Mit diesem Array kann man eine Liste von Dateien angeben, die als Anhang zu E-Mails hinzugefügt werden sollen. Diese Dateien werden so angehangen, dass man sie auch in den Nachrichteninhalt einbetten kann. Als Standardwert werden 3 Bilder in die E-Mail eingebettet, die dann in der Fußzeile der HTML-Ansicht mit angezeigt werden. Jeder Eintrag in dieser Liste ist ein eigenes Objekt mit weiteren Eigenschaften. Jedes eingetragene Objekt hat dabei folgende Eigenschaften:

file: String

(leer)

Pfad zur Datei, die mit in die E-Mail eingebettet werden soll. Der Pfad ist relativ zum Stammverzeichnis von NOOP.

headers: Objekt

{}

Mit dem Headers-Objekt lassen sich eigene E-Mail-Header zur einzubettenden Datei beschreiben. Dabei ist der Schlüssel der Name des Headers und der Wert entspricht dem Wert des Headers.

Ein angehängtes Bild soll den Autor und das Datum der letzten Änderung benennen:

{
	"X-Author": "TSc",
	"X-Last-Change": "2020-02-17"
}
mime: String

(leer)

Der MIME-Typ der Datei, die eingebettet werden soll. Dieser Wert muss mit dem MIME-Typ der Datei übereinstimmen, da diese sonst nicht in den E-Mails dargestellt werden kann.

name: String

(leer)

Der Name in der Datei. In der Regel kann man direkt den Dateinamen der file-Eigenschaft verwenden. Diese Einstellung ist nur dafür da, wenn man die Datei in der E-Mail anders benennen will.

sender: String

noreply@name.tld

Die für alle E-Mails verwendete Absender-E-Mail-Adresse.

signature: String

(leer)

Pfad zur Signatur-Datei zur Verwendung in den E-Mails. Der Pfad ist relativ zum Stammverzeichnis von NOOP. Die Signatur sollte im Klartext geschrieben sein, damit diese auch in der Klartextansicht für E-Mails funktioniert. Wenn die Angabe leer bleibt, wird keine Signatur in den E-Mails platziert.

simulate: Boolean

true

Mit diesem Schalter kann man NOOP dazu bringen, das der Versand von E-Mails nur simuliert wird. Dies ist z.B. für Testzwecke im lokalen Netz sinnvoll. Wenn aktiviert, wird die komplette E-Mail als Datei im Verzeichnis data/tmp mit der Endung eml geschrieben. Diese Datei kann dann z.B. mit Thunderbird direkt geöffnet werden. Standardmäßig ist diese Einstellung aktiviert, also sollte man sicherstellen, dass sie im produktiven Einsatz deaktiviert wird.

smtp: Objekt

Da die PHP-Funktion mail() den Versand einer E-Mail nicht garantieren kann, hat NOOP auch einen eigenen SMTP-Client. Das bedeutet, NOOP kann sich selbstständig mit einem SMTP-Server verbinden, um E-Mails zu versenden. Der SMTP-Server gibt anhand seiner Statuscodes zurück, ob die E-Mail tatsächlich in die Versand-Warteschlange aufgenommen wurde. Hier kann somit der SMTP-Client konfiguriert werden.

enabled: Boolean

false

Den SMTP-Client mit true aktivieren oder mit false deaktivieren. Wenn der SMTP-Client deaktiviert ist, wird stattdessen die PHP-Funktion mail() verwendet.

headerRemoveBCC: Boolean

true

Mit diesem Schalter kann man festlegen, dass der BCC-Header (Blind Carbon Copy) aus der E-Mail entfernt werden soll, nachdem dem SMTP-Server die Empfänger-Adressen mitgeteilt wurden. Der Zweck des BCC-Header's geht verloren, wenn alle Empfänger diesen trotzdem erhalten. Diese Einstellung kann somit sicherstellen, dass dieser Header nicht aus Versehen mitgesendet wird.

host: String

(leer)

Der Hostname, also die Domain oder die IP-Adresse des SMTP-Servers.

logging: Boolean

false

Bestimmt, ob die Kommunikation über SMTP mitgeschrieben werden soll. Sensible Informationen werden dabei anonymisiert. Dies dient z.B. um herauszufinden, warum das Senden einer E-Mail fehlgeschlagen ist.

noEHLOBeforeSTARTTLS: Boolean

false

Kein EHLO senden, bevor ein STARTTLS gesendet wurde. Diese Einstellung wird bei einigen SMTP-Servern benötigt, die sich scheinbar nicht komplett an die Spezifikation halten.

password: String

(leer)

Das für die Authentifizierung benötigte Passwort. In der Regel verlangen alle SMTP-Server mindestens eine Authentifizierung mittels Benutzername und Passwort.

port: Integer

465

Der für die Kommunikation mit einem SMTP-Server verwendete TCP-Port. Bei einer unverschlüsselten Verbindung ist der Standardport 25, bei einer verschlüsselten Verbindung mit SSL (Secure Socket Layer) ist der Standardport 465 und bei einer unverschlüsselten Verbindung, die mittels TLS (Transport Layer Security) auf eine verschlüsselte Verbindung aufgewertet wird, lautet 587.

protocol: String

ssl

Da anhand des Ports allein sich die Art der Verbindung nicht feststellen lässt, muss zusätzlich angegeben werden, um welche Art von Verbindung es sich handelt. Es werden 3 Arten unterstützt:

  • def
    Steht für default und bedeutet die klassische, unverschlüsselte Verbindung. Diese zu verwenden, wird heute nicht mehr empfohlen, da bei einer unverschlüsselten Verbindung andere Individuen die Verbindung belauschen können.
  • ssl
    Aufbau einer von Anfang an verschlüsselten Verbindung mittels SSL (Secure Socket Layer).
  • tls
    Aufbau einer unverschlüsselten Verbindung, die mittels TLS (Transport Layer Security) auf eine verschlüsselte Verbindung aufgewertet wird.
user: String

(leer)

Der für die Authentifizierung benötigte Benutzername. In der Regel verlangen alle SMTP-Server mindestens eine Authentifizierung mittels Benutzername und Passwort. Der Benutzername ist meistens die E-Mail-Adresse selbst.

subjectExample: String

NOOP! Framework - Example

Eine Beispielbetreffzeile. Diese Einstellung hat aktuell keinen weiteren Nutzen.

git: String

(leer)

Mit dieser Einstellung kann man den Pfad zum GIT-Repository angeben, wodurch NOOP anzeigen kann, in welchem Branch und Commit man sich gerade befindet. Dieser Pfad muss absolut, gültig, sowie existent sein und das .git-Verzeichnis selbst muss auch im Pfad enthalten sein. Durch diese Einstellung ist NOOP in der Lage anzuzeigen, In der Regel ist diese Einstellung nur für Entwickler interessant und relevant.

identity: Objekt

Mit diesem Objekt können geschäftliche bzw. persönliche Angaben zur Identität vorgenommen werden. Die Informationen werden z.B. für automatisch erzeugte Rechnungen benötigt. Die Identität selbst bezieht sich auf den Betreiber der Seite und kann eine Firma, Person, Organisation, ein Projekt oder etwas beliebig anderes sein. In der Regel entsprechen die Angaben jener die auch Impressum zu finden sind. Alle Angaben sind optional und werden nur bei Darstellungen verwendet. Das Bestellformular z.B. nutzt diese Angaben, um eine Rechnung erstellen zu können.

ceo: String

Noop Frameworkson

Der Geschäftsführer/Besitzer/Leiter/Betreiber dieser Webseite.

ceoTitle: String

No object oriented programming framework in PHP.

Der Titel des CEO. In der Regel der akademische Titel oder die Bezeichnung des Projektes.

city: String

Random Datacenter

Die Stadt, das Dorf oder der Ort, in der die Identität operiert.

country: String

DEU

Ein 3-Stelliger Code des Landes, in der die Identität operiert. Dabei handelt es sich um den ISO 3166-1 alpha-3 Ländercode. Auf dieser Wikipedia-Seite gibt es eine Liste der Länder mit entsprechenden Codes. Für Deutschland lautet der Code DEU.

email: String

noop@example.com

Die E-Mail-Adresse der Identität.

fax: String

+01 234 567 890 13

Die Fax-Nummer der Identität.

logoASCII: String

NOOP! Framework

Das Logo der Identität in ASCII-Form.

mobile: String

+01 987 654 321 09

Die Handy-Nummer der Identität.

name: String

NOOP! Framework

Der Name der Identität, also der Firma, Organisation, Person, des Projektes, usw.

street: String

Random Rack 211

Die Straße und Hausnummer, in der die Identität operiert.

telephone: String

+01 234 567 890 12

Die Festnetz-Telefon-Nummer der Identität.

taxID: String

US0123456789

Die Steuernummer der Identität, sofern die Identität kommerziell ist.

taxOffice: String

Tax office Bielefeld :D

Der Name des Finanzamts, welches für diese Identität zuständig ist.

type: String

Company

Der Typ dieser Identität. Der Typ wird mit einem englischen Wort beschrieben, z.B.:

  • Company = Firma
  • Organization = Organisation
  • Private = Private Person
  • Project = Projekt

website: String

noop.cisco211.de

Die Webseite der Identität. Diese muss nicht mit der Domain von NOOP übereinstimmen und braucht auch kein http:// oder https://.

zipCode: String

D-01234

Die Postleitzahl, in der die Identität operiert.

maintenanceMode: Objekt

Dieses Objekt betrifft alle Einstellungen, die mit dem Wartungsmodus zu tun haben. Wenn der Wartungsmodus aktiviert ist, dann werden alle Seiten auf die Wartungsseite umgeleitet. Das ist vor allem dann sinnvoll, wenn man nicht will, das ein Besucher die Seite benutzen kann, während man an dieser arbeitet. Nachdem man fertig ist, sollte man den Wartungsmodus wieder deaktivieren.

enabled: Boolean

true

Mit dieser Einstellung kann man den Wartungsmodus aktivieren und deaktivieren.

whitelistIPs: Array<String>

["127.0.0.1"]

In diesem Array kann man IP-Adressen hinzufügen, bei denen das Framework so arbeitet, als würde der Wartungsmodus abgeschaltet sein. Hier trägt man seine eigene, aktuelle IP-Adresse ein, um mit dem Framework arbeiten zu können, während ein Besucher die Wartungsseite zu sehen bekommt. Wenn NOOP im Internet betrieben wird, muss man die Online-IP-Adresse verwenden. Um herauszufinden, wie ihre eigene Online-IP-Adresse lautet, schauen sie bei www.wieistmeineip.de nach.

Es arbeiten 3 verschiedene Mitarbeiter mit den IP-Adressen 192.168.0.10, 192.168.0.20 und 192.168.0.30 an der Webseite. Das Array sollte in etwa so aussehen:

[
	"127.0.0.1",
	"192.168.0.10",
	"192.168.0.20",
	"192.168.0.30"
]

mysql: Objekt

Dieses Objekt betrifft alle Einstellungen, die mit einer MySQL-Datenbank zu tun haben. Eine MySQL-Datenbank ist nach wie vor rein optional.

config: Boolean

false

Bestimmt, ob die Konfiguration aus der MySQL-Datenbank geladen werden soll. Dabei überschreiben die Einstellungen aus der Datenbank alle bisher geladenen Einstellungen.

database: String

noop

Der Datenbankname samt Prefix/Suffix, falls vorhanden.

enabled: Boolean

false

Bestimmt, ob eine MySQL-Datenbank verwendet werden soll, oder nicht. Das Framework kommt ohne MySQL-Datenbank aus, allerdings könnte es Bestandteile enthalten, die eine Datenbank verwenden.

host: String

127.0.0.1

Der zu verwendende Host für die Datenbankverbindung. Wenn sich die Datenbank nicht auf derselben Maschine befindet, wie das Framework, dann muss diese Einstellung angepasst werden. Der Host kann entweder eine IP-Adresse oder eine gültige und erreichbare Domain sein.

password: String

(leer)

Das für die Datenbankverbindung benötigte Passwort. Falls Sie eine Datenbank verwenden, stellen Sie sicher, das diese nach einem Passwort verlangt, insbesondere dann, wenn die Datenbank sich auf einer anderen Maschine befindet, oder von außen aus erreichbar ist.

persistent: Boolean

true

Legt fest, ob die Datenbankverbindung aufrechterhalten werden soll. Diese Einstellung kann dazu führen, dass Seiten schneller geladen werden, da der Verbindungsaufbau nicht jedes Mal stattfinden muss, wenn man innerhalb von kurzen Zeitabständen mehrere Seiten aufruft.

port: Integer

3306

Der zu verwendende Datenbank-Netzwerkport. Normalerweise ist der Port immer 3306, aber da dieser an dem Datenbanksystem verstellbar ist, muss man ihn auch im Framework einstellen können.

user: String

noop

Mit dieser Einstellung legt man fest, welcher Benutzer sich mit der Datenbank verbinden soll. Stellen Sie sicher, das nicht der Benutzer root verwendet wird, da dies ein sehr großes Sicherheitsrisiko darstellt.

order: Objekt

Dieses Objekt konfiguriert Bestellformulare. Jedes Bestellformular kann individuell konfiguriert werden. Das Bestellformular funktioniert ohne MySQL-Datenbank und arbeitet mit dem Versand von E-Mails. Wenn NOOP mit dompdf installiert wurde, enthalten die versendeten E-Mails ebenfalls eine Rechnung.

emailAddress: String

sales@name.tld

Die für das Bestellsystem verwendete E-Mail-Adresse.

emailSubject: String

NOOP! Framework - Order: {amount}x {itemName} ({itemNumber})

Der Aufbau des E-Mail-Betreff für aufgegebene Bestellungen. Der Betreff kann durch das Setzen von Platzhaltern auch Informationen über die Bestellung enthalten. Dabei werden folgende Platzhalter unterstützt:

  • {amount}
    Die Menge des Artikels.
  • {day}
    Der Tag, an dem die Bestellung gemacht wurde.
  • {hour}
    Die Stunde, in der die Bestellung gemacht wurde.
  • {itemName}
    Der Name des Artikels.
  • {itemNumber}
    Die Artikelnummer.
  • {minute}
    Die Minute, in der die Bestellung gemacht wurde.
  • {month}
    Der Monat, in der die Bestellung gemacht wurde.
  • {orderNumber}
    Die Bestellnummer.
  • {second}
    Die Sekunde, in der die Bestellung gemacht wurde.
  • {year}
    Das Jahr, in der die Bestellung gemacht wurde.

enabled: String

false

Aktiviert oder Deaktiviert das Bestellformular-System.

linkPrivacy: String

(leer)

Eine URL zu der Datenschutzerklärung. Wenn dieser Wert leer ist, wird keine Zustimmung zur Datenschutzerklärung benötigt.

orders: Array<Objekt>

Eine Liste von Bestellungen.

currency: String

(leer)

Ein gültiger, dreistelliger ISO-4217-Sprachcode der Währung. Die Datei core/data/currency.tsv listet alle möglichen Sprachcodes auf.

EUR, JPY, USD

descriptionFoot: String

(leer)

Eine Beschreibung nach dem HTML-Formular auf der Seite darstellen. Die Beschreibung selbst kann HTML sein.

<p>Description text in footer.</p>

descriptionHead: String

(leer)

Eine Beschreibung vor dem HTML-Formular auf der Seite darstellen. Die Beschreibung selbst kann HTML sein.

<p>Description text in header.</p>

enabled: Boolean

false

Diese Bestellung aktivieren.

expired: Boolean

false

Diese Bestellung ist abgelaufen. Das bedeutet, sie wird nicht mehr gelistet und beim Aufruf wird angezeigt, das diese nicht mehr verfügbar ist.

id: String

Die ID dieser Bestellung. Mit der ID kann die Bestellung aufgerufen werden.

itemNumber: String

(leer)

Die Artikelnummer zu dieser Bestellung. Wenn keine Artikelnummer angegeben wurde, wird die ID der Bestellung selbst verwendet.

linkDetails: String

(leer)

Ein Link zu der Beschreibung des Artikels.

maxAmount: Integer

0

Eine Maximalmenge, die vom Artikel in einer Bestellung bestellt werden kann. Wenn die Angabe kleiner als 1 ist, dann gibt es kein Limit.

name: String

(leer)

Der Name der Bestellung oder des Artikels.

orderNumber: String

B{year}{month}{day}{hour}{minute}{second}

Der Aufbau der Bestellnummer. Die Bestellnummer kann durch das Setzen von Platzhaltern auch Informationen über die Bestellung enthalten. Dabei werden folgende Platzhalter unterstützt:

  • {day}
    Der Tag, an dem die Bestellung gemacht wurde.
  • {hour}
    Die Stunde, in der die Bestellung gemacht wurde.
  • {minute}
    Die Minute, in der die Bestellung gemacht wurde.
  • {month}
    Der Monat, in der die Bestellung gemacht wurde.
  • {second}
    Die Sekunde, in der die Bestellung gemacht wurde.
  • {year}
    Das Jahr, in der die Bestellung gemacht wurde.
payments: Array<String>

["bankTransfer"]

Eine Liste von möglichen Bezahlmethoden, die in der aktuellen Bestellung verfügbar sind. Es muss mindestens eine Bezahlmethode sein, sonst funktioniert diese Bestellung nicht.

purpose: String

{orderNumber} {itemNumber}-{amount}: {email}

Der Aufbau des Verwendungszwecks wird in den Bezahlmethoden verwendet, um Bestellungen beim Geldeingang zuordnen zu können. Der Verwendungszweck kann durch das Setzen von Platzhaltern Informationen über die Bestellung enthalten. Dabei werden folgende Platzhalter unterstützt:

  • {amount}
    Die Menge des Artikels.
  • {day}
    Der Tag, an dem die Bestellung gemacht wurde.
  • {email}
    Die E-Mail-Adresse des Bestellers.
  • {hour}
    Die Stunde, in der die Bestellung gemacht wurde.
  • {itemName}
    Der Name des Artikels.
  • {itemNumber}
    Die Artikelnummer.
  • {minute}
    Die Minute, in der die Bestellung gemacht wurde.
  • {month}
    Der Monat, in der die Bestellung gemacht wurde.
  • {orderNumber}
    Die Bestellnummer.
  • {second}
    Die Sekunde, in der die Bestellung gemacht wurde.
  • {year}
    Das Jahr, in der die Bestellung gemacht wurde.
value: Float

0.00

Der Preis des Artikels gerundet auf die maximalen Stellen der kleinsten Stückelung der jeweiligen Währung.

In Deutschland ist die kleinste Stückelung ein Cent, also 0.31, 1.00, 19.99, 50.40, ...

vat: Integer

-1

Der Mehrwertsteuersatz in Prozent. Ein Mehrwertsteuersatz von 0 Prozent bedeutet steuerfrei. Eine negative Angabe ermöglicht den Zugriff auf die Einträge von payment.vats, d.h. der erste Eintrag wird mit -1, der zweite mit -2 und so weiter, angesprochen.

scanDirectory: String

(leer)

Ein Pfad relativ zum Stammverzeichnis von NOOP, wo nach JSON-Dateien gesucht werden sollen, die jeweils eine Bestellung konfigurieren. Der Pfad kann Unterverzeichnisse enthalten, die bis zu einer Tiefe von 8 ebenfalls durchsucht werden. Jede gefundene JSON-Datei wird auf die enthaltene Struktur geprüft. Gefundene JSON-Dateien ersetzen nicht bereits aus der Konfiguration vorhandene Bestellungen. Dies wird durch den Vergleich der IDs überprüft. Der einzige Zweck dieser Funktion ist das dezentrale Konfigurieren von Bestellungen.

pageEnabled: Objekt

In diesem Objekt können Sie angeben, welche der dynamisch generierten Unterseiten aktiviert sind. Fehlende Einstellungen in diesem Objekt führen immer dazu, dass die jeweilige Seite deaktiviert ist.

makeData: Boolean

false

Diese Seite ermöglicht es, die Suchdatenbank und die Sitemap-Daten zu generieren. Standardmäßig ist diese Seite deaktiviert und sie sollte auch im produktiven Einsatz deaktiviert bleiben. Wenn man mit NOOP lokal Webseiten erstellt, kann man diese Seite aktivieren, um die Daten zu generieren, bevor man die Inhalte auf den öffentlichen Webserver hochlädt.

payment: Objekt

Dieses Objekt beschreibt verfügbare Bezahlmethoden. Aktuell gibt es nur die Banküberweisung.

bankTransfer: Objekt

Mit diesem Objekt kann man die Bankverbindung für SEPA-Banküberweisungen konfigurieren.

enabled: Boolean

false

Banküberweisungen aktivieren oder deaktivieren.

iban: String

(leer)

Eine gültige IBAN (International Bank Account Number) für die Banküberweisung. Die IBAN wird geprüft und muss gültig sein. Sie kann zur besseren Lesbarkeit auch in 4er-Blöcken aufgeteilt werden. Der Aufbau der IBAN wird in ISO 13616-1:2007 beschrieben.

name: String

(leer)

Der Name der Bank.

payee: String

(leer)

Die Bezeichnung des Zahlungsempfängers. Dies ist in der Regel der Name der Person oder der Firma, welche das Bankkonto besitzt.

swift: String

(leer)

Ein gültiger SWIFT-Code (Society for Worldwide Interbank Financial Telecommunication) für die Banküberweisung. Der SWIFT-Code wird geprüft und muss gültig sein. Dieser Code ist auch als BIC (Business Identifier Code) bekannt und wird in ISO 9362 beschrieben.

vats: Array<Integer>

[19]

Eine Liste von Mehrwertsteuersätzen die für Finanzberechnungen verwendet werden können. Der Zugriff auf die hier eingetragenen Werte erfolgt mittels negativem Index, d.h. der erste Eintrag wird mit -1, der zweite mit -2 und so weiter, angesprochen.

recaptcha: Objekt

Mit diesem Objekt lässt sich das Google reCAPTCHA konfigurieren. NOOP unterstützt reCAPTCHA Version 2 und 3. Das reCAPTCHA wird in allen Formularen verwendet, um den Benutzer als echten Menschen und nicht als Maschine identifizieren zu können. Dadurch kann Spam sehr effektiv vermieden werden. Um reCAPTCHA verwenden zu können, besuchen Sie folgende Entwickler-Seite von Google: reCAPTCHA | Google Developers

enabled: Boolean

false

Mit dieser Einstellung wird die Nutzung von reCAPTCHA grundsätzlich aktiviert (true) oder deaktiviert (false). Wenn das reCAPTCHA deaktiviert wird, wird es nicht in die Formulare eingebunden.

score: Float

0.5

Mit dem score kann der Schwellwert bestimmt werden, ab wann ein Besucher als Mensch identifiziert wird. Diese Einstellung ist nur relevant, wenn man die Version 3 verwendet. Unter dem Schwellwert wird der Besucher als Maschine und über/gleich dem Schwellwert als Mensch identifiziert. Der Wert selbst kann sich nur zwischen 0.0 und 1.0 (inklusive) bewegen. Umso höher man den Wert einstellt, umso strenger ist das reCAPTCHA.

secret: String

(leer)

Der reCAPTCHA-Geheimschlüssel (= privater Schlüssel).

sitekey: String

(leer)

Der reCAPTCHA-Seitenschlüssel (= öffentlicher Schlüssel).

version: Integer

2

Die zu verwendende reCAPTCHA-Version. Bei Version 2 wird eine Box im Formular angezeigt, welche man nur einmal anklickt. Wenn sich der Benutzer nicht als Mensch identifizieren lässt, werden dann zusätzlich Sicherheitsfragen gestellt, z.B. Klicken Sie alle Bilder, die einen Zebrastreifen enthalten. Bei Version 3 hingegen läuft der Verifizierungsprozess im Hintergrund ab. Das reCAPTCHA analysiert dann z.B. wie der Besucher seine Maus bewegt oder die Zeitabstände zwischen den Tastenanschlägen. Aus den Daten wird dann ein score berechnet, welcher den in NOOP eingestellten Wert mindestens erreichen muss, um als Mensch identifiziert zu werden. Wichtig: Der eingestellte Seitenschlüssel, sowie Geheimschlüssel ist an die reCAPTCHA-Version gebunden. Das bedeutet, wenn sie Schlüssel für Version 2 erstellt haben, können Sie diese nicht für Version 3 verwenden und umgekehrt.

security: Objekt

In diesem Objekt werden Sicherheitseinstellungen festgelegt.

forceHTTPS: Boolean

false

Wenn diese Einstellung auf true gesetzt wird, dann leitet NOOP sich selbst auf HTTPS um, sofern man die Webseite nur mit HTTP aufruft.

strictBrowser: Boolean

false

Wenn diese Einstellung auf true gesetzt wird, dann überprüft NOOP die Art des Browsers über dem User-Agent vom Besucher. Wenn der Browser sich dann im Verlauf der Nutzung auf einmal ändert, kann man davon ausgehen das irgendwas nicht stimmt. Diese Einstellung ist als zusätzlicher Schutz gegen Sitzungscookie-Diebstahl gedacht.

Der Besucher besucht die Webseite mit dem Browser Firefox. Nach einem Request ändert sich auf einmal der User-Agent und der Firefox wurde zum Chrome. NOOP erkennt die Veränderung und sperrt den Benutzer aus.

strictHTTPS: Boolean

false

Wenn diese Einstellung auf true gesetzt wird, dann überprüft NOOP, ob als Protokoll HTTPS verwendet wird. Wenn das nicht der Fall ist, verweigert NOOP die Nutzung.

strictIP: Boolean

false

Wenn diese Einstellung auf true gesetzt wird, dann überprüft NOOP, ob PHP die IP-Adresse des Besuchers ermittelt hat. In der Regel verschleiert der Client die IP-Adresse nicht. Trotzdem ist es z.B. bei TOR-Netzwerken möglich, das die IP-Adresse sich nicht ermitteln lässt.

useCSP: Boolean

false

CSP steht für Content Security Policy und ist ein in Browsern integrierter Mechanismus, um das einschleusen von Schadcode auf der Webseite zu erschweren. Dabei bestimmt der Betreiber der Webseite die Regeln. Bei NOOP wird dieser Mechanismus für alle Seiten verwendet, die Formulare enthalten. Da die Technik noch recht neu ist, kann diese Probleme verursachen und sollte dann abgeschaltet werden.

session: Objekt

Mit dem session-Objekt werden Sitzungen und das Sitzungscookie konfiguriert. Das Sitzungssystem wird z.B. verwendet, wenn die Webseite ein Kontomechanismus mit Login und Registrierung hat.

database: Boolean

false

Wenn man diese Einstellung aktiviert (true), dann werden PHP-Sitzungen nicht im Dateisystem (bei NOOP im Verzeichnis data/session), sondern in der MySQL-Datenbank gespeichert. Diese Einstellung funktioniert nur, wenn die MySQL-Datenbank aktiviert und eingerichtet ist.

domain: String

name.tld

Mit dieser Einstellung wird die Domain festgelegt, unter der das Cookie gilt. Zudem wird dieser Wert von NOOP sehr oft verwendet, um z.B. Links bilden zu können. Diese Einstellung ist somit sehr wichtig und muss (damit NOOP richtig funktioniert) korrekt eingestellt sein. Die Domain muss eine vollständige FQDN sein, das bedeutet, wenn man NOOP auf www.meineseite.de betreiben will, dann muss man auch genau dies einstellen. Das bedeutet allerdings auch, das Sitzungen nicht funktionieren werden, wenn man die Webseite nur per meineseite.de aufruft.

enabled: Boolean

true

Mittels enabled lässt sich das Sitzungssystem aktivieren (true) oder deaktivieren (false).

gc_divisor: Integer

100

Mit dieser Einstellung wird der Teiler der Aufräumfunktion für Sitzungen konfiguriert. In Kombination mit gc_probability wird damit die Wahrscheinlichkeit gesteuert ob und wann die Aufräumfunktion ausgeführt werden soll. Die Formel dafür ist gc_probability / gc_divisor.

Mit den Standardwerten ergibt das eine Wahrscheinlichkeit von 1 zu 100, d.h. die Aufräumfunktion wird pro Seitenaufruf mit einer Wahrscheinlichkeit von 1% ausgeführt.

gc_maxlifetime: Integer

3600

Die gc_maxlifetime bestimmt, ab wann Sitzungsdaten von der Aufräumfunktion als Müll deklariert werden. Der Wert wird in Sekunden angegeben.

gc_probability: Integer

1

Mit der gc_probability wird der Nenner der Aufräumfunktion für Sitzungen konfiguriert. In Kombination mit gc_divisor wird damit die Wahrscheinlichkeit gesteuert ob und wann die Aufräumfunktion ausgeführt werden soll. Die Formel dafür ist gc_probability / gc_divisor.

Mit den Standardwerten ergibt das eine Wahrscheinlichkeit von 1 zu 100, d.h. die Aufräumfunktion wird pro Seitenaufruf mit einer Wahrscheinlichkeit von 1% ausgeführt.

httpOnly: Boolean

true

Mit dieser Einstellung wird bestimmt, ob der Sitzungscookie auch vom Javascript des Browsers ausgelesen werden kann. Aus Sicherheitsgründen sollte man diese Einstellung einschalten (true).

lifetime: Integer

3600

Diese Einstellung legt fest, wie lange eine Sitzung bei Inaktivität gültig sein soll. Die Aktivität des Besuchers verlängert die Sitzungsdauer automatisch. Der Wert wird in Sekunden angegeben.

name: String

__noop

Mit dieser Einstellung kann man bestimmen, wie der Name des Sitzungscookies lauten soll.

path: String

/

Mit dieser Einstellung wird festgelegt, wo im URL-Pfad der Sitzungscookie gilt. Wie bei der Einstellung base muss hier der Pfad angegeben werden, der sich relativ zum DocumentRoot bezieht. Im Prinzip bedeutet das, man kopiert die Einstellung aus base.

Nehmen wir an, der DocumentRoot befindet sich auf /var/www und das Framework wurde nach /var/www/noop installiert, dann muss die Einstellung auf /noop gestellt sein.

secure: Boolean

true

Wenn diese Einstellung aktiviert (true) wird, dann kann der Sitzungscookie nur über HTTPS übertragen werden.

singleton: Boolean

true

Diese Einstellung bestimmt, ob man sich an mehreren Geräten gleichzeitig anmelden kann (true) oder nicht (false).

sitemap: Objekt

In diesem Objekt können Sie Einstellungen an der Sitemap vornehmen. Die Sitemap ist so eine Art Inhaltsverzeichnis für Suchmaschinen, was dabei hilft ihre Webseite viel effektiver zu indizieren. Die Sitemap lässt sich stets über /sitemap.xml aufrufen.

defaultChangeFrequency: String

weekly

Mit dieser Einstellung können Sie festlegen, welche Änderungsfrequenz verwendet werden soll, wenn sie nicht angegeben wird. Die Änderungsfrequenz sagt aus, wie oft sich der Inhalt einer Seite voraussichtlich ändert. Das hilft den Suchmaschinen herauszufinden, wie oft eine Seite indexiert werden sollte. Dabei sind folgende Angaben möglich:

  • always = Seite ändert sich ständig, also mehr als 1 mal pro Stunde.
  • hourly = Seite ändert sich nur stündlich.
  • daily = Seite ändert sich nur täglich.
  • weekly = Seite ändert sich nur wöchentlich.
  • monthly Seite ändert sich nur monatlich.
  • yearly = Seite ändert sich nur jährlich.
  • never = Seite ändert sich nie.

defaultPriority: Float

0.5

Mit dieser Einstellung können Sie festlegen, welche Priorität verwendet werden soll, wenn sie nicht angegeben wird. Die Priorität sagt in etwa aus, wie wichtig der Inhalt einer Seite ist. Das hilft den Suchmaschinen wichtige Seiten gegenüber anderen zu priorisieren. Es sind nur Werte zwischen 0.0 und 1.0 (inklusive) möglich. Beachten Sie das diese Angabe von Suchmaschinen relativ zu allen indexierten Seiten ist. Das bedeutet, wenn Sie alle Seiten auf 1.0 stellen, dann sind trotzdem alle Seiten gleich wichtig.

enabled: Boolean

false

Mit dieser Einstellung wird die Sitemap aktiviert (true) oder deaktiviert (false).

useURL: String

(leer)

Mit dieser Einstellung kann man festlegen, was als Präfix für das <loc> verwendet werden soll. Diese Einstellung braucht man, wenn man die Sitemap an einem anderen Ort (z.B. lokale Kopie der Webseite) erzeugen will. Wenn die Zeichenkette leer bleibt, wird die URL wie bisher automatisch generiert. Die Angabe muss stets mit einem / enden und immer aus folgenden Bestandteilen bestehen:

  • Schema (z.B.: https://)
  • Domain (z.B.: beispiel.de)
  • Basispfad (z.B.: /noop/)

Mal angenommen eine lokale Kopie von NOOP ist über http://192.168.0.99/noop/ erreichbar. Wir setzen den Wert auf http://beispiel.de/, was dazu führt, dass beim Erzeugen der Sitemap das <loc> stets mit http://beispiel.de/ beginnt. Wenn diese Einstellung leer bleibt, würde das <loc> stattdessen immer mit http://192.168.0.99/noop/ beginnen.

static: Objekt

Mit dem static-Objekt werden die statischen Seiten (im Verzeichnis static/) konfiguriert.

allow: Objekt

In diesem Objekt wird bestimmt, welche Funktionen bereitgestellt werden bzw. erlaubt sind. Das static-Modul klassifiziert Dateitypen in bestimmte Gruppen. Hier wird eingestellt, welche Gruppen zur Nutzung erlaubt sind und welche nicht.

exeFile: Boolean

false

Bestimmt, ob ausführbare Dateien, wie z.B. Windows-Programme ausgeliefert, also gedownloadet werden dürfen (true) oder nicht (false).

incFile: Boolean

true

Bestimmt, ob Dateien mit der Endung inc benutzt werden dürfen. Diese Dateien werden nicht direkt vom Besucher geöffnet, sondern z.B. in anderen HTML-Dateien mittels der Anweisung <!--%%staticInclude:'pfad/zur/datei.inc'%%--> inkludiert. Das ist z.B. sinnvoll, wenn man einen Textbaustein hat, der mehrmals auf der Seite vorkommt.

phpCode: Boolean

false

Diese Einstellung bestimmt, ob Template-Dateien auch direkt PHP-Code enthalten dürfen. In der Regel sollte man dies vermeiden, jedoch kann es vorkommen, dass man es wirklich braucht.

phpFile: Boolean

true

Diese Einstellung ermöglicht, dass PHP-Dateien benutzt werden dürfen. NOOP zeigt dann an, was die PHP-Datei selbst ausgibt.

rawFile: Boolean

true

Mit dieser Einstellung kann man bestimmen, ob Rohdaten, also z.B. Bilder, Sounds und Videos benutzt werden dürfen.

tplFile: Boolean

true

Diese Einstellung bestimmt, ob sog. Template-Dateien benutzt werden dürfen. Solche Dateien sind im Normalfall jene, die HTML beschreiben, also mit der Endung htm, html, dhtml, phtml, shtml und xhtml. Das Template-System von NOOP erlaubt es somit auch in diesen Dateien, spezielle Anweisungen zu beschreiben, um beispielsweise den Titel der Seite bestimmen oder PHP-Funktionen aufzurufen, um deren Rückgabe anzuzeigen.

enabled: Boolean

true

Mit dieser Einstellung wird das System für statische Seiten aktiviert (false) oder deaktiviert (false).

indexDirectory: Array<String>

["noop/schema/*", "noop/test/*"]

In diesem Array können Sie Verzeichnispfade innerhalb des static-Verzeichnis angeben, wo der Verzeichnisinhalt aufgelistet werden soll, wenn keine Index-Datei enthalten ist. Jeder Verzeichnispfad wird mit einem /* abgeschlossen, um zu signalisieren, das der Inhalt dieses Verzeichnis aufgelistet werden soll.

indexFile: String

index.html

Mit dieser Einstellung können Sie bestimmen, wie die Index-Datei in Verzeichnissen benannt sein muss. Die Index-Datei wird immer dann aufgerufen, wenn man einen Verzeichnispfad ohne Datei aufruft. Wenn die Index-Datei nicht existiert, wird entweder die Fehlermeldung 404 (Nicht gefunden), oder (sofern für dieses Verzeichnis konfiguriert, siehe indexDirectory) der Inhalt des Verzeichnisses aufgelistet.

tree: Objekt

Mit diesem Objekt kann eine 2 Ebenen tiefe Verzeichnisstruktur-Erkennung für Inhalte aus dem static-Verzeichnis konfiguriert werden. Dies wird z.B. für die automatische Erzeugung von Menüs verwendet.

enabled: Boolean

false

Bestimmt, ob diese Funktion aktiviert (true) oder deaktiviert (false) ist.

patternLevel0: String

/^[A-Z]{2}[A-Za-z0-9]{1,6}$/

Das Regular-Expression-Muster für die erste Ebene (also static/*). Mit dem Muster kann genau bestimmt werden, welche Verzeichnisse zum Erzeugen der Struktur verwendet werden sollen.

patternLevel1: String

/^[a-z0-9_]{1,8}\\.html$/

Das Regular-Expression-Muster für die zweite Ebene (also static/%patternLevel0%/*). Mit dem Muster kann genau bestimmt werden, welche Dateien zum Erzeugen der Struktur verwendet werden sollen.

title: String

NOOP! Framework

Der zu verwendende Seitentitel der Webseite. Dieser Wert wird in das <title>-Element des Templates geschrieben und im Browserfenster bzw. Tab angezeigt.

verify: Objekt

{}

Diese Einstellung ist für später reserviert und kann sich bis dahin verändern.

⇧ Nach Oben