Spiele selbst machen

Mai 1st, 2010

An dieser Stelle möchte ich nur kurz auf eine kleine Website von mir aufmerksam machen, die einen kleinen Überblick über die Möglichkeiten zu Spieleentwicklung gibt. Vor allem Anfänger finden dort zahlreiche Tipps, Tools und Links, die sich um dieses Thema drehen.

Viel Spaß!

http://spiele-selbst-machen.de

Lang ist es her

April 23rd, 2010

Bei der Entwicklung des Fruity CMS kamen mir leider einige Dinge dazwischen, aber ich bin auch schon wieder einige Tage am Werk und der nächste Test steht am Sonntag an. Wenn alles glatt läuft wird die Version dann auch online gehen, und mein Wordpress ersetzen :) .

Fruity CMS: Ein Statusbericht

Februar 21st, 2010

Mein kommendes CMS heißt nun nicht länger “Fruity Workflow” sondern einfach nur noch “Fruity CMS”, und es entwickelt sich momentan prächtig!

Im Prinzip hat es schon fast alles, was man braucht;

- Plugin-System

- Benutzergruppen (und ein entsprechendes Rechte-Management)

- Kommentare

- etc …

Es ist noch viel in Planung und Vorbereitung. Bevor ich von Wordpress auf mein eigenes CMS umsteige, werden wohl noch einige Tage / Wochen vergehen. Jedenfalls wird heute in einem sehr engen Kreis die aktuelle Version getestet und ausgebessert.

Projekt: Fruity Workflow

Januar 21st, 2010

So, die Planung ist nun abgeschlossen und gleich werde ich auch mit der Arbeit beginnen :) . Fruity Workflow ist der Name meines entstehenden CMS, welches ich speziell für meine Ansprüche entwickeln werde. Bisher habe ich allerdings nicht vor, es öffentlich anzubieten. Das wird sich dann mit der Zeit zeigen.

Allerdings entwickle ich das Dingen auch dafür, um zukünftig schnell und einfach meine Scripte zur Verfügung zu stellen. Wordpress als CMS hat halt doch irgendwo seine Grenzen.

Guten Abend.

DX Showcase

Januar 19th, 2010

Es war eine schwere Entscheidung, doch letztendlich die einzig vernünftige. Dx showcase ist nun nicht mehr unter meiner Obhut.

Da ich mich auf andere Projekte konzentrieren will und somit nicht mehr die nötige Zeit aufbringen kann, um DX Showcase weiterzuentwickeln, habe ich das gesamte Projekt an jemand Anderen übergeben. Dadurch, dass auf dem neuen Server nicht alle Voraussetzungen erfüllt waren, hat es auch noch sehr sehr lang gedauert, das ganze Projekt rüberzuschaufeln. Nach vielem Gecode -inklusive Mittagspause- und Stunden purer Verzweiflung, steht das Projekt nun endlich und hat sogar eine vernünftige Domain spendiert bekommen.

http://dxshowcase.com

Jetzt habe ich endlich wieder die Zeit neuen, kleineren, Eigenentwicklungen zu widmen. Ganz recht, in diesem Blog wird nun tatsächlich Leben einkehren :) .

Das EVA Prinzip in PHP umsetzen

Dezember 6th, 2009

Hallo und willkommen zu einem kleinen Anfänger Tutorial, das sich mit der Umsetzung des EVA-Prinzips in PHP beschäftigt. Dieses Tutorial richtet sich vor allem an Anfänger, die mit den PHP- und HTML-Grundlagen vertraut sind, und wissen wie man die PHP Dokumentation benutzt.

Als erstes sollte man wissen, was EVA bedeutet. Nun…, es ist eines der wichtigsten Prinzipien der IT-Welt überhaupt, äußert sich bei richtiger und konsequenter Anwendung sehr positiv und übersichtlich auf den Code aus, und steht für “Eingabe, Verarbeitung, Ausgabe”.

Read the rest of this entry »

Code und Markup in PHP sauber trennen, ohne Template-Engine

Dezember 2nd, 2009

In diesem Post möchte ich aufzeigen, wie man HTML komplett vom PHP-Code löst, ohne dafür eine Template-Engine zu verwenden. Aber erst mal werfen wir einen Blick auf die Vor- und Nachteile:

Template-Engine:

  • + ermöglicht (meist) das Caching der Ausgabe und kann so den Server deutlich entlasten
  • + klare Trennung von PHP-Code und Markup
  • - bei erstmaliger Verwendung einer Template-Engine ist meist eine lange Einarbeitungszeit vonnöten
  • - zusätzlich Syntax

PHP-Only:

  • + ebenfalls klare Trennung von PHP-Code und Markup
  • + schnelle Einarbeitung, da die PHP-Syntax verwendet werden kann
  • - Caching-System müsste selbst gescriptet werden

Im Grunde muss man also selbst abwägen, ob sich das Einarbeiten in einer Template-Engine für das Projekt lohnt oder, ob man nicht den einfacheren und schnelleren Weg wählt.

Als Test- und Demonstrationsobjekt für folgende Template-Eninge / PHP Vergleiche habe ich Smarty gewählt. Und ich fange auch gleich an. (aus dem Smarty Crashkurs http://www.smarty.net/crashcourse.php)

PHP-Code:

include('Smarty.class.php');

// create object
$smarty = new Smarty;

// assign an array of data
$smarty->assign('name', array('bob','jim','joe','jerry','fred'));

// assign an associative array of data
$smarty->assign('users', array(
    array('name' => 'bob', 'phone' => '555-3425'),
    array('name' => 'jim', 'phone' => '555-4364'),
    array('name' => 'joe', 'phone' => '555-3422'),
    array('name' => 'jerry', 'phone' => '555-4973'),
    array('name' => 'fred', 'phone' => '555-3235')
    ));

// display it
$smarty->display('index.tpl');

Entsprechende “index.tpl”-Datei:

<table>
{section name=mysec loop=$name}
{strip}
   <tr>
      <td>{$name[mysec]}</td>
   </tr>
{/strip}
{/section}
</table>

<table>
{section name=mysec loop=$users}
{strip}
   <tr>
      <td>{$users[mysec].name}</td>
      <td>{$users[mysec].phone}</td>
   </tr>
{/strip}
{/section}
</table>

Wie man sieht muss erst die Smarty-Klasse inkludiert werden, ein Smarty-Objekt erzeugt werden und Variablen / Arrays müssen Smarty auch erst bekannt gemacht werden. In der Template-Datei werden dann, mit Smartyeigener Syntax, Schleifen erstellt und die Variablen angezeigt.

Wie das wesentlich einfacher geht, zeige ich jetzt:

// array of data
$name = array('bob','jim','joe','jerry','fred');

// associative array of data
$users = array(
                array('name' => 'bob', 'phone' => '555-3425'),
                array('name' => 'jim', 'phone' => '555-4364'),
                array('name' => 'joe', 'phone' => '555-3422'),
                array('name' => 'jerry', 'phone' => '555-4973'),
                array('name' => 'fred', 'phone' => '555-3235')
    );

// display it
require_once('index.html');

Die index.html:

<table>
    <?foreach($name as $n):?>
       <tr>
          <td><?=$n?></td>
       </tr>
    <?endforeach?>
</table>

<table>
    <?foreach($users as $user):?>

       <tr>
          <td><?=$user[name]?></td>
          <td><?=$user[phone]?></td>
       </tr>
    <?endforeach?>
</table>

Wie man sieht, wird des Markup ebenfalls sauber vom Code getrennt, und das ohne die Zuhilfenahme von einer Template-Engine. Das eigentliche Script brauch nicht speziell angepasst werden, und wir können wie gewohnt weiterarbeiten. In der HTML-Datei  (die am Ende der PHP Datei via require_once() inkludiert wird) haben wir nun auch nur noch HTML und -via PHP-Shorttags eingebettetes- PHP.

Für diejenigen, die noch etwas weiter ins Detail gehen möchte, empfehle ich folgenden Artikel : http://php-coding-standard.de/php_template_engine.php

Multilanguage Script

November 25th, 2009

Ich habe mich dazu entschieden, gelegentlich ein paar meine kleinen Scripte hier zu veröffentlichen. Sie dienen vor allem dazu, um Anregungen zu bekommen, wie man gewissen Funktionen umsetzen könnte,um sie später eventuell auch weiter auszubauen. Für den Anfang gibts mein minimalistisches Multilanguage-Script.

Mit diesem Script lässt sich auf einfach Weise die Sprache für die Benutzeroberfläche an die Sprache des Benutzers anpassen.

Sprachdatei:

<?php
// deutsche Phrasen

define("_title", "Multilang Script from Orangebyte.");
define("_header", "Script for an multilangual Website");
define("_text", "This script change the language automatically.");

?>

Beispiel:

<?PHP
// Macht damit was ihr wollt, viel Spaß
// http://orangebyte.net

// Sprachdateien müssen in einem Unterordner namens "lang" gespeichert werden.
// Die Sprachdateien selbst sollten de.php (de = Deutsch) , en.php, etc heißen.
//
// Funktion aufrufen
 chooseLang()

 ?>

<html>
  <head>
    <title>
    <? echo _title; ?>
    </title>
  </head>

  <body>
    <h1><? echo _header; ?></h1>
    <p><? echo _text; ?></p>
  </body>

</html>

<?PHP
  // die Funktion
  function chooseLang()
  {
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); // welche Sprache wurde vom Browser gesendet?
    $file = "lang/".$lang.".php";                           // Dateinamen zusammenfrickeln

    // prüfen, ob eine entsprechende Sprachdatei im "lang" Ordner enthalten ist
    if (file_exists($file))
    {
      // wenn ja, dann inkludieren
      include_once "lang/".$lang.".php";
    }
    else
    {
      // wenn nein, dann wird die englische geladen
      include_once "lang/en.php";
    }

  }

Eine kleine Zusammenfassung

November 21st, 2009

Momentan bin ich mit vielerlei Sachen beschäftigt, und einige habe ich auch schon fertig gestellt. Zur Übersicht werde ich einfach mal alles kurz zusammenfassen:

Ich entwickle in meiner Freizeit hauptsächlich Computerspiele und Webanwendungen… gelegentlich aber auch Desktopanwendungen. Momentan arbeite ich an mehreren Sachen. Da wäre zum Einen das Spiel “Ricemans World“, ein witziges Geschicklichkeitsspiel an dem ich zusammen mit meinem Bruder arbeite, das aber noch nicht weit fortgeschritten ist. Ebenfalls noch nicht weit fortgeschritten ist mein RPG Projekt (noch namenlos). Ein klassisches RPG…, es geht eher in die östliche Richtung bzw. in die Richtung eines “JRPG” . Zu beiden Projekten werde ich hier immer wieder von mir hören lassen.

Aktuell arbeite ich aber auch noch an einer Webanwendung, einer Forensoftware, die etwas anders aufgebaut und gedacht ist als die übliche Forensoftware. Sie trägt den Namen “Das Brett” und soll von Ihrer Bedienung, vom Aufbau und generell eher an ein “schwarzes Brett” anlehnen, als es die gängige Software tut. Auch hierzu wird es bald mehr geben. Auch die Integrierung auf einer bestehenden Seite ist schon fest eingeplant, und wird auch nicht mehr lang auf sich warten lassen.

Links im Menü habe ich auch noch weitere (zum Teil schon fertiggestellte) Projekte gelistet.

Was es in diesem Blog sonst noch geben wird? Jede Menge von dem, was mich sonst noch interessiert. Und das ist hauptsächlich das Programmieren. Persönliche Meinungen zu allen Möglichen möchte ich von vornherein auch nicht ausschließen, auch wenn ich bisher nichts in der Richtung vorhabe. Ich werde aber auf jeden Fall einzelne Codeschnippsel präsentieren und über andere Projekte von anderen Hobbyentwicklern berichten.

So, das wars jetzt erstmal von meiner Seite.