Yorum Yaz

Enine Boyuna Accelerator’lar

M. Baykal, 14 Eylül 2008 saat 02:58'de yazdı.

Kategoriler: Internet Explorer

Internet Explorer 8.0 ile programcı olarak hayatımıza girecek yeniliklerden birisi de Accelerator'lar olacak. Accelerator'lar, kullanıcıların, web uygulamalarına ve servislerine hızlıca erişmelerine yardımcı olan, içerik menüleridir. Sayfanın sağ tıklama menüsünde ve seçili metnin üzerine gelince çıkan menüde gösterilirler. Accelerator'lar yaptıkları işlere göre kategorilendirildikleri için kullanıcılar istedikleri servise hızlıca ulaşabilirler.

Accelerator'ların Faydaları

  • Internet Explorer'da sağ tıklama menüsünde bulunurlar, yaptıkları işe göre kategorilendirilirler bu nedenle aranılan bilgiye hızlıca erişim sağlanır.
  • Kullanıcılar, gezindikleri sayfanın dışına çıkmadan bizim kendi sitemizde sunduğumuz bir hizmete ulaşabilirler.

Accelerator'lar, o anda açık olan sayfa üzerindeki bilgi üzerinden işlem yaparlar. Sayfa üzerinde seçili olan metni, başka bir sayfa üzerinde işleyip kullanıcıyı sonuca yönlendirirler. Hatta sonucun gösterilmesi için, kullanıcının başka sayfaya gitmesine bile gerek yoktur. Sonucu sayfa üzerinde açılan alanda ön izleme gösterebilirsiniz. Accelerator'lar yaptıkları işlere göre kategorilerine ayrılmışlardır.

Şekil 1 - Live Maps ile Haritalandırırken

Varsayılan olarak gelen altı kategori vardır, bunlar:

  1. Add: del.icio.us, Digg
  2. Blog: Windows Live Spaces, Blog Engine
  3. Define: Encarta, Sesli Sözlük
  4. Map: Windows Live Maps
  5. Send: Windows Live Mail
  6. Translate: BabelFish, Windows Live

Eğer, geliştirdiğiniz uygulama bu kategorilerden birine uymuyorsa kendi kategorinizi tanımlayabilirsiniz. Accelerator'lar, Eklenti Yöneticisinde kategorilerine göre gruplandırılacağı için, kategori isimlerinin düzgün olması çok önemlidir. Kategori isimleri, marka vb. şeyleri içermemelidir.

Değişkenler

Accelerator'lar o anda kullanıcının gezdiği sayfadan, bazı bilgileri alır ve işlerler. Bu veriler, hizmete ya da uygulamaya GET veya POST olarak gönderilir. Kullanılabilecek olan değişkenler aşağıdadır:

Değişken

İçerik

Açıklama

{selection}

Seçili metin

Kullanıcının sayfada seçtiği metin

{ documentUrl}

Tümü

Kullanıcının, Accelerator'u çalıştırdığı sayfanın adresi

{documentTitle}

Tümü

Kullanıcının, Accelerator'u çalıştırdığı sayfanın başlığı

{documentDomain}

Tümü

{documentUrl} değişkeninin üst-düzey alan adını içerir. (bu sayfa için: nesterosa.com)

{documentHost}

Tümü

Kullanıcının, Accelerator'u çalıştırdığı sitenin adresi

{link}

İlişim

Kullanıcının seçtiği ilişimin adresi

{linkText}

Metin

Kullanıcının seçtiği ilişimin metni

{linkRel}

Metin

Kullanıcının seçtiği ilişimin, "rel" özelliğinin değeri

{linkType}

Metin

Kullanıcının seçtiği ilişimin MIME türü

{linkDomain}

İlişim

Kullanıcının seçtiği ilişimin üst-düzey alan adı

{linkHost}

İlişim

{linkDomain} değişkeninin sitesinin adresi

Tüm değişkenler süslü parantezler içinde yazılmalıdır. Eğer, değişkenler dışında bir yerde süslü parantez kullanmak isterseniz, "\" karakterini es geçme karakteri olarak kullanabilirsiniz. Örneğin: \{{link}\}

Eğer gerekli bir değişken, boşsa ya da mevcut değilse, Accelerator çalıştırılamaz ve menüde gözükmez. Örneğin {linkRel} değişkeni her zaman mevcut olmayabilir.

Bir değişken, gerekli değilse; yani opsiyonel ise adının sonuna "?" eklenir. Örneğin: {linkRel?}. Opsiyonel bir değişken boş olduğunda ya da mevcut olmadığında ilgili os:parameter öğesi es geçilir ve karşı tarafa iletilmez.

Yapı

Olağan bir Accelerator, aşağıdaki gibi bir XML dosyasıdır:

<?xml version="1.0" encoding="UTF-8"?>
<os:openServiceDescription
   xmlns:os="
http://www.microsoft.com/schemas/openservicedescription/1.0">
   <os:homepageUrl>http://maps.nesterosa.com</os:homepageUrl>
   <os:display>
     <os:name>Nesterosa ile Haritalandır</os:name>
     <os:icon>http://www.nesterosa.com/favicon.ico</os:icon>
     <os:description>Seçtiğiniz, adresi haritalandırır.</os:description>
   </os:display>
   <os:activity category="Map">
      <os:activityAction context="selection">
         <os:preview
            action="
http://maps.example.com/preview.php?addr={selection}" />
         <os:execute action="
http://maps.example.com/" method="get">
            <os:parameter name="addr" value="{selection}" type="text" />
         </os:execute>
      </os:activityAction>
   </os:activity>
</os:openServiceDescription>

os: openServiceDescription Öğesi

Bir Accelerator'ün temel öğesidir. Yalnızca bir defa geçer ve diğer tüm öğeleri kapsar.

os:homepageUrl Öğesi

Accelerator'ün bulunduğu, sitenin ana sayfasının adresini içerir. Yalnızca bir defa openServiceDescription altında geçebilir ve zorunludur.

os:display Öğesi

Accelerator'ün gösterim seçeneklerini içerir. Yalnızca bir defa openServiceDescription altında geçebilir ve zorunludur.

os:name Öğesi

Accelerator'ün ismini içerir. Yalnızca bir defa display altında geçebilir ve zorunludur. 50 ya da daha az karakterden oluşabilir. Accelerator'ün yaptığı işin fiili ile betimlenmesi önerilir. Örneğin: Nesterosa ile Haritalandır.

os:icon Öğesi

Accelerator'ün simgesini belirtir. En fazla bir defa display altında geçebilir ve opsiyoneldir. Geçerli bir adres içermelidir.

os:description Öğesi

Accelerator'ün kısa bir açıklamasını içerir. En fazla bir defa display altında geçebilir ve opsiyoneldir. 250 ya da daha az karakter içermelidir.

os:activity Öğesi

Accelerator servisi ile ilgili bilgileri içerir. Yalnızca bir defa openServiceDescription altında geçebilir ve zorunludur.

category Özniteliği

Accelerator'ün kategorisini belirler. Düz metin olmalıdır. hompageUrl ile birlikte Accelerator'ün tanımlanması için kullanılır.

os: activityAction Öğesi

context özniteliğine özel bilgileri içerir. activity öğesi altında en az bir defa kullanılmalıdır.

context Özniteliği

Accelerator'ün üzerinde çalışacağı bilgiyi belirler. Üç farklı değerden birisini alabilir:

  • selection
  • document
  • link

Varsayılan değeri selection'dır.

os:preview Öğesi

Sayfada ön izleme için gerekli bilgileri içerir. Verilen adresten dönen değer yüksekliği 240, genişliği 320 olan bir HTML dokümanı olmalıdır. activityAction altında en fazla bir defa tanımlanabilir.

action Özniteliği

Accelerator'da ön izlenecek sayfanın ilişim taslağını içerir. Bu taslakta, yukarıda belirtilen değişkenler kullanılabilir. Kullanılması zorunludur.

method Özniteliği

Kullanılacak http metodunu içerir. GET ya da POST olabilir. Varsayılan değeri get'tir.

enctype Özniteliği

Karşı tarafa gönderilecek formun içeriğinin türünü belirtir. Varsayılan olarak: "application/x-www-form-urlencoded"'dır. Değeri http://www.w3.org/TR/html4/interact/forms.html adresinde desteklenmelidir.

accept-charset Özniteliği

Gönderilecek bilginin kodlamasını içerir. Varsayılan olarak utf-8'dir.

os:execute Öğesi

Accelerator'ü çalıştırma ile ilgili bilgileri içerir. activityAction altında bir defa geçmelidir.

preview öğesi ile aynı öznitelikleri paylaşmaktadır.

os:parameter Öğesi

action adresine gönderilecek parametrelerin isimlerini ve değerlerini içerir, preview ya da execute altında geçebilir, ilişim taslakları kullanılabilir.

name Özniteliği

Parametrenin ismini içerir ve bir kullanılmak zorundadır.

value Özniteliği

Parametrenin değerini içerir, bir değişkene referans verilebilir ve kullanılmak zorundadır.

type Özniteliği

{selection} değişkenin nasıl ele alınacağını belirtir. text ya da html değerlerini alabilir ve varsayılan değeri text'tir.

İlişim Taslakları

Bir ilişim taslağı, karşı tarafa iletilecek olan bilginin biçimini belirler. İki şekilde tanımlanabilir: satır içinde ya da parameter'larla.

Örnekler

Satır içinde kullanım örneği:

<execute action="http://www.nesterosa.com/accelerator.axd?type=lastposts&q={selection}" />	
	

Form tabanlı parameter'larla kullanım örneği:

<execute action="http://www.nesterosa.com/accelerator.axd>
    <parameter name="type" value="lastpost" />
    <parameter name="q" value="{selection}" type="html" />
</execute>	
	

Kullanılabilecek değişkenleri yukarıda belirtmiştim.

Bu kadar, roman yazdıktan sonra, kodlara geçmeden önce dikkat etmeniz gereken bir şey daha var: Accelerator'lar yalnızca http yada https üzerinden yüklenebilir. Yerel sistemde test edebilmek için ya makinenize ISS kurmalısınız ya da Visual Studio ile gelen test sunucusunu kullanmalısınız.

Yükleme 

Bir siteden Accelerator eklemek için, window.external.AddService metodu kullanılır. Paremetre olarak yalnızca, Accelerator'ün bulunduğu yerin adresini alır.

Acclerator yüklenmiş mi diye kontrol etmek için, window.external.IsServiceInstalled kullanılır. Iki parametre alır. Birincisi, servisin adresi; ikincisi ise kategorisidir.

Örnek:

// JS fonksiyonu
function InstallAccelarator()
{
 var url = location.href;
 var acceleratorUrl = url.substr(0, url.lastIndexOf("/") + 1) + "blabal.xml";
 if (window.external.IsServiceInstalled(acceleratorUrl, "Map"))
  alert("Accelerator zaten yuklu!");
 else
  window.external.AddService(acceleratorUrl);

}

// HTML Kodu
<input type="button" onclick="installActivity();" value="Accelerator Yukle" />

 


Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5


Yorum yaz

Yazi hakkinda ne dusundugunuz, benim icin cok onemli. Lutfen bir iki cumle de olsa yorum yaziniz...


(Gravatar simgesini gösterecek)






  Günlüğümden bır yazıyı alıntılamadan önce, telif bilgilerini okuyun...

Telif Bilgileri

Son 3 Yazım

Etiket Bulutu

Son 5 Yorum

Comment RSS
Bu sitenin tüm içeriği, yazarinin görüşlerini yansıtmaktadır. Başka hiçbir kurumu ya da kuruluşu bağlamaz.
Site ve içeriğinin içeriğinin her hakkı Muhammed Medeni Baykal'a aittir, kaynak gösterilmek şartı ile alıntı yapılabilir.
Bu döküman en iyi, Internet Explorer 8 Beta 2 ile izlenir. Fırefox 3.0 ile de izlenebilir...
Bu site BlogEngine.NET ile gücüne güç katıyor.