Seiten

Donnerstag, 10. März 2011

PHP und CSS

Gestern habe ich mich mit dem Ticketauswertungstool befasst. Dabei werden nicht nur einhaufen Daten aus der Datenbank abgefragt, sondern auch mehrere Tabellen mit vielen Einträgen, Zeilen und Spaletn generiert.


Um diese Tabellen, die über den Browser ausgegeben werden dem Auge etwas angenehmer zu gestalten nutzte ich css, die Cascading Style Sheets. Diese bieten eine einfache, und vor allem elegante Möglichkeit um Html und Tabellen zu Formatieren.

Zuerst war klar, die Leserlichket wird durch eine Seriefenlose Schrift verbessert und die allgemeine Optik auch. Also ein css - file erstellt und mit dem * - Selektor eine Klasse gebaut. Dieser Selektor wählt alle Elemente der Seite aus. Hier das Ergebnis:


* {
font-family: "Arial" , sans-serif ;
}


so, das wäre geschafft. Nun muss noch dieser eklige Doppelrahmen fort. Das erledigt:


table {
table-layout:auto;
border-collapse:collapse;
border-color: white;
}


damit verschwinden die Ränder der Table und alles schrumpft etwas zusammen. Allerdings verlieren die Einträge auch an Struktur. Was steht denn nun in welcher Zeile? - Egal kümmern wir uns erst einmal um die Überschriften, also die Table Header:


th {
background-color: cc0033;
color: white
}


so. Nun haben wir einen guten Kontrast und die Farben sind ja die Gleichen wie bei DocCheck!

Ok, bleibt nur noch das Problem mit den schlecht leserlichen Zeilen. Auf Bus - und Zugfahrplänen sind die Zeilen oft in verschiedenen Farben dargestellt. Spart platz und sieht eigentlich ganz ok aus, aber wie macht man das mit PHP?

Der PHP code erzeugt das HTML dynamisch. so auch die zeilen der Tabelle. Natürlich wird nicht jede Zeile vorher Implementiert, also muss man es anders machen:


Zuerst 2 css Klassen Schreiben:


.row_0 {
background-color: #FFFFFF;
}

.row_1 {
background-color: #E1E8F1;
}


dann muss vor der Erzeugung der Tabelle noch etwas PHP-Code her:


$bg = 0;

if($it % 2 == 0){
$bg = 1;
}

else {
$bg = 0;
}

so, jetzt muss die Variable $it nach jeder geschriebenen Zeile inkrementiert werden!

$it++;

so. Nun nur noch die Tags angepasst:

echo "";

und schon werden die einzelnen Zeilen unterschiedlich eingefärbt!
Nun sind sie leserlich, platzsparend und sehen sogar noch schick aus.

Mittwoch, 9. März 2011

PHP und SQL

Heute habe ich mich damit beschäftigt das Ticketauswertungstool, welches mein Ausbilder großteils fertig gestellt hat zuende zu führen und dessen erscheinung so zu formatieren, das man die Zahlreichen Zeilen und spalten angenehm lesen und möglichst schnell finden kann. Geschrieben ist das ganze Tool als ein einziges, aus mehreren Dokumenten bestehendes PHP-File.

Es werden haufenweise Datenbankabfragen gemacht, die sich wiederholen, und bei denen sich nur wenige Kleinigkeiten ändern ( z.B.: eine Spaltenbezeichnung ). Um die Wiederholungen nach Möglichkeit zu automatisieren wurde die Möglichkeit genutzt, den SQL - Code, der inform einer String - Variablen an die Klasse übergeben wird, welche die Datenbankabfrage ausführt, stückchenweise während der Ausführung zusammenzubauen.

Es kommen also desöfteren Variablen vor die so aussehen:
$query = "SELECT from".$tabelle1.",".$tabelle2." ´dieseSpalte´";
Während der Laufzeit kommen dann in diese $query-Variable viele verschiedene Quellen rein und ebensoviele Abfragen werden gemacht, ohne jedes mal den kompletten SQL-Code schreiben zu müssen.

Die Variable wird dann als Parameter an die mysql_query($query) übergeben, und wenn man alles richtig gemacht hat bekommt man von der MySQL-Datenbank genau die angefragten Werte zurück. Wenn nicht, dann gibts einen SQL-Error ^^.

Allerdings gab es im Code einen Fehler, der dann doch etwas mehr Programmier, bzw Schreibarbeit verlangte. Durch die Verkürzung konnte ein Wert nichtmehr unabhängig ausgelesen werden. Ich habe dann für alle Fälle den entsprechenden Code ausgeschrieben. Dies ging allerdings nur mit Vorsicht, da gerade große und einfache Codeteile zum Kopieren und Umschreiben einladen. Und wenn man etwas übersieht wird die Fehlersuche schwierig.

Montag, 7. März 2011

Montag der Prozesse und Gutscheine

Heute verbrachte ich den größten Teil des Tages damit den Prozess unserer Auftragserfassung mit Aris Express zu modellieren. Es ist ein relativ komplexer Vorgang mit vielen möglichen Verzweigungen und noch mehr Handgriffen, die alle aufgenommen werden müssen. Aris Express  bietet hierfür eine Modell der Ereignisgestuerten Prozesskette und ein leicht verständliches und einfach zu bedienendes Interface, welches mir ermöglichte die Sache so schnell und effizient umzusetzen, dass ich heute den Punkt erreichen konnte, das nur noch Korrekturen zu machen sind.

Zur Auftragserfassung wird speziell für unseren Betrieb geschriebene Software verwendet, somit wird diese Beschreibung wohl kaum für andere Betriebe nutzen. Sollte ein Umstieg unsererseits stattfinden werde ich hier häufige Vorgänge die ich modelliert habe veröffentlichen.

Den übrigen Teil des Tages habe ich für die vor kurzem ausgelaufene Stammkundenaktion einige Gutscheine versendet. Die Idee hierbei war, dass jeder Kunde, welcher in das Mitteilungsfeld der Bestellung das Wort "Stammkunde" eingibt, einen Gutschein über 10 Euro erhält. Dieser Gutschein hat einen Mindestbestellwert von 100 Euro. Wird der Gutschein wärend der Aktion eingelöst erhält der Kunde einen weiteren Gutschein mit dem Wert von 20 Euro über einen Bestellwert von 150 Euro. So setzt sich das ganze dann fort. Ein steigender Gutscheinwert bei jeder Bestellung.

Das von uns hierfür eingesetzte Tool OTRS zu Ticketbearbeitung ist jedoch aufgrund seiner fehlenden Vorlagenfunktion nicht optimal für die manuelle Massenversendung von Gutschein -Emails geeignet. Deswegen war das Versenden etwas schwerfällig.