среда, 25 февраля 2009 г.
Полный листинг виджета Related Posts от Тимура Аметова
автор Дмитрий Наумов View Comments comments Tag Все о Blogger *Гостевой пост Очень странно, что в последнее время возникает столько проблем с такой казалось бы такой мелочью как виджет Related Posts. Сегодня в очередной раз скрипт какое-то время не работал по вине «висящего» сервера, на котором он исполняется. Проблема на самом деле не в «серверах» или «кривых» программистах, а во мне, потому что я поленился в свое время «вытащить» полный листинг скрипта. Тогда мне просто не хотелось отягощать код, что блог обладал максимально легким и “производительным” кодом, но, недостатки моего способа многие уже ощутили. К счастью, подоспел гостевой пост от Тимура Аметова, который снимает все вопросы. Поэтому, с удовольствием передаю ему слово: В одной из своих статей, Дмитрий писал про Related Posts Widget. Один из комментаторов спросил, как можно убрать ссылку на создателя Widgeta. Я заглянул в сам код и первое, что мне бросилось в глаза, что сам скрипт загружается с чужой странички. Плюсами такого способа является то, что даже если в скрипте что-то будет меняться, Вам ничего не придётся менять.
Однако есть и серьезные, с моей точки зрения, минусы. В любой момент страничка может быть удалена или автор заменит скрипт на что-нибудь вредоносное. Для тех, кто все же решится избавиться от зависимости и написана эта статья, а точнее несколько подправлены шаги, описанные Дмитрием. Если быть еще более точным, то изменился только второй шаг. Шаг 1. Как всегда делаем бекап, как это делается всем известно, кто не знает – смотрите предыдущие посты рубрики. Шаг 2а. Если у Вас уже установлен этот виджет, ищем
RelatedPostsByRealtrix. co. cc. js’ type=’text/javascript’/>
и заменяем на
// var relatedTitles = new Array(); var relatedTitlesNum = 0; var relatedUrls = new Array(); function related_results_labels(json) { for (var i = 0; i { var entry = json. feed. entry[i]; relatedTitles[relatedTitlesNum] = entry. title.$t; for (var k = 0; k { if (entry. link[k].rel == ‘alternate’) { relatedUrls[relatedTitlesNum] = entry. link[k].href; relatedTitlesNum++; break; } } } } function removeRelatedDuplicates() { var tmp = new Array(0); var tmp2 = new Array(0); for(var i = 0; i { if(!contains(tmp, relatedUrls[i])) { tmp. length += 1; tmp[tmp. length - 1] = relatedUrls[i]; tmp2.length += 1; tmp2[tmp2.length - 1] = relatedTitles[i]; } } relatedTitles = tmp2; relatedUrls = tmp; } function contains(a, e) { for(var j = 0; j return false; } function printRelatedLabels() { var r = Math. floor((relatedTitles. length – 1) * Math. random()); var i = 0; document. write(‘‘); while (i { document. write(” + relatedTitles[r] + ”); if (r { r++; } else { r = 0; } i++; } document. write(‘
‘); } //]]>
Сохраняем шаблон. И на этом установка виджета закончена. Шаг 2б. Если Вы еще ни разу не устанавливали этот виджет, находите закрывающий тег и вставляете перед ним следующий код:
#related-posts { float : left; width : 540px; margin-top:20px; margin-left : 5px; margin-bottom:20px; font : 11px Verdana; margin-bottom:10px; } #related-posts. widget { list-style-type : none; margin : 5px 0 5px 0; padding : 0; } #related-posts. widget h2, #related-posts h2 { color : #940f04; font-size : 20px; font-weight : normal; margin : 5px 7px 0; padding : 0 0 5px; } #related-posts a { color : #054474; font-size : 11px; text-decoration : none; } #related-posts a:hover { color : #054474; text-decoration : none; } #related-posts ul { border : medium none; margin : 10px; padding : 0; } #related-posts ul li { display : block; margin : 0; padding-top : 0; padding-right : 0; padding-bottom : 1px; padding-left : 16px; margin-bottom : 5px; line-height : 2em; border-bottom:1px dotted #cccccc; } // var relatedTitles = new Array(); var relatedTitlesNum = 0; var relatedUrls = new Array(); function related_results_labels(json) { for (var i = 0; i { var entry = json. feed. entry[i]; relatedTitles[relatedTitlesNum] = entry. title.$t; for (var k = 0; k { if (entry. link[k].rel == ‘alternate’) { relatedUrls[relatedTitlesNum] = entry. link[k].href; relatedTitlesNum++; break; } } } } function removeRelatedDuplicates() { var tmp = new Array(0); var tmp2 = new Array(0); for(var i = 0; i { if(!contains(tmp, relatedUrls[i])) { tmp. length += 1; tmp[tmp. length - 1] = relatedUrls[i]; tmp2.length += 1; tmp2[tmp2.length - 1] = relatedTitles[i]; } } relatedTitles = tmp2; relatedUrls = tmp; } function contains(a, e) { for(var j = 0; j return false; } function printRelatedLabels() { var r = Math. floor((relatedTitles. length – 1) * Math. random()); var i = 0; document. write(‘‘); while (i { document. write(” + relatedTitles[r] + ”); if (r { r++; } else { r = 0; } i++; } document. write(‘
‘); } //]]>
Сохраняем шаблон. Шаг 3. Теперь находим следующий кусок кода (убедитесь что галочка «расширить шаблон» поставлена). И вставляем перед закрывающим тегом , т. е в середину, конструкцию:
Related Posts : , removeRelatedDuplicates(); printRelatedLabels();
Сохраняем шаблон, проверяем свои посты и ликуем!
А самое главное, замечаем, что ссылки на создателя Widgeta больше нет. P. S. Про ссылку на создателя виджета. Идём по ней, читаем статью и замечаем “After seeing Mohamed Rias’s post, I found a new way to use the Hack…”. В общем, некто Debajyoti Das взял скрипт Mohamed Rias, записал это всё в отдельный файлик и сказал, что он открыл велосипед А еще и ссылку на себя поставил. Учимся у него, товарищи!!! Другие «рецепты» от Тимура: FeedMates. Инструкция по установке. Случайные посты Подпишитесь на RSS чтобы получать самые свежие публикации в свой ридер. Это удобно! Еще по теме : Все о Blogger на 1:29 Полный листинг виджета Related Posts от Тимура Аметова *Гостевой пост Очень странно, что в последнее время возникает столько проблем с такой казалось бы такой мелочью как виджет Related Posts. Сегодня в очередной раз скрипт какое-то время не работал по вине «висящего» сервера, на котором он исполняется. Проблема на самом деле не в «серверах» или «кривых» программистах, а во мне, потому что я поленился в свое время «вытащить» полный листинг скрипта.
Тогда мне просто не хотелось отягощать код, что блог обладал максимально легким и “производительным” кодом, но, недостатки моего способа многие уже ощутили. К счастью, подоспел гостевой пост от Тимура Аметова, который снимает все вопросы. Поэтому, с удовольствием передаю ему слово: В одной из своих статей, Дмитрий писал про Related Posts Widget. Один из комментаторов спросил, как можно убрать ссылку на создателя Widgeta. Я заглянул в сам код и первое, что мне бросилось в глаза, что сам скрипт загружается с чужой странички. Плюсами такого способа является то, что даже если в скрипте что-то будет меняться, Вам ничего не придётся менять. Однако есть и серьезные, с моей точки зрения, минусы. В любой момент страничка может быть удалена или автор заменит скрипт на что-нибудь вредоносное.
Для тех, кто все же решится избавиться от зависимости и написана эта статья, а точнее несколько подправлены шаги, описанные Дмитрием. Если быть еще более точным, то изменился только второй шаг. Шаг 1. Как всегда делаем бекап, как это делается всем известно, кто не знает – смотрите предыдущие посты рубрики. Шаг 2а. Если у Вас уже установлен этот виджет, ищем
RelatedPostsByRealtrix. co. cc. js’ type=’text/javascript’/>
и заменяем на
// var relatedTitles = new Array(); var relatedTitlesNum = 0; var relatedUrls = new Array(); function related_results_labels(json) { for (var i = 0; i { var entry = json. feed. entry[i]; relatedTitles[relatedTitlesNum] = entry. title.$t; for (var k = 0; k { if (entry. link[k].rel == ‘alternate’) { relatedUrls[relatedTitlesNum] = entry. link[k].href; relatedTitlesNum++; break; } } } } function removeRelatedDuplicates() { var tmp = new Array(0); var tmp2 = new Array(0); for(var i = 0; i { if(!contains(tmp, relatedUrls[i])) { tmp. length += 1; tmp[tmp. length - 1] = relatedUrls[i]; tmp2.length += 1; tmp2[tmp2.length - 1] = relatedTitles[i]; } } relatedTitles = tmp2; relatedUrls = tmp; } function contains(a, e) { for(var j = 0; j return false; } function printRelatedLabels() { var r = Math. floor((relatedTitles. length – 1) * Math. random()); var i = 0; document. write(‘‘); while (i { document. write(” + relatedTitles[r] + ”); if (r { r++; } else { r = 0; } i++; } document. write(‘
‘); } //]]>
Сохраняем шаблон. И на этом установка виджета закончена. Шаг 2б. Если Вы еще ни разу не устанавливали этот виджет, находите закрывающий тег и вставляете перед ним следующий код:
#related-posts { float : left; width : 540px; margin-top:20px; margin-left : 5px; margin-bottom:20px; font : 11px Verdana; margin-bottom:10px; } #related-posts. widget { list-style-type : none; margin : 5px 0 5px 0; padding : 0; } #related-posts. widget h2, #related-posts h2 { color : #940f04; font-size : 20px; font-weight : normal; margin : 5px 7px 0; padding : 0 0 5px; } #related-posts a { color : #054474; font-size : 11px; text-decoration : none; } #related-posts a:hover { color : #054474; text-decoration : none; } #related-posts ul { border : medium none; margin : 10px; padding : 0; } #related-posts ul li { display : block; margin : 0; padding-top : 0; padding-right : 0; padding-bottom : 1px; padding-left : 16px; margin-bottom : 5px; line-height : 2em; border-bottom:1px dotted #cccccc; } // var relatedTitles = new Array(); var relatedTitlesNum = 0; var relatedUrls = new Array(); function related_results_labels(json) { for (var i = 0; i { var entry = json. feed. entry[i]; relatedTitles[relatedTitlesNum] = entry. title.$t; for (var k = 0; k { if (entry. link[k].rel == ‘alternate’) { relatedUrls[relatedTitlesNum] = entry. link[k].href; relatedTitlesNum++; break; } } } } function removeRelatedDuplicates() { var tmp = new Array(0); var tmp2 = new Array(0); for(var i = 0; i { if(!contains(tmp, relatedUrls[i])) { tmp. length += 1; tmp[tmp. length - 1] = relatedUrls[i]; tmp2.length += 1; tmp2[tmp2.length - 1] = relatedTitles[i]; } } relatedTitles = tmp2; relatedUrls = tmp; } function contains(a, e) { for(var j = 0; j return false; } function printRelatedLabels() { var r = Math. floor((relatedTitles. length – 1) * Math. random()); var i = 0; document. write(‘‘); while (i { document. write(” + relatedTitles[r] + ”); if (r { r++; } else { r = 0; } i++; } document. write(‘
‘); } //]]>
Сохраняем шаблон.
Шаг 3. Теперь находим следующий кусок кода (убедитесь что галочка «расширить шаблон» поставлена). И вставляем перед закрывающим тегом , т. е в середину, конструкцию:
Related Posts : , removeRelatedDuplicates(); printRelatedLabels();
Сохраняем шаблон, проверяем свои посты и ликуем! А самое главное, замечаем, что ссылки на создателя Widgeta больше нет. P. S. Про ссылку на создателя виджета. Идём по ней, читаем статью и замечаем “After seeing Mohamed Rias’s post, I found a new way to use the Hack…”. В общем, некто Debajyoti Das взял скрипт Mohamed Rias, записал это всё в отдельный файлик и сказал, что он открыл велосипед А еще и ссылку на себя поставил. Учимся у него, товарищи!!! Другие «рецепты» от Тимура: FeedMates. Инструкция по установке. Случайные посты View the entire comment thread. blog comments powered by Disqus
Отправить комментарий
Следующее | Предыдущее | Главная страница |