<?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>Wai Yan Lin &#187; widget</title>
	<atom:link href="http://blog.waiyanlin.net/category/widget/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.waiyanlin.net</link>
	<description></description>
	<lastBuildDate>Wed, 11 Aug 2010 02:30:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>TabView Widget</title>
		<link>http://blog.waiyanlin.net/2007/05/26/tabview-widget/</link>
		<comments>http://blog.waiyanlin.net/2007/05/26/tabview-widget/#comments</comments>
		<pubDate>Sun, 27 May 2007 04:40:00 +0000</pubDate>
		<dc:creator>waiyan</dc:creator>
				<category><![CDATA[hacks]]></category>
		<category><![CDATA[tabview]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://blog.waiyanlin.com/?p=79</guid>
		<description><![CDATA[ကိုယ့္ဘေလာ့ရဲ႕ပို႔စ္ေတြ၊ ကြန္မန္႔ေတြ ဒါမွမဟုတ္ တျခားဘေလာ့ေတြရဲ႕ပို႔စ္ေတြကို Tab ကေနၾကည့္လို႔ရေအာင္လုပ္ထားႏိုင္တဲ့ Widget ေလးပါ။ ကၽြန္ေတာ္ကိုယ္တိုင္ေရးတာေတာ့ ဘယ္ဟုတ္ပါ့မလဲေနာ္ (လူတိုင္းလဲ သိေလာက္ပါတယ္)။ Hoctro ရဲ႕ဖန္တီးထားတဲ့ Widget တစ္ခုပါ။ Yahoo! ရဲ႕ TabView Widget ကိုအေျခခံၿပီး ေရးထားတာျဖစ္ပါတယ္။ အဲဒီလိုျဖစ္ေအာင္ သူ႔ရဲ႕ပို႔စ္ ၄ ခုကို ဖတ္လိုက္ရပါတယ္။ နည္းနည္းေတာင္ မူးသြားတယ္ဗ်ာ။ သူ႔ဆီက ခြင့္ျပဳခ်က္ေတာင္းၿပီး ဒီမွာ ဘာသာျပန္ေပးလိုက္ပါတယ္။ ဖတ္တဲ့လူေတြ အဆင္ေျပေအာင္ ပို႔စ္တစ္ခုထဲမွာေပါင္းေရးလိုက္ပါမယ္။ အဆင့္-၁ေအာက္မွာျပထားတဲ့ Javascript ကုဒ္ေတြကို &#60;/head&#62; ရဲ႕အေပၚနားမွာ ကူးထည့္လိုက္ပါ။ ဒါမွမဟုတ္ အဲဒီကုဒ္ေတြကို js ဖိုင္အေနနဲ႔ hosting တစ္ခုမွာတင္ထားၿပီး ေခၚသံုးလဲရပါတယ္။ကၽြန္ေတာ္ကေတာ့ တန္းပလိတ္ထဲမွာပဲ...]]></description>
			<content:encoded><![CDATA[<p><span style="font-family:Zawgyi-One;">ကိုယ့္ဘေလာ့ရဲ႕ပို႔စ္ေတြ၊ ကြန္မန္႔ေတြ ဒါမွမဟုတ္ တျခားဘေလာ့ေတြရဲ႕ပို႔စ္ေတြကို Tab ကေနၾကည့္လို႔ရေအာင္လုပ္ထားႏိုင္တဲ့ Widget ေလးပါ။ ကၽြန္ေတာ္ကိုယ္တိုင္ေရးတာေတာ့ ဘယ္ဟုတ္ပါ့မလဲေနာ္ (လူတိုင္းလဲ သိေလာက္ပါတယ္)။ <a href="http://hoctro.blogspot.com/">Hoctro</a> ရဲ႕ဖန္တီးထားတဲ့ Widget တစ္ခုပါ။ Yahoo! ရဲ႕ TabView Widget ကိုအေျခခံၿပီး ေရးထားတာျဖစ္ပါတယ္။ အဲဒီလိုျဖစ္ေအာင္ သူ႔ရဲ႕ပို႔စ္ ၄ ခုကို ဖတ္လိုက္ရပါတယ္။ နည္းနည္းေတာင္ မူးသြားတယ္ဗ်ာ။ သူ႔ဆီက ခြင့္ျပဳခ်က္ေတာင္းၿပီး ဒီမွာ ဘာသာျပန္ေပးလိုက္ပါတယ္။ ဖတ္တဲ့လူေတြ အဆင္ေျပေအာင္ ပို႔စ္တစ္ခုထဲမွာေပါင္းေရးလိုက္ပါမယ္။</p>
<p>အဆင့္-၁<br /><span id="fullpost">ေအာက္မွာျပထားတဲ့ Javascript ကုဒ္ေတြကို &lt;/head&gt; ရဲ႕အေပၚနားမွာ ကူးထည့္လိုက္ပါ။ ဒါမွမဟုတ္ အဲဒီကုဒ္ေတြကို js ဖိုင္အေနနဲ႔ hosting တစ္ခုမွာတင္ထားၿပီး ေခၚသံုးလဲရပါတယ္။ကၽြန္ေတာ္ကေတာ့ တန္းပလိတ္ထဲမွာပဲ အဲဒီကုဒ္ေတြအကုန္လံုးကို ကူးထည့္ထားပါတယ္။</p>
<blockquote><p>&lt;script type=&#8217;text/javascript&#8217;&gt;<br />// Developed by Hoctro &#8211; All rights reserved 2007<br />// This credit must be included in all your derived usages.</p>
<p>// &#8220;cb&#8221; is intended to be a common library, where different widgets would<br />// utitlize the shared operations such as getTitle, getLink, etc. from a json object.<br />var cb = {</p>
<p>// search function requires these parameters:<br />// 1. query: a blogger address, such as &#8220;hoctro.blogspot.com&#8221;,<br />// 2. type: type of return data, either &#8220;comments&#8221; or &#8220;posts&#8221;,<br />// 3. start: the start-index parameter (where to start extracting data)<br />// 4. increment: the number of elements the json will get back. (the smaller value, the faster time to travel back)<br />// 5. func: the returned function the json object will feed.</p>
<p>search: function(query, type, start, increment, func) {<br />var script = document.createElement(&#8216;script&#8217;);<br />script.setAttribute(&#8216;src&#8217;, &#8216;http://&#8217; + query + &#8216;/feeds/&#8217; + type + &#8216;/default?alt=json-in-script&#038;start-index=&#8217;<br />+ start + &#8216;&amp;max-results=&#8217; + increment + &#8216;&#038;callback=&#8217; + func + &#8216;&amp;orderby=published&#8217;);<br />script.setAttribute(&#8216;type&#8217;, &#8216;text/javascript&#8217;);<br />document.documentElement.firstChild.appendChild(script);<br />},</p>
<p>// searchLabel function return a result of posts w/ a label query<br />// it requires these parameters:<br />// 1. query: a blogger address, such as &#8220;hoctro.blogspot.com&#8221;,<br />// 2. an array of labels<br />// 3. func: the returned function the json object will feed.<br />searchLabel: function(query, label, func) {<br />var script = document.createElement(&#8216;script&#8217;);<br />script.setAttribute(&#8216;src&#8217;, &#8216;http://&#8217; + query + &#8216;/feeds/posts/default/-/&#8217; + encodeURIComponent(label) +<br />&#8216;?alt=json-in-script&#038;callback=&#8217; + func + &#8216;&amp;orderby=published&#8217;);<br />script.setAttribute(&#8216;type&#8217;, &#8216;text/javascript&#8217;);<br />document.documentElement.firstChild.appendChild(script);<br />},</p>
<p>// getTotalResults needs the json object, and it&#8217;ll return the total number of comments (or posts) of the blog.<br />getTotalResults: function(json) {<br />return json.feed.openSearch$totalResults.$t;<br />},</p>
<p>// getStartIndex gets the start index of a search inside an json object.<br />getStartIndex: function(json) {<br />return json.feed.openSearch$startIndex.$t;<br />},</p>
<p>// getLink return a href link if &#8220;name&#8221; matches the content inside &#8220;a&#8221; tags) of the link<br />getLink: function(entry, name) {<br />var alturl;</p>
<p>for (var k = 0; k &lt; entry.link.length; k++) {<br />if (entry.link[k].rel == name)<br />alturl = entry.link[k].href;<br />}<br />return alturl;<br />},</p>
<p>// getTitle gets the title of the title of an entry of a json object.<br />getTitle: function(entry) {<br />return entry.title.$t;<br />},</p>
<p>// getContent gets the content inside an entry of a json object.<br />getContent: function(entry) {<br />return entry.content.$t;<br />},</p>
<p>// getCommentAuthor: gets the commenter name inside an entry of a json object.<br />getCommentAuthor: function(entry) {<br />return entry.author[0].name.$t;<br />},</p>
<p>// Given a json label search, this function return the decoded label.<br />getLabelFromURL: function(json) {<br />for (var l = 0; l &lt; json.feed.link.length; l++) {<br />if (json.feed.link[l].rel == &#8216;alternate&#8217;) {<br />var raw = json.feed.link[l].href;<br />// The next two lines are borrowed from Ramani&#8217;s Neo Template<br />// code. Thanks Ramani!<br />var label = raw.substr(raw.lastIndexOf(&#8216;/&#8217;)+1);<br />return decodeURIComponent(label);<br />}<br />}<br />},<br />txt : function (s) {<br />return s + &#8221; Widget by &lt;a href=&#8217;http://hoctro.blogspot.com&#8221; + &#8220;&#8216;&gt;Hoctro&lt;/a&gt;&#8221;;<br />}<br />};<br />&lt;/script&gt;</p></blockquote>
<p>အဆင့္-၂<br />ၿပီးရင္ေတာ့ ေအာက္ကကုဒ္ေတြကုိ ခုနထည့္ထားတဲ့ javascript ရဲ႕ေအာက္နားမွာပဲ ထပ္ထည့္လိုက္ပါဦး။ &lt;/head&gt; ရဲ႕အေပၚမွာပဲ ရွိေနရမွာကိုသတိျပဳပါ။</p>
<blockquote><p>&lt;link href=&#8217;http://yui.yahooapis.com/2.2.2/build/tabview/assets/tabview.css&#8217; rel=&#8217;stylesheet&#8217; type=&#8217;text/css&#8217;/&gt;</p>
<p>&lt;script src=&#8217;http://yui.yahooapis.com/2.2.2/build/yahoo-dom-event/yahoo-dom-event.js&#8217; type=&#8217;text/javascript&#8217;/&gt;<br />&lt;script src=&#8217;http://yui.yahooapis.com/2.2.2/build/element/element-beta-min.js&#8217; type=&#8217;text/javascript&#8217;/&gt;<br />&lt;script src=&#8217;http://yui.yahooapis.com/2.2.2/build/tabview/tabview-min.js&#8217; type=&#8217;text/javascript&#8217;/&gt;</p>
<p>&lt;style type=&#8217;text/css&#8217;&gt;</p>
<p>.yui-content {<br />padding:1em; /* pad content container */<br />}</p>
<p>.yui-navset .yui-content {<br />border:1px solid #ccc;<br />}<br />.yui-navset .yui-nav .selected a, .yui-navset .yui-nav a:hover {<br />background-color:#fff;<br />}</p>
<p>.yui-navset .yui-nav li a {<br />background:#e5e5e5 url(http://developer.yahoo.com/yui/examples/tabview/img/round_4px_trans_gray.gif) no-repeat;<br />}<br />.yui-navset .yui-nav li a em {<br />background:transparent url(http://developer.yahoo.com/yui/examples/tabview/img/round_4px_trans_gray.gif) no-repeat top right;<br />padding:0.5em;<br />}</p>
<p>/* top oriented */</p>
<p>.yui-navset-top .yui-nav { margin-bottom:-1px; } /* for overlap, based on content border-width */<br />.yui-navset-top .yui-nav li a {<br />border-bottom:1px solid #ccc;<br />}</p>
<p>.yui-navset-top .yui-nav .selected a { border-bottom:0; }<br />.yui-navset-top .yui-nav .selected a em { padding-bottom:0.6em; } /* adjust height */<br />&lt;/style&gt;</p></blockquote>
<p>အဆင့္-၃<br />ေနာက္တစ္ဆင့္အေနနဲ႔ တန္းပလိတ္ရဲ႕ ကိုယ္ထားခ်င္တဲ့ေနရာမွာ widget ကုဒ္ေတြထည့္ရပါမယ္။ ကၽြန္ေတာ့</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.waiyanlin.net/2007/05/26/tabview-widget/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

