FiltersucheKategorienDurch Klicken wird nach Kategorie gefiltert. Themen
Aktivitäten
|
linksunten.indymedia.org auf Drupal 6.9Mit diesem Artikel wollen wir unseren FreundInnen, GenossInnen, KollegInnen und Familien erläutern, was wir in den fünf Wochen bevor linksunten.indymedia.org online gegangen ist getan haben. Wir versuchen zu zeigen, wie wir die Seite basierend auf Drupal 6.9 aufgebaut haben. Neben der Gestaltung des Layouts und dem Einrichten und Verwalten von 88 (Teil-)Modulen haben wir auch ein Modul komplett neu programmiert, zwei Module von einem frühen Entwicklungsstadium zu einer brauchbaren Version gebracht und bei sechs Modulen Fehler korrigiert und neue Funktionalitäten eingebaut.
Inhalt: Politische Voraussetzung | Layout | Aufbau der Startseite | Posting der Inhalte | Medien-Upload | Darstellung der Beiträge | Moderation der Kommentare | Übersicht gepachter und entwickelter Module | Übersicht aktivierter (Teil-)Module | Ergänzungen
Indymedia ist ein dezentral organisiertes, weltweites Netzwerk sozialer Bewegungen. Die Plattform indymedia.org soll diesen Bewegungen die Möglichkeit bieten, frei von staatlichen Kontrollen und kapitalistischen Interessen Berichte, Erfahrungen, Analysen, Träume und Meinungen zu verbreiten, um Gegenöffentlichkeit zu schaffen. Durch Indymedia können wir unsere Geschichte selbst schreiben: Bewegungen müssen Spuren ihrer Leidenschaft für zukünftige Generationen hinterlassen, denn vergessene Kämpfe sind verlorene Kämpfe. Aus dem Mission Statement von IMC linksunten
Wichtigstes Element aller Indymedia-Seiten ist das Open-Posting-Konzept. Das heißt, es gibt keine Redaktion und jederR kann Inhalte veröffentlichen. Jeder Beitrag und jede Ergänzung erscheint unmittelbar auf der Website. Im Tränengasnebel von Seattle 1999 war dieses Konzept revolutionär. Es war damals die Vorwegnahme der Blogwelt des heutigen Web 2.0. In den vergangen zehn Jahren hat sich in diesem Bereich einiges getan. Inzwischen ist es für sehr viele Menschen möglich, mit geringem Aufwand eine eigene Homepage oder einen eigenen Blog zu betreiben. Die Stärke von Indymedia liegt also heute weniger in der Technik als in dem Konzept einer mit den regionalen, sozialen Bewegungen und den anderen IMCs vernetzten Nachrichtenplattform, wo alle Stimmen von linksunten zu Gehör kommen und in Beziehung gesetzt werden.
Um auf regionaler Ebene das Konzept von Indymedia umzusetzen, die Seite nutzbar aufzubauen und wirksam gegen Missbrauch zu schützen, haben wir Moderationskriterien formuliert. Darin haben wir festgelegt, welche Beiträge wir wollen, welche nicht und wie wir mit allen Beiträgen umgehen werden. Wir haben diese Moderationskriterien geschrieben, ohne uns viele Gedanken über die technische Umsetzung zu machen. Wir wollten frei von technischen Einschränkungen beschließen, wie wir uns Indymedia linksunten vorstellen und erst danach die Umsetzung angehen.
Wir haben uns bewusst für Drupal und gegen eines der von Indymedia-AktivistInnen programmierten CMS entschieden. Die Indymedia-eigenen CMS haben den Nachteil, dass nur Indymedia-AktivistInnen als EntwicklerInnen in Frage kommen, während Drupal mit seiner riesigen Community die Vorteile von freier Software voll ausschöpfen kann. Ein Drupal-System besteht aus einem Kern, dessen Module die wichtigsten Aufgaben der Homepage übernehmen, und einer Vielzahl zusätzlicher Module, die je nach Bedürfnissen installiert werden können. Insbesondere diese Zusatz-Module werden von einer Vielzahl von Menschen aus unterschiedlichen Motivationen heraus entwickelt, wodurch dieses System sehr dynamisch und nachhaltig wächst.
Wir haben uns bemüht ein schlichtes Layout zu wählen, damit die LeserInnen nicht von „unserem“ Layout abgelenkt werden, sondern die jeweiligen SchreiberInnen mit ihrem Beitrag das Aussehen gestalten können.
Trotzdem haben wir mit dem Lightbox2-Modul ein etwas aufwändigeres Layoutelement eingebaut. Lightbox hebt alle Bilder hervor, die an einen Beitrag angehängt werden, und stellt sie als Galerie dar. Bilder, die per HTML oder unserem WYSIWYG-Editor eingebunden wurden, müssen zusätzlich mit der Option rel="lightbox" (für einzelne Bilder) oder mit rel="lightbox[node_images][]" (für Bildergalerien) innerhalb des Links versehen werden.
Auf der Startseite arbeiten wir mit einem dreispaltigen Layout. Auf allen anderen Seiten haben wir uns für ein zweispaltiges Layout entschieden, wobei sich in der linken Spalte Kästen für Sprachsteuerung, Suche, Navigation und Kategorien befinden. Der größere restliche Teil der Seite ist für Inhalte reserviert. Alle Blöcke sind dank des Collapsiblock-Moduls ein- bzw. ausklappbar. Innerhalb des Kategorienenmenüs wiederum sind die einzelnen Unterpunkte mit Hilfe des Jquerymenu-Moduls ein- und ausklappbar. Die wichtigsten Links befinden sich auf allen Seiten im Kopfbereich.
Auf der Startseite werden alle Textbeiträge unmittelbar angezeigt. Je nach Sortierung durch die AutorInnen erscheinen die Beiträge im Newswire, im Pressearchiv oder in der Terminliste sowie im Kalender. Gute Artikel werden in der Mittelspalte dargestellt, ganz oben können politisch wichtige Themen als Special hevorgehoben werden. Besonders gute Artikel werden im Kaleidoskop in der linken Spalte gesammelt. Außerdem befindet sich in der linken Spalte ein Block mit Links zu allen Indymedia-Projekten weltweit. Für die Anzeige verwenden wir das Blöcke-Modul.
Der Postingbereich ist der wichtigste Teil der Homepage. Wenn die UserInnen Inhalte posten wollen, müssen sie auswählen, was für eine Art von Beitrag sie veröffentlichen möchten. Bei den meisten Inhaltstypen müssen die SchreiberInnen das Titel-, AutorIn- und Inhaltsfeld ausfüllen. Pflichtfelder werden als solche markiert. Allerdings ist es für LeserInnen übersichtlicher und fördert die Sortierung wenn weitere Felder ausgefüllt werden. Die BenutzerInnen können Dokumente in verschiedenen Dateiformaten anhängen, mehr dazu im Kapitel „Medien-Upload“.
Das Node-Module des Drupal-Kerns stellt Titel- und Textfeld sowie ein Drop-Down-Feld zur Auswahl der Sprache zur Verfügung. Zur Verschlagwortung der Beiträge haben wir das Taxonomy-Modul des Drupal-Kerns genutzt. Die Eingabe und später auch das Anzeigen der Kategorien übernehmen das Content Taxonomy- (Teil des CCK-Projekts) und das Taxonomy Manager-Modul, die eine komfortable Eingabe ermöglichen. CCK-Felder sind frei definierbare Inhaltsfelder für Nodes. Wir nutzen CCK-Felder für die AutorInnen-Eingabe (CCK-Text) und das Datumsfeld (CCK-Date) sowie die Quellenangabe (CCK-Link) bei Presseartikeln.
Um die Eingabe ansprechend gelayouteter Texte zu vereinfachen haben wir den „what you see is what you get“ TinyMCE HTML-Editor installiert. Mit diesem ist es möglich Texte wie in einem Textverarbeitungsprogramm zu gestalten, er kann aber auch ausgeschaltet werden, um HTML-Quelltext zu schreiben. Im HTML-Editor gibt es einen Foto-Button, der das Popup-Fenster des Image Assist-Moduls öffnet. Damit können auf dem Server befindliche Bilder in den Fließtext integriert und auch noch Bilder hochgeladen werden. Für beide Module muss JavaScript aktiviert sein.
Bei selbstgeschriebenen Beiträgen müssen die AutorInnen noch eine der zur Auswahl stehenden freien Lizenzen auswählen, wofür wir das Creative Commons Lite-Modul verwenden. Wir akzeptieren keine nicht-freien Inhalte. Nicht-angemeldete NutzerInnen müssen vor dem Veröffentlichen und bei der Registrierung eine leichte Matheaufgabe des Math Captcha-Moduls lösen. Dies geschieht, um die Seite vor kommerziellen Spam-Programmen zu schützen.
Um die Posting-Seiten übersichtlich und funktional zu gestalten haben wir diese mit der hook_form_alter Funktion umgeschrieben.
Einzelne Bilder und Audiodateien können direkt als Image- bzw. Audio-Nodes veröffentlicht werden. Sie können kategorisiert und mit Datum versehen werden Außerdem können Medien-Dateien als Anhänge an Artikel hochgeladen werden. In diesem Fall erben die Medien die Kategorien und das Datum des Elternartikels. Alle Medien können separat kommentiert und moderiert werden.
Das Hochladen wird vom Upload-Modul des Drupal-Kerns übernommen. Unser Upload Media-Modul verwandelt an Artikel angehängte Bilder in Image-Nodes und Audiodateien in Audio-Nodes. Anschließend werden diese Nodes mittels eines CCK Nodereference-Feldes an den Artikel angehängt und können mittels der Lightbox angezeigt bzw. mit einem Audio-Flashplayer abgespielt werden. Das erste angehängte Bild wird in der Einleitung angezeigt, es gibt aber auch ein CCK Nodereference-Feld, mit dem andere Bilder als Einleitungsbild ausgewählt werden können. Dadurch werden alle Medien, unabhängig davon, ob sie angehängt oder einzeln gepostet wurden, gleich behandelt.
Die Darstellung (fast) aller Inhaltszusammenstellungen wird von dem Views-Modul gesteuert. Mit diesem können für verschiedenste Listen von Nodes (oder auch Kommentaren, BenutzerInnnen, Fehler-Protokollen, etc) Block-, Seiten- und Feed-Ansichten administriert werden. Hier können die Darstellung, Sortierkriteria, Filter, Argumente und Beziehungen definiert werden.
Die Taxonomy-Ansicht zum Beispiel nutzt das Argument „Term“, um unter der Regionen-Rubrik „Paris“ nur Beiträge, die in Paris stattgefunden habe, anzuzeigen. Abweichend von der Standardeinstellung haben wir diese Ansicht auf Textbeiträge beschränkt.
Das Nodequeue-Modul erlaubt es ModeratorInnen Beiträge in Listen zusammenzufassen. Diese Listen können manuell umsortiert werden. Wir nutzen Nodequeue, um Artikel und Termine zu „featuren“, „specialn“ oder zu „kaleidoskopen“. Die grafische Umsetzung dieser Listen als Blöcke für die Startseite, als Seiten fürs jeweilige Archiv und als Feed zum Exportieren übernimmt das Views-Modul.
Wir nutzen das Hidden-Modul, um „kommerzielle Werbung, Spam, Verschwörungstheorien und religiöse Inhalte sowie doppelte Postings [zu verstecken]. Versteckte Beiträge können im Müllarchiv weiterhin eingesehen, aber weder ergänzt noch von Suchmaschinen gefunden werden. Wir geben den Grund für das Zensieren oder Verstecken eines Beitrags an, um Nachvollziehbarkeit zu gewährleisten.“ (Aus den Moderationskriterien)
Um faschistische, rassistische, nationalistische, antisemitische, homophobe und sexistische Inhalte zu zensieren nutzen wir das Flag-Modul. Nachdem das entsprechende Flag gesetzt wurde wird die Flag-Aktion „Beitragsveröffentlichung zurückziehen“ gestartet. Falls das Flag entfernt wird, läuft die gegenteilige Aktion. Wiederum mit Views haben wir eine Ansicht erstellt, die nur die jeweiligen Artikeltypen, Titel, AutorInnen-Namen und das Beitragsdatum darstellt, um die Transparenz unserer Entscheidungen zu gewährleisten.
Das Calendar-Modul (ebenfalls Teil des Views-Projekts) stellt, wenn wunderts, einen Kalender-Block und eine Kalender-Seite, aber auch eine Termine-Liste zur Verfügung. In letzterer werden die jeweils kommenden fünf Termine dargestellt. Den Kalender haben wir so eingestellt, das natürlich jeder Termin für den jeweiligen Tag, aber auch jeder Bericht, jedes Foto und jeder Audio-Beitrag über den jeweiligen Tag dargestellt wird. Dadurch ist es möglich nachträglich zu jedem Tag die komplette Berichterstattung auf IMC linksunten nachzuvollziehen. Die Kalender-Ansicht bedient sich hierzu der beim Veröffentlichen im "Geschehen am"- bzw. Termin-Feld hinterlegten Daten.
Alle Beiträge können ergänzt werden. Die Ergänzungen werden standardmäßig in einer Baumstruktur dargestellt. ModeratorInnen können nachträglich Ergänzungen als Kommentare kennzeichnen. Von Kommentaren werden nur die Überschriften angezeigt, der Inhalt einzelner oder aller Kommentare kann jedoch durch Anklicken geöffnet werden. Aus den Moderationskriterien
Ergänzungen und Kommentare können vom Comment-Modul des Drupal-Kerns standardmäßig in einer thematisch-sortierten Baumstruktur oder chronologisch angezeigt werden. Um die Unterscheidung in Ergänzungen und Kommentare zu realisieren, nutzen wird das Comment Moderation-Modul, das auf dem Voting API-Modul basiert. Das Modul benutzt sowohl für die Anzeige als auch für die Moderierung JavaScript.
Dieses Modul haben wir in einer unvollständigen Version gefunden und weiterentwickelt. Es wurde für den Relaunch von dot kde entwickelt, der in Kürze erfolgen soll. In der von uns programmierten Version erlaubt das Modul eine Stimmabgabe auf Ergänzungen, jedeR NutzerIn mit den entsprechenden Rechten hat eine Stimme. Wir nutzen das Modul vorerst jedoch nur zur Moderation von Ergänzungen in die Kategorien on- bzw. offtopic.
Zum Verstecken und Zensieren nutzen wir dieselbe Technik wie bei Beiträgen, mussten dafür aber eine Publish-Action programmieren. Wir haben das Comment Revision-Modul erweitert, um Veränderungen in Ergänzungen transparent zu machen. Außerdem haben wir das Comment Mover-Modul gepatcht, mit dem Ergänzungen verschoben werden können.
Weil wir keine Email-Adressen von UserInnen speichern wollen, haben wir das no_mail-Module entwickelt. Bei Drupal muss zur Registrierung eines Accounts standardmäßig eine Email-Adresse angegeben werden. Sowohl der Login-Name als auch das Passwort werden anschließend unverschlüsselt verschickt. Das no-mail Module versteckt das Email-Eingabefeld und legt eine Fake-Emailadresse (timestamp@domain.tld) an und ermöglicht die Angabe einer Catch-All-Adresse, an die alle automatisiert erstellten Emails der Website versandt werden. Lediglich eine Mail mit dem Inhalt "New account registered" wird an die Seiten-AdministratorInnen verschickt.
Alle von uns geschriebenen Patches und Module sind unten angehängt.
|
Fließtext
Ein Hinweis zur Breite des Fließtextes: Dadurch, dass der Text sich über die gesamte Seite ausbreitet, sind längere Texte etwas schwer zu lesen. Idealerweise sollte ein Fließtext im www nicht breiter als 60-80 Zeichen sein, ansonsten entstehen unangenehme Zeilensprünge. Vielleicht könnt ihr das bei einer eventuellen Überarbeitung des Konzepts berücksichtigen.
Re: Fließtext
Da es zu der maximalen Breite des Fließtextes unterschiedliche Meinungen gibt, haben wir uns dafür entschieden, dies möglichst flexibel zu halten. Die Standardeinstellung ist das der Text sich über die gesamte Breite erstreckt. Aber ModeratorInnen können bei allen Artikeln (z.B. auf Bitten einer AutorIn) und GenossInnen bei ihren eigenen Artikeln die Seitenbreite (in Pixeln) eines einzelnen Artikels mit Hilfe eines CCK-Zahlen-Feldes flexibel festlegen. Die node.tpl.php-Datei liest dieses Feld dann beim Seitenaufbau aus und setzt es um.
Bei dem Artikel Proaktive Anti-Repressionsaktion in Baden-Baden wurde die Seitenbreite zum Beispiel an die Breite der Bilder angepasst.
Re: Fließtext
Wir haben jetzt eine maximale Breite für die gesamte Seite und die Seitenspalten eingestellt. Außerdem wurde die Webseite zentriert.
What You See Is What You Get
Wir haben das WYSIWYG-Filter-Modul eingebaut, das eine Whitelist für HTML- und CSS-Tags zur Verfügung stellt – alles andere wird rausgefiltert. Damit lassen sich jetzt auch endlich die Buttons benutzen, die wir ausgewählt haben:
fett
kursiv
unterstrichen
durchgestrichen
linksbündig
zentriert
rechtsbündig
blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig blockbündig
testhoch
testtief
Übrigens ist die Größe des Eingabefeldes variabel, einfach an der unteren rechten Ecke ziehen... ;-)
ps. Als ich diesen Kommentar schreiben wollte, funktionierte der HTML-Editor nicht, was nicht einer gewissen Ironie entbehrt. Auf Seiten, deren URL ein Fragment (#anchor) enthält, und die gleichzeitig eine Tabelle enthalten, wird jegliches JavaScript zerstört. Das Problem wird auf drupal.org gelöst: http://drupal.org/node/325810#comment-1239653. Wir müssen wohl den Core patchen...
Update: upload_media
Das upload_media-Modul wurde überarbeitet und funktioniert nun auch mit übersetzten Artikeln. Alle Anhänge werden vom Originalartikel übernommen. Beim übersetzten Artikel wird zuerst das von Hand beim übersetzten Artikel gesetzte Teaserimage genommen, danach das von Hand beim Originalartikel gesetzte und danach das erste angehängte Bild des Originalartikels.
Whatever
Dinge, die man besser filtern sollte:
ÄÖÜß
Sicherheitslücke in comment_moderation geschlossen
Im Modul comment_moderation war eine schwere Sicherheitslücke: der Text wurde ungefiltert ausgegeben. Mit der Version comment_moderation.linksunten.09_05_03.tar_.gz wird dieser Fehler behoben.
drupal ist lästig
Ihr Armen. Ich hoffe Ihr werdet Eure Entscheidng für Drupal nicht bereuen. Meine langjährigen Erfahrungen mit drupal sind ziemlich schlecht. Viele und häufige Security-Patches und dann habt Ihr noch soviel Module: Dass da mal die Entwicklung so halbwegs im Gleichschritt - von wegen Kompabilität v- oran geht... Ein skeptisches Toitoitoi...