Рекомендуемые сообщения в миниатюрах

Ну что заждались этого поста? Тянула как могла. Но думаю пора заканчивать с этой интригой, а то нехорошо получается. Предупреждаю пост будет не просто длинный а очень длиннющий.

И так начнем:

Открываем настройки шаблона-Изменить HTML- ставим галочку Расширить шаблон-нажимаем Ctrl+F ищем </head> (если не сообразили вот вам статья как это сделать. Прежде чем начать  манипуляции с шаблоном прочтите это)
И прям перед  </head> вставляем приведенный код ниже:
<script type='text/javascript'>
//<![CDATA[
var relatedTitles = new Array();
var relatedUrls = new Array();
var relatedpSummary = new Array();
var relatedThumb = new Array();
var relatedTitlesNum = 0;
var relatedPostsNum = 4; // number of entries to be shown
var relatedmaxnum = 75; // the number of characters of summary
var relatednoimage = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEik6AQDpFySbExtvyY6Lzddof54uZWPeaSlIwNxGwLYuonDqazO-G-mXjOzKzq-TQMSN4sCFj7G3IE7afugESeljdifuqw8T00c3C-Lqc3Ke0lucU3nEA1EHL6tg4aRygJOKlkV3euOZZq3/s1600/no_image.jpg"; // default picture for entries with no image
function readpostlabels(json) {
  var entry, postimg, postcontent, cat;
  for (var i = 0; i < json.feed.entry.length; i++) {
    entry = json.feed.entry[i];
    if (i==json.feed.entry.length) { break; }
    relatedTitles[relatedTitlesNum] = entry.title.$t;
    postcontent = "";
    if ("content" in entry) {
      postcontent = entry.content.$t;
    } else if ("summary" in entry) {
      postcontent = entry.summary.$t;
    }
    relatedpSummary[relatedTitlesNum] = removetags(postcontent,relatedmaxnum);
    if ("media$thumbnail" in entry) {
      postimg = entry.media$thumbnail.url;
    } else {
      postimg = relatednoimage;
    }
    relatedThumb[relatedTitlesNum] = postimg;
    for (var k = 0; k < entry.link.length; k++) {
      if (entry.link[k].rel == 'alternate') {
        relatedUrls[relatedTitlesNum] = entry.link[k].href;
        break;
      }
    }
    relatedTitlesNum++;
  }
}
function showrelated() {
  var tmp = new Array(0);
  var tmp2 = new Array(0);
  var tmp3 = new Array(0);
  var tmp4 = new Array(0);
  for(var i = 0; i < relatedUrls.length; i++) {
    if(!contains(tmp, relatedUrls[i])) {
      tmp.length += 1; tmp[tmp.length - 1] = relatedUrls[i];
      tmp2.length += 1; tmp2[tmp2.length - 1] = relatedTitles[i];
      tmp3.length += 1; tmp3[tmp3.length - 1] = relatedpSummary[i];
      tmp4.length += 1; tmp4[tmp4.length - 1] = relatedThumb[i];
    }
  }
  relatedTitles = tmp2; relatedUrls = tmp; relatedpSummary = tmp3; relatedThumb = tmp4;
  for(var i = 0; i < relatedTitles.length; i++){
    var index = Math.floor((relatedTitles.length - 1) * Math.random());
    var tempTitle = relatedTitles[i]; var tempUrls = relatedUrls[i];
    var tempResum = relatedpSummary[i]; var tempImage = relatedThumb[i];
    relatedTitles[i] = relatedTitles[index]; relatedUrls[i] = relatedUrls[index];
    relatedpSummary[i] = relatedpSummary[index]; relatedThumb[i] = relatedThumb[index];
    relatedTitles[index] = tempTitle; relatedUrls[index] = tempUrls;
    relatedpSummary[index] = tempResum; relatedThumb[index] = tempImage;
  }
  var somePosts = 0;
  var r = Math.floor((relatedTitles.length - 1) * Math.random());
  var relsump = r;
  var output;
  var dirURL = document.URL;
  while (somePosts < relatedPostsNum) {
    if (relatedUrls[r] != dirURL) {
      output = "<div class='relatedsumposts'>";
      output += "<a href='" + relatedUrls[r] + "' rel='nofollow'  target='_self' title='" + relatedTitles[r] + "'><img src='" + relatedThumb[r] + "' /></a>";
      output += "<h6><a href='" + relatedUrls[r] + "' target='_self'>" + relatedTitles[r] + "</a></h6>";
      output += "<p>" + relatedpSummary[r] + " ... </p>";
      output += "</div>";
      document.write(output);

      somePosts++;
      if (somePosts == relatedPostsNum) { break; }
    }
    if (r < relatedTitles.length - 1) {
      r++;
    } else {

      r = 0;
    }
    if(r==relsump) { break; }
  }
}
function removetags(text,length){
  var pSummary = text.split("<");
  for(var i=0;i<pSummary.length;i++){
    if(pSummary[i].indexOf(">")!=-1){
      pSummary[i] = pSummary[i].substring(pSummary[i].indexOf(">")+1,pSummary[i].length);
    }
  }
  pSummary = pSummary.join("");
  pSummary = pSummary.substring(0,length-1);
  return pSummary;
}
function contains(a, e) {
  for(var j = 0; j < a.length; j++) if (a[j]==e) return true;
  return false;
}
//]]>
</script>


выглядеть это будет так:

var relatedPostsNum = 4; - количество миниатюр
var relatedmaxnum = 75 - количество знаков при описании сообщения


далее ищем
<a expr:href='data:label.url' rel='tag'><data:label.name/></a><b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
сразу после него добавляете
<b:if cond='data:blog.pageType == &quot;item&quot;'>    <script expr:src='&quot;/feeds/posts/default/-/&quot; + data:label.name + &quot;?alt=json-in-script&amp;callback=readpostlabels&amp;max-results=50&quot;' type='text/javascript'/>  </b:if>


 Выглядеть это будет так:
Ищем этот тег и


</b:includable>

 <b:includable id='postQuickEdit' var='post'>


 и над ним вставляем


<b:if cond='data:blog.pageType == &quot;item&quot;'>  <div class='post-footer-line post-footer-line-4'>    <div id='relatedpostssum'><div style='text-align: left; font-size: 15px; margin-bottom: 10px; font-weight: bold;'>Рекомендую прочитать</div>      <script type='text/javascript'>showrelated();</script>    </div>    <div style='clear:both;'/>  </div></b:if>

Выглядеть будет так:



Рекомендую прочитать можете заменить на свое.

И напоследок ищем </b:skin>   и вставляем   над ним вставить это:


.relatedsumposts {
  float: left;
  margin: 0px 5px;
  overflow: hidden;
  text-align: center;
  /* width and height of the related posts area */
  width: 120px;  height: 210px;}
.relatedsumposts:hover {
background-color: #F3F3F3; -webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}
.relatedsumposts img:hover {
-khtml-opacity:0.4;
-moz-opacity:0.4;
opacity:0.4;
}
.relatedsumposts a {
  /* link properties */
color: #linkcolor;
  display: inline;
  font-size: 10px;
  line-height: 1;
}
.relatedsumposts img {
  /* thumbnail properties */
margin-top: 2px;
  height: 82px;
  padding: 5px;
  width: 82px;
border: 1px solid #fff;
-webkit-border-radius: 100px;
-moz-border-radius: 100px;
border-radius: 100px;
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
-moz-box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
box-shadow: 0 1px 2px rgba(0, 0, 0, .4);
}
.relatedsumposts h6 {
  /* title properties */
  display: table-cell;
  height: 5em;
  margin: 5px 0 0;
  overflow: hidden;
  padding-bottom: 2px;
  vertical-align: middle;
  width: 130px;
}
.relatedsumposts p {
  /* summary properties */
border-top: 1px dotted #777777;
border-bottom: 1px dotted #777777;
color: #summarycolor;
  font-size: 10px;
  height: 4em;
  line-height: 1;
  margin: 5px 0 0;
  overflow: hidden;
  padding: 5px 0 15px 0;
  text-align: left;
}



width: 120px;
 height: 210px (изменяя эти параметры вы увеличите или уменьшите ширину и длину виджета миниатюр)

 Система Orphus

Пожалуйста не забывайте порекомендовать друзьям, если статья оказалась полезной

13 коммент.:

  1. Так много добавлять?! Я хочу сделать кругленькие, но боюсь, что запутаюсь куда и чего вставлять... А вообще - спасибо тебе, огромное! Это такой труд!!!

    ОтветитьУдалить
    Ответы
    1. Лана блоггер поменял интерфейс шаблона:( так что пока несоветую, пока сама неразберусь. Теперь все мои советы пустыми оказались.:((

      Удалить
  2. Этот комментарий был удален администратором блога.

    ОтветитьУдалить

  3. конкретно такую строчку не нашла, вставила перед а он при про Просмотреть шаблон сказал ошибка тут у вас...что делать?

    ОтветитьУдалить
    Ответы
    1. Какую именно не нашли?

      Удалить
    2. Немного откорректировала код, шаблон менялся.

      Удалить
    3. a expr:href='data:label.url' rel='tag'><data.....у меня такого вообще нет((((

      Удалить
    4. Эльмира структура шаблона у всех одинакова, даже в не стандартных. Их может быть несколько, но сомневаюсь что нет вообще. Возможно вы некорректно скопировали? < a expr:href='data:label.url' rel='tag '>

      Удалить
  4. Спасибо большое! Всё получилось) первый день веду блог и для меня ваша статья стала очень полезной!

    ОтветитьУдалить
  5. О боже, это просто чудо какое-то! Спасибо вам огромное! Перепробовала миллион советов из блогов, ничего не работала ни в одном из четырех моих блогов, а ваш код встал как надо - и похожие посты действительно показываются :) |o|

    ОтветитьУдалить
  6. Привет:)
    у меня почему-то не работает =(
    вот виджет Linkwithin работает, а уже который раз пробую ковыряться в html и похожие сообщения никак не хотят отображаться, хотя шаблон у меня стандартный @@,
    а вообще, ваш блог кладезь полезной инфы для блоггеров, спасибо :)

    ОтветитьУдалить
    Ответы
    1. Татьяна, спасибо на добром слове. Могу я вам установить этот виджет. Если он вам так понравился. свяжитесь со мной через форму связи.

      Удалить

Есть вопросы? Или просто хочется поговорить? Оставляйте комментарии