paponblog

Wednesday, 16 May 2012

ব্লগারের ব্লগে তুষারপাতের ইফেক্ট স্থাপন করার পদ্ধতি

বাংলাদেশে শীতকাল শেষ হতে চলল। এখনও ইউরোপ আমেরিকার বিভিন্ন অংশে তুষারপাত হচ্ছে কিনা, তা জানিনা। কিন্তু আমরা ইচ্ছে করলেই নিজেদের ব্লগের শরীরজুড়ে তুষারপাত শুরু করে দিতে পারি।
Add snow effect on your blogger blog.
ওয়ার্ডপ্রেসের ব্লগে তুষারপাতের একটি প্লাগইন শীতকাল এলেই যোগ করে দেয়া হয়। ব্লগলেখক ইচ্ছে করলে সেটা একটিভ করতে পারেন। কিন্তু ব্লগার.কম এর ব্লগে এই ধরণের কোন প্লাগইনের কোন ব্যবস্থা নেই। তাই বলে কি আমরা বসে থাকবো? কখনো না। আমরা ছোট্ট একটি কোড স্থাপন করার মাধ্যমে ব্লগার.কম এ খোলা যে কোন ব্লগে তুষারপাতের সৌন্দর্য ফুটিয়ে তুলতে পারি।
Add the code below in your blogger.com blogs HTML Gadget and save.
আর এই জন্য আপনাকে তেমন কঠিন কিছুই করতে হবে না। ব্লগের যে কোন HTML Gadget এর মধ্যে নিচের কোডটি কপি করে দিয়ে সেভ করুন। তারপর দেখুন, আপনার ব্লগের উপরের অংশ থেকে কেমন সাদা সাদা পেজা তুলোর মতো তুষারপাত শুরু হয়ে যায়। এখনই লাগিয়ে নিন আর উপভোগ করুন তুষারপাতের অসাধারণ মনোরম সৌন্দর্য।
Now enjoy a lovely snow effect . It will view perfectly in dark background.
# তুষারপাতের এই বিশেষ ইফেক্টটি কোনরকম ছবি ফাইল ছাড়াই তৈরি করা হয়েছে। তাই লোড হতে অতিরিক্ত কোন সময় লাগবে না।
<script src="http://sites.google.com/site/banglahacks/tools/snow.js" type="text/javascript"></script>
# উল্লেখ্য যে সাদারঙের ব্যাকগ্রাউন্ডযুক্ত ব্লগে তুষারপাত ভাল বোঝা যাবে না। যাদের ব্লগের ব্যাকগ্রাউন্ড কাল বা কোন গাঢ় রঙের তারা তুষারপাতের আনন্দটি ভালোভাবেই উপভোগ করতে পারবেন।
* এই দারুণ কোডটি তৈরি করেছেন Kurt Grigg, আর এটা সংগ্রহ করা হয়েছে Dynamic Drive থেকে।
»» read more

একটি সহজ মেনুবার তৈরি করার পদ্ধতি

ব্লগার.কম এ খোলা ব্লগে ডিফল্টভাবে এতদিন কোন মেনুবার ছিল না। স্ট্যাটিক পেজ তৈরি করার নতুন ফিচার কার্যকরী করার সাথে সাথে এবার মেনুবারের অভাব ঘুচেছে। কিন্তু সমস্যা কি আর এত সহজে দূর হয়? এখনও কিছু কিছু সমস্যার কারণে মেনুবারে থাকা পেজগুলো ঠিকমতো দেখা যাচ্ছে না। তাহলে কি আমরা চুপচাপ বসে থাকবো? মোটেও না। আমরা নিজেরাই একটি মেনুবার তৈরি করে নিই না কেন। আর এই মেনুবারে প্রয়োজনীয় পেজ বা পোস্টের লিংক জায়গামতো বসিয়ে দিলেই তো কাজ হয়ে গেল, তাই না? হ্যাঁ, বন্ধুরা, আমাদের আজকের এই পোস্টটি ঠিক এই বিষয়টিকে নিয়ে। আজ আমরা জানবো খুব সহজে একটি মেনুবার কিভাবে তৈরি করা যায়?
  • ব্লগার.কম (Blogger.com) এ লগইন করুন।
  • Layout এর Page Elements ট্যাবে গিয়ে Add a Gadget এ ক্লিক করে একটি নতুন HTML/ Javascript গেজেট নিন।
  • এই গেজেটে নিচের কোডটি সম্পূর্ণ কপি করে পেস্ট করুন।
<div style="background-color:#DBF2FB; float:left;">
<a href="URL 1">Link 1</a> |
<a href="URL 2">Link 2</a> |
<a href="URL 3">Link 3</a> |
<a href="URL 4">Link 3</a> |
<a href="URL 5">Link 3</a> |
<a href="URL 6">Link 3</a> |
<a href="URL 7">Link 3</a> |
</div>
  • URL 1, 2, 3, 4 ইত্যাদিগুলো পরিবর্তন করে আপনি যে পোস্টের লিংক রেখে দিতে চান, তা লিখুন।
  • Link 1, 2, 3, 4 ইত্যাদিগুলো পরিবর্তন করে উপযুক্ত নাম যেমন About, Contact ইত্যাদি লিখুন।
  • background-color এর কোড পরিবর্তন করে নিজের পছন্দমতো রঙ এর কোড বসিয়ে দিন। পছন্দের রঙের কোড জানার জন্য Color Chart দেখুন। কিংবা কালার কোডার দিয়ে নিজের মনমতো একটি রঙ বানিয়ে নিন।
  • লিংকগুলোকে ডানে বামে নেয়ার জন্য float:left এর জায়গায় right লিখে দিন।
  • গেজেটটি সেভ করুন।
  • এই গেজেটটিকে Header এর ঠিক নিচে রেখে দিন।
  • এবার ব্লগটিকে একবার রিফ্রেশ করে দেখুন তো নতুন তৈরি করা মেনুবারটি কেমন দেখাচ্ছে।
»» read more

ব্লগার ব্লগের জন্য একটি আলতো করে সরে যাওয়া মেনু



আসুন এবার ব্লগার.কম ব্লগে একটি সমান্তরার মেনু তৈরি করি। এই মেনুটির উপরে মাউস নিয়ে গেলে আলতো করে আগের লেখার পিছনে থাকা ছবিটি সরে যায়। আসলে এই মেনুটিতে গুগল এর এজাক্স দিয়ে একটি অন্যরকম ভালোলাগার মতো সৌন্দর্য সৃষ্টি করা হয়েছে।
  • গুগল আইডি ও পাসওয়ার্ড দিয়ে ব্লগারে লগইন করুন।
  • Layout > Edit HTML অংশে যান। এখানে ]]></b:skin> এর ঠিক উপরে নিচের কোড স্থাপন করুন।
  • .container {
    width: 520px;
    height: 100px;
    position: absolute;
    top: 10%; left: 60%;
    margin: 0px 0 0 -80px;
    overflow: hidden;
    }
    img {border: none;}
    ul#topnav {
    margin: 10px 0 20px;
    padding: 0;
    list-style: none;
    font-size: 1.1em;
    clear: both;
    float: left;
    width: 520px;
    }
    ul#topnav li{
    margin: 0;
    padding: 0;
    overflow: hidden;
    float: left;
    height:40px;
    }
    ul#topnav a, ul#topnav span {
    padding: 10px 10px;
    float: left;
    text-decoration: none;
    color: #fff;
    clear: both;
    height: 20px;
    line-height: 20px;
    background: #1d1d1d;
    }
    ul#topnav a { color: #7bc441; }
    ul#topnav span {
    display: none;
    }
    ul#topnav.bh span{
    color: #FF0000;
    background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaNjEnuu0QdTUA8lhkZz4w3fPhS6RroIJBtT2QSYYoPPc_nmOVJ1lLjscpBrwB7JwjEVxOIAoZyFVBgMe-Htlj9SATvTsZCf4l5kTk5TaGvP9WYsq9GZhX1xfFb6LfP9tKvVwF1WGCiOGm/s320/hmenu.png) repeat-x left top;
    }
    ul#topnav.bh a{
    color: #555;
    background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaNjEnuu0QdTUA8lhkZz4w3fPhS6RroIJBtT2QSYYoPPc_nmOVJ1lLjscpBrwB7JwjEVxOIAoZyFVBgMe-Htlj9SATvTsZCf4l5kTk5TaGvP9WYsq9GZhX1xfFb6LfP9tKvVwF1WGCiOGm/s320/hmenu.png) repeat-x left bottom;
    }
  • এখনি সেভ করবেন না। একটু নিচে দেখুন </head> লেখা আছে। এর উপরে নিচের কোডটুকু বসিয়ে দিন।
  • <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' type='text/javascript'/>

    <script type='text/javascript'>
    $(document).ready(function() {
    $("#topnav li").prepend("<span/>");

    $("#topnav li").each(function() {
    var linkText = $(this).find("a").html();
    $(this).find("span").show().html(linkText);
    });

    $("#topnav li").hover(function() {
    $(this).find("span").stop().animate({
    marginTop: "-40"
    }, 250);
    } , function() { //On hover out...
    $(this).find("span").stop().animate({
    marginTop: "0"
    }, 250);
    });

    });
    </script>
  • এবার আরও নিচে নামতে থাকুন। যেখানে <div id='content-wrapper'> লেখা রয়েছে, তার উপরে নিচের কোডগুলো বসান।
  • <ul class='bh' id='topnav'>
    <li><a href='#'>Home</a></li>
    <li><a href='#'>Ubuntu</a></li>
    <li><a href='#'>About</a></li>
    <li><a href='#'>Email me</a></li>
    <li><a href='#'>Archive</a></li>
    <li><a href='#'>Tutorial</a></li>
    </ul>
  • এখানে আপনার পছন্দমতো লিংক ও লিংকের নাম বসাতে হবে। লাল রঙে বোল্ড করে দেখিয়ে দিয়েছি। # চিহ্নটির বদলে লিংক লিখুন ও Home, Ubuntu ইত্যাদির বদলে আপনার প্রয়োজনীয় নাম লিখুন।
  • এবার সেভ করুন। সেভ করার পূর্বে একবার প্রিভিউ দেখে নিতে ভুলবেন না যেন।
  • খেয়াল করুনঃ যদি <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js' type='text/javascript'/> এই অংশটি আগে কোন গেজেট বা মেনুর জন্য ব্লগে ইনস্টল করে থাকেন, তাহলে নতুন করে আর এই লাইনটুকু ব্লগে বসাতে হবে না। যেমন: এর আগে প্রকাশ করা
  • সাইডবারের লিংকগুলোকে ঠেলে সরিয়ে দেয়াএবং
  • আরও উন্নত "রিলেটেড পোস্ট" (Related Posts) গেজেটযদি আপনার ব্লগে লাগানো থাকে তাহলে ওই লাইনটি বাদ দিয়েই বাকী কোডগুলো বসিয়ে দিন।
»» read more

কোন গেজেট না হারিয়ে নিরাপদে Blogspot.com ব্লগের টেমপ্লেট পরিবর্তন করুন

ব্লগারের টেমপ্লেট পরিবর্তন করার পদ্ধতি আমরা আগেই জেনেছি। আমরা এও জানি যে টেমপ্লেট পরিবর্তন করতে গিয়ে কিভাবে গেজেটগুলোকে সেভ করে রাখতে হয়। কিন্তু কখনও কখনও এমন সমস্যা হয় যে, কোন কোন গেজেটের কোড থাকে না ফলে সেগুলো সেভ করে রাখাও যায় না। আবার নতুন করে যে সাইট থেকে কোড নিয়েছেন, সেখান থেকে কোড সংগ্রহ করার প্রয়োজন পরতে পারে। এই সব সমস্যা সমাধানে ব্লগার.কম একটি নতুন ফিচার ব্লগলিখিয়েদের জন্য চালু করেছে। এখন থেকে আপনাকে আলাদাভাবে গেজেটগুলোর কোড সেভ করে রাখার প্রয়োজন আর নেই। যখন টেমপ্লেট সেভ করবেন, তখনই একটি ডায়ালগ আসবে যে আপনি কি আগের টেমপ্লেটের গেজেটগুলো মুছে দিতে চান, নাকি সেগুলো রেখে দিতে চান।





 উপরের ছবি দেখুন। একটি টেমপ্লেট পরিবর্তন করতে গিয়ে তিনটি অপশন আপনার জন্য এসেছে। এর মধ্যে যে কোন একটিকে বেছে নিতে হবে।

  • KEEP WIDGETS: যদি পুরনো গেজেটগুলো রেখে দিতে চান, তাহলে এখানে সেভ করুন। এটাই ডিফল্ট হিসেবে নির্বাচন করা আছে।
  • DELETE WIDGETS: যদি মুছে ফেলতে চান, তাহলে এখানে ক্লিক করুন।
  • CANCEL: যদি টেমপ্লেট পরিবর্তন করার সিদ্ধান্ত পাল্টান তাহলে এখানে ক্লিক করুন।
»» read more

'লেবেল' গেজেটকে 'ড্রপডাউন' বা 'পপআপ' মেনুতে রূপান্তর করার পদ্ধতি





লক্ষ্য করেছেন কি যে "বাংলা হ্যাকস" ব্লগের 'বিষয় তালিকা' (Label Gadget) ড্রপডাউন হয়ে গেছে। ডানপাশের সাইডবারের একেবারে নিচে এই 'লেবেল' বা 'ক্যাটাগরী' গেজেটটিকে রেখে দিয়েছি। কিছুদিন আগেও আমি লেবেল গেজেটটিকে ব্লগের বামপাশে রেখে দিয়েছিলাম। কিন্তু দিনে দিনে এত বেশি বিষয় পোস্টগুলোতে ট্যাগ করা হয়েছে যে বামপাশের সাইডবারে জায়গা ধরছিল না। আমি ইচ্ছা করলে নির্দিষ্ট কিছু লেবেল দেখানোর জন্য নির্বাচিত করে রাখতে পারতাম। কিন্তু আমি এটা পছন্দ করি না। এতে হয়তো প্রয়োজনীয় কোন বিষয় পাঠকের দৃষ্টিসীমার বাইরে চলে যেতে পারে। তাই সবগুলো লেবেল পাঠকের সামনে রেখে দেয়ার ধারণাটিকে আমি সমর্থন করি। কিন্তু যেহেতু সাইডবারে জায়গা হচ্ছিল না, সেহেতু এই গেজেটটিকে আমি আকারে ছোট করে ফেললাম। ড্রপডাউন মেনুবারের মতো করে ফেললাম। ফলে অল্প জায়গাতেই আমি সবগুলো বিষয়কে রেখে দিতে সক্ষম হলাম। পাঠক 'বিষয় তালিকা' লেখাটিতে ক্লিক করলে ড্রপ ডাউন বা পপআপ (জায়গাভেদে) মেনু হিসেবে সবগুলো বিষয়কে দেখতে পারবে। এখান থেকে যে কোন একটি বিষয়কে বেছে নিলেই বিষয় সংশ্লিষ্ট পোস্টগুলো দেখা যাবে।
আপনার ব্লগে যদি বিষয়ের সংখ্যা অনেক বেশি হয়ে যায়, যদি এটা আপনার নিয়ন্ত্রণের বাইরে চলে যেতে ধরে, তাহলে এখনি এই গেজেটটিকে ড্রপডাউন মেনুর মতো করে নিন। ব্লগ শরীরে জায়গা বাঁচবে। বেঁচে যাওয়া যায়গায় অন্য কোন গেজেট লাগাতে পারবেন। কিভাবে করবেন?
How to make label gadget like dropdown or popup menu in blogger.com blog.
ব্লগের লেবেল গেজেটকে ড্রপডাউন (পপআপ) মেনুর মতো করে তৈরি করার পদ্ধতিঃ

  • ব্লগার.কম এ লগইন করুন।
  • প্রথমেই Layout> Page Elements ট্যাব থেকে ব্লগে একটি লেবেল গেজেট নিয়ে নিন।
  • এবার Layout> Edit HTML ট্যাবে যান।
  • Expand Widget Templates লেখার পাশের চেকবক্সে টিক চিহ্ন দিবেন না।
  • এবার নিচের লাইনটি খুঁজে বের করুন।

  • <b:widget id='Label1' locked='false' title='Labels' type='Label'>
  • এই লাইনটি সম্পূর্ণ মুছে দিয়ে নিচের কোডটি স্থাপন করুন।
  • <b:widget id='Label1' locked='false' title='Labels' type='Label'>
    <b:includable id='main'>
    <b:if cond='data:title'>
    <h2><data:title/></h2>
    </b:if>
    <div class='widget-content'>
    <br/>

    <select onchange='location=this.options[this.selectedIndex].value;' style='width:200px'>
    <option>Label Gadget Name</option>
    <b:loop values='data:labels' var='label'>
    <option expr:value='data:label.url'><data:label.name/>
    </option>
    </b:loop>
    </select>

    <b:include name='quickedit'/>
    </div>
    </b:includable>
    </b:widget>
  • পরীক্ষা করে দেখার জন্য নিচের PREVIEW লেখা নীল রঙের বোতামটিতে ক্লিক করুন।
  • সন্তুষ্ট হলে SAVE TAMPLATE লেখাতে ক্লিক করুন।
  • উপরের কোডটির দুটো জায়গায় সম্পাদনা করতে হবে।
  • যে সাইডবারে রাখবেন, তার মাপ অনুযায়ী 200px মানটি পরিবর্তন করুন।
  • লেবেল গেজেটটির নাম পরিবর্তন করার জন্য Label Gadget Name শব্দগুলো পরিবর্তন করে দিন।


»» read more

ব্লগে ট্যাবভিত্তিক গেজেট - উইজেট লাগানোর পদ্ধতি


আমার 'বাংলা হ্যাকস' ব্লগের ডানপাশের সাইডবারের উপরে একটি ট্যাবভিত্তিক গেজেটবক্স আছে। ব্লগার.কম ব্লগে ট্যাবড উইজেট (গেজেট) তৈরি করার পদ্ধতি জানতে চেয়ে একাধিক পাঠক আমাকে ইমেইল করেছেন। নিজস্ব হোস্টিং এর ওয়ার্ডপ্রেস ব্লগে এটা স্থাপন করার জন্য প্লাগইন আছে। কিন্তু ব্লগার.কম ব্লগে (ফ্রি অথবা হোস্টেড) এটা লাগানোর কোন সুবিধা নেই। কিন্তু এই সীমাবদ্ধতা আমরা নিজেরা একটু চেষ্টা করে দূর করতে পারি। এই ট্যাবভিত্তিক গেজেটবক্স ব্লগার.কম ব্লগে লাগানোর জন্য একাধিক কোড ব্লগের HTML অংশে স্থাপন করতে হয়। নতুন ব্লগারদের জন্য দুঃসাধ্য হতে পারে বিধায় আমি এতদিন এই কোডটি প্রকাশ করতে অনাগ্রহী ছিলাম। কিন্তু পাঠকদের উপর্যুপরি ইমেইল ও অনুরোধের প্রেক্ষিতে আমি পদ্ধতিটি সবিস্তারে বর্ণনা করলাম। আশা করি পদ্ধতিটি জটিলভাবে দেখবেন না। একটু সতর্ক হয়ে কাজ করলে আপনিও সফলভাবে এই ট্যাবড গেজেটটিকে নিজেদের ব্লগে স্থাপন করতে পারবেন।

এই ট্যাবভিত্তিক গেজেট স্থাপন করার নানারকম পদ্ধতি আছে। এর বেশিরভাগ এক্সটারনাল ফাইল সংযুক্ত করে করতে হয়। কিন্তু আমি যে কোডটি আপনাদেরকে দিচ্ছি, তার কোন এক্সটারনাল ফাইল লাগবে না। কোডের মধ্যেই যাবতীয় সমস্যার সমাধান করে দেয়া আছে। যদি এটা সফলভাবে স্থাপন করতে পারেন, তাহলে অন্যান্য পদ্ধতিও আরেকদিন আলোচনা করা যাবে।
There are many ways to add a tabbed gadget in blogger.com blog.
Blogger.com ব্লগে Tabbed Widget স্থাপন করার পদ্ধতিঃ

প্রথমে ব্লগার.কম এ গুগল আইডি ও পাসওয়ার্ড দিয়ে লগইন করুন। ড্যাসবোর্ড থেকে সরাসরি Layout > Edit HTML ট্যাবে চলে যান। Expand Widget Templates লেখার পাশে টিক চিহ্ন দিয়ে দিন।

মোট পাঁচটি ধাপে ব্লগার.কম ব্লগে ট্যাবভিত্তিক উইজেট স্থাপন করতে হবে। প্রথম চারটি ধাপের কোড স্থাপন করাকালীন হুট করে SAVE করবেন না। একেবারে শেষে যখন বলবো ঠিক তখন সেভ করতে হবে।
This is the easiest method to add a tabbed widget gadget in blogger blog sidebar.
প্রথম ধাপঃ
HTML পাতার উপরের দিকে থাকা Variable definitions লেখার ঠিক নিচে নিম্নোক্ত কোডগুলো লিখে দিন।
<Variable name="tbbxbgcolor" description="Tab box Background Color" type="color" default="#f8f8f8" value="#f8f8f8">
<Variable name="tbbxbrcolor" description="Tab box Border Color" type="color" default="#dcdcdc" value="#dcdcdc">
<Variable name="tbbxcolor1" description="Tab box Color 1" type="color" default="#ffffff" value="#ffffff">
<Variable name="tbbxcolor2" description="Tab box Color 2" type="color" default="#5588aa" value="#5588aa">
এই অংশটুকু স্থাপন করার ফলে আপনি ব্লগারের ডিফল্ট রঙ পরিবর্তন করার জায়গা থেকে এই নতুন ট্যাব গেজেটের ব্যাকগ্রাউন্ড রঙ, বর্ডার রঙ ইত্যাদি পরিবর্তন করতে পারবেন। ব্লগারের ডিফল্ট রঙ পরিবর্তন করার পদ্ধতি পোস্টটি পড়ে বিষয়টি সম্পর্কে জেনে নিতে পারবেন।

দ্বিতীয় ধাপঃ
এবার ]]></b:skin> এর উপরে নিচের কোডটি কপি করে নিয়ে পেস্ট করে দিন।
/*---------- Tabbed widget start-------- */

.tabberlive{
margin:0;
padding:5px;
clear:both;
background:$tbbxbgcolor;
border:1px solid $tbbxbrcolor;
}
.tabbernav {
margin:0;
padding: 3px 0;
border-bottom: 1px solid $tbbxbrcolor;
font-family:Arial,Helvetica,sans-serif;
font-size:12px;
font-weight:bold;
}
.tabbernav li {
list-style:none;
margin:0;
display:inline;
}
.tabbernav li a {
padding:3px 0.5em;
margin-right:1px;
border:1px solid $tbbxbrcolor;
border-bottom:none;
background:$tbbxcolor2;
text-decoration:none;
color:$tbbxcolor1;
}
.tabbernav li a:hover {
color:$tbbxcolor2;
background:$tbbxcolor1;
border-color:$tbbxbrcolor;
text-decoration:none;
}
.tabbernav li.tabberactive a,
.tabbernav li.tabberactive a:hover {
background:$tbbxcolor1;
color:$tbbxcolor2;
border-bottom: 1px solid $tbbxcolor1;
}
.tabberlive .tabbertab {
padding:5px;
border:1px solid $tbbxbrcolor;
border-top:0;
background:$tbbxcolor1;
}
.tabberlive .tabbertab h2,
.tabberlive .tabbertabhide {
display:none;
}
.tabbertab .widget-content ul{
list-style:none;
margin:0 0 10px 0;
padding:0;
}
.tabbertab .widget-content li {
border-bottom:1px solid $tbbxbrcolor;
margin:0 5px;
padding:2px 0 5px 0;
}

/*------- Tabbed widget end--------*/
তৃতীয় ধাপঃ
এবার </head> লেখার ঠিক উপরে নিচের কোডটি কপি করে দিন

<script type='text/javascript'>
//<![CDATA[
document.write('<style type="text/css">.tabber{display:none;}<\/style>');
function tabberObj(argsObj)
{
var arg;
this.div = null;
this.classMain = "tabber";
this.classMainLive = "tabberlive";
this.classTab = "tabbertab";
this.classTabDefault = "tabbertabdefault";
this.classNav = "tabbernav";
this.classTabHide = "tabbertabhide";
this.classNavActive = "tabberactive";
this.titleElements = ['h2','h3','h4','h5','h6'];
this.titleElementsStripHTML = true;
this.removeTitle = true;
this.addLinkId = false;
this.linkIdFormat = '<tabberid>nav<tabnumberone>';
for (arg in argsObj) { this[arg] = argsObj[arg]; }
this.REclassMain = new RegExp('\\b' + this.classMain + '\\b', 'gi');
this.REclassMainLive = new RegExp('\\b' + this.classMainLive + '\\b', 'gi');
this.REclassTab = new RegExp('\\b' + this.classTab + '\\b', 'gi');
this.REclassTabDefault = new RegExp('\\b' + this.classTabDefault + '\\b', 'gi');
this.REclassTabHide = new RegExp('\\b' + this.classTabHide + '\\b', 'gi');
this.tabs = new Array();
if (this.div) {
this.init(this.div);
this.div = null;
}
}

tabberObj.prototype.init = function(e)
{

var
childNodes,
i, i2,
t,
defaultTab=0,
DOM_ul,
DOM_li,
DOM_a,
aId,
headingElement;
if (!document.getElementsByTagName) { return false; }
if (e.id) {
this.id = e.id;
}
this.tabs.length = 0;
childNodes = e.childNodes;
for(i=0; i < childNodes.length; i++) {
if(childNodes[i].className &&
childNodes[i].className.match(this.REclassTab)) {
t = new Object();
t.div = childNodes[i];
this.tabs[this.tabs.length] = t;

if (childNodes[i].className.match(this.REclassTabDefault)) {
defaultTab = this.tabs.length-1;
}
}
}
DOM_ul = document.createElement("ul");
DOM_ul.className = this.classNav;
for (i=0; i < this.tabs.length; i++) {

t = this.tabs[i];

t.headingText = t.div.title;

if (this.removeTitle) { t.div.title = ''; }

if (!t.headingText) {

for (i2=0; i2<this.titleElements.length; i2++) {
headingElement = t.div.getElementsByTagName(this.titleElements[i2])[0];
if (headingElement) {
t.headingText = headingElement.innerHTML;
if (this.titleElementsStripHTML) {
t.headingText.replace(/<br>/gi," ");
t.headingText = t.headingText.replace(/<[^>]+>/g,"");
}
break;
}
}
}

if (!t.headingText) {
t.headingText = i + 1;
}

DOM_li = document.createElement("li");

t.li = DOM_li;

DOM_a = document.createElement("a");
DOM_a.appendChild(document.createTextNode(t.headingText));
DOM_a.href = "javascript:void(null);";
DOM_a.title = t.headingText;
DOM_a.onclick = this.navClick;

DOM_a.tabber = this;
DOM_a.tabberIndex = i;

if (this.addLinkId && this.linkIdFormat) {

aId = this.linkIdFormat;
aId = aId.replace(/<tabberid>/gi, this.id);
aId = aId.replace(/<tabnumberzero>/gi, i);
aId = aId.replace(/<tabnumberone>/gi, i+1);
aId = aId.replace(/<tabtitle>/gi, t.headingText.replace(/[^a-zA-Z0-9\-]/gi, ''));

DOM_a.id = aId;
}

DOM_li.appendChild(DOM_a);

DOM_ul.appendChild(DOM_li);
}

e.insertBefore(DOM_ul, e.firstChild);

e.className = e.className.replace(this.REclassMain, this.classMainLive);

this.tabShow(defaultTab);

if (typeof this.onLoad == 'function') {
this.onLoad({tabber:this});
}

return this;
};

tabberObj.prototype.navClick = function(event)
{

var
rVal,
a,
self,
tabberIndex,
onClickArgs;

a = this;
if (!a.tabber) { return false; }

self = a.tabber;
tabberIndex = a.tabberIndex;

a.blur();

if (typeof self.onClick == 'function') {

onClickArgs = {'tabber':self, 'index':tabberIndex, 'event':event};

/* IE uses a different way to access the event object */
if (!event) { onClickArgs.event = window.event; }

rVal = self.onClick(onClickArgs);
if (rVal === false) { return false; }
}

self.tabShow(tabberIndex);

return false;
};

tabberObj.prototype.tabHideAll = function()
{
var i;

for (i = 0; i < this.tabs.length; i++) {
this.tabHide(i);
}
};

tabberObj.prototype.tabHide = function(tabberIndex)
{
var div;

if (!this.tabs[tabberIndex]) { return false; }

div = this.tabs[tabberIndex].div;

if (!div.className.match(this.REclassTabHide)) {
div.className += ' ' + this.classTabHide;
}
this.navClearActive(tabberIndex);

return this;
};

tabberObj.prototype.tabShow = function(tabberIndex)
{

var div;

if (!this.tabs[tabberIndex]) { return false; }

this.tabHideAll();

div = this.tabs[tabberIndex].div;

div.className = div.className.replace(this.REclassTabHide, '');

this.navSetActive(tabberIndex);

if (typeof this.onTabDisplay == 'function') {
this.onTabDisplay({'tabber':this, 'index':tabberIndex});
}

return this;
};

tabberObj.prototype.navSetActive = function(tabberIndex)
{

this.tabs[tabberIndex].li.className = this.classNavActive;

return this;
};

tabberObj.prototype.navClearActive = function(tabberIndex)
{

this.tabs[tabberIndex].li.className = '';

return this;
};

function tabberAutomatic(tabberArgs)
{
var
tempObj,
divs,
i;

if (!tabberArgs) { tabberArgs = {}; }

tempObj = new tabberObj(tabberArgs);

divs = document.getElementsByTagName("div");
for (i=0; i < divs.length; i++) {
if (divs[i].className &&
divs[i].className.match(tempObj.REclassMain)) {
tabberArgs.div = divs[i];
divs[i].tabber = new tabberObj(tabberArgs);
}
}
return this;
}
function tabberAutomaticOnLoad(tabberArgs)
{
var oldOnLoad;

if (!tabberArgs) { tabberArgs = {}; }

oldOnLoad = window.onload;
if (typeof window.onload != 'function') {
window.onload = function() {
tabberAutomatic(tabberArgs);
};
} else {
window.onload = function() {
oldOnLoad();
tabberAutomatic(tabberArgs);
};
}
}

/* Run tabberAutomaticOnload() unless the "manualStartup" option was specified */

if (typeof tabberOptions == 'undefined') {

tabberAutomaticOnLoad();

} else {

if (!tabberOptions['manualStartup']) {
tabberAutomaticOnLoad(tabberOptions);
}

}

//]]>
</script>

চতুর্থ ধাপঃ
এবার <div id='sidebar-wrapper'> এর নিচে নিম্নোক্ত কোডগুলো লিখে দিন। (সাইডবার একাধিক থাকলে তার জন্য স্বতন্ত্র নাম্বার যেমন ১ অথবা ২ থাকবে।)

<div class='tabber'>
<b:section class='tabbertab' id='tab1' maxwidgets='1'/>
<b:section class='tabbertab' id='tab2' maxwidgets='1'/>
<b:section class='tabbertab' id='tab3' maxwidgets='1'/>
<b:section class='tabbertab' id='tab4' maxwidgets='1'/>
</div>

[এখানে যদি তিনটি ট্যাব চান, তাহলে একটি লাইন সম্পূর্ণ ( <b:section class='tabbertab' id='tab4' maxwidgets='1'/>) মুছে দিন ]

একবার PREVIEW লেখাতে ক্লিক করে দেখে নিন কোন Error দেখাচ্ছে কি না। দেখাবে না আসা করি। তারপরও যদি কোন Error দেখায়, তাহলে HTML কোড বক্সের নিচে লেখা CLEAER EDITS লেখাতে ক্লিক করে প্রয়োগকৃত কোডগুলো পরিষ্কার করে নিন। এই বোতামটি চাপলে সেভ করার আগ মুহুর্ত পর্যন্ত যে পরিবর্তনগুলো করেছেন, তা সব মুছে যাবে। ভুল কোডের কোন প্রভাব টেমপ্লেটে পড়বে না। আবার প্রথম ধাপ থেকে শুরু করুন। প্রথম থেকে চতুর্থ ধাপ পর্যন্ত কোডগুলো স্থাপন করার পর আবারো PREVIEW লেখাতে ক্লিক করে দেখে নিন। কোন Error না দেখালে এবার SAVE TEMPLATE লেখাতে ক্লিক করে প্রয়োগকৃত কোডগুলো সংরক্ষণ করুন।

পঞ্চম ধাপঃ
এতক্ষণ কাজ করেছেন Layout > Edit HTML ট্যাবের মধ্যে। এবার Layout > Page Elements ট্যাবে চলে আসুন। এখানে সাইডবারের দিকে তাকালে নিচের ছবির মত অংশ দেখতে পারবেন।

 এখানে 1, 2, 3, 4 লেখার ঠিক নিচে Add a Gadget লেখা লিংক রয়েছে। প্রথমে 1 লেখার নিচে একটি গেজেট স্থাপন করুন। এরপর 2 লেখাতে ক্লিক করলে আবারও Add a Gadget লেখাতে ক্লিক করে আরও একটি গেজেট লাগিয়ে নিন। এভাবে 3 এবং 4 নং ট্যাবে গেজেট বসিয়ে দিন। সবকটি ট্যাবে গেজেট বসানো হয়ে গেলে এই Page Elements পাতার উপরে ডানপাশে কমলা রঙের ব্যাকগ্রাউন্ডে লেখা SAVE লেখাতে ক্লিক করে পরিবর্তনগুলো সংরক্ষণ করুন। ব্রাউজারের অন্য ট্যাবে আপনার ব্লগে একবার রিফ্রেশ করুন। দেখতে পারবেন একটি দারুণ কাজের ট্যাব গেজেট কাজ শুরু করে দিয়েছে।

আশা করি সবকটি ধাপ সফলভাবে সম্পন্ন করতে পেরেছেন। পারলেন কি না তা জানানোর জন্য অনুরোধ করছি। এই টিউটোরিয়ালটি সম্পূর্ণ টেক্সটফাইলে ডাউনলোড করুন এখান থেকে।

»» read more

ভাসমান স্থির সাইডমেনু ব্লগার.কম ব্লগে তৈরি করার পদ্ধতি






অনেক সময় এমন হতে পারে যে ব্লগের কিছু কিছু লেখাকে পাঠকের চোখের সামনে সবসময় রাখতে চাই। কিন্তু পাঠক পড়তে পড়তে যখন ব্লগের নিচের দিকে চলে যান, তখন সাইডবারে থাকা মেনুবার উপরে চলে যায়, ফলে পাঠক আরও গুরুত্বপূর্ণ পোস্টের খবর না জেনেই ব্লগ থেকে বিদায় নেন। এটা আমাদের কারোই কাম্য নয়। তাই পাঠককে ব্লগে ধরে রাখার জন্য আমরা গুরুত্বপূর্ণ পোস্টের লিংকসহ একটি ভাসমান স্থির মেনুবার যদি নিজেদের ব্লগে লাগিয়ে নেই, তাহলে খুব ভালো হয়। আজ আমরা ব্লগার.কম ব্লগে এরকম একটি স্থির মেনুবার তৈরির পদ্ধতি জানবো।

এই কাজের মেনুটি http://www.javascriptkit.com/ এর তৈরি করা। কিন্তু তারা ব্লগার.কম ব্লগের জন্য কোন পরামর্শ দেয়নি। ফলে এটা স্বাভাবিকভাবে স্থাপন করলে মাপ ও সুবিধাগুলো ঠিক থাকতো না। আমি কোডে প্রয়োজনীয় পরিবর্তন করে আপনাদের সুবিধার জন্য মডিফাই করেছি। আপনাদের কাজে লাগলে আমার পরিশ্রম সার্থক হবে।
Today we will learn how to make a floating static menu on blogger blogspot blog.
আমরা এর আগে একটি সহজ মেনুবার তৈরি করার পদ্ধতি জেনেছি। এটা ব্লগের সমান্তরালভাবে হেডারের ঠিক নিচে অবস্থান করতো। এবার আমরা খাড়াখাড়ি একটি মেনুবার তৈরি করবো। উপরে দেয়া ছবিটি দেখুন। ব্লগপোস্ট পড়তে পড়তে স্ক্রল করে পাঠক নিচে চলে আসার সময় এই মেনুটি নিজে থেকেই নিচে চলে আসবে। অর্থাৎ আপনি ব্লগের যে জায়গায় মেনুটি স্থাপন করবেন, ঠিক সেখানেই থেকে যাবে। স্ক্রল করে নিচে আসার সাথে সাথে উপরে ঢেকে যাবে না।

  • ব্লগার.কম ড্যাশবোর্ডে গুগল আইডি ও পাসওয়ার্ড দিয়ে লগইন করুন।
  • প্রথমেই Layout > Page Elements ট্যাবে চলে যান।
  • এখানে একটি HTML/ Javascripts গেজেটে নিচের কোডটুকু স্থাপন করুন।
  • <div id="staticmenu" class="wireframemenu" style="left: 10px; top: 20px">
    <ul>
    <li><a href="http://www.banglahacks.com/">Bangla Hacks</a></li>
    <li><a href="http://www.banglahacks.com/search/label/Blogger">Blogger Tips</a></li>
    <li><a href="http://www.banglahacks.com/search/label/Ubuntu">Ubuntu Tips</a></li>
    <li><a href="http://www.banglahacks.com/search/label/Download">Download</a></li>
    <li><a href="http://www.banglahacks.com/2008/08/email-me.html">Email Me</a></li>
    <li><a href="http://www.banglahacks.com/2008/11/blog-post_08.html">Support Me</a></li>
    <li><a href="http://feedburner.google.com/fb/a/mailverify?uri=bhacks&loc=en_US">Subscribe</a></li>
    </ul>
    </div>
  • * সেভ করার আগে উপরের কোড অংশটুকুতে তিনটি বিষয় পরিবর্তন করে নিন।
  • style=left: 10px; এখানে left বদলে right লিখে দিলে মেনুটি ব্লগের শরীরের ডানপাশে থাকবে।
  • top: 20px এর পরিবর্তে 100 বা 200 যেকোন সংখ্যা লিখে দিলে উপর থেকে নিচের দিকে ঠিক সেই জায়গায় থাকবে।
  • বাংলা হ্যাকসের লিংক ও এ্যাংকর টেক্সটগুলো পরিবর্তন করে নিজের প্রয়োজনীয় লিংক ও তার নাম লিখে দিন।
  • সেভ করার পর চলে যান Layout > Edit HTML অংশে।
  • এখানে Expand Widgets Templates এর পাশের চেকবক্সে টিকচিহ্ন দিতে হবে না।
  • HTML কোডের মাঝামাঝি ]]></b:skin> লেখাটি খুঁজে বের করুন।
  • এই লেখাটুকু সম্পূর্ণ মুছে দিন।
  • লেখাটি যে জায়গায় ছিল ঠিক সেই জায়গায় নিচের কোডটুকু স্থাপন করুন।
  • .wireframemenu{
    margin-top:20px;
    border: 1px solid #C0C0C0;
    background-color: #ffffff; /*Background color*/
    width: 115px;
    position: absolute;
    }

    * html .wireframemenu{ /*IE only rule. Original menu width minus all left/right paddings */
    width: 164px;
    }

    .wireframemenu ul{
    padding: 4px 3px;
    margin: 0;
    list-style-type: none;
    }

    .wireframemenu a{
    font: 14px Verdana;
    padding: 4px 3px;
    display: block;
    width: 100%; /*Define width for IE6's sake*/
    color: #ff0000; /*Link Color*/
    text-decoration: none;
    border-bottom: 1px solid #C0C0C0;
    }

    .wireframemenu a:visited{
    color: #595959;
    }

    html>body .wireframemenu a{ /*Non IE rule*/
    width: auto;
    }

    .wireframemenu a:hover{
    color: #0000ff;
    border-right:2px solid black;
    }

    ]]></b:skin>


    <script type='text/javascript'>
    //<![CDATA[


    /***********************************************
    * Static Menu script- by JavaScript Kit (www.javascriptkit.com)
    * This notice must stay intact for usage
    * Visit JavaScript Kit at http://www.javascriptkit.com/ for this script and 100s more
    * Modified by: http://www.banglahacks.com
    ***********************************************/

    //ids of menus to keep static on page (must be absolutely positioned, with left/top attribute added inline inside tag)
    //Separate multiple ids with a comma (ie: ["menu1", "menu2"]
    var staticmenuids=["staticmenu"]

    var staticmenuoffsetY=[]

    function getmenuoffsetY(){
    for (var i=0; i<staticmenuids.length; i++){
    var currentmenu=document.getElementById(staticmenuids[i])
    staticmenuoffsetY.push(isNaN(parseInt(currentmenu.style.top))? 0 : parseInt(currentmenu.style.top))
    }
    initstaticmenu()
    }

    function initstaticmenu(){
    var iebody=(document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
    var topcorner=(window.pageYOffset)? window.pageYOffset : iebody.scrollTop
    for (var i=0; i<staticmenuids.length; i++)
    document.getElementById(staticmenuids[i]).style.top=topcorner+staticmenuoffsetY[i]+"px"
    setTimeout("initstaticmenu()", 100)
    }

    if (window.addEventListener)
    window.addEventListener("load", getmenuoffsetY, false)
    else if (window.attachEvent)
    window.attachEvent("onload", getmenuoffsetY)

    //]]>

    </script>
  • PREVIEW দেখে নিন। পছন্দ হলে সেভ করুন
  • উপরের কোডে আমি /*Background Color*/ এবং /*Link Color*/ লেখা মন্তব্যদুটোকে বোল্ড করে দিয়েছি। এই মন্তব্যদুটোর পাশের কালার কোড কালার চার্ট (Color Chart) থেকে পছন্দ করে নিয়ে পরিবর্তন করে নিতে পারেন।
নমুনা দেখুন bhdemo ব্লগে। আশা করি পাঠককে ধরে রাখতে এই মেনুটি আপনাদেরকে সাহায্য করবে।
»» read more
free counters
^ Back ToTop