Kategorien
PHP XT-Commerce

DHL Retoure Modul in PHP

Die Deutsche Post bietet einen Retouren-Soap Webservice an, mit dem man schnell Retoure-Labels für Pakete erzeugen kann. Mit Hilfe der Klasse lassen diese pdf-Files schnell und einfach holen und anzeigen.

Beispiel-Aufruf:

$dhlRetoure = new DhlRetoure();
$pdf  = $dhlRetoure->getRetourePdf($surname, $familyname, $street, $streetNumber, $zip, $city);
if($pdf){
$dhlRetoure->displayPdf($pdf);
}

Kategorien
PHP

Wie kann man sich XML im Browser lesbar anzeigen lassen mit PHP

Leider wird XML vom Browser meistens „verschluckt“. Dann bleiben nur noch die Daten übrig und der Programmierer kuckt in die Röhre und muss mit Firebug rumeiern.

Wenn man sich das XML eifnach einzeigen lassen will, gibt es folgenden PHP Trick mit der Funktion htmlentities(), die u.a. die „<“ und „>“- Zeichen escapt, und der sehr praktischen eigenen dump() Funktion:

Kategorien
Hardware

Die beste PC-Tastatur für Büro und Arbeit im Vergleich

Für die Arbeit im Büro ist eine gute Tastatur Gold wert, aber welches Keyboard ist die beste für Ihre Ansprüche? Ich habe 5 Tastaturen auf ihre Tauglichkeit für den Büro-Alltag getestet. Alle Tastaturen haben deutsches Tastatur-Layout und sind für Windows-PCs ausgelegt. Wieso sind so viele Logitech-Tastaturen im Test – weil Logitech zur Zeit die besten Tastaturen für Windows-PCs herstellt.

Kategorien
WordPress

WordPress versteckte erweiterte Optionen anzeigen / ändern

versteckt sich unter

/wp-admin/options.php

Einfach im Browser öffnen.

Oder die Datenbank Tabelle wp-options ändern.

Kategorien
Yii Framework

Yii User hinzufügen von User Attributen

Wenn man mit dem Yii-User Modul eigene Attribute wie Strasse und Hausnummer hinzufügen will, kann man dies tun, indem man:

  1. eine neue Spalte in der Datenbank Tabelle profiles hinzufügt, z.B. namens street
  2. eine neue Zeile in der Datenbank Tabelle profiles_field hinzufügt:
3 street Strasse VARCHAR 80 10 1 Ungültige Strasse 2 3

Optionale Attribute kennzeichnen

Aufgrund der fehlenden Dokumentation des Moduls muss man ziemlich ausprobieren, um optionale Attribute zu kennzeichnen. Optionale Attribute kann man erreichen durch das Setzen von required auf 2 in der entsprechenden Zeile in der profiles_field Tabelle.

Kategorien
Yii Framework

Yii Pfad-Helfer Klasse

Sehr praktisch für die Verwendung von Pfaden im YII-Framework ist die folgende Klasse, die einen einfacher Zugriff auf die Pfade gibt und gleichzeitig die Anwendung flexibel hält bei Änderungen:

class Paths
{

    public static function getImagesPath()
    {
        return Yii::app()->request->baseUrl .DIRECTORY_SEPARATOR."images".DIRECTORY_SEPARATOR;
    }
    public static function getRootDirectory()
    {
        return Yii::getPathOfAlias('application');
    }
    public static function getWebRootDirectory()
    {
        return Yii::getPathOfAlias('webroot');
    }
    public static function getExtensionDirectory()
    {
        return Yii::getPathOfAlias('ext');
    }
    public static function getViewDirectory()
    {
        return Paths::getRootDirectory().DIRECTORY_SEPARATOR."views".DIRECTORY_SEPARATOR;
    }
    public static function getDataDirectory()
    {
        return Paths::getRootDirectory().DIRECTORY_SEPARATOR."data".DIRECTORY_SEPARATOR;
    }
}
Kategorien
PHP

PHP Rechen Captcha – Addieren und Subtrahieren

Ein Rechen-Captcha zu programmieren mit einfachen Rechenaufgaben ist erstaunlich einfach, es braucht nur 2 kleine Funktionen und schon kann man den User munter seine Mathematik-Kenntnisse testen lassen:

Features:

  • Addition
  • Subtraktion
  • Zahlen von 1 bis 13
  • sichere Zufallszahlen

Der Code lässt sich beliebig erweitern: Eine Möglichkeit der Sicherung wäre: Man benutzt deutsche Akzente für die Wörter im $words-Array, wie eens, zwee, dree usw…, damit würde man es den Spam-Bots noch schwieriger machen.

Beispiel Rechenaufgaben:

drei + vier = ?

zehn – vier = ?

Kategorien
WordPress

WordPress fehlende paragraph Tags im Content

Wenn sich WordPress entscheidet, keine <p> Paragraph-Tags mehr auszugeben auf der Webseite,kann dies behoben werden mit der Funktion wpautop():

<?php echo wpautop(get_the_content(),0); ?>
Kategorien
JavaScript jQuery jQuery Mobile Phonegap/Cordova

Javascript ersetzen aller css background-images durch Retina-Bilder

Wenn man vor dem Problem steht, dass dynamisch generierte CSS background-images verwendet werden, um Bilder auf einer Webseite darzustellen und diese dann auch für Retina Displays gut aussehen sollen, kann man folgendes Skript verwenden. Es überprüft zusätzlich mittels eines Ajax Requests, ob die Bilder vorhanden sind/existieren.

Voraussetzung ist, dass eine Namenskonvention für nicht-Retina Bilder und Retina verwendet wird wie z.B.:

bild1@1x.jpg für nicht-Retina Bilder

und

bild1@2x.jpg für Retina Bilder

<!--Retina Fix for dynamic background images-->
        <script type="text/javascript">
            function isRetinaDisplay()
            {
                var dpr = 1;
                if(window.devicePixelRatio !== undefined) dpr = window.devicePixelRatio;
                return dpr >= 2;
            }

            var notRetinaString = "@1x";
            var retinaString = "@2x";

            $(document).ready(function() {
                //if we have a retina display
                if(isRetinaDisplay())
                {
                    //select all elements having background images
                    var $elementsWithBackground = $('*').filter(function() {
                        if (this.currentStyle)
                            return this.currentStyle['backgroundImage'] !== 'none';
                        else if (window.getComputedStyle)
                            return document.defaultView.getComputedStyle(this,null)
                                .getPropertyValue('background-image') !== 'none';
                    });
                    //replace their background-image with retina images
                    $elementsWithBackground.each(function( index ) {
                        $backGroundImage = $(this).css('backgroundImage');
                        /*console.log($backGroundImage);*/
                        //when it is no retina image
                        if($backGroundImage.indexOf(notRetinaString) !== -1)
                        {
                            //replace with retina image
                            $newBackgroundRetinaImage = $backGroundImage.replace(notRetinaString,retinaString);
                            $newBackgroundRetinaImageUrl = $newBackgroundRetinaImage.replace('url("','').replace('")','');
                            //check if retina file exists
                            var $myThis = this;
                            $.ajax({
                                url:$newBackgroundRetinaImageUrl,
                                type:'HEAD',
                                cache: true,
                                success:function() {
                                    console.log($newBackgroundRetinaImage);
                                    $($myThis).css('backgroundImage', $newBackgroundRetinaImage);
                                },
                                error:function() {
                                    console.log("no retina image found for: " + $backGroundImage);
                                }
                            });

                        }
                    });
                }
            });
        </script>
Kategorien
JavaScript jQuery Mobile Mobil

Javascript überprüfen auf Retina-Display Funktion

Um zu überprüfen, ob ein Gerät mit Retina-Display (neues iPhone oder Mac Book) gerade auf der Seite surft, kann man die handliche Funktion verwenden:

            function isRetinaDisplay()
            {
                var dpr = 1;
                if(window.devicePixelRatio !== undefined) dpr = window.devicePixelRatio;
                return dpr >= 2;
            }