(Affilliate Link ) sind neuerdings Serverbasiert. Das heisst: Aussehen, Inhalt, etc kann grösstenteils von der AdSense-Seite aus gemanaged und muss nicht mehr mühsam von Hand auf jeder Seite eingepflegt, geftpt und gecheckt werden. Das geniale Drupal AdSense Modul beherrscht diese neue Variante leider (noch) nicht von Haus aus. Mit einem kleinen Patch geht das aber.
Some hosting providers do not grant the MySQL-userright CREATE TEMPORARY TABLES to their customers. Maybe because it’s full moon at the moment and everyone seems a bit crazy. But a href=”http://drupal.org/”>Drupal really wants this right and so a workaround is needed …
The error during the installation could be something like this:
user warning: Access denied for user: 'drupal@%' to database 'drupal' query: CREATE TEMPORARY TABLE missing_nids SELECT n.nid, n.created, n.uid FROM node n LEFT JOIN node_comment_statistics c ON n.nid = c.nid WHERE c.comment_count IS NULL in /var/websites/drupal/includes/database.mysql.inc on line 167.
Kind of a Solution
I have written a patch for Drupal 5.2 which should kinda solve the problem. In Drupal, CREATE TEMPORARY TABLES is only used in the db_query_temporary function, found in the file includes/database.mysql.inc, which is a very clean progamming style! Basically, this patch creates a real table instead of a temporary one. The name and the creationdate is stored in an extra table called temporary_table. The cron.php removes these tables on a regular base. If the table already exists, it is dropped.
This patch only works for MySQL and MySQLI and may be a performance loss. I have tested this patch only on a low traffic site and I do not know if there are race conditions. Use it on your own risk…
Wie schon ein paar mal erwähnt: Websvn ist ein geniales Tool! Es ermöglicht das Browsen von verschiedenen Repositories übers Web mit dem Browser. Manchmal möchte man aber nicht alle Verzeichnisse freigeben und anzeigen.
Ich habe einen Patch erstellt, der eine neue Option in /etc/websvn/config.inc erlaubt: $config->excludeRepository("name");. Diese Option kann mehrfach angegeben werden und alle excludeten Repositories werden nicht mehr dargestellt…
Beispiel:
// Select Repositories to exclude $config->excludeRepository("Geheime-Codes"); $config->excludeRepository("Jokes");
Da chatten ein neues Hobby geworden ist und meine alte Webcam, hmm, das Schicksal aller ausgeliehenen Bücher gegangen ist, habe ich ne neue gekauft: QuickCam Express für fastgarnix. Das Einrichten ging dank der Anleitung von ichbinsnur genial einfach. Thnx a lot diesem Wizard…
Man hat ein geniales OSS Produkt installiert und 3, 4, 123 kleinste Änderungen eingefügt um es an die Situation anzupassen oder Fehler zu korrigieren (die man natürlich zurückgemeldet hat). Nun werden ein paar kleine aber hässliche Sicherheitslücken gefunden und eine neue Version publiziert. Die Motivation geht natürlich in den Keller mit der Aussicht alles wieder und wieder reproduzieren zu müssen.
Eine mögliche Lösung: Patches. Patches sind kleinere Codeflicken die sich überraschend intelligent in neuen Code einzufügen wissen.
Erstellen eines Patches mit CVS/SVN
Wenn man alles im SVN/CVS hat ist man fein raus. Neue Version einer Datei nicht einchecken und folgendes tun:
cvs diff-up FILENAME > filename.patch
bzw.
svn diff-up FILENAME > filename.patch
Will man Änderungen in mehreren Dateien rekursiv verarbeiten, so geht das mit SVN/CVS so:
cvs diff-Rup DIRECTORY > filename.patch
bzw.
svn diff-Rup DIRECTORY > filename.patch
Erstellen eines Patches ohne CVS/SVN
Ohne SVN und CVS muss man die Originaldatei zuerst wegkopieren und folgendes tun:
diff-up ORIGINAL NEW > filename.patch
Bei ganzen Verzeichnissen muss man ebenfalls die unveränderte Version zuerst wegkopieren. Nach der Änderung in das Grundverzeichnis der Arbeitsversion wechseln und dann folgendes eingeben: