aspektorientiertes CMS, modular, XML-basiert, ohne Datenbank
PHP JavaScript CSS XSLT ApacheConf
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
context
developing
manual
releases
sources
.gitignore
.license
.project
README.md

README.md

Seanox Aspect Oriented Publishing (aspect)

Ein aspektorientiertes Framework mit den Ansätzen eines Content Management Systems (CMS), so die kurze Beschreibung zu Seanox aspect. Wesentlich ist die Bereitstellung von Inhalten und Daten im Internet. Im Vergleich zu klassischen Content Management Systemen steht hier die Projektion und nicht die Verwaltung von Inhalten im Vordergrund. So werden in Seanox aspect Daten und Inhalte in ihrer Gesamtheit erfasst und lassen sich komplett, in Auszügen oder im Mix in verschiedenen statischen und dynamischen Sichten abbilden.

Seanox aspect basiert auf XML, verwendet ein dateibasiertes und transaktionsfähiges Datenmanagement und benötigt kein Datenbanksystem (DBS). Daten und Inhalte werden medienneutral in XML beschrieben und per Transformation mit XSL auf das Ausgabemedium projiziert. Funktional werden dazu XPath und Ad-Hoc-Views eingesetzt. Der Funktionsumfang von XPath ist um eigene PHP-Funktionen erweiterbar, was aktiv durch die aspect API unterstützt wird, und bietet damit einen ungeahnten kreativen Freiraum.

Der Kern ist modular, ereignisgesteuert, individuell erweiterbar und auf Performanz ausgelegt. Verschiedene Zwischenspeicher unterscheiden selbstständig zwischen dynamischen und statischen Inhalten und sorgen für ein zügiges Ausliefern der Inhalte.

Daten, Medien, Logik, Projektion und Design sind streng getrennt und finden erst bei der Transformation zusammen.

Lizenz

Seanox Software Solutions ist ein Open-Source Projekt, im Folgenden Seanox Software Solutions oder kurz Seanox genannt.

Diese Software unterliegt der Version 2 der GNU General Public License.

Seanox Publish, Aspect Oriented Publishing
Copyright (C) 2015 Seanox Software Solutions

This program is free software; you can redistribute it and/or modify it under the terms of version 2 of the GNU General Public License as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Funktionsumfang

  • aspektorientiertes Framework und CMS
  • modulare, ereignisgesteuerte und anpassungsfähige Architektur
  • dateibasiertes und transaktionsfähiges Datenmanagement
  • medienneutrale Datenhaltung
  • flexibel und ungebunden in Datenmodell, Projektion und Style
  • strikte Trennung von Layout, Logik und Daten
  • XML-basierte Transformation unterstützt XPath mit Ad-Hoc-Views und direktem Zugriff auf eigene PHP-Funktionen
  • Volltextsuche (inkl. logischer Operatoren, Joker, Phrasen, Verschachtelung mit Klammern, Hervorhebung der Fundstellen, Sortierung, Berechnung der Relevanz)
  • erweiterbare API, unterstützt Module und Events
  • bereits enthaltene Erweiterungen: Barcode/QR-Code, Cors, Date, File, Image, Iteration, Latence, Locale, Logic, Markup, Math, Network, Number, Page, Runtime, Search, Statistic, Storage, Text, View, u.v.m.
  • Protokollierung von Stacktrace und Request-Daten im Fehlerfall
  • kompakt, der Kern inkl. essentieller Erweiterungen ist < 256 KB
  • geringer Speicherbedarf auch bei Massendaten
  • 100% Open-Source

Systemanforderungen

  • PHP 5.x, benötigt die Erweiterungen php_xsl, php_curl

Downloads

1.1.0 20150401 Essential

1.1.0 20150401 Professional (Essential + mehr PHP/JS-Erweiterungen + mehr Doku.)

1.1.0 20150401 Ultimate (Professional + mehr PHP/JS-Erweiterungen + mehr Doku. + Beispiele)

1.0 20150123 Dokumentation (fortlaufendene Weiterführung)

Online-Demo

http://aspect.seanox.de/

Installation

Die Software wird als Zip-Archiv bereitgestellt.

Zur Installation wird die enthaltene Verzeichnisstruktur in ein beliebiges Verzeichnis vom Webserver entpackt.

Zur Anbindung wird der Web-Server so eingerichtet, dass alle Anfragen auf das PHP-Skript ./aspect/service.php umgeleitet werden. Damit kann da Skript selbst nicht aufgerufen werden, bekommt aber alle Anfragen per Path-Info als virtuellen Pfad übergeben

Apache HTTP Server

Die Anbindung erfolgt mittels RewriteRule in der Konfigurationsdatei .htaccess. Eine Vorlage für eine komplette Domain liegt der Installation von Seanox aspect bei. Hier muss lediglich der Platzhalte <sub.domain.tld/path> ersetzt werden.

#.htaccess
ErrorDocument 400 http://<sub.domain.tld/path>/error/status-400
ErrorDocument 401 http://<sub.domain.tld/path>/error/status-401
ErrorDocument 403 http://<sub.domain.tld/path>/error/status-403
ErrorDocument 404 http://<sub.domain.tld/path>/error/status-404
ErrorDocument 500 http://<sub.domain.tld/path>/error/status-500

RewriteEngine on
RewriteRule (.*) service.php

Seanox Devwex

Seanox aspect wird in der Konfigurationsdatei devwex.ini als absolute Referenz in der Sektion REF eingetragen. Virtuelle Hosts Sub-Domains und URL-Pfade werden unterstützt.

[VIRTUAL:DOMAIN:REF] EXTENDS SERVER:HTTP:REF
  CMS = / > ../documents/aspect/service.php [A]

Andere HTTP-Server

Zur Anbindung wird der Web-Server so eingerichtet, dass alle Anfragen auf das PHP-Skript ./aspect/service.php umgeleitet werden. Damit kann das Skript selbst nicht aufgerufen werden, bekommt aber alle Anfragen per Path-Info als virtuellen Pfad übergeben

Konfiguration

Eine Konfiguration ist nicht erforderlich.

In Seanox aspect wird das Prinzip einer dezentralen und komponentenbezogen Selbst-konfiguration verfolgt.

Von Kern und API werden eine feste, bei Bedarf dennoch individuell anpassbare, Ver-zeichnisstruktur sowie Daten- und Dateizuordnung vorgegeben, auf der alle Komponenten aufbauen.

Komponenten- und funktionsbezogene Einstellungen erfolgen dann direkt in den Kompo-nenten und werden als Konstanten bereitgestellt. Diese Konstanten sind damit Bestandteil der API und werden bei Bedarf von anderen Komponenten zur Konfiguration herangezo-gen.

Historie

1.2.x 20151xxx (kommende Version)

  • Erweiterung um automatische Includes in den XSL-Templates
  • Erweiterung um Transaktionen (kaskadierbar, rollback-fähig)
  • Erweiterung um feste Anwendungsdateien in service.php für FILE_SERVICE_CONFIGURATION, FILE_SERVICE_MIME, FILE_SERVICE_STYLESHEET
  • Erweiterung der Zugriffskontrolle um den Ausschluss von Dateien und Verzeichnissen die mit einem Punkt beginnen (z.B. .share)
  • Änderung der API: Service::GetRuntimeVariable wurde ersetzt durch Service::GetArrayValue, Service::SendStatus unterdrückt den Request-Body für die Fehlerklasse 1xx / 2xx und 300 was über den neuen Parameter content-omitted gesteuert werden kann; Service::ERROR_..., die Konstanten für den Status-Code wurden in Service::STATUS_... umbenannt; Serivce::getMetaName(...) und Serivce::getMetaHash(...) verwenden nun immer die aufrufende Klasse als Basis zur Hash-Bildung
  • Optimierung der Fehlerausgabe/Fehlerseite für individuelle Fehlerstatus und Fehlertexte (die Fehlerinformationen stehen jetzt auch als Meta-Attribute in der Page zur Verfügung)
  • Optimierung beim Laden von Erweiterungen
  • Korrektur der Übernahme eigener Meta-Attribute in die Page
  • Korrektur in der Ermittlung vom Content-Type
  • Korrektur in der Ermittlung/Zuweisung der Views und ggf. alternativen XSLT's über das View-Attribute in den XML-Dateien
  • Korrektur aspect.js Composite::Bind bindet nun auch leere HTML-Elemente ein
  • Korrektur der initialen Indexierung der Suche; Umstellung der Suche auf die ausschliessliche Nutzung vom Auslagerungsverzeichnis /share/search

1.1.0 20150401

  • Erweiterung vom (Secure)Filter um Access Control List (ACL)
  • Erweiterung der Beispiele um einen Chat (mit simultan Übersetzung) und einer einfachen Zugriffsstatistik
  • Erweiterung der XPath-Funktionen um Date::timestamp und Text::regExSplit
  • Erweiterung der Professional-Distribution um aspect.js (JavaScript-API)
  • Umstellung der Fonts auf Roboto
  • Anpassung/Korrektur/Optimierung der Erstellung und Bereitstellung der (Serivce)UniqueId
  • Anpassung der Methode Runtime::requireOnce, diese bezieht sich nun auf das Arbeitsverzeichnis der Anwendung und lässt nun auch das Einbinden von PHP-Dateien aus dem Content-Verzeichnis zu, was die Entwicklung von Komponenten vereinfacht (PHP-Dateien im Content-Verzeichnis sind per URL nicht erreichbar, Anfragen werden mit Status 404 beantwortet)
  • Erweiterung Server::sendStatus um die Verarbeitung von HTTP-Header-Parameter
  • Optimierung Server::sendStatus, Logging nur im Fehlerfall
  • Anpassung von Server::sendError, Umbennung in Server::sendStatus
  • Anpassung von Server::EVENT_SEND_ERROR, Umbennung in Server::EVENT_SEND_STATUS
  • Korrektur beim Encoding der Volltext-Suche

1.0 20150123

  • komplette Überarbeitung (Kern und Erweiterungen)
  • Erweiterung um Ad-Hoc-Views
  • Erweiterung der Events
  • Erweiterung und Optimierung der Transformation
  • Erweiterung und Optimierung der Suche (Hervorhebung der Fundstellen, Sortierung und Berechnung der Relevanz)
  • Erweiterung und Optimierung der Zwischenspeicher
  • Erweiterung der Protokollierung im Fehlerfall um den Stacktrace

0.1 20130815

  • lauffähige Version in GitHub

Contributing

Feel free to fork and send pull requests. Contributions welcome.

Donations

Seanox ist kein kommerzielles Projekt. Ihre materielle und finanzielle Unterstützung oder Entwicklungsleistung hilft die Weiterentwicklung zu sichern.

Credits

TODO: