Concrete5: Datenbanknamen mit Binde- oder Unterstrich

Das CMS Concrete5® in der Version 5.4.1.1 (und wahrscheinlich auch älteren Versionen) hat Probleme mit Datenbanknamen, die einen Binde- oder Unterstrich beinhalten.

Wenn Datenbankabfragen ausgeführt werden wie etwa die SQL-Abfrage SHOW TABLES FROM […] – zum Beispiel wenn man über das Dashboard eine Datenbanksicherung vornehmen will – dann wird eine Fehlermeldung ausgespuckt, falls eben die Datenbank einen Binde- oder Unterstrich im Namen führt.

Ich habe im Concrete5-Forum diesen Bug berichtet und erhielt die erfreuliche Antwort, dass dieser Fehler in der aktuellen Entwickler-Version von Concrete5 behoben worden ist. Im öffentlichen Download-Bereich werden allerdings nur die stabilen, also fertigen Versionen angeboten. Bis die nächste stabile Version erscheint, kann man sich folgendermaßen behelfen:

Entweder man ändert Zeile 13 in der Datei /concrete5/concrete/libraries/backup.php von

$arr_tables = $db->getCol("SHOW TABLES FROM " . DB_DATABASE);

in

$arr_tables = $db->getCol("SHOW TABLES FROM `" . DB_DATABASE . "`");

oder man lädt sich die Entwicklerversion herunter von Github – doch Vorsicht, denn es handelt sich ja um eine Version, die noch nicht für den Einsatz in einer Produktivumgebung geeignet ist und noch Fehler enthalten könnte. Ich empfehle also Folgendes: Das heruntergeladene Zip- oder Tar-Archiv entpacken und nur die oben genannte Datei auf den Webserver hochladen, nicht aber das ganze Paket.

SeaMonkey und die Tags <code> und <pre>

SeaMonkey ist ja die Mozilla-Komplett-Suite, bestehend aus Webbrowser, E-Mail-Client, HTML-Editor, Adressbuch und Chat. Ich selbst bin kein großer Fan von SeaMonkey; ich finde die Zusammenstellung von Firefox als Browser und Thunderbird als E-Mail-Programm (mit Kontaktverwaltung und Kalender) wesentlich besser. Und der HTML-Editor in SeaMonkey ist eh Schrott und für meine seltenen Chats benutze ich Pidgin, den Multi-Messenger.

Ich nehme aber die Browser-Komponente von SeaMonkey neben einer ganzen Reihe weiterer Browser ganz gern zum Testen, denn die Webseiten, die man erstellt, sollen ja möglichst in allen Browsern gleich aussehen.

Und dabei habe ich jetzt eine Eigentümlichkeit von SeaMonkey entdeckt: Er weigert sich, die HTML-Tags code und pre mit den Angaben zu formatieren, die ich in der CSS-Datei angegeben habe – oder überhaupt den in diese Tags eingeschlossenen Text anders zu formatieren als den »normalen« Text – üblich ist ja eine nichtproportionale Schrift (monospace).

Wenn man aber folgendermaßen verschachtelt, dann geht es:


<pre><code>
   …
</code></pre>

Seltsam, aber nicht schlecht, denn diese Verschachtelung hat in allen Browsern den Vorteil, dass Einrückungen des originalen Textes erhalten bleiben, wie man oben sehen kann. Pre oder code allein stellen die Einrückungen oft falsch dar.

Frames in 2011

Hut ab vor kompetenter Konkurrenz, von der man noch was lernen kann. Nie würde ich mich über sie beklagen. Was mich hingegen aufregt, sind Konkurrenten, die ihr Handwerk nicht verstehen.

Es ist schon unfassbar, wer so alles Webdesign quasi »nebenher« anbietet, ohne dafür eine Ausbildung zu haben oder sich wenigstens das nötige Wissen selbst anzueignen mittels aktueller Fachliteratur. Natürlich sieht manches Zusammengefrickelte schön aus. Aber wenn dann Links nicht funktionieren, ist es doch sicherlich für den Kunden, der mög­licher­weise viel Geld bezahlt hat, ärgerlich.

Heute bin ich auf so ein hübsch gestaltetes, aber funktionell mangelhaftes Machwerk gestoßen. Und die Krönung, als ich mir den Quelltext der Referenzen anschaute: Im Jahr 2011 setzen diese »Webdesigner« tatsächlich noch die so was von völlig veraltete Frame-Technik ein! Mit Microsoft Word als HTML-Editor.

Arme Suchmaschinen. Und arme Kunden!

TinyMCE in Concrete5: Schriftgröße anpassen

Neulich schrieb ich, wie man die Schriftgröße des WYSIWYG-Editors »TinyMCE« im Content-Management-System »SilverStripe« anpassen kann. Heute will ich dasselbe für das CMS »Concrete5« erklären.

Man sucht mittels FTP-Client (etwa FileZilla, Core FTP Lite, Cyberduck) den Ordner /concrete/js/tiny_mce/themes und kopiert ihn nach /js/tiny_mce/themes/ (weil Dateien im Kern-Ordner niemals verändert werden sollten). Im kopierten Verzeichnis gibt es die Unterordner advanced, concrete und simple. Jeder dieser Ordner verzweigt sich noch weiter. Für uns interessant ist jeweils skins/default/. Wenn im Backend von Concrete5 unter Verwaltung > Allgemeine Einstellungen > Texteditor > Toolbar Set zum Beispiel Einfach eingestellt ist, nehmen wir uns den Ordner simple/skins/default/ vor.

Darin gibt es die CSS-Datei editor.css – diese bearbeiten wir mit einem Text- oder HTML-Editor. Gleich in den ersten Zeilen finden wir die Angabe


body, td, pre {
  font-family: Verdana, Arial, Helvetica, sans-serif;
  font-size: 10px;
}

Wir ändern die Buchstabengröße zum Beispiel in 14px, laden die Datei wieder hoch, leeren den Cache von Concrete5 und den Browser-Cache – und das war’s dann auch schon.

Google kauft Microsoft

Dass Microsoft und Google scharfe Konkurrenten sind, ist ja bekannt. Microsoft versucht mit Bing, auf dem Suchmaschinensektor wenigstens den zweiten Platz zu belegen, und Google wiederum ist fleißig dabei, ein Betriebssystem zu basteln, Chrome OS, das Windows das Fürchten lehren soll (oder auch nicht).

Google war in der gesamten Vergangenheit immer mal wieder durch Firmenaufkäufe aufgefallen. Aber Microsoft schlucken? Undenkbar! Und doch ist so etwas anscheinend im Gange. Diese Meldung wird sicherlich in den nächsten Tagen durch Presse, Fernsehen und Web gehen; bisher sind noch keine detaillierten Fakten bekannt.

Ein wenig einlesen in die groben Zusammenhänge kann man sich aber bereits heute: Google kauft Microsoft.

Tja, und ob Google sein Chrome OS wohl mit Windows vermischen wird? »Chromedows« wäre doch ein schöner Name.

TinyMCE in SilverStripe: Schriftgröße anpassen

Das CMS »SilverStripe« bietet zum Bearbeiten der Webseiten den WYSIWYG-Editor »TinyMCE« im Backend an. Ich persönlich bin zwar mehr ein Fan von CKEditor, aber gut, TinyMCE ist auch in Ordnung. Aber was mich total stört, ist die voreingestellte Schriftgröße von 62,5 %, die ich als zu klein empfinde. Ich will nicht mit der Nase bis an den Bildschirm ran.

62,5 % entsprechen 10 px – im Fall, dass im Browser eine Standardschriftgröße von 16 px eingestellt ist. Dies ist die Voreinstellung der meisten Webbrowser. Wie kann man diese Größe aber ändern?

Nun, sie lässt sich über eine CSS-Datei einstellen. Im Normalfall verfügt jedes Theme – zumindest wenn es eins der bei der Installation von SilverStripe mitgelieferten ist – über eine im Unterordner CSS liegende Datei editor.css, die man jetzt bearbeiten muss. Sie sollte folgenden Eintrag enthalten:

//This support file is used to style 
//the WYSIWYG editor in the CMS

@import "typography.css";

Mehr nicht. Darunter trägt man ein (im Beispiel wird eine Schriftgröße von 14 Pixeln gewünscht):

body.mceContentBody {
    min-height: 200px;
    font-size: 14px;
}

Nachdem man den Browser-Cache geleert hat, wird die Veränderung sichtbar.

Und nun noch eine Leseempfehlung: Interessanter Artikel auf toscho.de zu dem Irrsinn, Schriftgrößen in Prozent anzugeben.

Webhoster.de

Es gibt Webhoster, die treiben einen Riesen-Werbeaufwand, zeigen aber leider nur mittelmäßige Leistungen. Doch zum Glück gibt es auch welche, die faire Preise haben und technisch offensichtlich 1A ausgerüstet sind. So einen Webhoster habe ich einem Kunden empfohlen, weil ich selbst einfach davon überzeugt bin. Es handelt sich um »Webhoster.de«.

Zwar ist torstenkelsch.de dort nicht gehostet (denn mir selbst war vor vielen Jahren von einem Freund »Speicherhosting« empfohlen worden), aber dafür meine Testplattform, die ich intensiv benutze, um zum Beispiel Content-Management-Systeme zu testen. Ich lasse auch die Ausfallzeiten protokollieren durch »LiveWatch«, und da liegt Webhoster.de sehr gut im Rennen. Und mit ihren hochwertigen Dell-Servern und leistungsfähigen Festplatten ist auch ein schneller Seitenaufbau gewährleistet.

Der zufriedene Kunde, von dem ich eingangs sprach, ist Dirk Balke, der Inhaber der WERFTART Kunstvermittlung. Läuft doch flott, seine Website!

Ladezeit von Webseiten

Eine kurze Ladezeit von Webseiten ist heutzutage ein ziemlich wichtiges Bewertungskriterium von Google – und ich könnte mir vorstellen: auch von anderen Suchmaschinenbetreibern. Sie wollen den Suchenden schließlich gute Ergebnisse liefern, und eine gute Website darf eben nicht langsam sein.

Denn kaum etwas ist ärgerlicher für Seitenbesucher als ein quälend lahmer Aufbau. Da wird dann gern schon mal schnell weggeklickt und weitergesurft – vielleicht zur Konkurrenz. Schlecht für den Seitenbetreiber, der eigentlich das Ziel hat, das Interesse der Besucher für seine Website und sein Unternehmen zu wecken.

Mit dem Ladezeit-Check von Topsubmit kann man die Geschwindigkeit seiner Webpräsenz testen. Das Tool zeigt an, wo die Schwachstellen sind. Das können zu große Bilddateien sein oder riesige JavaScript-Bibliotheken wie jQuery oder ähnliche. Lachen Sie nicht – 80 KiB sind riesig im WWW, auch heutzutage.

Also: Es ist Frühling und damit Zeit, abzuspecken!

Paint Shop Pro X (Vollversion) bei Terrashop

Wer eine preisgünstige, aber dennoch gute Grafik-Suite sucht, wird zur Zeit bei Terrashop fündig. Für € 14,95 plus Versandkosten (ab € 20,00 Bestellwert versandkostenfrei) bekommt man mit »Corel Paint Shop Pro X« eine Software in der Version von 2007, die meiner Meinung nach zumindest im Bereich der Foto-Nachbearbeitung fast mit »Adobe Photoshop« mithalten kann. Für Montagen und sehr diffizile grafische Arbeiten ist für die meisten Grafiker wohl Photoshop das A und O – sowohl vom Funktionsumfang als auch von der Bedienungsfreundlichkeit her.

Doch warum nennt der Hersteller sein Produkt »Grafik-Suite«? Das klingt ein wenig hochtrabend für eine Fotobearbeitungs-Software. Nun, erstens ist noch eine CD mit 1.000 Stockfotos USA beigepackt, und zweitens kann Paint Shop Pro ja noch wesentlich mehr als nur Fotos aufzuhübschen, Effekte darüber zu legen oder Verzerrungen auszugleichen. Es lassen sich auch grafische Entwürfe, zum Beispiel für Webseiten, gut damit anfertigen.

Denn ähnlich wie Photoshop arbeitet Paint Shop Pro mit der Ebenentechnik. Es gibt nicht nur Ebenen für Rastergrafiken (also Pixelgrafiken), sondern auch für Vektorgrafiken. Mit den Vektorwerkzeugen kann man ganz gut einfache geometrische Formen erzeugen. Zum Beispiel bastele ich mir folgendermaßen Schatten für Webseiten: Hintergrundebene mit der gewünschten Farbe anlegen, Rechteck als Vektorgrafik erstellen, Schlagschatten erzeugen, das Ganze als PNG oder JPG abspeichern.

Es gibt ferner noch die sogenannte Anpassungsebene, mit der man zum Beispiel Farben verändern kann, ohne dass die Ebene mit dem Originalbild verändert wird. Auch das ist aus Photoshop bekannt. So kann man recht leicht experimentieren oder in einer späteren Arbeitssitzung noch mal an den vorgenommen Einstellungen Änderungen durchführen.

Das Programm ist also vielseitig einsetzbar und dabei intuitiv zu bedienen. Man kann sich auch verschiedene Arbeitsumgebungen einrichten und abspeichern, sodass man für unterschiedliche Aufgaben die jeweils benötigten Elemente ein- und die überflüssigen ausblenden kann. Und für den Anfänger gibt es sogar noch das »Lernstudio«, welches einem das jeweils ausgewählte Werkzeug erklärt. Sobald man fit ist, lässt es sich ausschalten.

Paint Shop Pro X Vollversion bei Terrashop

Website absichern

Immer wieder passiert es, dass Websites in der Form attackiert werden, dass schädlicher Code eingeschleust wird. Jüngst bin ich auf eine Website gestoßen, die – vom Betreiber ungewollt – eine Verbindung zu »greatrow[dot]ru« aufbaute. Bei »Google Safe Browsing« kann man Näheres dazu erfahren.

Es ist nicht immer leicht, die Schwachstelle zu entdecken, über die es dem Angreifer gelungen ist, die Website zu infiltrieren. Man sollte aber, damit es möglichst gar nicht erst so weit kommt, seine Website von vornherein so gut wie möglich absichern:

  • Sichere Passwörter zu allen Zugängen vergeben, zum Beispiel: Login ins CMS, FTP-Zugang, Login zur Administrations-Oberfläche (Confixx, Plesk etc.) beim Webhoster. Diese Passwörter sollten mindestens acht bis zehn Zeichen enthalten und aus Klein- und Großbuchstaben, Ziffern und Sonderzeichen bestehen.
  • .htacess-Datei absichern, die den Zweck hat, dem Apache-Webserver bestimmte Anweisungen zu geben. Wie man diese Absicherung vornimmt, kann man bei squatlabs nachlesen. Die empfohlenen Dateiberechtigungen werden aber beim Standardhosting dazu führen, dass die Website nicht mehr erreichbar ist, hier dürfte die Berechtigung 644 die niedrigst mögliche sein.
  • Datenbankabfragen absichern: Wenn über Webformulare Benutzereingaben entgegengenommen und in eine Datenbank gespeichert werden, könnte schädlicher Code in die Datenbank eingeschleust werden, falls man die Eingaben ungeprüft/ungefiltert übergibt. Man spricht hier von eine SQL-Injection. Heise Security bietet zu diesem Thema einen älteren, aber immer noch gültigen Artikel an.

Achtung: Diese Maßnahmen allein machen es Angreifern nicht unbedingt unmöglich, in das System einzudringen, sondern sind als unerlässlicher Grundschutz zu verstehen, ohne den ein Einbruch so leicht wäre wie der unerlaubte Eintritt in ein Haus mit offenen Türen.