Drupal Konfiguration

Hier erscheinen in loser Zusammenstellung Konfigurationshinweise für Drupal 6.x, sowie dessen Module.

Grundkonfiguration

Sollte Drupal sich nicht installieren lassen, bspw. nach der Eingabe der Daten für die Datenbank die Installation nicht fortfahren oder die Meldung

Fatal error: Call to undefined function: user_access() in ... \common.inc on line 1921

erscheinen, oder auch:

user warning: You have an error in your SQL syntax; check the manual that corresponds to your 
MySQL server version for the right syntax to use near ') ORDER BY fit DESC LIMIT 0, 1' at line 1
query: SELECT * FROM drupal_menu_router WHERE path IN () ORDER BY fit DESC LIMIT 0, 1 
in ... \includes\menu.inc on line 315

dann hilft das Setzen untenstehender Zeile in der Datei /web/sites/default/settings.php

$cookie_domain = 'domainname.fld'; // Es ist nicht nötig, bspw. www. vor die Domain zu setzen.

Vor dem neuen Aufrufen von install.php müssen in diesem Fall die Datenbank-Einträge gelöscht und neu erstellt werden:

# mysql -u root -h localhost -p
Enter password: passwort
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 951
Server version: 5.1.44 MySQL Community Server (GPL) by Remi
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> DROP DATABASE databasename;
mysql> CREATE DATABASE databasename;
mysql> GRANT ALL ON databasename.* TO databaseuser@localhost;

Hier die Hinweise zum erstellen der DBs für Drupal:

# mysql -u root -h localhost -p
mysql> use mysql;
mysql> INSERT INTO user (Host,User,Password) VALUES('%','username',PASSWORD('passwort'));
mysql> flush privileges;
ODER PASSWORT ÄNDERN
mysql> SET PASSWORD FOR 'username'@'localhost' = PASSWORD('passwort');
mysql> flush privileges;
mysql> grant usage on *.* to username@localhost identified by 'passwort';
mysql> create database databasename;
mysql> grant all privileges on databasename.* to username@localhost ;
mysql> show databases;
mysql> use databasename;

Sollte das root-Passwort für mysqld nicht bekannt sein, kann man es ändern (als user root):

# /etc/init.d/mysqld stop
# mysqld_safe --skip-grant-tables &
# mysql -u root
mysql> use mysql;
mysql> update user set password=PASSWORD("neuespasswort") where User='root';
mysql> flush privileges;
mysql> quit
# /etc/init.d/mysqld restart

Und sollte es noch kein root-Passwort geben:

# mysqladmin -u root password neuespasswort

Passwort ändern:

# mysqladmin -u root -p altespasswort neuespasswort

mysql-commands: http://dev.mysql.com/doc/refman/5.1/en/mysql-commands.html

Pathauto

User-Aliase

Der Automatismus für User-Aliase muss abgeschaltet werden, da sonst nach dem Einloggen Page not found erscheint.
Pfad: /admin/build/path/pathauto

Image-Import

Das (stapelweise)  Importieren von Bildern (bulk image import) funktioniert bei angeschaltetem Pathauto nicht. (Eine Lösung wird gesucht). Das Problem ist bei den aktuellen Versionen behoben.

Tracker

Das Trackermodul listet immer "Recent Posts" im Drupal-internen Navigationsmenü auf. Es gibt keine Berechtigungen dafür zu setzen. Das Trackermodul sollte inaktiviert werden und das Tracking stattdessen mit Views (nachträglich zu installierendes Modul) realisiert werden. Dafür kann man die Berechtigungen setzen und für Gäste diese ausschliessen.
Pfad: /admin/build/modules und /admin/build/views/enable/tracker?destination=admin%2Fbuild%2Fviews

Korrekturhilfe für den FCKEditor

Der FCKEditor kann einfach um die Möglichkeit einer automatischen Korrekturfunktion ergänzt werden. Als Voraussetzung muss auf dem Server das Packet aspell mit den entsprechenden Wörterbüchern installiert sein (aspell, aspell-de, aspell-fr, aspell-it, aspell-en, Test mit: echo "Packet" | aspell -a -d german -H ).

Der Datei /sites/all/modules/fckeditor/fckeditor.config.js muss folgende Zeile angefügt werden:

FCKConfig.SpellChecker = 'SpellerPages'

Dann braucht es auch noch eine Schaltfläche, in der Werkzeugleiste:

FCKConfig.ToolbarSets["DrupalFull"] = [
['Source'],
['Cut','Copy','Paste','PasteText','PasteWord','SpellCheck'], ...
FCKConfig.ToolbarSets["DrupalBasic"] = [
['FontFormat','-','Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink', 'Image']...
FCKConfig.ToolbarSets["DrupalFiltered"] = [
['Source'],
['Cut','Copy','Paste','PasteText','PasteWord','SpellCheck'],...

Tipps

Configure spellchecker to use the user's own language

Das Wörterbuch ist leider "hardcoded" und muss umgestellt werden in:
/sites/all/modules/fckeditor/fckeditor/editor\
/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php

$lang = 'de_CH'; // en_US

Für Sites mit mehreren Sprachen ergibt sich damit ein Problem, dass zur Zeit der Niederschrift noch nicht gelöst wurde, aber von den Entwicklern diskutiert wird.

Firefox

Dazu muss folgende Option in /sites/all/modules/fckeditor/fckeditor.config.js gesetzt werden:

FCKConfig.FirefoxSpellChecker = true ;

Eingabefilter

Drupal erlaubt die Verwendung von Eingabefiltern, mit denen der Inhalt der darzustellenden Webseite bei der Ausgabe (beim Abruf durch einen Client, also bspw. einem Browser) manipuliert wird. Im Drupaljargon wird das filtern genannt. Es gibt zahlreiche Filter, von denen einige wichtige bereits in Drupal eingebaut sind. Eine wichtige Aufgabe für ein Community-System wie Drupal ist es, den Input der User zu korrigieren und schädlichen Code in Form bspw. von Javascript nicht zuzulassen. Nützliche Filter sind solche, die bspw. in Textform notierte URLs (was oben im Browser eingeben wird, um eine Seite abzurufen) in HTML-Tags umzuwandeln (<a href="http://www.inetcom.ch/">ein Link</a>).

Pfad: /admin/settings/filters

Vorbemerkung

Die Reihenfolge der Filter ist wichtig. Wandelt z.B. der Filter Spamspan mit Hilfe von Javascript Emailadressen zum Schutz vor Spam um, würde ein nachgeschalteter HTML-Filter den Javascript-Code wieder entfernen.

Zeilenumbruchkonverter und FCKEditor

Wird ein Editor, wie der FCKEditor benutzt, kann der Zeilenumbruchkonverter (linebreak converter) abgeschaltet werden. Der linebreak converter ersetzt Leerzeilen im Quelltext mit den gewünschten Tags für Absatz <p>...</p> oder Zeilenumbruch </ br>. Der FCKEditor führt selber während der Eingabe die notwendigen Tags ein. Bei einer nachträglichen Installation von FCKEditor und Abschalten des linebreak converter gehen alle Absatzformatierungen in den Dokumenten verloren, die im einfachen Editor erstellt wurden. Das Problem lässt sich etwas erträglicher machen, in dem man ein neues Eingabeformat mit linebreak converter definiert und all den alten Seiten zuweist, die man mit dem einfachen Editor erstellt hat.

HTMLPurifier

Das Modul gemäss den Anweisungen installieren. Man muss zusätzliche Software herunterladen und im Modulordner ablegen. Der HTMLPurifier ersetzt die internen Filter (HTML-Filter, HTML-Korrektor, URL-Filter) von Drupal. In "Eingabeformate" im Verwaltungsbereich kann HTMLPurifier für den entsprechenden Filter aktiviert werden. Er muss dann noch konfiguriert werden. Dazu im Reiter auf "Konfigurieren" klicken und folgendes Anwählen (alles andere auf der standardmässigen Einstellung "No" belassen): Autoparagraph auf "No", der Drupal eigene Zeilenumbruchkonverter macht einen besseren Job, Linkify auf "Yes" und unter HTML Null/Disabled deaktivieren und in das Textfeld allowed mindestens folgendes einfügen:

a, a[href], a[name], span, em, i, strong, u, strike, cite, code, sup, sub, ul, ol, li, 
dl, dt, dd, br, p, h1, h2, h3, h4, h5, h6, img, table, th, tr, td

Pfad: /admin/settings/filters und /admin/settings/filters/1/configure

HTML Filter

Der in Drupal eingebaute Filter arbeitet auch gut, ist aber weniger fein einstellbar. Zudem ist HTMLPurifier leistungsfähiger, was die Korrektur des Codes angeht. Dies erreicht Drupal mit einem zusätzlichen Filter HTML-Korrektor. HTML-Filter ist standardmässig etwas arg knapp konfiguriert. Schriftgrössen und -farbe werden nicht zugelassen, die der FCKEditor mit Hilfe des Tags <span style="...">...</span> setzt. Darum kann man unter erlaubte HTML-Tags eintragen:

<a> <span> <em> <i> <strong> <strike> <u> <cite> <code> <sup> <sub> <ul> <ol> <li> 
<dl> <dt> <dd> <br> <p> <pre> <h1> <h2> <h3> <h4> <h5> <h6> <img> <table> <th> <tr> <td>

Pfad: /admin/settings/filters/1/configure

Spamspan

Spamspan ist ein nützlicher Filter, der mit einem konfigurierbaren Modul geliefert wird. Emailadressen werden durch den Filter mit Javascript so codiert, dass sie für den Menschen normal lesbar und anklickbar sind, aber für Spambots (kleine Programme, die Emailadressen von Webseiten sammeln, an die dann SPAM geschickt wird) in der Regel unlesbar sind.

Pfad: /admin/settings/filters/1/configure (für "Filtered HTML")

Statistiken

Hier aktivieren: /admin/reports/settings

Fehlermeldungen

Sollten nur ins Protokoll geschrieben werden.

Pfad: /admin/settings/error-reporting