Kategorien
PHP WordPress

WordPress Plugin selber erstellen Tutorial

Wenn man WordPress erweitert, sollte man immer seinen eigenen Code sauber von dem WordPress Core  trennen und ein Plugin programmieren. Ein weiterer Vorteil ist, dass man sein hard ercodetes Plugin natürlich auch in das WordPress Plugin Verzeichnis stellen kann nach Vollendung.

Follgende Schritte sind durchzuführen:

Kategorien
PHP SEO WordPress

WordPress SEO: Meta Description Tag einbauen

WordPress ist sehr sparsam mit Meta-Tags, um das Description Tag einzubauen, muss man folgenden Code in die header.php einbauen:

<meta name="description" content="<?php if ( is_single() ) {
        single_post_title('', true);
    } else {
        bloginfo('name'); echo " - "; bloginfo('description');
    }
    ?>" />

 

Kategorien
Android Mobil

Android App in den Google Play Market stellen Windows7

Wenn man seine hart ercodete App in den Google Play Market stellen will muss man ein paar einfache Schritte durchführen. Im Vergleich zum Aufnahmeprozess im Apple App Store sind diese allerdings mit wenig Aufwand verbunden.

  1. Anlegen eines Developer Accounts für den Play Market. Es muss eine Gebühr von einmalig 25$ gezahlt werden, allerdings zwingend mit einem Google Checkout Account, den man mit einer Kreditkarte (z.B: Visa) verbinden muss.
  2. Die APK-Datei muss mit einem gültigem Zertifikat versehen werden, sonst gibt es eine Fehlermeldung: 
Google Play akzeptiert keine mit dem Debug-Zertifikat signierten APK-Dateien. Erstellen Sie ein neues Zertifikat, das mindestens 50 Jahre gültig ist.

Zertifizieren der App mit einem gültigem Zertifikat

Kategorien
PHP Zend Framework

Zend APIs: einzelne Komponenten verwenden

Das Zend Framework enthält viele praktische Schnittstellen zu bekannten APIs:

  1. Google Base (Zend_Gdata)
  2. Open ID (Zend_OpenId)
  3. Zend_Service mit:
  • Zend_Service_Akismet
  • Zend_Service_Amazon
  • Zend_Service_Amazon_EC2
  • Zend_Service_Amazon_S3
  • Zend_Service_Audioscrobbler
  • Zend_Service_Delicious
  • Zend_Service_DeveloperGarden
  • Zend_Service_Ebay
  • Zend_Service_Ebay_Finding
  • Zend_Service_Flickr
  • Zend_Service_LiveDocx
  • Zend_Service_Nirvanix
  • Zend_Service_ReCaptcha
  • Zend_Service_ShortUrl
  • Zend_Service_Simpy
  • Zend_Service_SlideShare
  • Zend_Service_StrikeIron
  • Zend_Service_Technorati
  • Zend_Service_Twitter
  • Zend_Service_WindowsAzure
  • Zend_Service_Yahoo

Eine komplette Liste gibt es hier.

Solche APIs können folgender Maßen eingebunden werden ohne die ganze Webseite als Zend-Projekt programmieren zu müssen (am Bsp. von GBase: Google Base):

Kategorien
VBA Excel

VBA Excel nach CSV Tutorial

Ein Beispiel Skript für das Umwandeln von Excel Tabellen nach csv-Dateien:

Sub csvToExcelTabelle()
ExcSheetName = "yyy.xls"
Csvsheet = "xxx.csv"

Dim excl As Worksheet
Dim csv As Worksheet
Set csv = Workbooks(Csvsheet).Worksheets(1)
j = 1

'csv leeren
csv.Cells.Clear

For Each excl In Workbooks(ExcSheetName).Worksheets

    zeilen = excl.UsedRange.Rows.Count
    For i = 3 To zeilen
        'Zahlenformate anpassen
        excl.Cells(i, 13).NumberFormat = "m/d/yyyy"
        excl.Cells(i, 14).NumberFormat = "m/d/yyyy"
        excl.Cells(i, 2).NumberFormat = "h:mm;@"
        excl.Cells(i, 3).NumberFormat = "h:mm;@"

        csv.Cells(j, 1).Value = "D"

        csv.Cells(j, 2).Value = "NO"
        'DATEFROM
        DATEFROM = excl.Cells(i, 13).Value
        csv.Cells(j, 3).Value = DATEFROM

        'DAYOFPERIOD
        DAYOFPERIOD = ""
         For k = 1 To 7
            If (excl.Cells(i, 3 + k).Value = "x") Then
                DAYOFPERIOD = DAYOFPERIOD & k
            End If
         Next k
         csv.Cells(j, 5).Value = DAYOFPERIOD

        'SCHEDULEDTIME
        SCHEDULEDTIME = excl.Cells(i, 2).Value
        csv.Cells(j, 6).Value = Format(SCHEDULEDTIME, "h:mm;@")

        'REMOTE_ und TONAME
        REMOTE__tmp = excl.Cells(i, 1).Value
        pos = InStr(REMOTE__tmp, " (")
        If (pos <> 0) Then
            REMOTE_ = Mid(REMOTE__tmp, pos + 2, Len(REMOTE__tmp) - pos - 2)
            TONAME = Left(REMOTE__tmp, pos - 1)
        Else
            REMOTE_ = ""
            TONAME = ""
        End If
        csv.Cells(j, 7).Value = REMOTE_
        csv.Cells(j, 8).Value = TONAME

        'VIA1
        VIA1 = excl.Cells(i, 12).Value
        csv.Cells(j, 9).Value = VIA1

        j = j + 1
    Next

Next excl

End Sub
Kategorien
SEO WordPress

SEO: Google Autoren Foto anzeigen

Wenn man sein Foto in den Suchergebnissen neben seinen Google Suchtreffern anzeigen will, muss folgende Schritte unternehmen:

  1. Anmeldung bei Google+, im Profil unter macht mit bei die eigene Webseite angeben (Achtung bei mit www und ohne)
  2. den Namen des Autors taggen auf der eigenen Webseite, Bsp: <a href=“https://plus.google.com/107751823415469819633?rel=author“>Sebastian  Viereck</a>
  3. Urheberschaft bei Google verifizieren mit einer Adresse der Domain z.B: seo-google@sebastianviereck.de
  4. Anschließend sollte mit dem Rich Snippets Testing Tool von Google noch einmal verifiziert werden, ob alle Informationen vorhanden sind. Bei mir musste das Google+ Profile nochmals verknüpft werden, siehe Screenshot
Are you the author? If you have an email with sebastianviereck.de and verified it with Google+, please enter your G+ profile to verify your authorship here:

Kategorien
Android C C++ iPhone/iOS Java Mobil MySQL PHP Web Frontend

Teil 2: Clean Code – richtige und falsche Kommentare

Nach dem Buch (Kapitel 4):  „Clean Code – Refactoring, Patterns, Testen und Techniken für sauberen Code“ von Robert C. Martin.

„Kommentieren Sie schlechten Code nicht – schreiben Sie ihn um.“

(Brian W. Kernighan und P.J. Plaugher)

 

Kommentare können beides sein, hilfreich und hinderlich:

  • hinderlich, wenn Sie überholt sind und Fehlinformationen liefern
  • störend, wenn Sie zu lang sind und unnötig
  • hilfreich, wenn Sie wohlplatziert sind

Der Einsatz von Kommentaren „soll unsere Unfähigkeit ausgleich, uns in unserem Code klar auszudrücken“(S.85). Bevor man einem Kommentar schreibt, sollte man vorher überlegen, ob der Code nicht noch ausdrucksstarker geschrieben werden könnte.

Kategorien
C C++ Java Mobil PHP Web Frontend Webdeveloper Tools

Code kopieren Zeilennummern löschen Regex

Beim Kopieren von Code von Webseiten(z.B. Zend.com) kann es vorkommen, dass der Code Zeilennummern enthält, z.B.

  1. // Parameters for ClientAuth authentication
  2. $service = Zend_Gdata_Gbase::AUTH_SERVICE_NAME;
  3. $user = „sample.user@gmail.com“;
  4. $pass = „pa$$w0rd“;
  5. // Create an authenticated HTTP client
  6. $client = Zend_Gdata_ClientLogin::getHttpClient($user, $pass, $service);
  7. // Create an instance of the Base service
  8. $service = new Zend_Gdata_Gbase($client);
Um die Zeilennumern zu löschen, kann mit z.B. mit Netbeans folgenden Befehl ausführen:
STRG+H (SEARCH and REPLACE)
Find what: [0-9]{1,2}.\n
Replace with: (leer lassen)
Auswählen: Regular Expressions
Regular Expressions Netbeans
Kategorien
PHP

PHP verhindern eines Email Loops bei Mail Auto Respondern (Endlosschleife)

Ein typisches Problem bei automatischen E-Mail Antworten (Auto Respondern) ist, dass es zu einer Endlosschleife kommen kann, wenn automatisch auf E-Mails geantwortet wird und der Empfänger auch eine automatische E-Mail z.B. eine Abwesenheits-Urlaubs E-Mail verschickt. Das Phänomen nennt man Email Loop.

Der Email Loop kann nur verhindert werden durch ein festgelegtes Limit an Nachrichten an denselben Adressaten. Man sollte z.B: festlegen, dass pro Tag nur eine E-Mail an einen Adressaten geschickt wird per Auto-Responder und dies mittels einer Datenbank checken.

Die Datenbank Abfrage für alle E-Mails, die nicht älter als einen Tag sind und schon beantwortet worden sind,  könnte so aussehen:

 $sql = "SELECT COUNT(response_sent)
         FROM autoresponder
         WHERE email='{$email}' AND date_received > TIMESTAMP(DATE_SUB(NOW(), INTERVAL 1 day)) AND response_sent=1";

Ein Auto-Responder in PHP besteht aus 3 Teilen:

  1. dem Abrufen der Emails aus dem Postfach
  2. dem Speichern in der Datenbank der Mail-Daten
  3. dem Antworten auf E-Mails

Wenn man einen Auto-Responder nicht gleich als solchen enttarnen will, weil sofort eine Antwort geschickt, wollte man einen Cronjob einrichten, der zufällig bestimmt mit einer bestimmten Wahrscheinlichkeit, ob eine E-Mail beantwortet wird oder nicht.

z.B. mit einer Wahrscheinlichkeit von 10%:

if(rand(0, 1) <= 0.1)
{
answerMail();
}
Kategorien
PHP Webdeveloper Tools Zend Framework

PHP Datenbank Backend generieren Scaffolding

Um schnell eine einfache Möglichkeit für Kunden zu haben, um auf die Datenbank zuzugreifen, kann man das praktische online Tool phpScaffold nutzen.

Damit lassen sich schnell Oberflächen generieren und customizen zum Ändern, Einfügen und Entfernen von Datensätzen einer Tabelle.

Für größere Projekte sollte man allerdings ein passendes Framework nutzen, welches Scaffolding unterstützt:

Bsp Ergebnis: