Seiten

Donnerstag, 10. November 2011

Javascript - Objektorientierung und Drag and Drop (1/2)

Konstruktor, Objektvariablen, private und öffentliche Methoden

Dieser erste Teil ist an das vor einiger Zeit veröffentlichte Slider-Skript angelehnt. Hier wird die Logik aus dem älterem Post in objektorientierter Form verwendet.
Im ersten Teil wird mit Javascript eine aus Java oder C# bekannte Objektstruktur verwendet, um Objekte mittels Konstruktor zu instanzieren, in den Objekten Objektvariablen zu verwenden und mit öffentlichen und privaten Methoden zu arbeiten.

Javascript im HEAD (u.a. Objektinstanzierung):
window.onload = Init;

function Init()  {
  // neues Objekt instanzieren
  var dragObj = new DragObj;
  // Events öffentlichen Methoden aus
  // instanziertem Objekt zuweisen
  document.onmousedown = dragObj.startDrag;
  document.onmousemove = dragObj.Drag;
  document.onmouseup   = dragObj.endDrag;  
}
Javascript im HEAD (das Objekt, seine Variablen und Methoden):
function DragObj()  {
  // Variable zur Rückgabe
  // von öffentlichen Methoden (Pattern)
  var that = {};
  // Objektvariablen
  this.movie       = null;
  this.startX      = 0;
  this.startY      = 0;
  this.start_drag  = false;
  
  // öffentliche Methoden
  that.startDrag = function(e)  {
    // Browserweiche
    if(!e)  {  // IE
      e = window.event;
      this.movie = e.srcElement;
    }
    else
      this.movie = e.target;
 
    var id = this.movie.id;   
    
    if(IsDragable(id))  {  
      this.startY =
        e.screenY - parseInt(this.movie.style.top);
      this.startX =
        e.screenX - parseInt(this.movie.style.left);
  
    this.start_drag = true;
    }
  }
  
  that.Drag = function(e)  {
    if(this.start_drag)  {
      if(!e)
        e = window.event;
 
      var newX = e.screenX - this.startX;
      var newY = e.screenY - this.startY;
 
      this.movie.style.left = newX + "px";   
      this.movie.style.top  = newY + "px";  
    } 
  }
  
  that.endDrag = function()  {
    this.start_drag = false;
  }
  
  // private Methode
  function IsDragable(id)  {
    // prüfen ob in der ID des angelickten Objektes
    // das Wort "dragable" vorkommt (damit nicht
    // alles verschoben werden kann) 
    if(id.split("_")[0] == "dragable")
     return true;
       
    return false;
  }
  
  return that;
}
HTML im BODY:
<img src="html.gif"
style="position:absolute; top:0; left:0;"
onmousedown="return false;"
onmousemove="return false;"
width="129" height="108" id="dragable_1" />

Donnerstag, 3. November 2011

Blogger - Facebook-Kommentare einbinden

Wenn Ihr das Facebook Social Plugin Comments verwenden wollt, habe ich die Vorgehensweise hier mal zusammengefasst. Grundsätzlich ist es möglich das Plugin in jede beliebige Webseite einzubinden, ich beschreibe hier das Prozedere speziell für den Blooger-Post, was sich aber nicht wesentlich von der Verwendung in anderen Seiten unterscheidet. Das Ergebniss seht Ihr hier in meinem Blog.

1. Schritt - Deaktivieren der Standard-Kommentare (nur Blogger)
Meldet Euch in Eurem Blog an, wechselt nach Design => Einstellungen => Kommentare => Ausblenden checken und die Einstellungen speichern.

2. Schritt - Facebook-Anwendung erstellen
Als nächstes erstellt Ihr hier eine Facebook-Anwendung. Das wichtigste hier ist die App-ID, die wird später gebraucht. Die App muss mit der Domäne (z.B. it4zwigge.blogspot.com) und Webseite (z.B. http://it4zwigge.blogspot.com/) verbunden werden.

3. Schritt - Code bereitstellen
Ich habe mich für die HTML5-Variante der Kommentare entschieden, vor allem weil XFBLM Probleme im IE9 gemacht hat. Am besten klickt Ihr hier auf Get Code:

Dann werden Euch unter dem Tab HTML5 zwei Codeschnipsel angeboten:

Im ersten Schnipsel ersetzt Ihr <APPID> mit Eurer App-ID (Zeile 6) und aufpassen das Kaufmannsund (&) vor appId muss so kodiert sein wie oben (&amp;).

Im zweiten Schnipsel ändert Ihr dann das Attribut data-href auf Eure URL:

<div class="fb-comments" data-href="http://www.it4zwigge.de/"
data-num-posts="2" data-width="500"></div>

Um Blogger-Posts zu referenzieren, muss das Ganze so aussehen:

<div class='fb-comments' expr:data-href='data:post.url'
data-num-posts='2' data-width='500'></div>

4. Schritt - HTML-Template modifizieren
Nun müssen die beiden Schnipsel noch an Ort und Stelle kopiert werden. Dazu wechselt Ihr nach Design => HTML bearbeiten => Widget-Vorlagen komplett anzeigen checken.
Um den ersten Schnipsel einzufügen sucht Ihr den Text <body, nach dem Body-Tag, muss dann das erste Schnipsel hin.
Für den zweiten Schnipsel sucht Ihr den Text data.post:body, nach diesem Tag wird unser Quelltext dann eingefügt. Nach dem Speichern der Vorlage sollten dann Kommentare wie unten zu sehen sein.