Kategorien
jQuery

jQuery UI Autocomplete mit extraParams für zusätzliche GET Variablen

In jQuery UI gibt es eine sehr gute Autocomplete Funktion, die ich auf der Seite CD Shop Berlin eingebaut habe (Schnellsuche oben links). Dabei werden beim Eintippen Vorschläge unterbreitet.

$(document).ready(function() {
 $("input#suche").autocomplete(
 {
 autoFocus: false,
 delay:300,
 minLength: 3,
 select: function(event, ui) {document.advanced_search.submit();},
 source: function(request, response) {
 $.ajax({
 url: "autocomplete.php",
 dataType: "json",
 data: {
 term : $('#schnellsuche').val(),
 verkauf : $('input[name=verkauf]').is(':checked'), },
 success: function(data) {
 response(data);
 }
 });
 }
 }
 );
});

Dabei ist zu beachten, dass der Parameter extraParams von jQuery UI 1.8 aktuell ignoriert wird und man dies über den eingebauten Ajax Request lösen muss.

Serverseitige stehen dann die Variablen mit $_GET[‚term‘], $_GET[‚verkauf‘]  zur Verfügung.

 

Kategorien
PHP

richtige Rechte für Dateien zum Speichern von Skript Input

Wenn man schreibenden Zugriff auf Dateien wie z.B. .txt oder .dat Dateien aus einem Skript heraus hat, sollten diese

  1. vom Skript angelegt worden sein, nicht manuell bei FTP. Damit ist sichergestellt , dass der Besitzer kein FTP Account ist.
  2. die Schreibrechte 644 haben, damit sie nicht von einem anderen Account überschrieben werden können oder durch den automatischen Upload einer IDE überschrieben werden.

Bsp:

if(!file_put_contents ($log_file ,""))
 {
 chmod ($log_file, 0644);
 }

So können Fehler wie dieses vermieden werden:

Warning: file_put_contents(log.txt) [function.file-put-contents]: failed to open stream: Permission denied in class.php on line x

Warning: chmod() [function.chmod]: Operation not permitted in class.php on line x

Kategorien
Android

Tutorial Installation des Android SDKs mit Eclipse unter Windows 7

Für die Android Entwicklung unter Windoes sollte bevorzugt Eclipse als IDE benutzt werden, weil Netbeans doch einige Probleme in der Vergangenheit mit dem Andorid SDK hatte.

Installation von Eclipse

  1. Download von Eclipse (Eclipse IDE for Java Developers)
  2. entpacken des Archivs. Dabei ist darauf zu achten, dies nicht in das Programm-Verzeichnis von Windoes zu tun, weil dort die Schreibrechte Probleme machen bei der Installation des ADT Plugins
  3. Installation von Java Runtime Enviroment
  4. starten der eclipse.exe und es läuft (ohne Installation)
  5. Testprojekt anlegen und ausführen: Bsp: main.java:
public class main {
    public static void main(String[] args) {
        System.out.println("Hello word");
    }
}

Kategorien
jQuery

jQuery: Ist eine Checkbox checked

Ohne eine ID vergeben zu müssen und mit Hilfe des name-Attributs funktioniert das mit jQuery so:

$checked = $('input[name=myName]').is(':checked');
Kategorien
SEO

On-Page SEO Checklist

Für eine Basis-SEO einer Webseite sollten die folgende Punkte beachtet werden. Die Checkliste wird kontinuierlich erweitert und nur eine Gedankenstütze für mich.

  • URLs aufhübschen, html Endung wenn möglich
  • img mit alt und title-Tag versorgen, title länger und anders als alt-Tag
  • Links mit title-Tag versorgen, nicht zu viel Text (höchstens 3 Wörter)
  • Überschriftenhierachie checken, nur eine h1
  • h1, title, description, Links zur Seite  mit Keyword füllen
  • Titel 70 Zeichen, damit von Google nicht gekürzt
  • Description 150-160 Zeichen, soll zum klicken animieren, Keywords weit vorn im Text
  • Description solle im Text vorkommen
  • Javascript Link für Impressum
function javascriptLink(url)
{
    window.location.href = "/" + url;
}
  • www-Umleitung
  • Umleitung der alten indexierten Seiten
  • kein doppelter Content
  • mehrfache Verlinkung der wichtigen Seiten
  • mehrere Domains auf die Seite vorhanden? Umleitung einrichten (doppelter Content)
  • Sitemap
  • css, javascript Dateien vereinigen, Ladezeit verringern
Kategorien
JavaScript Web Frontend

Google Maps JavaScript API V3 und Utility Library V3 Tutorial

Google Maps Karten sind auf fast jeder Webseite aufzufinden. Die neueste Version Google Maps JavaScript API V3 bietet:

  • erweiterte Unterstützung für mobile Geräte
  • Integration von Google Street View
  • verbesserte Performance
  • Weiterentwicklungen  in Zukunft, da Version V2 als veraltet erklärt wurde seitens Google
  • es wird kein API Schlüssel mehr benötigt, wie bei V2
Kategorien
JavaScript Webdeveloper Tools

Javascript Debbuging mit Firebug

Javascript ist nicht einfach zu programmieren und zu debuggen. Die einfachste Möglichkeit Variablen zu überwachen ist diese mit alert auszugeben.

alert($var);

Die Methode stößt natürlich bei mehreren Variablen und Schleifen an seine Grenzen, weil es zu einer Klick-Orgie kommt.

Die beste und einfachste Möglichkeit bietet Firebug, ein Plugin für Firefox, welches jeder Web Developer standardmäßig installiert haben sollte. Damit lassen sich mit dem console.log Befehl Objekte, Arrays und Variablen auf der Firebug Konsole ausgeben.

console.log($array);

Weitere Funktionen sind:

  • Performance Messung von Javascript Funktionen
  • Stack Tracing inklusive der Input Variablen der Funktionen auf dem Stack mit console.trace()
  • Object Inspection mit console.dir()
Kategorien
JavaScript Web Frontend

Google Earth API

Google bietet seit Jahren seinen freien Service Google Earth an, mit dem man die Möglichkeit hat, Daten auf einem Erdball  und einer detailierten 3D Erdoberfläche zu visualisieren.
Für mein nesues Projekt wo-bin-ich-jetzt.de, einen weltweiten GEO-Informationsservice, habe ich Google Earth eingebunden.


Sehenswürdigkeiten in Berlin
Die zentrale Developer Seite mit reichhaltigen Ressourcen bietet einen sehr guten Überblick über die API und einen Developer Guide und eine Google Earth API Reference.
Der User muss ähnlich wie bei Flash ein Plugin installieren, um Google Earth Daten anschauen zu können. Für die Entwicklung muss ein Google Maps API Key beantragt werden und dann kann es losgehen.

Probleme mit Google Earth

Wieso wird mein Marker nicht angezeigt?

Das kann daran liegen, dass der Zoom Faktor in der Ansicht so hoch ist, dass der Marker zwar da ist, aber nicht sichtbar. Aushilfe bringt setScale(10.0) für den 10 fachen Zoomfaktor:

var icon = ge.createIcon('');
 icon.setHref('http://maps.google.com/mapfiles/kml/paddle/red-circle.png');
 var style = ge.createStyle(''); //create a new style
 style.getIconStyle().setIcon(icon); //apply the icon to the style
 style.getIconStyle().setScale(10.0); //
 placemark.setStyleSelector(style); //apply the style to the placemark

Long als Variablen Name für Longitude (Breitengrad)

Der Fehler ist schnell gemacht, aber man sollte nie eine Variable long benennen, weil damit der Datentyp Long interpretiert wird, besser longitude verwenden.

Kategorien
PHP

PHP Konstanten ändern

Es scheint erst einmal unsinnig zu sein, aber in machen Situationen, z.B: wenn man in ein komplettes SDK Eingreifen will ohne es zu verändern, würde man gern PHP Konstanten ändern.Möglich ist das mit dem PHP-Core nicht, aber es gibt eine PECL Extension namens runkit, damit funktioniert es.

Im folgenden Beispiel habe ich versucht den Wert eine Kosntanten per Referenz anschließend zu ändern, leider (oder Gott sei Dank) hat es ncht geklappt:

$key = 'vorher';
define('KONSTANTE', &$key);
echo KONSTANTE;
$key = "nachher";
echo KONSTANTE;
//Ausgabe:vorher vorher

Das ist auch gut so, weil Konstanten nun mal konstant sein sollen und nicht variabel.

Auch eine nachträgliche Änderung funktioniert natürlich nicht:

$key = 'vorher';
define('KONSTANTE', $key);
echo KONSTANTE;
$key = "nachher";
define('KONSTANTE', $key);
echo KONSTANTE;
//Ausgabe:vorher vorher
Kategorien
Amazon MWS PHP

Amazon Product Advertising API Umstellung

Ab Februar 2012 stellt Amazon den Support älterer Versionen Ihrer Product Advertising API
ein und untersrützt nur noch das neue AWS System.Auch inhaltlich werden ein paar Änderungen vorgenommen (Quelle Amazon aws-portal.amazon.com):

  • Associate Tag will be a required and verified input parameter in all requests to the API
  • SellerLookup, SellerListingLookup and SellerListingSearch operations will no longer be supported by the API
  • ItemPage parameter will be limited to a maximum of 10 pages for ItemSearch results
  • MerchantId parameter will no longer be supported for filtering offers, variations and search results
  • Merchants search index will no longer be supported
  • Data returned by the Offers and ItemAttributes response groups will be limited to the most frequently used attributes

Zur Zeit kann es bei älteren Versionen zu leeren Responses kommen, was strategische oder technische Ursachen seitens Amazon haben kann.

Die Account Umstellung kann hier durchgeführt werden.

Das Cloudfusion SDK für PHP

Mit Hilfe des Cloudfusion PHP SDK für PHP kann der Zugriff auf die API vereinfacht werden. Cloudfusion ist eine von Community entwickelte Erweiterung des AWS SDK for PHP von Amazon. Es ist nur zu empfehlen Cloudfusion zu benutzen, wenn ein nicht vom AWS SDK for PHP von Amazon unterstützter Dienst angesprochen werden soll. Dazu gehören:

  • Amazon Product Advertising API
  • third-party API-kompatibele Services wie Eucalyptus oder Google Storage

Für einen Request muss die config.php mit den Account Daten befüllt werden und mit dem Code kann dann ein Abfrage gesendet werden:

require_once 'sdk.class.php';
$pas = new AmazonPAS();
$response = $pas->item_search('red hot chili peppers');
var_dump($response);