Mit 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 gepatchter 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.
Moderation der Ergänzungen und Kommentare
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.
Übersicht gepatchter und entwickelter Module
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.
- Um Audios und Bilder zu verwalten, haben wir das Image Upload-Modul zum Media Upload-Modul weiterentwickelt
- Um die Ziele der Moderationskriterien bezüglich Ergänzungen und Kommentare zu erreichen, haben wir das Comment Moderation-Modul weiterentwickelt.
- Zusätzlich haben wir das Comment Revision-Modul erweitert und das Comment Mover-Modul korrigiert
- Im Hidden-Modul haben wir einige Fehler korrigiert und die Möglichkeit integriert, keine öffentlichen Freitext-Begründungen abgeben zu können.
- Um Kollektivartikel zu ermöglichen, haben wir das coherent_access Modul gepatcht.
- Außerdem haben wir noch das Audio GetID3-Modul, das Boost-Modul, das Collapsiblock-Modul, das WYSIWYG-Modul, das Lightbox2 und das Voting API-Modul gepatcht.
Alle von uns geschriebenen Patches und Module sind unten angehängt.
Liste aktivierter Module
Um die folgende Tabelle aktivierter Module zuereugen haben wir ein PHP-Schnipsel von drupal.org benutzt.
Name | Version | Description | URL |
Active Translation | 6.x-1.2 | Allows the original, untranslated node to be displayed when a translation is not available. | http://drupal.org/project/active_translation |
Admin Role (Part of Administration) | 6.x-1.1 | Automatically assign all permissions to an admin role. | http://drupal.org/project/adminrole |
Advanced help | 6.x-1.1 | Allow advanced help and documentation. | http://drupal.org/project/advanced_help |
Audio (Part of Audio) | 6.x-1.x-dev | Allows you to upload and playback audio files. | http://drupal.org/project/audio |
Audio getID3 (Part of Audio) | 6.x-1.x-dev | Adds the ability to read artist info from and write to audio files. Requires that the getID3 library be installed. | http://drupal.org/project/audio |
Backup and Migrate | 6.x-1.2 | Backup or migrate the Drupal Database quickly and without unnecessary data. | http://drupal.org/project/backup_migrate |
Block (Part of Core - required) | 6.9 | Controls the boxes that are displayed around the main content. | http://drupal.org/project/drupal |
Boost (Part of Caching) | 6.x-1.0-alpha1 | Provides a performance and scalability boost through caching Drupal pages as static HTML files. | http://drupal.org/project/boost |
Calendar (Part of Date/Time) | 6.x-2.0-rc6 | Views plugin to display views containing dates as Calendars. | http://drupal.org/project/calendar |
CAPTCHA (Part of Spam control) | 6.x-2.x-dev | Base CAPTCHA module for adding challenges to arbitrary forms. | http://drupal.org/project/captcha |
Coherent Access (Part of Access control) | 6.x-1.0 | Provides user level node access for viewing and editing. | http://drupal.org/project/coherent_access |
Collapsiblock (Part of User Interface) | 6.x-1.x-dev | Makes blocks collapsible. | http://drupal.org/project/collapsiblock |
Color (Part of Core - optional) | 6.9 | Allows the user to change the color scheme of certain themes. | http://drupal.org/project/drupal |
Comment (Part of Core - optional) | 6.9 | Allows users to comment on and discuss published content. | http://drupal.org/project/drupal |
Comment Moderation (Part of Moderation) | 6.x-0.3 | Provides community based comment moderation and tools for administrators to moderate comments. | |
Comment mover | 6.x-1.x-dev | Move comments to other threads or convert them to nodes. | http://drupal.org/project/comment_mover |
GB Comment Revisions (Part of Moderation) | 6.x-2.x-dev | Comment Revisions enables you to keep revisions of comments like drupal core enables for nodes. | http://drupal.org/project/comment_revisions |
Content (Part of CCK) | 6.x-2.1 | Allows administrators to define new content types. | http://drupal.org/project/cck |
Content Permissions (Part of CCK) | 6.x-2.1 | Set field-level permissions for CCK fields. | http://drupal.org/project/cck |
Content Taxonomy (Part of CCK) | 6.x-1.0-beta5 | Defines a field type for taxonomy terms | http://drupal.org/project/content_taxonomy |
Content Taxonomy Autocomplete (Part of CCK) | 6.x-1.0-beta5 | Defines a autocomplete widget type for content_taxonomy | http://drupal.org/project/content_taxonomy |
Content Taxonomy Options (Part of CCK) | 6.x-1.0-beta5 | Defines a option widget type for content_taxonomy for selects, radios/checkboxes | http://drupal.org/project/content_taxonomy |
Content Taxonomy Tree (Part of CCK) | 6.x-1.0-beta5 | Defines a dynamic tree widget for Content Taxonomy | http://drupal.org/project/content_taxonomy |
Creative Commons Lite (Part of Licenses) | 6.x-1.2 | Allow User to add Creative Commons Licenses for selected content type. | http://drupal.org/project/creativecommons_lite |
Date (Part of Date/Time) | 6.x-2.0-rc6 | Defines CCK date/time fields and widgets. | http://drupal.org/project/date |
Date API (Part of Date/Time) | 6.x-2.0-rc6 | A Date API that can be used by other modules. | http://drupal.org/project/date |
Date Timezone (Part of Date/Time) | 6.x-2.0-rc6 | Needed when using Date API. Overrides site and user timezone handling to set timezone names instead of offsets. | http://drupal.org/project/date |
Database logging (Part of Core - optional) | 6.9 | Logs and records system events to the database. | http://drupal.org/project/drupal |
Filter (Part of Core - required) | 6.9 | Handles the filtering of content in preparation for display. | http://drupal.org/project/drupal |
Flag | 6.x-1.0-beta6 | Create customized flags that users can set on nodes. | http://drupal.org/project/flag |
Flag actions | 6.x-1.0-beta6 | Execute actions on Flag events. | http://drupal.org/project/flag |
getID3() | 6.x-1.1 | getID3() extracts useful information from multimedia file formats. | http://drupal.org/project/getid3 |
Graphstat | 6.x-1.0 | Creates graphs based on data recorded by the statistics, node, user and comment modules. | http://drupal.org/project/graphstat |
Help (Part of Core - optional) | 6.9 | Manages the display of online help. | http://drupal.org/project/drupal |
Hidden (Part of Indymedia) | 6.x-1.x-dev | Hide nodes or comments | http://drupal.org/project/hidden |
Internationalization (Part of Multilanguage) | 6.x-1.0 | Extends Drupal support for multilingual features. | http://drupal.org/project/i18n |
Block translation (Part of Multilanguage) | 6.x-1.0 | Enables multilingual blocks and block translation. | http://drupal.org/project/i18n |
Content type translation (Part of Multilanguage) | 6.x-1.0 | Translates content type related strings: name, description, help text... | http://drupal.org/project/i18n |
Menu translation (Part of Multilanguage) | 6.x-1.0 | Supports translatable custom menu items. | http://drupal.org/project/i18n |
String translation (Part of Multilanguage) | 6.x-1.0 | Provides support for translation of user defined strings. | http://drupal.org/project/i18n |
Synchronize translations (Part of Multilanguage) | 6.x-1.0 | Synchronizes taxonomy and fields accross translations of the same content. | http://drupal.org/project/i18n |
Taxonomy translation (Part of Multilanguage) | 6.x-1.0 | Enables multilingual taxonomy. | http://drupal.org/project/i18n |
Image (Part of Image) | 6.x-1.0-alpha4 | Allows uploading, resizing and viewing of images. | http://drupal.org/project/image |
Image assist (Part of Image) | 6.x-2.0-alpha2 | This module allows users to upload and insert inline images into posts. It automatically generates an Add image link under the textarea fields of your choice. | http://drupal.org/project/img_assist |
Incoming (Part of Other) | 6.x-1.x-dev | Receive an alert when the amount of incoming traffic to your site changes significantly. | http://drupal.org/project/incoming |
Indymedia cities (Part of Indymedia) | 6.x-1.2 | Makes and updates cities list block. | http://drupal.org/project/indymedia_cities |
IP anonymize (Part of Indymedia) | 6.x-1.1 | Establishes an IP address retention policy. | http://drupal.org/project/ip_anon |
Calendar Popup (Part of Date/Time) | 6.x-2.0-rc6 | Replaces the links to calendar items with a javascript popup that gracefully regresses if javascript is not enabled | http://drupal.org/project/calendar |
Jquery Menu (Part of Advanced Navigation Pack) | 6.x-1.9 | Enables expandable jquery menus. | http://drupal.org/project/jquerymenu |
Javascript tools (Part of User Interface) | 6.x-1.0 | Provides common JavaScript methods used by other modules. | http://drupal.org/project/jstools |
Localization client | 6.x-1.6 | Provides on-page localization | http://drupal.org/project/l10n_client |
Lightbox2 | 6.x-1.9 | Enables Lightbox2 for Drupal | http://drupal.org/project/lightbox2 |
Link (Part of CCK) | 6.x-2.5 | Defines simple link field types. | http://drupal.org/project/link |
linksunten forms (Part of linksunten) | Keep it simple for linksunten.indymedia.org | ||
Locale (Part of Core - optional) | 6.9 | Adds language handling functionality and enables the translation of the user interface to languages other than English. | http://drupal.org/project/drupal |
Math CAPTCHA (Part of Spam control) | 6.x-1.0-beta2 | Provide math CAPTCHAs like 'two + three = ?' and '2 times ? = 6' | http://drupal.org/project/captcha_pack |
Menu (Part of Core - optional) | 6.9 | Allows administrators to customize the site navigation menu. | http://drupal.org/project/drupal |
No Mail | 6.x-09-01-13 | Stop asking for mail addresses. | |
Node (Part of Core - required) | 6.9 | Allows content to be submitted to the site and displayed on pages. | http://drupal.org/project/drupal |
Nodequeue (Part of Nodequeue) | 6.x-2.0 | Create queues which can contain nodes in arbitrary order | http://drupal.org/project/nodequeue |
Node Reference (Part of CCK) | 6.x-2.1 | Defines a field type for referencing one node from another. | http://drupal.org/project/cck |
Nodetype | 6.x-1.0 | Allows you to change the content type of posts while editing them. | http://drupal.org/project/nodetype |
Number (Part of CCK) | 6.x-2.1 | Defines numeric field types. | http://drupal.org/project/cck |
Option Widgets (Part of CCK) | 6.x-2.1 | Defines selection, check box and radio button widgets for text and numeric fields. | http://drupal.org/project/cck |
Path (Part of Core - optional) | 6.9 | Allows users to rename URLs. | http://drupal.org/project/drupal |
PHP filter (Part of Core - optional) | 6.9 | Allows embedded PHP code/snippets to be evaluated. | http://drupal.org/project/drupal |
Search (Part of Core - optional) | 6.9 | Enables site-wide keyword searching. | http://drupal.org/project/drupal |
Statistics (Part of Core - optional) | 6.9 | Logs access statistics for your site. | http://drupal.org/project/drupal |
Syslog (Part of Core - optional) | 6.9 | Logs and records system events to syslog. | http://drupal.org/project/drupal |
System (Part of Core - required) | 6.9 | Handles general site configuration for administrators. | http://drupal.org/project/drupal |
Taxonomy (Part of Core - optional) | 6.9 | Enables the categorization of content. | http://drupal.org/project/drupal |
Taxonomy Manager | 6.x-1.0-beta2 | Tool for administrating taxonomy terms. | http://drupal.org/project/taxonomy_manager |
Advanced Taxonomy Blocks (Part of Advanced Navigation Pack) | 6.x-1.8 | Creates A expandable taxonomy block for all vocabularies and separate blocks for each vocab if desired. | http://drupal.org/project/taxonomyblocks |
Text (Part of CCK) | 6.x-2.1 | Defines simple text field types. | http://drupal.org/project/cck |
Token | 6.x-1.11 | Provides a shared API for replacement of textual placeholders with actual data. | http://drupal.org/project/token |
Tracker (Part of Core - optional) | 6.9 | Enables tracking of recent posts for users. | http://drupal.org/project/drupal |
Content translation (Part of Core - optional) | 6.9 | Allows content to be translated into different languages. | http://drupal.org/project/drupal |
Translation helpers | 6.x-1.x-dev | Provides methods for other modules to use with translated content. | http://drupal.org/project/translation_helpers |
Translation overview | 6.x-2.0 | Provides an overview of the translation status of the site's content. | http://drupal.org/project/translation_overview |
Update status (Part of Core - optional) | 6.9 | Checks the status of available updates for Drupal and your installed modules and themes. | http://drupal.org/project/drupal |
Upload (Part of Core - optional) | 6.9 | Allows users to upload and attach files to content. | http://drupal.org/project/drupal |
Upload media | 6.x-0.2-dev | Image and audio nodes will be created from images and audios uploaded as attachments. | |
User (Part of Core - required) | 6.9 | Manages the user registration and login system. | http://drupal.org/project/drupal |
Views (Part of Views) | 6.x-2.2 | Create customized lists and queries from your database. | http://drupal.org/project/views |
Views Custom Field (Part of Views) | 6.x-1.x-dev | Provides a number of custom fields (rownumber, phpcode, ...). | http://drupal.org/project/views_customfield |
Views UI (Part of Views) | 6.x-2.2 | Administrative interface to views. Without this module, you cannot create or edit your views. | http://drupal.org/project/views |
Voting API (Part of Voting) | 6.x-2.0-rc2 | Provides a shared voting API for other modules. | http://drupal.org/project/votingapi |
Wysiwyg (Part of User interface) | 6.x-1.x-dev | Allows users to edit contents with client-side editors. | http://drupal.org/project/wysiwyg |
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:
ivaw2.jpg
ÄÖÜß
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 voran geht... Ein skeptisches Toitoitoi...