Änderungen am MIR-Default-System
IMC Germany benutzt bekanntlich das
MIR-CMS. Im Laufe der Zeit wurden einige Anpassungen am System vorgenommen. Damit diese nicht
"vergessen" werden, sollen sie auf dieser Seite dokumentiert werden.
Grundlagen
Im Normalfall wird das MIR-Grundsystem verwendet, d.h. es werden die aktuellen Quelldateien auf dem Server kompiliert und es steht danach ein funktionsfähiges CMS zur Verfügung.
Da dieses Grundsystem aber nicht allen Ansprüchen genügt, beziehungsweise die einzelne Kollektive spezielle Anpassungen vornehmen wollen, bietet MIR mehrere Möglichkeiten entsprechenden Änderungen vorzunehmen.
- Änderungen am Layout
- Änderungen einzelner Funktionen
Bevor auf die beiden Möglichkeiten eingegangen wird noch kurz das Grundschema des MIR-Systems
|--mir
| |--bin
| |--build
| |--etc
| |--source
| |--templates
|
|--site
|
|--templates
|--etc
| |--bundles
| |--extrasource
| |--open
| |--producer
|
|--site
|--img
|--includes
|--script
|--static
|--style
|
mir-Verzeichnis
- bin - kompilierte Dateien
- build - kompilierte Dateien
- etc - hier befindet sich unter anderem die Konfigurationsdatei
- source - MIR-Quelldateien
- templates - Templates des Admincenter
site-Verzeichnis
- Hier werden alle HTML-Dateien erzeugt und die Mediadaten gespeichert. Dieses Verzeichnis ist das was der User sieht.
templates-Verzeichnis
- etc
- bundles - Sprachdateien
- extrasource - Zusatzfiles
- open - Posting-Templates
- producer - Producer-Templates
- site
- img - Bilder
- includes - hier befinden sich die include-Dateien der Templates
- script - Javascript-Files
- static - statische HTML-Seiten
- style - css-files
|
Layout
Diese Möglichkeit wird quasi von allen Kollektiven wahrgenommen. Realisierbar ist dies durch neue Templates bzw. css-Styles. Die von uns benutzten Templates befinden sich im Verzeichnis /templates und werden per "ant" (Kompilierbefehl) ins aktive MIR geschoben. Danach liegen sie im Verzeichnis /mir/bin/mir/WEB-INF.
Funktionen
Um einzelne Funktionen von MIR zu ändern bzw. um neue Dinge zu integrieren, nutzt man das Prinzip der Vererbung oder Überschreibung von Methoden (
siehe: Java ist auch eine Insel - Kapitel 6).
Dazu legt man die neuen Klassen und Methoden im Verzeichnis
templates/etc/extrasource/org/indymedia/de ab. Damit MIR aber auch weiß wie und wo
neue, eigene Klassen benutzt werden, muss eine Art
Initialklasse festgelegt werden. Dies geschieht im Konfigurationsfile von mir unter
mir/etc/config.properties:
Mir.Localizer=org.indymedia.de.DeLocalizer
Defaultmäßig ist die Datei
mir/source/mircoders/localizer/MirLocalizer.java gesetzt. Durch die Angabe im Konfigurationsfile wird nun aber
Mir.Localizer auf
templates/etc/extrasource/org/indymedia/de/DeLocalizer.java umgebogen.
Im aktuellen Fall (kann sich im Laufe der Zeit ändern) werden, ausgehend von dieser Datei, festgeschrieben das für das
adminInterface und
openposting angepasste
eigene Klassen benutzt werden. Und zwar wird auf
DeAdminLocalizer sowie
DeOpenPostingLocalizer gezeigt, die wiederum Defaultklassen (des MIR-Basissystems) überschreiben bzw. komplett neue Funktionen definieren.
So verweist z.B.
DeOpenPostingLocalizer auf die Originalklasse
MirBasicCommentPostingHandler, falls wir es mit Kommentaren zu tun haben. Ansonsten wird auf die neue Klasse
DeArticlePostingHandler verwiesen, welche wiederum Methoden aus der Originalklasse vererbt bekommt und sie teilweise überschreibt, sowie neue Funktionen bereitstellt.
Folgende Dateien befinden sich momentan in templates/etc/extrasource/org/indymedia/de und stellen erweiterte Funktionen oder Änderungen am Defaultsystem bereit:
- DeAdminLocalizer.java
- DeArticlePostingHandler.java
- DeConstants.java
- DeLocalizer.java
- DeOpenPostingLocalizer.java
Durch dieses System, nimmt man keine Änderungen am Originalcode vor! Stattdessen werden einfach nur neue Klassen bereitgestellt, welche die Standardklassen überschreiben oder erweitern.
Details (last updated: 9.März '05)
DeLocalizer.java
- Initialklasse
- erbt von Klasse MirBasicLocalizer
- überschreibt Klasse MirAdminInterfaceLocalizer, zuständig für adminInterface, mit Klasse DeAdminLocalizer()
- überschreibt Klasse MirOpenPostingLocalizer, zuständig für openposting, mit Klasse DeOpenPostingLocalizer()
DeAdminLocalizer.java
- erbt von Klasse MirBasicAdminInterfaceLocalizer
- Superklasse
- führt einige zusätzliche Funktionsaufrufe aus
DeConstants.java
- Interface
- setzt 4 Variablen: COMMENT_DEFAULT (4), COMMENT_NORMAL (1), COMMENT_TRASH (2), COMMENT_HIDE (3)
DeOpenPostingLocalizer.java
- erbt von Klasse MirBasicOpenPostingLocalizer
- Superklasse
- verweist mit Ausnahme von Sessiontyp "comment" auf die neue Klasse DeArticlePostingHandler
DeArticlePostingHandler.java
- erbt von MirBasicArticlePostingHandler
- überschreibt folgende Methoden:
- validate()
- initializeSession()
- initializeResponseData() - (Previewfunktion)
- initializeAttachmentResponseData() - (Previewfunktion)
- definiert 2 neue Methoden:
- removeHTML() - (Previewfunktion)
- text2html() - (Previewfunktion)
to be continued...
Änderungen & TODO's
Ausgehend vom Mir-Tracker von imc-germany auf codecoop sollen hier alle Änderungen an Mir Funktionen protokolliert werden.
TODO:
- Thumbnails
- Preview
- Medien im Artikel
DONE:
to top