<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Why can&#039;t we play today... &#187; xul</title>
	<atom:link href="http://kaan.ozdincer.com/gunce/tag/xul/feed" rel="self" type="application/rss+xml" />
	<link>http://kaan.ozdincer.com/gunce</link>
	<description>Kaan Ozdincer Kişisel Ağ Güncesi</description>
	<lastBuildDate>Sun, 23 Jan 2011 11:11:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>EksiSözlük SesliSözlük TDKSözlük Firefox Eklentisi Nasıl Yapılır</title>
		<link>http://kaan.ozdincer.com/gunce/devel/eksisozluk-seslisozluk-tdksozluk-firefox-eklentisi-nasil-yapilir</link>
		<comments>http://kaan.ozdincer.com/gunce/devel/eksisozluk-seslisozluk-tdksozluk-firefox-eklentisi-nasil-yapilir#comments</comments>
		<pubDate>Tue, 07 Jul 2009 10:30:06 +0000</pubDate>
		<dc:creator>kozdincer</dc:creator>
				<category><![CDATA[Devel]]></category>
		<category><![CDATA[İnternet]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[eklenti]]></category>
		<category><![CDATA[eksi]]></category>
		<category><![CDATA[eksisozluk]]></category>
		<category><![CDATA[extension]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[sesli sozluk]]></category>
		<category><![CDATA[tdk]]></category>
		<category><![CDATA[tdksozluk]]></category>
		<category><![CDATA[turkuvaz holding]]></category>
		<category><![CDATA[xpi]]></category>
		<category><![CDATA[xul]]></category>

		<guid isPermaLink="false">http://kaan.ozdincer.com/?p=5</guid>
		<description><![CDATA[2008 yazında Turkuvaz Holding ‘de yaptığım stajda, verilen bir görev için Firefox eklentisi nasıl yapılır onu incelemiştim. Öğrendiklerimi uygulamak içinde çok kolay bir eklenti yazmıştım. Eklentinin yaptığı iş ise; EkşiSözlük, SesliSözlük ve TDKSözlük te arama yapması. Stajda istedikleri bu değildi tabiiki ama iyi bir öğretici oldu benim için. Ayrıca en çok kullandığım 3 sözlük için, [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>2008 yazında <a href="http://www.turkuvazyayin.com.tr/" target="_blank">Turkuvaz Holding</a> ‘de yaptığım stajda, verilen bir görev için <a href="https://addons.mozilla.org/" target="_blank">Firefox eklentisi</a> nasıl yapılır onu incelemiştim. Öğrendiklerimi uygulamak içinde çok kolay bir eklenti yazmıştım.</p>
<p>Eklentinin yaptığı iş ise; <a href="../gunce/bilgisayar/internet-bilgisayar/www.eksisozluk.com/" target="_blank">EkşiSözlük</a>, <a href="http://www.seslisozluk.com/" target="_blank">SesliSözlük</a> ve <a href="../gunce/bilgisayar/internet-bilgisayar/www.tdk.gov.tr/" target="_blank">TDKSözlük</a> te arama yapması. Stajda istedikleri bu değildi tabiiki ama iyi bir öğretici oldu benim için. Ayrıca en çok kullandığım 3 sözlük için, hemen adres çubuğunun altında, işlerimi kolaylaştıran bir eklenti oldu. Yani söylemek istediğim, aslında bu eklentiyi kendi kişisel zevklerim için hazırladım ve yaklaşık 1 yıldır sürekli kullanıyorum.</p>
<p>Aslında bir Firefox eklentisi yapmak o kadarda zor değil. Bilinmesi gereken <a href="http://www.mozilla.org/" target="_blank">Mozilla Vakfının</a> geliştirmiş olduğu <a href="http://www.mozilla.org/projects/xul/">XUL</a> teknolojisi ve birazda <a href="http://www.w3schools.com/JS/" target="_blank">Javascript</a> bilgisi yeterli.</p>
<p>Birazda Bu eklentinin detaylarından bahsedeyim;</p>
<p>Öncelikle bu <a href="http://en.wikipedia.org/wiki/XPInstall" target="_blank">xpi</a> dosyası bir zip arşivi. Bunu /SearchBar dizinine çıkardığımızdaki yapı şu şekilde;</p>
<blockquote><p>$ tree SearchBar<br />
|– chrome.manifest<br />
|– content<br />
|   |– EksiBar.js<br />
|   |– EksiBar.xul<br />
|   |– TDK.png<br />
|   |– Thumbs.db<br />
|   |– eksi.png<br />
|   `– sesli.png<br />
`– install.rdf</p></blockquote>
<p>chrome.manifest ; Eklentiyi oluşturan dosyaların konumunu bildiren dosyadır.</p>
<blockquote><p>content EksiBar content/<br />
overlay chrome://browser/content/browser.xul chrome://EksiBar/content/EksiBar.xul</p></blockquote>
<p>install.rdf ; Eklentiyle ilgili bilgileri içeren bir XML dosyasıdır (Install-Manifest).</p>
<blockquote><p>&lt;?xml version=”1.0″?&gt;&lt;RDF xmlns=”http://www.w3.org/1999/02/22-rdf-syntax-ns#”     xmlns:em=”http://www.mozilla.org/2004/em-rdf#”&gt;&lt;Description about=”urn:mozilla:install-manifest”&gt;</p>
<p>&lt;!– Required Items –&gt;<br />
&lt;em:id&gt;kaanozdincer{[at]}gmail.com&lt;/em:id&gt;<br />
&lt;em:name&gt;EksiBar&lt;/em:name&gt;<br />
&lt;em:version&gt;1.0&lt;/em:version&gt;</p>
<p>&lt;em:targetApplication&gt;<br />
&lt;Description&gt;<br />
&lt;em:id&gt;{ec8030f7-c20a-464f-9b0e-13a3a9e97384}&lt;/em:id&gt;<br />
&lt;em:minVersion&gt;1.5&lt;/em:minVersion&gt;<br />
&lt;em:maxVersion&gt;3.0.*&lt;/em:maxVersion&gt;<br />
&lt;/Description&gt;<br />
&lt;/em:targetApplication&gt;</p>
<p>&lt;!– Optional Items –&gt;<br />
&lt;em:creator&gt;Kaan Ozdincer&lt;/em:creator&gt;<br />
&lt;em:description&gt;Eksi Sozluk Arama Tarama&lt;/em:description&gt;<br />
&lt;em:homepageURL&gt;http://kaan.ozdincer.com&lt;/em:homepageURL&gt;<br />
&lt;/Description&gt;&lt;/RDF&gt;</p></blockquote>
<p>EksiBar.xul ; Mozilla Vakfının geliştirmiş olduğu XUL biçimi (XML User Interface Language)</p>
<blockquote><p>&lt;?xml version=”1.0″?&gt;<br />
&lt;overlay id=”Scrapper-Overlay”<br />
xmlns=”http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul”&gt;<br />
&lt;script type=”application/x-javascript” src=”chrome://EksiBar/content/EksiBar.js” /&gt;<br />
&lt;toolbox id=”navigator-toolbox”&gt;<br />
&lt;toolbar id=”EksiBar” toolbarname=”EksiBar” &gt;<br />
&lt;hbox align=”center”&gt;<br />
&lt;label id=”EksiTitle” value=” “/&gt;<br />
&lt;image src=”chrome://EksiBar/content/eksi.png” ondblclick=”EksiAnaSayfa(event)”/&gt;<br />
&lt;label id=”EksiTitle2″ value=” “/&gt;<br />
&lt;textbox id=”EksiQuery” cols=”1″ size=”20″ onkeypress=”if(event.which == 13) { EksiGet(event); }”/&gt;<br />
&lt;toolbarbutton id=”Getir” label=”Getir” oncommand=”EksiGet(event)” /&gt;<br />
&lt;toolbarbutton id=”Ara” label=”Ara” oncommand=”EksiSearch(event)” /&gt;<br />
&lt;/hbox&gt;<br />
&lt;hbox align=”center”&gt;<br />
&lt;label id=”SesliTitle” value=” “/&gt;<br />
&lt;label id=”SesliTitle” value=” “/&gt;<br />
&lt;image src=”chrome://EksiBar/content/sesli.png” ondblclick=”SesliAnaSayfa(event)”/&gt;<br />
&lt;label id=”SesliTitle2″ value=” “/&gt;<br />
&lt;textbox id=”SesliQuery” cols=”1″ size=”20″ onkeypress=”if(event.which == 13) { SesliGet(event); }”/&gt;<br />
&lt;toolbarbutton id=”Getir” label=”Ara” oncommand=”SesliGet(event)” /&gt;<br />
&lt;/hbox&gt;<br />
&lt;hbox align=”center”&gt;<br />
&lt;label id=”TDKTitle” value=” “/&gt;<br />
&lt;label id=”TDKTitle” value=” “/&gt;<br />
&lt;image src=”chrome://EksiBar/content/TDK.png” ondblclick=”TDKAnaSayfa(event)”/&gt;<br />
&lt;label id=”TDKTitle2″ value=” “/&gt;<br />
&lt;textbox id=”TDKQuery” cols=”1″ size=”20″ onkeypress=”if(event.which == 13) { TDKGet(event); }”/&gt;<br />
&lt;toolbarbutton id=”Getir” label=”Ara” oncommand=”TDKGet(event)” /&gt;<br />
&lt;/hbox&gt;<br />
&lt;/toolbar&gt;<br />
&lt;/toolbox&gt;</p>
<p>&lt;/overlay&gt;</p></blockquote>
<p>EksiBar.js ; Olaylara göre tanımlanmış fonksyonlar barındıran bir Javascript dosyası.</p>
<blockquote><p>function EksiGet(event){<br />
var query = document.getElementById(”EksiQuery”).value;<br />
window._content.document.location  = “http://sozluk.sourtimes.org/show.asp?t=” + encodeURI(query);<br />
}<br />
function EksiSearch(event){<br />
var query = document.getElementById(”EksiQuery”).value;<br />
window._content.document.location  = “http://sozluk.sourtimes.org/index.asp?a=sr&amp;kw=” + encodeURI(query);<br />
}<br />
function EksiAnaSayfa(event){<br />
gBrowser.selectedTab = gBrowser.addTab(”http://www.eksisozluk.com”);<br />
}<br />
function SesliGet(event){<br />
var query = document.getElementById(”SesliQuery”).value;<br />
window._content.document.location  = “http://www.seslisozluk.com/?word=” + encodeURI(query);<br />
}<br />
function SesliAnaSayfa(event){<br />
gBrowser.selectedTab = gBrowser.addTab(”http://www.seslisozluk.com”);<br />
}<br />
function TDKGet(event){<br />
var query = document.getElementById(”TDKQuery”).value;<br />
window._content.document.location  = “http://tdk.org.tr/TR/SozBul.aspx?F6E10F8892433CFFAAF6AA849816B2EF4376734BED947CDE&amp;Kelime=” + encodeURI(query);<br />
}<br />
function TDKAnaSayfa(event){<br />
gBrowser.selectedTab = gBrowser.addTab(”http://www.tdksozluk.com/”);<br />
}</p></blockquote>
<p>SearchBar eklentisini <a href="../files/SearchBar.xpi">buradan indirebilirsiniz…</a></div>
]]></content:encoded>
			<wfw:commentRss>http://kaan.ozdincer.com/gunce/devel/eksisozluk-seslisozluk-tdksozluk-firefox-eklentisi-nasil-yapilir/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

