Freie Software für Webdesigner

Tags: Webdesign Kommentieren

Coding

Das Non-Plus-Ultra in Sachen Coding ist zwar immernoch der Dreamweaver von Adobe, jedoch ist der hohe Preis ein schlagendes Argument für freie Software auf diesem Gebiet.
Für das alltägliche Programmieren und Erstellen von HTML-Seiten reicht der Weaverslave vollkommen aus. Erweiterbar mit Modulen ist dieser schlanke und flinke Web-Editor perfekt für HTML, JavaScript, CSS, PHP ausgelegt. Syntax-Highlighting, ausgeprägte Suchen-Ersetzen-Funktionen und Schnelles Laden von sehr großen Dateien sind einige der Vorteile des Editors. Leider wird die Software seit 2005 nicht weiterentwickelt, weshalb der Weaverslave wohl bald nicht mehr für aktuelle HTML- und PHP-Versionen verwendet werden kann.

Projektwebsite: http://www.weaverslave.ws/index.3.html

Für das Konvertieren von Zeichensätzen, Zeilenumbrüchen und das Öffnen von großen Dateien empfiehlt sich der Notepad++. Ein schlanker, schneller und flexibler Editor für alle Formate. Das große Plus: Konvertierung in verschiedenste Zeichensätze, das Ernennen von solchen und das Konvertieren von Zeilenumbrüchen zwischen Windows, Linux und Mac.

Projektwebsite: http://notepad-plus.sourceforge.net/de/site.htm

FTP

Als OpenSource-Projekt hat dich der FileZilla zum Standardwerkzeug für das File-Transfer-Protokoll etabliert. Sämtliche benötigten Funktionen sind integriert, die Bedienung ist intuitiv und die Software ist für viele Plattformen verfügbar.

Projektwebsite: http://filezilla-project.org/download.php?type=client

Weitere wichtige Software ist auf der Website von Parrot Media, der Werbeagentur für Lübeck, Hamburg zu finden

Thecus N5200Pro Webserver Modul automatisch starten

Tags: N5200 | NAS | Webserver Kommentieren

Das Webserver-Modul des Thecus N5200Pro mit der Firmware 2.00.16 enthält in der Version 1.0.4 einen Bug, der das Starten des Server verzögert und den Autostart verhindert. Um diesen Bug zu beheben einfach folgendermaßen vorgehen:

Zuerst einmal das SSH-Modul installieren (http://naswebsite.com/wiki/Thecus_N5200_Module:_SSHD) und mit dem Benutzer sys zum NAS connecten. Dort die Datei start_http.sh aus dem Ordner /raid/data/module/webserver/bin mit dem vi öffnen und den folgenden Code statt des vorhandenen einfügen:

#!/bin/sh
##########################################################################################
# Start apache server
##########################################################################################
check_user=grep "^User " /raid/data/naswebsite/conf/httpd.conf | awk '{print $2}'
check_user=${check_user:0:8}
logevent="/raid/data/module/webserver/bin/logevent/event"
ps_httpd=ps | grep /raid/data/module/webserver/httpd-2.0.54/bin/httpd
httpd_test=/raid/data/module/webserver/httpd-2.0.54/bin/apachectl configtest 2>&1
check_port=/raid/data/module/webserver/bin/check_port.sh
if [ "$httpd_test" != "Syntax OK" ];
then
echo "-5"
exit
elif [ "$check_port" != "0" ];
then
echo "$check_port"
elif [ "$ps_httpd" == "" ];
then
/raid/data/module/webserver/httpd-2.0.54/bin/apachectl startssl
wait_count=0
while [ $wait_count -lt 30 ]
do
wait_count=$[$wait_count+1]
ret=ps | grep /raid/data/module/webserver/httpd-2.0.54/bin/httpd | grep -v grep | grep $check_user | grep -v grep
if [ "${ret}" != "" ];then
echo "0"
$logevent 997 5001 info email
echo "a" > /raid/data/module/webserver/httpd-2.0.54/flag
exit
fi
sleep 1
done
$logevent 997 5003 error email
echo -6
http_pid=ps | grep /raid/data/module/webserver/httpd-2.0.54/bin/httpd | grep -v grep | grep root | grep -v grep | awk '{print $1}'
kill $http_pid
fi

Das Problem mit diesem Script ist das Folgende: Die While-Schleife wird nicht beendet, da der wait_count nicht hochgezählt wird. Hierfür die Zeile wait_count=$[$wait_count+1]. Weiterhin funktioniert das Script nicht, wenn ein anderer Webserver-Benutzername definiert wurde. Hierfür die folgende Zeile: check_user=grep "^User " /raid/data/naswebsite/conf/httpd.conf | awk '{print $2}'. Falls der Benutzername über 8 Zeichen hat, braucht man noch die Zeile darunter: check_user=${check_user:0:8}.

Nun sollte das Webserver-Modu bei einem manuellen Start über die Browseradministration schneller starten und nicht den eindruck erwecken, sich aufgehängt zu haben. Weiterhin wird der Server nun beim Boot mitgestartet und muss nicht ständig manuell gestartet werden.

Lange Texte mit PHP beschneiden

Tags: PHP | Webdesign Kommentieren

Um einen Text an einer bestimmten Position abzuschneiden, um einen overflow zu vermeiden, kann man die folgende Funktion verwenden:

Die Funktion nimmt den zu verändernden String entgegen, schneidet den String ab der Zeichenposition ab und setzt 3 Punkte dahinter (wenn nicht anders definiert).
Leider werden Worte jedoch mittendrin abgeschnitten und das Resultat ist eher unschön. Im Folgenden eine Funktion, die ab der Maximalzeichenzahl noch das Wort übernimmt und den Rest abschneidet:

PHTML-Dateien mit Dreamweaver bearbeiten

Tags: Contao | Dreamweaver | Webdesign Kommentieren

Wer mit der Zend Engine arbeitet, kennt die .phtml-Dateien. Möchte man diese mit dem Dreamweaver bearbeiten, geht das zwar, aber man hat kein schönes Syntax-Highlighting und die Software erkennt auch nicht, dass es sich um HTML-Code handelt. Um PHTML-Dateien auch im Dreamweaver komfortabel bearbeiten zu können, kann dieser Dateityp entsprechend eingeordnet werden.

Die Vorgehensweise:
\Configuration\DocumentTypes\MMDocumentTypes.xml im Verzeichnis von Dreamweaver öffnen. Nun die Zeile

durch die folgende ersetzen:

Diese Anpassung greift auf einem Mac und einem Windows-PC.

Jetzt werden PHTML-Dateien wie PHP-Dateien behandelt und man kann diese komfortabel bearbeiten.

Das gleiche funktioniert auch mit tpl-Dateien, zum Beispiel für Contao. Einfach  .tpl als Dateiendung hinzufügen. Aber Achtung: Der Dateityp muss bei „HTML“ (erster Eintrag) entfernt werden, sonst startet Dreamweaver nicht mehr.

Artforms: Bugs im Release-Candidate für Joomla 1.5 beheben

Tags: Joomla! | Webdesign Kommentieren

Wir verwenden auf einer Internetseite Joomla mit installiertem ArtForms Version: 2.1b7.1 [RC1 For Joomla 1.5]. Wie zu erwarten sind noch einige Fehler in dem Modul zu finden. Im Folgenden möchte ich einige Lösungen für kleine Bugs vorstellen:

Bei falscher Captcha-Eingabe werden Eingabefelder gelöscht:

Wird das Formular abgesendet, jedoch ein falscher Captcha-Code eingegeben, so werden alle anderen Eingabefelder geleert und man muss das gesamte Formular erneut ausfüllen. Wünschenswert wäre ja, wenn die Felder bestehen blieben und man lediglich das Captcha erneug eingeben müsste.
Um diesen Bug zu beheben, muss die direkte Weiterleitung nach dem Überprüfen des Captchas ausgeschaltet werden. Hierfür die Datei /components/com_artforms/artforms.html.php öffnen. Die Captcha-Überprüfung beginnt hier in der Zeile 103. Hier werden die einzelnen Varianten überprüft und gegebenenfalls der Benutzer zurückgeleitet. Die Zeile

$mainframe->redirect( JRoute::_( $alink.'&formid='.$formid.'&Itemid='.$Itemid.'&afmsg='.$msg ) );

die in jeder Überprüfung die Weiterleitung einleitet, unterbindet, dass andere Fehler überprüft werden und die Felder wieder mit Inhalt gefüllt werden.
Diese Zeile einfach durch die folgende ersetzen:

$a_errors[] = '<div class="artforms-errorfield">Überprüfung des Sicherheitscodes ist fehlgeschlagen!</div>';
$a_error_ids[] = $item->item_id;

Dies bewirkt, dass nur eine Fehlermeldung erzeugt wird. Text, etc. der Meldung kann man hier entsprechend anpassen. Nachdem nun ein Fehler erzeugt wurde, wird das Script trotzdem weiter ausgeführt, andere Fehler werden gescannt und die Felder werden auch wieder mit Inhalten gefüllt.

Bei fehlerhaftem Absenden des Formulars werden Textarea-Felder geleert

Bei der Überprüfung und dem erneuten Füllen der Formularfeldet, falls ein Fehler auftritt, haben die Programmierer vergessen, auch Textarea-Felder wieder mit Inhalt zu füllen. Deshalb werden diese geleert, wenn das Formular nicht erfolgreich abgeschickt werden kpnnte. Um diesen Bug zu beheben, die Datei /administrator/components/com_artforms/lib/af.lib.artforms.php öffnen und in der Zeile 327 den folgenden Code einfügen:

if(isset($_POST['item_'.$item->item_id])){
$value = $_POST['item_'.$item->item_id];
} else {
$value = $item->default_values;
}

TOP