DataLife Engine > Teknoloji haberleri > firefoxda eklenti yazmak
firefoxda eklenti yazmak10 Haziran 2008. Düzenleme: KraL |
|
Kendi eklentinizi yazın
Popülerliğini koruyan Firefox tarayıcısı ve Thunderbird mail istemcisi için başkalarının hazırladıklarına muhtaç değilsiniz. Kendi eklentilerinizi nasıl hazırlayacağınızı uygulamalı olarak anlatıyoruz. Firefox tarayıcısının ve Thunderbird mail istemcisinin en iyi özelliklerinden biri eklenti mekanizmasıdır. Tarayıcıda ihtiyacınız olan bir özelliğin olmadığını fark ederseniz, bunu oluşturup tarayıcıya eklemek sizin elinizdedir. Bunun için C bilmenize ve C derleyicisine ihtiyacınız yoktur çünkü eklentilerin çoğu XML ve ECMAScript bileşimiyle yapılmaktadır. Şimdi Firefox'un Araçlar menusu altına nasıl bir eklenti ekleyebileceğimize bakalım. I contents.rdf dosyası contents.rdf, eklentinin içeriğini tanımlayan Resource Description Framework (RDF) dosyasıdır. RDF, veriyi XML yapısında saklar ve uygulamalar tarafından rahatça işlenebilmesini sağlar. Basit eklentiler yazmak için RDF hakkında fazla bilgiye sahip olmanız gerekmez fakat ilgilenmek isterseniz detaylı bilgiyi www.w3.org/ TR/2004/REC-rdf-conceots-20040210 adresinde bulabilirsiniz. İşe "content" adında bir dizin oluşturarak başlıyoruz. Bu klasör, isminden de anlaşılacağı gibi eklentinin tüm ana içeriğini içerir, contents.rdf ise bu dizin içerisinde yer almalıdır. Dizin yapısını şu şekilde sonlandırabilirsiniz: c:\firefox_eklentim\' +- merhaba_dunya ♦- content +- contents.rdf contents.rdf dosyasının içeriğiyse şu şekilde olmalıdır: RDF:Description about-"urn:mozilla:package: morhaba_dunya" chrome:displayName-"Merhaba Dünya" chrome:author-"Hakan Demiray" chrome:authorURL-"http://www .pcnet.com.tr" chrome:name-"merhaba_dunya" chrome:extens ion-"true" chrome:description»"Basit bir £irefox eklentisi denemesidir. "> chrome: / /merhaba_dun y«/content/merhaba_dunya- arayuz.xul Yukarıdaki kod dizininde farklı eklentiler için değişiklik gösterecek önemli bölümleri kalın fontla belirttik. İlk olarak eklentimiz için bir paket sağlıyoruz. Bu paket, eklentimizi diğerlerinden ayıracaktır. Bu basit eklentimiz için paket ismini "merhaba_dunya" olarak belirliyoruz. Sonrasında, eklentimizin tanımlamalarını giriyoruz. Gördüğünüz üzere bu satırlar eklentiniz hakkında tanımlama bilgilerini içermekte. "displayName" eklentinin adını, "author" eklenti yazarını, "authorURL" eklenti adresini, "name" eklenti klasörü adını, "description" eklenti açıklamalarını içermektedir. Ardından Mozilla'ya yazılımın hangi bölümlerine erişmek istediğimizi söylemeliyiz. Firefox ve Thunderbird'ün tüm kullanıcı arayüzü öğeleri XUL olarak tanımlanırlar. Toplu olarak bu kullanıcı arayüzü öğeleri "chrome" olarak bilinirler. Her iki yazılım için de birçok kullanıcı tarafından görülebilecek bölümlere erişebilirsiniz. Bu durumda, Firefox ana tarayıcı bölümüne erişmek istediğimizden "chrome://browser/content/bro wser.xul" şeklinde tanımlama yapıyoruz: ^menuitem label-"Merhaba Dünya" position-"l" /> ^ /menupopuç» ^/overlay> Bu kodlarla "Araçlar" menusunun en üstüne "Merhaba Dünya" menü öğesini eklemiş olduk. Menümüzü "menupopup" olarak tanımladığımız için açılan bir pencere elde edeceğiz. Kurulumu oluşturmak Firefox ve Thunderbird yazılımlarının son sürümleri eklentilerinizi kolaylıkla kurup yönetmeniz için eklenti yöneticisi içermektedir. Bu eklenti yöneticisini eklentimizin varlığından haberdar edebilmek için "install.rdf" adında yeni bir RDF dosyası oluşturmalıyız. Bu dosya "content" klasörüyle aynı dizinde yer almalıdır. Böylece eklenti dizinimizin son hali şu şekli alıyor: c:\firefox_eklentim\ +- merhaba__dunya +- install.rdf +- content +- contents.rdf +- merhaba_dunya-arayuz.xul "install.rdf" dosyası için gerekli kodlar aşağıdaki gibi. Yine önemli bölümleri kalın olarak işaretliyoruz. Ker baba Diinya {e562fad9-c386-47a8- 8a48-21576a03da5c} 0.1 Basit bir firefoı eklentisi denemesidir. Hakan Demiray uttp: / /www. pcnet. C«B. tr {ec8030f7-c20a-464f- 9b0e-13a3a9e97384> 0.9 1.5.0.6 n: f ile;merhaba_dianya. jar - content/ İlk olarak eklentinin genel tanımlamalarını yaptık. Bu bilgiler Firefox eklenti yöneticisinde görünecektir. Merhaba Düny a {e562fad9-c386-47a8- 8a48-21S76a03daSc> O.K/em: version> Basit bir firefoz eklentisi denemes idir. Hakan Demiray http: / /www. pcnet. com.tr Em:id öğesinin içeriği eklentimiz için benzersiz bir tanımlama kodunu (GUID) içerir. Bunu, eklentimizi diğer eklentilerden ayırmak için kullanırız. Yeni bir eklenti yazdığınızda bunu diğerlerinden ayırt etmek için her seferinde yeni bir GUID yaratmalısınız. Andy Hoskinson, her seferinde ihtiyacımız olan bu GUID kodlarını yaratabileceğimiz bir servisi www.hoskinson.net/webservices /auidgeneratorclient.asox adresinde kullanıma açmıştır. Sonrasındaysa eklentimizi hangi yazılım için kullanacağımızı tanımlıyoruz: {ec8030f7-c20a-464f- 9b0e-13a3a9e97384} 0.9ersioı» 1.5.0.6 Mozilla tarafından üretilen her yazılım kendine ait bir GUID koduna sahiptir. Eklentimiz içerisinde bu kodu kullanarak onun hangi yazılım için kullanılacağını tanımlamış oluruz. Örnekte vermiş olduğumuz kod Firefox yazılımı içindir. Ayrıca eklentinin çalışması için gerekli en düşük (minVersion) ve en yüksek (maxVersion) Firefox sürümlerini de tanımlamalıyız. Son olarak da eklenti yöneticisine hangi dosyaların yükleneceğini bildirmeliyiz: content/ Eklenti kurulumunu paketlemek Eklentimiz tamamlandı fakat kullanıcıların kolayca kurabilmesi için onu paketlemeli ve Firefox'un da kurulumu rahatlıkla gerçekleştirmesini sağlamalıyız. Bunun için dosyalarımızı XPI (Cross Platform Installer) formatında sıkıştırmalıyız. Aslında XPI dosyası, içerisindeki dosyaları kendimizin tanımladığı bir ZIP dosyasıdır. XPI dosyamız şu yapıya sahip olmalı: merhaba_ +- chrome'/ +- merhaba_dunya.jar merhaba_dunya.jar dosyası içerik dizini içerisindeki dosyalarımızı içeren bir diğer ZIP dosyasıdır: merhaba_dunya.j ar +- content/ +- contents.rdf +- merhabadunya- arayuz.xul Yukarıdaki yapıya uyacak şekilde tüm dosyaları favori sıkıştırma yazılımınızla ZIP formatında sıkıştırmalısınız. İşlem sonunda eklentiniz yüklenmeye hazırdır. Eklentiyi test etmek için, Firefox'ta eklenti dosyanızı açıp tarayıcı üstüne kurabilirsiniz. |