Die Warenkorbfunktion (workbasket)

Ähnliche Dokumente
Der MyCoRe-URI-Resolver

Frilo.Document.Designer

Handbuch für die Erweiterbarkeit

Migrationsanleitung von 2.0 auf 2.1

Hierfür sind mit dem Content Management System (CMS) Joomla in Verbindung mit SIGE Pro Inhalte angelegt worden, die genau diesen Zweck erfüllen.

Dissertationsserver mit miless / MyCoRe:

Index mit Adobe Acrobat Professional erstellen. Leibniz Universität IT Services Anja Aue

<MyCoRe> Eine Software für verschiedene Repositorien

Bedienung von BlueJ. Klassenanzeige

In Inventor werden Stile bzw. Stilbibliotheken zur Formatierung von Objekten benutzt:

Arbeiten mit dem Externen Client smart start

Softwarepraktikum - Verteidigung Entwurf LDAP-Interfaces für majordomo und Web

Multimediale Dokumentenserver als E-Learning Content Repository

Hilfe zur Dokumentenverwaltung

Anleitung zur Benutzung des Admin Control Panel

PHP Übungsaufgabe 2 1 / 5. Doing Web Apps. PHP Übungsaufgabe 2

Entwicklungstand der GUI

Kurzskript Literaturverzeichnis Microsoft Office Word 2010

Erstellung botoptimierter Partnerlinks

EINFÜHRUNG. Durch Model Sharing. Model Sharing ist Bestandteil von Tekla Structures 21.0 Es ist keine zusätzliche Installation notwendig

WORD TEXT REPLACER 1 PROGRAMMHILFE GILLMEISTER SOFTWARE.

AplusixAdmin : Administration von Aplusix 3 Benutzerhandbuch

3 Maps richtig ablegen und

Technische Beschreibung: EPOD Server

Tutorial SemTalk Version 3.2 SharePoint-Integration in SemTalk

Praktikum Spring MVC Spring integrieren In der pom.xml Einträge für Spring hinzufügen.

Imagic IMS Client Allgemeines

Teamcenter Rapid Start (Rich Client)

Innovator 11 classix. Erweiterter XMI-Export aus Innovator Business und Object classix. HowTo.

Multimedia im Netz. Übung zur Vorlesung. Ludwig-Maximilians-Universität Wintersemester 2010/2011

Arbeiten mit Dokumenten-Mustern

Architektur des agimatec-validation Frameworks

Christian Hahn Web Content Management mit Perl

JDBC. Es kann z.b. eine ODBC-Treiberverbindung eingerichtet werden, damit das JAVA-Programm auf eine ACCESS-DB zugreifen kann.

Ich möchte eine Bildergalerie ins Internet stellen

Was machen wir heute? Betriebssysteme Tutorium 10. Frage 10.1.a. Frage 10.1.a

EXT: kool_leute. Extension Key: kool_leute Copyright , Renzo Lauper,

Stapelverarbeitung mit Adobe Acrobat Professional. Leibniz Universität IT Services Anja Aue

Information zur Konzeptberatungs-Schnittstelle

Script-Upgrade. Vorraussetzungen. Folgende Meldungstypen werden dabei verwendet: Vom Fahrzeug zur Zentrale. Quittungstexte vom Fahrzeug (Type 11.

GDI-Forum Nordrhein-Westfalen Technischer Workshop 2 - Geodienste INSPIRE-konforme Download-Dienste. Inhalt

Workshop Java Webentwicklung Tapestry. Ulrich Stärk

MyCoRe als Objektspeicher eines Verteilten Zeitschriften-Servers?

Einführung in die Cross-Plattform Entwicklung Web Services mit dem Intel XDK

Universitätsbibliothek Essen der Universität Duisburg-Essen

Jürgen Bayer. XML- und HTML-Dokumentation mit C#

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Jens Kupferschmidt Universitätsrechenzentrum

miless Der Dokumentenserver auf dem Campus Essen der Universität Duisburg-Essen

Ein Gästebuch mit XML, XPATH, DOM und PHP Ein kleines Tutorial

Kurzbedienungsanleitung zu Contenido

Registration ISYS. User's Guide. Elektronisches Anmeldesystem des Fachbereichs Rechtswissenschaft. Version 1.1. User's Guide Version 1.

Handout CMS Pimcore. Bedienung der Webseite für Sektionen

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Fernschach-Verwaltung mit Chess Base

Office Regionales Rechenzentrum für Niedersachsen

Endanwender Handbuch

Quick-Handbuch Wärmebrückenkatalog 2008

Probeklausur: Programmierung WS04/05

Installation des edu- sharing Plug- Ins für Moodle

KURZANLEITUNG CLOUD OBJECT STORAGE

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

TYPO3-REDAKTEURSHANDBUCH

Erstellung von Bildern, OID-Mustern und Ausdruck

Für Fragen und Anregungen, Wünsche und Verbesserungsvorschlägen zu diesem Handbuch können Sie mich gerne kontaktieren.

BI Publisher Berichtswesen einfach und sicher. Alexander Klauss Centric IT Solutions GmbH

Dokumentation: Erstellung einer Content App für Windows 8

Application Note. Anbindung von Kunden-Software an SpiderControl Web Visualisierung

Erlangen von Administrator-Privilegien unter Microsoft Windows NT 4.0 durch Ausnutzung einer Sicherheitslücke im Systemcache

Blogs In Mahara. Blogs In Mahara. Einen Blog erstellen

Java Einführung Collections

Ihr CMS für die eigene Facebook Page - 1

Eclipse und EclipseLink

XML in der Oracle Datenbank

Pascal-Compiler für den Attiny

Ein Ausblick auf die neuen Features

Was ist ein Web Service?

DOKUMENTATION. CaptchaAd mit Java. Die Schritte zur Integration des CaptchaAd-Modul im Einzelnen

Dokumenten Management (DMS)

IBM Domino 9 Systemadministration II. Weiterführende Themen der IBM Domino Systemadministration

5.1 Bestehende Projekte bearbeiten Neue Projekte erstellen 85

Überschreiben von Methoden

Produktinformation. Highlights

Verwendung der PayJoe -API zum externen Upload von Belegen und Zahlungen

Flashfragen in ILIAS Test & Assessment. Helmut Schottmüller

PLOTSTILE IN AUTOCAD

Überblick über COPYDISCOUNT.CH

Der lokale und verteilte Fall

Anwenderh Kurzanleitung zum Online-Portal

ESB - Elektronischer Service Bericht

Anpassen BS-Explorer

Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 9

Java - Webapplikationen

Licom AlphaCAM 2012 R1

Glossar. SVG-Grafiken in Bitmap-Grafikformate. Anweisung Eine Anweisung ist eine Folge aus Schlüsselwörtern, Variablen, Objekten,

Transkript:

Beschreibung der Komponente zur integration eines Warenkorbs in die Anwendung Table of contents 1 Allgemein...2 2 Körbe speichern und laden...3 3 Aufgelöstes XML oder beliebige weitere Metadaten im Korb... 4 4 XML-Darstellung...4

1 Allgemein Das Paket org.mycore.frontend.basket implementiert eine Korbfunktion für MyCoRe Anwendungen. Ein Korb sammelt Verweise auf Objekte, z. B. Dokumente in einem Dokumentenserver oder Bilder, die zu einem Album zusammengefasst werden sollen. Das Paket enthält Klassen für den API-Zugriff auf die Korbfunktionen und ein Servlet, das die Weboberfläche implementiert. Ein Eintrag im Korb besteht aus einer eindeutigen ID und einer URI. Die ID repräsentiert ein Objekt, das im Korb enthalten sein soll, z. B. die MCRObjectID. Die URI gibt eine Quelle für XML-Daten an, die das Objekt beschreiben. Ein XSL-Stylesheet kann diese URI auflösen, um die im Korb enthaltenen Objekte in der Weboberfläche darzustellen. "mcrobject:docportal_document_00774301" ); Ein Korb wird zunächst in nicht persistenter Form in der Session des Benutzers im Speicher gehalten. Innerhalb einer Anwendung und einer Session könnte es verschiedene Körbe geben, die über ein Typattribut unterschieden werden können, z. B. einen Korb zu Sammeln von Dokumenten, einen anderen Korb für Verweise auf Bilddateien. Beispiel (API): "mcrobject:docportal_document_00774301" ); MCRBasket basket = MCRBasketManager.getOrCreateBasketInSession( "objects" ); basket.add( entry ); Die Klasse Basket implementiert die Schnittstellen List<MCRBasketEntry> und Set<MCRBasketEntry>. Das MCRBasketServlet implementiert die Weboberfläche der Korbfunktion. Beispiel (Servlet): den Inhalt des Korbs "objects" anzeigen BasketServlet?type=objects&action=show einen Eintrag dem Korb hinzufügen BasketServlet? type=objects&action=add&id=docportal_document_00774301&uri=mcrobject:docportal_document die Parameter id und uri sind wiederholbar, so dass in einem Durchgang gleich mehrere Objekte zum Korb hinzugefügt oder gelöscht werden können. Damit die korrekte Zuordnung beibehalten wird, sollten die Parameter aber nicht als GET (Query-String) sondern mittels POST (HTML-Formular) übertragen werden. den Korb leeren BasketServlet?type=objects&action=clear Die HTML-Ausgabe von BasketServlet wird durch das XSL Stylesheet basket-{typ}.xsl generiert, im obigen Beispiel also basket-objects.xsl. Reihenfolge der Einträge Einträge im Korb werden in einer definierten Reihenfolge abgelegt, zunächst in der Reihenfolge des Einfügens in den Korb. Die Position der Einträge ist veränderbar, Einträge können auf und ab geschoben werden: Seite 2 von 5

basket.up( entry ); basket.down( entry ); basket.move( entry, 3 ); // move entry 3 positions down BasketServlet?type=objects&action=up&id=DocPortal_document_00774301 BasketServlet?type=objects&action=down&id=DocPortal_document_00774301 Ein Objekt kann nur einmal in einem Korb vorhanden sein (Set-Eigenschaft). Zum Vergleich von Einträgen wird die ID des Eintrages verwendet. Entfernen von Objekten basket.remove( entry ); basket.removeentry( "DocPortal_document_00774301" ); basket.remove( basket.get( "DocPortal_document_00774301" ) ); BasketServlet?type=objects&action=remove&id=DocPortal_document_00774301 Kommentare Einträge im Korb können kommentiert werden. entry.setcomment( "Kommentar" ); String comment = entry.getcomment(); BasketServlet?type=objects&action=comment&id=DocPortal_document_0077430 Der obige Aufruf erwartet als weitere Requestparameter die Ausgabe eines Editor- Formulars. In diesem Formular wird der Kommentar bearbeitet. DocPortal enthält hierfür kein Beispiel. Das Formular basket-edit.xml aus miless kann hier als Vorlage dienen. 2 Körbe speichern und laden Ein Korb wird zunächst in nicht persistenter Form in der Session der Webanwendung gehalten und dort bearbeitet. Eine Anwendung kann Funktionen zur Speicherung eines Korbes bereitstellen. Beispielsweise könnten in einer Bilddatenbank einzelne Bildobjekte im Korb gesammelt werden und diese Kollektion dann als Album mit weiteren Metadaten persistent gespeichert werden. Die Kollektion kann hierbei beliebige Metadaten enthalten und durch einen MyCoRe Objekttyp implementiert werden. Die Inhalte des Korbs selbst, d.h. die enthaltenen Verweise auf Objekte, werden als XML in einer Derivat-Datei gespeichert. Korb speichern MCRObjectID ownerid = MCRObjectID.getInstance( "ImagePortal_basket_01234567" ); MCRBasketPersistence.createDerivateWithBasket(basket, ownerid); BasketServlet?type=objects&action=create&ownerID=ImagePortal_basket_01234567 erzeugt ein neues Derivat für das Metadaten-Objekt ImagePortal_basket_01234567, legt darin eine Datei basket.xml an und speichert die Verweise des Korbs "objects" darin. Seite 3 von 5

Das Metadaten-Objekt, das die Inhalte des Korbs persistent aufnimmt, kann zuvor auf beliebige andere Weise erstellt werden, etwa über ein Formular, das wie bei jedem MyCoRe Objekt Metadaten zur Beschreibung der Kollektion aufnimmt. Ein Korb merkt sich, in welchem Derivat er gespeichert wurde: String derivateid = basket.getderivateid(); Korb erneut speichern Ein Korb wird in der Session über das BasketServlet oder über die API bearbeitet. Nach Veränderung kann er erneut persistent gespeichert werden: MCRBasketPersistence.updateBasket(basket); BasketServlet?type=objects&action=update Korb laden Ein Korb kann aus der gespeicherten Form zur Anzeige und Bearbeitung in die Session geladen werden: MCRBasket basket = MCRBasketPersistence.retrieveBasket(derivateID); MCRBasketManager.setBasketInSession(basket); BasketServlet?action=retrieve&derivateID=ImagePortal_derivate_12345678 3 Aufgelöstes XML oder beliebige weitere Metadaten im Korb In der Regel wird ein Korb nur Referenzen auf andere Objekte enthalten. Für einige Anwendungsfälle kann es jedoch nützlich sein, direkt das aufgelöste XML der Objekt- Metadaten statt nur die URI-Referenz darauf im Korb zu halten. In miless können so beispielsweise Publikationen in einem Korb gesammelt werden, und deren Metadaten direkt im Korb für alle Einträge auf einmal geändert werden. Erst beim Speichern des Korbes werden diese Änderungen dann von miless persistent gemacht. Um die URI-Referenz für neue Einträge direkt aufzulösen und das XML der enthaltenen Objekte im Korb abzulegen, sind folgende Aufrufe zu nutzen: "mcrobject:docportal_document_00774301" ); entry.resolvecontent(); basket.add(entry); Element resolvedxml = entry.getcontent(); BasketServlet? type=objects&action=add&id=docportal_document_00774301&uri=mcrobject:docportal_document_00 Es liegt in der Verantwortung der Anwendung, diese Variante zu unterstützen. 4 XML-Darstellung Die Klassen MCRBasketXMLBuilder und MCRBasketXMLExporter transformieren ein Korbobjekt und seine Einträge von/nach XML. Bei der Generierung einer XML- Seite 4 von 5

Darstellung der Korbinhalte kann gewählt werden, ob die XML-Metadaten der Objekte selbst auch enthalten sein sollen: boolean includebasketentrycontent = false; Document xml = new MCRBasketXMLBuilder( includebasketentrycontent ).buildxml(basket); MCRBasket basket = new MCRBasketXMLParser().parse( xml ); Wird der Inhalt eines Korbes in einer Derivat-Datei persistent gespeichert, werden stets nur die enthaltenen Referenzen, nicht aber das aufgelöste XML der Objekt-Metadaten gespeichert. Beispiel: <basket type="objects" id="imageportal_derivate_12345678"> <entry id="docportal_document_00774301" uri="mcrobject:docportal_document_00774301"> <!-- Hier evtl. weitere aufgelöste XML-Metadaten des Objektes --> <comment>kommentar</comment> </entry> </basket> Seite 5 von 5