logo

Programmieren oder so ähnlich


Schon mal was von Redaxo gehört?

Posted in CMS, MySQL, PHP, Web Development von admin am 25. Mai. 2008

Joomla, Wordpress, Typo3 sind für die meisten Webentwickler bekannte Begriffe.

Wie sieht es aber mit Redaxo aus? Nein? Dann will ich hier mal meine Erfahrungen und Meinungen zum CMS Redaxo preisgeben.

Einstieg in die CMS-Programmierung

Bislang habe ich nie grossartig an einem CMS rumprogrammiert. Als ich aber für einen Internetauftritt, dessen Grundstein (das installierte Redaxo CMS) bereits vorhanden war, viele Modifikationen machen und Special-Wünsche erfüllen musste, hatte ich es zum ersten mal mit der Programmierung in einem CMS zu tun.

Folgende Punkte machten mir die Hölle heiss:

  • Ich kannte das CMS gar nicht. Was ist ein Addon? Was ein Modul?
  • Objektorientiert programmieren mit PHP? Damals hatte ich es nicht mehr als ein Mal gemacht. Hab z.B. oft die Klammern bei den Methoden vergessen wie hier –> $artikel->getCategory->getId();
  • Die Klassen und Methoden, die ich benötigte waren mir vorerst alle unbekannt.
  • Redaxo gibt es bereits in der 4. Version. Trotzdem stehen Zusatzfunktionen zum Download bereit, die für ältere Versionen entwickelt wurden. Diese versuchte ich verzweifelt auf dem neuen Release lauffähig zu machen.

Ich füllte mich, als wurde ich einfach ins kalte Wasser geworfen. Stundenweise zerbrach ich mir den Kopf über Probleme, die ich glaubte nie lösen zu können. Jedoch hatte ich nach einer ganzen Woche tüfteln den Dreh langsam raus und kannte die wichtigsten Klassen und Methoden. Mit der Zeit merkte ich immer mehr und mehr, wie genial manche Sachen gelöst wurden. Heute verwende ich als CMS überwiegend Redaxo.

Homepage und Download: www. redaxo.de

Der Aufbau von Redaxo
In Redaxo gibt es Kategorien, die Artikel oder Unterkategorien enthalten.

Ein Artikel wird aus verschiedenen Modulen zusammengesetzt, wie es die folgende Grafik zeigt.

Diese Module (Blöcke) können beim Schreiben eines Artikels simpel eingefügt werden. Es gibt viele fix fertige Module, aber man kann diese auch selber programmieren.

Hier mal ein Beispiel-Modul mit dem ich eine ungeordnete Liste erstellen kann.

Nebenbei gibt es bei Redaxo noch andere wichtige Funktionen, z.B. Addons und wie bei allen gängigen CMS auch Templates/Themes.

Was mir an Redaxo gefällt?

  1. Dass ich es mittlerweile beherrsche :-)
  2. Methoden- und Klassennamen sind aussagekräftig.
  3. Schönes und schlichtes Backend.
  4. Eigene Erweiterungen (Addons, Module) können relativ einfach entwickelt werden.
  5. Die Community, die zwar klein ist, aber die Antworten auf Fragen relativ schnell bringt.
  6. Das Framework ist sauber dokumentiert, obwohl manche Dokumentationen noch unvollständig sind.
  7. Erlaubt dem Entwickler flexibel zu sein.

Ich will euch nochmals darauf hinweisen, dass ich andere CMS nicht so gut im Detail kenne. Also ich habe die Meinungen nicht aus Vergleichen zwischen Redaxo und Joomla und Co. getroffen.

Einfacher Einstieg für dich

Da ich mit diesem Beitrag auch Hilfe leisten will, schreibe ich noch die wichtigsten Links und sonstige hilfreiche Tipps zum Redaxo-Einstieg, die mir geholfen haben.
Für den Anfang:
(Forumsbeitrag) Einfachen Artikel auslesen
Einfacher SQL mit dem Redaxo-Framework

Nachschlage-Werke:
Redaxo Dokumentation und Datenbankschema
Online-Dokumentation
Doku zum Framework (aktuelle Version)
Doku zum Framework der älteren Version (Meiner Meinung nach besser dokumentiert)
Weitere Hilfe zu PHP mit Redaxo

Für spätere Probleme:
(Forumsbeitrag) Umlaute und Sonderzeichen werden nicht richtig dargestellt
(Forumsbeitrag) Doppelter Eintrag in der Datenbank
(Forumsbeitrag) Probleme beim Add-On schreiben
(Forumsbeitrag) Bildtitel und Bildbeschreibung ausgeben

SQL Select liefert immer true zurück, warum?

Posted in MySQL, PHP, Web Development von admin am 18. Okt. 2007

Nach langem wieder einmal hab ich eben eine kopfzerbrechliche Auseinandersetzung mit meinen Kollegen PHP und MySQL erlebt.

Für die Homepage www.clipcrawl.com musste ein Tagcloud her. Anstatt ein fix fertiges Script zu benutzen, dachte ich mir “Schreib doch selber schnell ( :P ) ein Tagcloud-Script”. Also fing ich auch damit an. Und man kommt hier um eine Datenbanklösung nicht herum. Ich benutzte MySQL und irgendwo musste ich Selects mit der Funktion mysql_query() ausführen.
Das Ergebnis, welches ich vom SQL-Select erhalte beinhaltet einen Boolean-Wert der mir mit dem Rückgabewert True sagt, dass der Befehl erfolgreich war und mit False nicht.

Also führte folgenden Select aus “SELECT tag, count FROM tag_tabelle WHERE tag = ‘Games’ “.

Die Tabelle tag_tabelle erhält die Tags, von denen welche im Tagcloud ausgegeben werden. Die Spalte tag hat den Typ Varchar(150). Ein Datensatz mit dem Wert ‘Games’ in der Spalte tag existierte aber nicht. Warum denn nicht? Die Tabelle war leer und wurde frisch erstellt. OK. Dieser Select würde mir (rein theoretisch) einen Booleanwert mit False als Wert zurückliefern, da ja der gesuchte Datensatz in der Tabelle nicht existiert.

Aber nein nein! Programmieren würde sich mein Hobby & Beruf nicht nennen, wenn etwas nicht läuft wie erwartet. Auch hier lief es nicht wie erwartet. Als Rückgabewert erhielt ich True !!! “Hää?” Dachte ich. “Unmöglich! Geht doch nicht!”. Warum soll der Select erfolgreich gewesen sein?

Mit mysql_fetch_row() versuchte ich (weil es ja anscheinend ein Resultat gab) einen Datensatz zu packen. Dieser war aber leer. *???*


Ich dachte ich werde verrückt. Da ist doch nichts drin in dieser Tabelle und immer erhielt ich beim Select einen Erfolg gemolden.

Ach ja, PHPmyAdmin habe ich nicht benutzt, da ich darauf keinen Zugriff hatte. Nur FTP-Zugriff hatte ich. Ich arbeitete nur mit PHP-Scripts.

Nach langen Blockaden in meinem Hirn entschied ich mich das ganze schnell auf meinem XAMPP-Server lokal nachzuspielen. Gut. Server gestartet und per phpMyAdmin einen Datensatz anhand der VARCHAR-Spalte tag gesucht (natürlich mit SQL Befehl). Das Resultat war wirklich nicht rot im Hintergrund. Kein Fehler wurde gemolden. Aber eine Meldung stand da “MySQL lieferte ein leeres Resultat zurück (d. h. null Zeilen).” -.-

Also: Wenn man SQL-Befehle mit z.B. mysql_query ausführt und dabei bei Select-Abfragen im WHERE-Zusatz eine VARCHAR/CHAR-Spalte prüft, dann sich bitte nicht auf den boolean-Rückgabewert verlassen. Gibt es Fehler, so werden diese auch entsprechend mit False gemeldet.

Oder in Kurzfassung: Leere Ergebnisse können auch True sein.

Obwohl ich wirklich am verzweifeln war, fand ich es wieder eine tolle Erfahrung und man sieht hier, dass der Computer nur Befehle ausführt und nicht dumm sein kann.

Login mit PHP, Sessions und MySQL

Posted in CMS, MySQL, PHP, Web Development von admin am 14. Okt. 2007

Schon lange ist es her, dass ich mit PHP ein Login-System programmiert habe. Dieses habe ich nur aus reiner Experimentierfreude gecodet, so dass es mir nur so halb im Gedächtnis erhalten blieb.

Auf der empfehlenswerten Internetseite php-resource.de habe ich ein cooles Tutorial entdeckt, welches ich euch nicht vorenthalten will, falls ihr auf dem Weg seid ein Login-System mit PHP und MySQL zu programmieren.

Von mir erhält der Autor (mrhappiness) hiermit einen virtuellen Applaus :) .
Also, hier der Link zum Tutorial “Login mit Hilfe von PHP und mySQL”.

Have fun ;) .

Tools die ich fürs Programmieren benutze

Posted in MySQL, Entwicklungsumgebung, PHP, Java, Web Development, Programmieren allgemein von admin am 16. Sep. 2007

Welche Tools ich zur Erledigung meiner Webworker-Arbeiten und sonstiges Programmieren benutze stelle ich hier vor. Alle Programme sind kostenfrei, was ich äusserst schätze, denn gut muss nicht immer teuer sein.

PHP Designer / PHP, Web development

Für das Programmieren von PHP Skripten benutze ich neben Notepad auch gerne den PHP Designer 2007 - Personal von MPSOFTWARE. Die Personal Edition ist eine Gratisversion für den nicht-kommerziellen Einsatz.

Die Software bietet viele coole Features, wie das Syntax-Highlighting für verschiedene Sprachen (PHP, HTML, XML, SQL, u.a.), für die Faulen gibt es fertige Code-Snippets (Funktionen, Klassen, Variable deklarieren), markierten Text zu einem Kommentar machen oder diesen in einen echo-Befehl (und auch andere) konvertieren.

Für mich genügen eigentlich die nette Oberfläche, sowie die Übersicht aller Variablen und Funktionen (so eine Art Zusammenfassung als Liste). Über diese kann man auf die Funktionen ganz schnell zugreifen, also man springt direkt zur angeklickten Funktion im Code. Das ist sehr praktisch, wenn man in einem Skript ganz viele Funktionen hat und somit die Übersicht über diese fehlt.

Toad Data Modeler / ERM, Datenbankmodellierung

Mit der Datenbankmodellierung beschäftige ich mich sehr oft. Um diese Tätigkeit nicht auf Papier ausüben zu müssen, benutze ich die Freeware von Toad Datamodeler von Quest Software.

Mit diesem genialen Tool lässt sich leicht ein ERM einer Datenbank erstellen. Die Entitätstypen werden als Kästchen erstellt, die die Attribute beinhalten. Den Attributen kann man alle Eigenschaften zuweisen, darunter wären mal Autoincrement, Datentyp, NULL / NOT NULL, Länge, usw. Die Beziehungen zwischen den Entitäten können natürlich auch gesetzt werden.

Eines meiner Lieblingsfunktionen des Programms ist, dass man aus dem erstellten ERM ein SQL-Script zur Erstellung der Datenbank generieren lassen kann.

Für mich ist dieses Tool jenes, das mir am meisten Arbeit erspart bzw. diese erleichtert.

Filezilla / Dateiupload

Um all meine Arbeiten auf dem Webserver hochzuladen, benutze ich den Opensource FTP Client Filezilla.

Es lassen sich bequem mehrere FTP Server verwalten und Proxy-Server werden ebenfalls unterstützt. Hat man viele Dateientransfers, die man alle auf einmal hochladen will, so bietet sich die Funktion “Warteschlange” an, mit der eine Warteschlange mit mehreren Operationen erstellt und anschliessend abgearbeitet werden kann. Filezilla ist als simpler und weit verbreiteter FTP Client sehr empfehlenswert.

Eclipse / Java Programmierung

Das berühmte Open-Source Projekt Eclipse dient mir als treues IDE für meine Java-Programme.

Ganz einfach werden die Java-Projekte angelegt und verwaltet. Beim Programmieren praktisch, die Befehlsreferenz, die von selbst erscheint, wenn man z.B. System.out. eingibt und einem so alle verfügbaren Methoden, Eigenschaften, usw. des Objektes auflistet. Nicht nur das, auch die Beschreibung der Methoden kann in sekundenschnelle in eine Art Tooltip Box eingeblendet werden. Bei der Fehlersuche bin ich (fast :D ) immer beim Debugger fündig.

Aufgrund der Plug-in-Struktur wird Eclipse nicht nur für Java, sondern auch für viele andere Programmiersprachen genutzt. Die Plug-ins können über die Update-Funktion von Eclipse kostenlos heruntergeladen werden. Und dann gibt es noch Plug-ins, für die bezahlt werden muss. Mir genügt aber Eclipse in der Standardversion vollkommen als Java Entwicklungsumgebung.

XAMPP

Bei keinem Webdeveloper darf dieses Paket fehlen. XAMPP, das Fixfertig-Paket mit Apache, MySQL, PHP und Perl.

Fast jedes kleine Webprojekt läuft bei mir zuerst auf einem XAMPP-System. PHPmyAdmin ist für die Datenbankverwaltung bereits vorinstalliert. Eigentlich ist da fast alles vorinstalliert. Einfach installieren und laufen lassen. XAMPP erfüllt bei mir den Zweck als Testserver voll und ganz.

Schlusswort

Obwohl ein Programm die Funktionen von zwei anderen Programmen ablösen könnte (z.B. Eclipse), verwende ich mehr Programme, da mir die Entwicklungsumgebung(en) komfortabel erscheinen soll.

Was für Software verwendet ihr fürs Programmieren? Gibt es welche die für mich empfehlenswert sind?

Meine Projekte - Stand der Dinge

Posted in PHP, MySQL, Java, Web Development, Projekt, Allgemein von admin am 10. Sep. 2007

Wie sieht es nun eigentlich aus mit meinen Projekten? Wie weit bin ich? Was hab ich schon?

Nun ja, fertig ist noch nichts :D

So gut wie es geht, versuche ich ständig an den Projekten weiter zu arbeiten. Aber nun ab zu den wesentlichen News.

CMS

Das Datenbankmodell für das CMS habe ich fertig gestellt. Obwohl nur die wichtigsten Tabellen einbezogen wurden, ist das ERM bereits so gross, dass das Modell auf meinem kleinen 15 Zoll Bildschirm gar nicht ganz angezeigt werden kann. Das ERM soll auch in Zukunft mit neuen Tabellen beschmückt werden, damit viele coole Funktionen programmiert werden können.

Neben dem ERM hab ich auch bereits einige PHP-Funktionen deklariert, und ein paar von denen auch schon implementiert. Natürlich wird es noch ein Weilchen dauern bis ich mal einen ersten Release machen kann, aber ich wills ja so gut wie möglich machen, also SQL-Injections usw. unbedingt verhindern.

Höchstwahrscheinlich werde ich nach dem ich das erste CMS veröffentlicht habe ein Framework freigeben, welches auch sorgfältig dokummentiert wird, damit man (falls überhaupt jemand) möglichst bequem neue Websites gestalten und coden kann. Erwartet aber nichts weltbewegendes, ich weiss selber nicht genau wie toll es schlussendlich sein wird. Ich versuche das beste daraus zu machen.

Spider / Webcrawler

Bei meinem Webcrawler habe ich mir des öfteren den Kopf zerbrochen. Ich bin der Sprache Java nicht so mächtig und es kam daher oft zu verbalen Auseinandersetzungen zwischen mir und meinem Laptop *g* (Sorry, ich spinn ein bisschen). Aber ich war stärker als Java und konnte es besiegen :D .


Im Moment kann mein Webcrawler nur Webseiten nach Links durchsuchen und diese anschliessend zusammenstellen. Damit nicht ewig gecrawlt wird, und da ich keinen Highend-Server besitze, der die die Leistung hat alles mit einem Fingerschnippsen abzuarbeiten, habe ich sogar eine kleine Performance-Option implementiert :D . Es kann bestimmt werden, wieviele Ebenen tief (sprich: wie oft darf der Crawler Hyperlinks in Hyperlinks sucht) gecrawlt werden soll.

Auch hier werde ich vermutlich den Quellcode zur Verfügung stellen. Am besten nur das Grundgerüst, da man auf diesem einfacher was aufbauen kann. Naja, mal schauen wie es heraus kommt.

Sonstiges

Für das Zeiterfassungs-Projekt habe ich leider keine Zeit gefunden. Wahrscheinlich habe ich dies bewusst getan, da ich dieses Projekt auf mein CMS aufbauen werde.

In den Themen, die ich hier behandle sehe ich mich noch lange nicht als Spezi und bin dafür immer bereit Finger & Hirn zu opfern.

Gerade fällt mir auch ein, dass evtl. die Tools, die ich verwende, interessant sein könnten. Aber das hat bis zum nächsten Post Zeit.

Bis dahin, have fun ;)

Neues Projekt im Anmarsch (Zeiterfassung)

Posted in MySQL, PHP, Web Development, Projekt von admin am 13. Aug. 2007

Mein Ego wollte ein Projekt also startete ich eins. In diesem Projekt programmiere ich eine PHP/MySQL-Applikation mit der man Arbeitszeiten erfassen kann. Diese Applikation rechnet auch automatisch die Überstunden aus. Die Anzahl zu leistender Stunden in der Woche kann konfiguriert werden.

Die Applikation wird jedem zur Verfügung stehen und daher auch der Code veröffentlicht. Wann es fertig sein wird, weiss ich nicht. Habt also Geduld :D .


Blogverzeichnis - Blog Verzeichnis bloggerei.de blog-o-rama.deSuchmaschinenoptimierung mit Ranking-Hits supported by www.rankingcloud.de Blog Top Liste - by TopBlogs.de Free Games

Add to Technorati Favorites Sofortkredit ohne Schufa