Думаю, каждый человек хочет показать свой труд со всех сторон. И я тоже :) Но как умудриться привлечь посетителей заглянуть и на другие страницы проекта кроме главной.
Очень часто даются ссылки на последние статьи, но для этого есть архив. Другие предлагают прочитать наиболее комментируемые / посещаемые статьи, но является ли это критерием для хорошей статьи. Думаю, не всегда.
И тут мне пришла мысль, а почему бы не дать удаче познакомить человека с содержанием.
Я хочу представить вашему вниманию небольшой скрипт, который создаёт случайные ссылки Вашего блога на Blogger.com. Вставить эти ссылки можно на любой страничке вашего проекта.
Вы можете использовать этот скрипт и изменять по своему усмотрению. При перепечатке ссылка желательна.
Установка
Шаг 1. Функциональная часть.
Вставьте этот скрипт перед закрывающим тэгом </head>
Небольшое примечание по настройкам
var blog_url = 'http://ВАШ_БЛОГ.blogger.com'
var randomCnt = количество_случайных_ссылок.
var donate = true если захотите поблагодарить за скрипт. Ссылка на мой проект будет добавлена к списку случайных ссылок
var donate = false если не захотите :)
<script type='text/javascript'> //<![CDATA[ // declare some variables var blog_url = 'http://YOUR_BLOG_NAME.blogger.com'; // blog main url -> don't forget write your blog url var randomCnt = 5; // number of random links var donate = true; // if you want to say thank you, let this variable be true // tests, if an element exists in given array function in_array(test_arr, test_number) { // create from array a string separated by # test_arr_str = test_arr.join('#'); test_arr_str = '#' + test_arr_str + '#'; // create search item to search in converted string test_number_str = '#' + test_number + '#'; // look for search item in converted string test = test_arr_str.indexOf(test_number_str); return test; } // show donate url function showDonatePost() { // url of donate post url = 'http://ametov.net'; // get title of a post title = 'Ametov.net'; titleData = document.createTextNode(title); tag_a = document.createElement('a'); tag_a.href = url; tag_li = document.createElement('li'); tag_li.id = 'donate_widget_random_posts'; tag_a.appendChild(titleData); tag_li.appendChild(tag_a); document.getElementById('widget_random_posts').appendChild(tag_li); } // make a post visible - show post url and title function showPost(root) { var feed = root.feed; var entries = feed.entry || []; var entry = feed.entry[0]; for(var j=0; j<entry.link.length; j++) { if (entry.link[j].rel == 'alternate') { // get url of a post url = entry.link[j].href; // get title of a post title = entry.link[j].title; // if there is no title replace it with url if (title == '') title = url; titleData = document.createTextNode(title); tag_a = document.createElement('a'); tag_a.href = url; tag_li = document.createElement('li'); tag_a.appendChild(titleData); tag_li.appendChild(tag_a); if (donate) { document.getElementById('widget_random_posts').insertBefore(tag_li, document.getElementById('donate_widget_random_posts')); } else { document.getElementById('widget_random_posts').appendChild(tag_li); } } } } // get info as json string for given post function getPost(postNumber) { script = document.createElement('script'); script.src = blog_url + '/feeds/posts/summary?start-index='+postNumber+'&max-results=1&alt=json-in-script&callback=showPost'; script.type = 'text/javascript'; document.getElementsByTagName('head')[0].appendChild(script); } // get random posts for given blog function getRandomPosts(root) { var feed = root.feed; var total = parseInt(feed.openSearch$totalResults.$t,10); var randomNumber, test; var random_numbers = new Array(randomCnt); if (donate) showDonatePost(); for (var i=0; i<randomCnt; i++) { randomNumber = -1; test = -1; // this cicle is to avoid of post repeats do { randomNumber = Math.ceil(Math.random()*total); test = in_array(random_numbers, randomNumber); } while(test != -1) random_numbers[i] = randomNumber; getPost(randomNumber); } } // the main function, which get first number of posts and from which // would be called all other functions above function showRandomPosts() { var script = document.createElement('script'); script.type = 'text/javascript'; script.src = blog_url + '/feeds/posts/summary?max-results=0&alt=json-in-script&callback=getRandomPosts'; document.getElementsByTagName('head')[0].appendChild(script); } //]]> </script> |
Шаг 2. Ссылочный блок.
Собственно, сам блок с ссылками в виде списка. Вставьте данную часть в код Вашей страницы там, где Вы бы хотели видеть список с случайными ссылками.
<script type='text/javascript'> // main function call showRandomPosts(); </script> <ul id='widget_random_posts'> </ul> |
Голосовать за пост 'Случайные посты' на Sloger.Сеть
6 комментариев:
Никогда не решусь вмешиваться в мекет или шаблон блога, вставлять в него эти слова, буквы, строчки. Очень этого боюсь. Даже не пробовала никогда. Для таких как я "чайников" подходит только готовый "гаджет" или "виджет": нажал на кнопочку "вставить" - и получил в своём блоге. Когда таккое хорошее дело, как ваша идея "случайная ссылка" появится в виже готового гаджета?
Т.е. случайные посты будут вставляться в тело поста после основного текста? Или можно организовать вставку и в боковую панель?
Давно ищу что-то подобное, спасибо!
@БабочкаЯночка
Хотел написать, что я даже и не знаю, как написать гаджет. А оказалось всё не так сложно. Он уже почти готов, я только сделаю дизайн нормальный и обязательно расскажу. Следите за новостями
@a13x4ndr
В зависимости от того, куда вставить код из второго шага, там он и будет отображаться. Т.е. если хочется увидеть ссылки на боковой панели, то нужно просто вставить гаджет "HTML / JavaScript" и скопировать код (шаг нр.2). Но как я сказал, я постараюсь в ближайшее время доделать гаджет. Тогда всё проще будет.
Я подожду доделки. Заранее спасибо!
Спасибо, давно искал! Все работает
сначала использовал вариант с виджетом, но после экспериментов с облаком тегов всё сломалось. теперь воспользовался вариантом "вставить перед "/head>". спасибо!
Отправить комментарий