Es ist schon ca. einen Monat her, seit dem das Phantasialand mit einer neuen wunderschönen Seite online gegangen ist. Ich bin schon ein wenig stolz daran mitgearbeitet zu haben. Aus der Marketingsicht wurde der Relaunch und die neue Webseite auf kernpunkt.de ausführlich betrachtet. Aus Entwicklersicht hat die Seite auch einiges zu bieten gehabt, hier einige Highlights:
Die Navigation wurde mit HTML und CSS und ein wenig Hilfe von jQuery umgesetzt. Ist es nicht schön, wie der blaue Schein dazukommt, wenn sie aufgeklappt ist und wie z.B. die Park-Themenwelten beim RollOver in den Bildern hervorgehoben werden – pure CSS Magic.
Für die Sushibar (ich wusste auch nicht, dass man es so nennen kann, für mich ist es ein Carousel), die man z.B. auf der Seite Fantasy bestaunen kann, musste ein jQuery-Plugin entwickelt werden. Vom CSS her war es in der Sushibar eine Herausforderung, dass die Elemente teilweise nach oben rausragen.
Auch sehr schön geworden ist der Parkplan – zu finden auf den Themenwelt-Seiten als Link in der rechten Spalte. Attraktionen der ausgewählten Themenwelt werden im Parkplan hervorgehoben.
Und auch der Erlebnisplaner hat ein paar nette Features: Attraktionen können am Anfang über einen Hinzufügen-Button in der Attraktion in den Erlebnisplaner gelegt werden. Sobald eine Attraktion im Erlebnisplaner ist, macht er auch schon Vorschläge. Diese Vorschläge kann man per Drag & Drop ebenfalls in die Liste der geplanten Attraktionen ziehen. Wenn man fertig ist, wird auf Wunsch eine Anfahrtbeschreibung generiert und ein personalisierter Parkplan, auf dem die gewählten Attraktionen zu sehen sind.
Geschrieben in default | Keine Kommentare »
Man kann per .htaccess Ordner vor unbefugten Zugriffen schützen einmal mit einer Benutzer-Authentifizierung und einmal per IP. Es ist aber möglich beides zu kombinieren. Dabei werden bestimmte Abrufe per IP zugelassen, und wenn die IP nicht in der Liste vorkommt, dann wird eine htaccess-Login-Aufforderung angezeigt. Die Lösung sieht so aus:
Order Deny,Allow
Deny from all
Allow from 192.168.
AuthType Basic
AuthUserFile /full/path/to/.htpasswd
AuthName "Restricted Area"
Require valid-user
Satisfy any
Gefunden habe ich es hier bei Coding Forums
Geschrieben in default | Keine Kommentare »
Man kann auf eine Seite weiterleiten basierend auf der Sprache des Browsers und das geht tatsächlich per .htaccess.
Generator dafür findet sich hier: Redirection by Language
Geschrieben in default | Keine Kommentare »
Das Zend Command Line Interface ermöglicht es, sich Module, Controller etc. anlegen zu lassen. Dabei wird die Ordnerstruktur bereits korrekt angelegt.
Modul erstellen mit Namen meinmodul:
zf create module meinmodul
Controller mit Namen meincontroller im Modul meinmodul erstellen, wenn index-action-included=1 nicht angegeben wird, dann wird der Controller nicht korrekt dem Modul zugewiesen:
zf create controller meincontroller index-action-included=1 meinmodul
Voraussetzung ist, dass zf als Alias für das Zend Command Line Tool hinterlegt ist:
alias zf=/home/../ZendFramework-1.8.0b1/bin/zf.sh
Tags: cli, zend
Geschrieben in default | Keine Kommentare »
Um einen Conditional Comment im Quellcode stehen zu haben
<!--[if IE]>
According to the conditional comment this is Internet Explorer<br />
<![endif]-->
braucht man folgendes im XSL, denn würde man es so reinscheiben wie oben, dann wäre es ja ein Kommentar im XSL-Code
<xsl:comment><![CDATA[[if IE]>
<link rel="stylesheet" type="text/css" href="/media/css/styles-ie.css" />
<![endif]]]></xsl:comment>
UPDATE: Dieser Codeschnipsel hat den Nachteil, dass der Inhalt nicht geparst wird, damit kann man in dem Schnipsel keine Variablen verwenden oder Knotenwerte. Da hilft dieser Schnipsel weiter:
<xsl:comment>[if IE 7]<![CDATA[>]]>
<xsl:value-of select="concat( '<link rel="stylesheet" type="text/css" media="all" href="', $webbasepath, /resources/browser_specific_styles/styles_ie7.css, '" />')" />
<![CDATA[<![endif]]]></xsl:comment>
Tags: ie, xsl
Geschrieben in default | Keine Kommentare »
Gegeben ist eine Struktur, in der in einem Knoten
entweder 0 oder mehr Kind-Knoten sind . Wenn es 0 Kind-Knoten gibt, soll eine Meldung ausgegeben werden, andernfalls die Liste der Kinder.
<root>
<parent>
<child><name>Eins</name></child>
<child><name>Zwei</name></child>
</parent>
</root>
<xsl:template match="root">
<xsl:apply-templates select="parent" />
</xsl:template>
<xsl:template match="parent[count(child) = 0]">
Leer
</xsl:template>
<xsl:template match="parent">
<ul>
<xsl:apply-templates select="child" />
</ul>
</xsl:template>
<xsl:template match="child">
<li><xsl:value-of select="name" /></li>
</xsl:template>
Tags: xsl
Geschrieben in default | 1 Kommentar »
Klasse DateTime – ist neu in PHP 5.2. Hat in PHP 5.3. eine neue Funktion dazu bekommen: setTimestamp(), damit man einen Unix-Timestamp übergeben kann.
Wenn man ein in PHP 5.3 erstelltest Projekt mit diesem Aufruf nun auf einen Server mit PHP 5.2. spielt, dann knallts. Nun steht als Zusatz in der Funktion getTimestamp() folgendes:
Passing a Unix timestamp to DateTime::__construct() is an alternative when using PHP 5.2.
Und die Dokumentation zu __construct:
public DateTime::__construct ([ string $time = "now" [, DateTimeZone $timezone = NULL ]] )
Es wird als ein String erwartet als erster Parameter. Wenn man nun unter PHP 5.3. dem Konstruktor einen Timestamp übergibt, dann Error. Alles klar?
Tags: php
Geschrieben in default | Keine Kommentare »
Wenn man mal ein paar Floats deutsch (oder wie im Beispiel als Geldbetrag) formatieren muss:
<xsl:decimal-format name="deutsch" decimal-separator="," grouping-separator="." />
...
<xsl:template match="price">
<xsl:value-of select="format-number( ., '##0,00', 'deutsch' )" /> €
</xsl:template>
<xsl:template match="whatever">
<p>Preis: <xsl:value-of select="format-number( price, '##0,00', 'deutsch' )" /></p>
</xsl:template>
Die erste Zeile als Unterelement von xsl:stylesheet, den Rest irgendwo in einem xsl:template.
Geschrieben in default | Keine Kommentare »
Ich wünsche meinen Lesern Frohe Weihnachten und einen Guten Rutsch ins neue Jahr!
Geschrieben in default | 1 Kommentar »