एक से अधिक लेखकों वाले ब्लॉग के लिए बहु-लेखक परिचय गैजेट

Multi Author Prodile Gadget

यदि आप चर्चा या किसी अन्य विषय पर सामूहिक ब्लॉग (Having members to write blog posts) लिखते हैं जिसमें एक से अधिक लेखक-लेखिकाएँ (Authors) अपना योगदान करती हैं। ऐसे ब्लॉगों पर यदि ब्लॉगर का प्रोफ़ाइल विजेट (Profile widget) प्रयोग किया जाये तो सभी लेखक-लेखिकाओं की सूची ब्लॉगर और गूगल प्लस लोगो (Blogger and Google+ logo) के साथ आती है लेकिन यदि ऐसा कोई विजेट आप अपने ब्लॉग पर लगायें जिससे आपके ब्लॉग के लेखक-लेखिकाओं की सूची उनकी प्रोफ़ाइल फ़ोटों और लिंक के साथ मिले तो ब्लॉग का स्वरूप और भी निखर सकता है। इससे भी अधिक अच्छी बात यह है कि यह लेखक-लेखिका दवारा लिखी गयी पोस्टों की संख्या भी दिखाता हैं। इससे आपके ब्लॉग पर लेखक-लेखिकाओं को नये पाठकों के समक्ष एक पहचान स्थापित करने में बहुत सहायता मिल सकती है। ऐसे विजेट का एक लाभ यह भी हो सकता है कि यह नये लेखकों को अपने समूह से जुड़ने के लिए प्रेरित करे क्योंकि सभी को अपनी फ़ोटो अन्य ब्लॉगों पर लगने से मन में सुखद अनुभूति होती है क्योंकि उनको दुनिया के सामने एक अलग पहचान मिलती है। यह विजेट आपके लिए बहुत ही कमाल कर सकता है। इसे ब्लॉग स्थापित करने में भी ज़्यादा मेहनत नहीं करनी मात्र एक HTML/Javascript गैजेट में नीचे दिया गया कोड पेस्ट करके सहेज देना होगा। इसके बाद आप इस गैजेट को वहाँ खिसका सकते हैं जहाँ आप इसे ब्लॉग पर दिखाना चाहें।

बहु-लेखक परिचय गैजेट के प्रमुख गुण

1. यह लेखक द्वारा लिखी गये लेखों की संख्या दिखाता है
2. यह गूगल प्लस या ब्लॉगर परिचय पर प्रयुक्त चित्र दिखाता है
3. यह गूगल प्लस या ब्लॉगर परिचय के साथ उसका लिंक दिखाता है

यह गैजेट किस प्रकार का दिखता है?

Blog Author Widget
Ref. Your Blog Author will appear like that.

एक चित्र और पोस्ट संख्या दिखाने वाला प्रोफ़ाइल गैजेट कैसे स्थापित करें

›› Blogger DashboardSelect BlogLayoutAdd a Gadget › Add a HTML/JavaScript gadget › Paste the following code › Save

<style type="text/css">
.author-line     {margin: 3px 0;}
.author-avatar   {vertical-align:middle;}
</style>
<script type="text/javascript">
//
// Blog authors gadget, works like multi author profile gadget,
// but with post counts and avatars, ordered most written first,
// by MS-potilas 2012. See http://yabtb.blogspot.fi/2012/06/profile-gadget-with-avatars-and-post.html
//
// CONFIG:
var maxUserNameLength = 42; // 0: don't cut, >4: cut usernames
//
var txtAuthorLine = '[image] [user] has written [count] [post]'; // can also use [#] (=position)
//
var sizeAvatar = 20;
var cropAvatar = true;
//
var urlNoAvatar = "http://lh4.googleusercontent.com/-069mnq7DV_g/TvgRrBI_JaI/AAAAAAAAAic/Iot55vywnYw/s"+sizeAvatar+"/avatar_blue_m_96.png"; // http://www.blogger.com/img/avatar_blue_m_96.png resizeable
// config end

function replaceAuthorVars(text, item, position)
{
  if(!item || !item.author) return text;
  var author = item.author;

  var authorUri = "";
  if(author.uri && author.uri.$t != "")
    authorUri = author.uri.$t;

  var avaimg = urlNoAvatar;
  if(author.gd$image && author.gd$image.src)
    avaimg = author.gd$image.src;
  if(avaimg == "http://img2.blogblog.com/img/b16-rounded.gif" && urlNoAvatar != "")
    avaimg = urlNoAvatar;
  var newsize="s"+sizeAvatar;
  avaimg = avaimg.replace(//sdd+-c//, "/"+newsize+"-c/");
  if(cropAvatar) newsize+="-c";
  avaimg = avaimg.replace(//sdd+(-c){0,1}//, "/"+newsize+"/");

  var authorName = author.name.$t;
  var imgcode = '<img class="author-avatar" height="'+sizeAvatar+'" width="'+sizeAvatar+'" title="'+authorName+'" src="'+avaimg+'" />';
  if(authorUri!="") imgcode = '<a href="'+authorUri+'">'+imgcode+'</a>';

  if(maxUserNameLength > 3 && authorName.length > maxUserNameLength)
    authorName = authorName.substr(0, maxUserNameLength-3) + "...";
  var authorcode = authorName;
  if(authorUri!="") authorcode = '<a class="profile-name-link" href="'+authorUri+'">'+authorcode+'</a>';

  text = text.replace('[user]', authorcode);
  text = text.replace('[image]', imgcode);
  text = text.replace('[#]', position);
  text = text.replace('[count]', item.count);
  if(item.count != 1)
    text = text.replace('[post]', "posts");
  else
    text = text.replace('[post]', "post");
  return text;
}

var blauthors = {};
var blndxbase = 1;
function showAuthors(json) {
  for(var i = 0 ; i < json.feed.entry.length ; i++ ) {
    var entry = json.feed.entry[i];
    var authorUri = "";
    if(entry.author[0].uri && entry.author[0].uri.$t != "")
      authorUri = entry.author[0].uri.$t;

    var authorName = entry.author[0].name.$t;

    if(blauthors[authorName])
      blauthors[authorName].count++;
    else {
      var aut = new Object();
      aut.author = entry.author[0];
      aut.count = 1;
      blauthors[authorName] = aut;
    }
  }
  if(json.feed.entry.length == 500) {
    blndxbase += 500;
    document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/posts/default?redirect=false&max-results=500&start-index='+blndxbase+'&alt=json-in-script&callback=showAuthors"></'+'script>');
    return;
  }
  var tuplear = [];
  for(var key in blauthors) tuplear.push([key, blauthors[key]]);

  tuplear.sort(function(a, b) {
    if(b[1].count-a[1].count)
        return b[1].count-a[1].count;
    return (a[1].author.name.$t.toLowerCase() < b[1].author.name.$t.toLowerCase()) ? -1 : 1;
  });

  // output authors:
  document.write('<di'+'v class="blog-author">');
  for(var i = 0; i < tuplear.length ; i++) {
    var item = tuplear[i][1];
    document.write('<di'+'v class="author-line">');
    document.write(replaceAuthorVars(txtAuthorLine, item, i+1));
    document.write('</d'+'iv>');
  }
  document.write('</d'+'iv>');
}   
document.write('<script type="text/javascript" src="http://'+window.location.hostname+'/feeds/posts/default?redirect=false&max-results=500&alt=json-in-script&callback=showAuthors"></'+'script>');
</script>

आशा करता हूँ कि यह पोस्ट सभी सामूहिक ब्लॉगिंग करने वाले मित्रों के लिए ख़ास साबित होगी।