Repositorienliste Extension (ext-key:repositoriesnew) Dennis Zielke ( zielkede@cms.hu-berlin.de ) 22.11.2013 Implementiert seit: Januar 2010 Ausfälle bisher: Keine 1
Teil I Organisatorisches Name der Komponente DINI Repositorienliste tx_repositoriesnew Orte im System Relativ zum Typo3 typo3conf Verzeichnis:./typo3conf/ext/tx_repositoriesnew./fileadmin/repositoriesnew Desweiteren die Tabellen tx_repositoriesnew_verzeichnis und tx_repositoriesnew_linklabel. Abhängigkeiten Serverseitig Typo3 >= 4.4 sr_feuser_register newloginbox Clientseitig Browser (>=IE7, >=Firefox 3.6, o.ä.) aktiviertes JavaScript / Cookies Einsatzzweck Anzeigen und Eintragen und Editieren der registrierten bzw. zertifizierten Repositorien. Verantwortliche Personen Uwe Müller / U.Mueller@dnb.de Paul Vierkant / paul.vierkant@hu-berlin.de Dennis Zielke / zielkede@cms.hu-berlin.de Ehemalige beteiligte Entwickler Sebastian Gabbert (ehemals HU-Berlin) 2
Teil II Funktionsweise 1 Allgemeine Funktionsweisen 1.1 Die Views von repositoriesnew 1.1.1 pi1 Zeigt die Tabelle mit Such- und Filterfunktionen für die Repositorien. Die einzelnen Filteroptionen werden per get übertragen. Ordnungsfunktionalität für die Tabelle wird über JavaScript mit Hilfe von jquery-bibliothek bereitgestellt. Sowohl die JavaScript Ressourcen als auch die CSS-Dateien liegen im oben genannten fileadmin-ordner und werden per TypoScript geladen. Sollte ein Frontenduser eingeloggt sein und in der entsprechenden Benutzergruppe sein, wird ein zusätzlicher edit -Link eingeblendet, welche das Editieren der Datensätze erlaubt. 1.2.1 pi2 Ist eine Eingabemaske um neue Repositorien aufzunehmen oder bestehende Datensätze zu bearbeiten. Beim Absenden des Formulars wird in zwei Fälle unterschieden. Zum einen kann ein eingeloggter User mit entsprechender Berechtigung Daten direkt in die Datenbank schreiben, diese werden auch direkt veröffentlicht. Sollten diese Rechte nicht vorliegen, werden die Daten auch in der Datenbank abgelegt aber als hidden markiert. Des Weiteren wird eine E-Mail abgesetzt, welche einen Verantwortlichen über diesen neuen Datensatz informiert und einen Bearbeitungslink enthält. Alle dynamischen Funktionen werden per jquery realisiert. 3
Teil III Datenbankbeschreibung 2 tx_repositoriesnew_verzeichnis Diese Tabelle beheimatet sämtliche Daten über die Repositorien. Ihr Aufbau folgt dem Typo3-Schema und sollte klar ersichtlich sein. Die einzige Ausnahme sind die Spalten contacts und links. 2.1 contacts Diese Spalte enthält die Kontaktinformationen, welche bspw. in der Detailansicht aus pi1 angezeigt werden. Sie sind als serialisiertes PHP-Array gespeichert. Das Array folgt dabei folgendem Aufbau: contacts [ editorial [, technical[,, 2.2 links Diese Spalte enthält alle Links die zu diesem Repositorium angegeben wurden. Sie werden ebenfalls als serialisiertes Array gespeichert. Dabei erfolgt eine id =>url Zuweisung. Die id bezieht sich auf die linkid aus tx_repositoriesnew_linklabel. Dadurch ist ein dynamisches Hinzufügen neuartiger Links möglich ohne im Programmcode Änderungen vornehmen zu müssen. 4
Die Struktur folgt folgendem Schema: links [ "id" => "URL", "id" => "URL" 3 tx_repositoriesnew_linklabel In dieser Tabelle werden die im Frontend angezeigten Namen der Links den linkids zugeordnet. Des Weiteren wird für jeden Linktyp eine Beschreibung gespeichert. Das Feld language wird noch nicht verwendet. Hiermit kann jedoch direkt ein mehrsprachiges Frontend unterstützt werden. 5